Created: 12/18/2025
Last Updated: about 3 hours ago
Description from the author: π©Ί Selfcare & Vet Supply Automation (ALT MODE)
Ultima Online: Outlands
ββββββββββββββββββ
β¨ What This Script Does
Runs continuously in the background to keep you alive.
Contact me on Discord if you have any issues. @sic3466
Priority order:
π©Ή Vet supplies (fires whenever the game allows it)
π§ͺ Heal potion
π§΄ Cure / Panacea (poison, disease, bleed)
β‘ Refresh potion
πͺ Buff potions (STR / AGI / MR β war mode only)
π§· Paralyze break (pouch)
π° Overweight protection (gold drop)
π Food maintenance
Vet supplies are not tied to your HP.
If you or nearby pets need healing, the game applies it.
If not, nothing happens.
ββββββββββββββββββ
π¬ Visual Feedback
βοΈ βSELFCARE ACTIVEβ overhead every 10s
β€οΈ Doesn't incorporate the heart visual display like the SELFCARE TAMER BOT. I can't figure out a way to effectively get a trigger.
(Hearts are visual only and can be disabled.)
ββββββββββββββββββ
π« What This Script Does NOT Do
β No hostile detection
β No combat or pet targeting
β No pet buffs
β No skill usage (Detect Hidden, Bard skills, etc.)
Anything unreliable is intentionally excluded.
ββββββββββββββββββ
βοΈ Setup
π§₯ Dress Macro (Required)
Rename this line to match your own dress macro:
hotkey 'Dress: Yuckmouth'
Example:
hotkey 'Dress: MyTamerSet'
(Remove it if you donβt want auto-dress.)
π Inventory
βοΈ Vet supplies β backpack
βοΈ Food trays β backpack
βοΈ Gold β backpack (if overweight drop enabled)
βοΈ Trapped pouch β accessible
π’ Potions work automatically β no hotkey setup needed.
ββββββββββββββββββ
π§ Toggles
At the top of the script:
@setvar! heal_potion 1
@setvar! cure_potion 1
@setvar! refresh_potion 1
@setvar! buffs_potion 1
@setvar! pouch 1
@setvar! food 1
@setvar! VetPulseEnabled 1
1 = ON | 0 = OFF
ββββββββββββββββββ
βΆοΈ How to Use
1οΈβ£ Paste script
2οΈβ£ Rename dress macro
3οΈβ£ Start script
4οΈβ£ Play normally
Vet supplies fire as soon as the game allows them. Script just runs in the background.
// =======================================
// ONE-TIME STARTUP ACTIONS
// =======================================
hotkey 'Dress: Yuckmouth'
wait 500
// =======================================
// USER TOGGLES
// =======================================
@setvar! heal_potion 1
@setvar! cure_potion 1
@setvar! pouch 1
@setvar! refresh_potion 1
@setvar! buffs_potion 1
@setvar! petHealLOOP 1
@setvar! food 1
@setvar! amountOfGoldToDrop 666
// -----------------------------
// SELFCARE ACTIVE PULSE
// -----------------------------
@setvar! SelfcarePulseCD 10000
settimer SelfcarePulseTimer 0
// -----------------------------
// Vet supply cooldown (ms)
// -----------------------------
@setvar! VetSuppTimerCD 6000
settimer VetSuppTimer 999999
// -----------------------------
// Potion throttles (ms)
// -----------------------------
@setvar! HealPotionCD 900
@setvar! CurePotionCD 900
@setvar! RefreshPotionCD 800
@setvar! BuffPotionCD 1800
@setvar! PouchCD 700
settimer HealPotionTimer 0
settimer CurePotionTimer 0
settimer RefreshPotionTimer 0
settimer BuffPotionTimer 0
settimer PouchTimer 0
// -----------------------------
// Overweight message throttle
// -----------------------------
@setvar! overweightMessageCD 2000
settimer overweightMessageTimer 0
// -----------------------------
// INITIAL OVERHEAD
// -----------------------------
overhead 'βVET SPAM ACTIVEβ'
while not dead
// =====================================================
// SELFCARE ACTIVE PULSE (EVERY 10 SECONDS)
// =====================================================
if timer SelfcarePulseTimer > SelfcarePulseCD
overhead 'βVET SPAM ACTIVEβ' 53
settimer SelfcarePulseTimer 0
endif
// =====================================================
// 1) VET SUPPLY β SERVER-GATED (HIGHEST PRIORITY)
// =====================================================
if petHealLOOP = 1
if not bandaging
if timer VetSuppTimer > VetSuppTimerCD
if findtype 'veterinary supplies' backpack as vetsupp
dclick vetsupp
settimer VetSuppTimer 0
wait 400
endif
endif
endif
endif
// =====================================================
// 2) HEAL POTION
// =====================================================
if heal_potion = 1
if hp < 60
if timer HealPotionTimer > HealPotionCD
hotkey 'Drink Heal'
overhead 'Heal Potion' 53
settimer HealPotionTimer 0
wait 350
endif
endif
endif
// =====================================================
// 3) CURE / PANACEA
// =====================================================
if cure_potion = 1
if timer CurePotionTimer > CurePotionCD
if poisoned
hotkey 'Drink Cure'
overhead 'Cure (Poison)' 53
settimer CurePotionTimer 0
wait 350
else
if findbuff 'Diseased'
hotkey 'Drink Cure'
overhead 'Cure (Disease)' 53
settimer CurePotionTimer 0
wait 350
else
if findbuff 'Bleeding'
hotkey 'Drink Cure'
overhead 'Cure (Bleed)' 53
settimer CurePotionTimer 0
wait 350
endif
endif
endif
endif
endif
// =====================================================
// 4) REFRESH POTION
// =====================================================
if refresh_potion = 1
if stam < 50
if timer RefreshPotionTimer > RefreshPotionCD
hotkey 'Drink Refresh'
overhead 'Refresh Potion' 53
settimer RefreshPotionTimer 0
wait 300
endif
endif
endif
// =====================================================
// 5) BUFF POTIONS β WARMODE ONLY
// =====================================================
if buffs_potion = 1
if warmode 1
if timer BuffPotionTimer > BuffPotionCD
if not findbuff 'Strength'
hotkey 'Drink Strength'
overhead 'STR Potion' 53
settimer BuffPotionTimer 0
wait 900
endif
if not findbuff 'Agility'
hotkey 'Drink Agility'
overhead 'AGI Potion' 53
settimer BuffPotionTimer 0
wait 900
endif
if not findbuff 'Magic Resist'
hotkey 'Drink Magic Resist'
overhead 'MR Potion' 53
settimer BuffPotionTimer 0
wait 900
endif
endif
endif
endif
// =====================================================
// 6) POUCH β PARALYSIS
// =====================================================
if pouch = 1
if paralyzed
if timer PouchTimer > PouchCD
say [pouch
settimer PouchTimer 0
wait 200
endif
endif
endif
// =====================================================
// 7) OVERWEIGHT GOLD DROP
// =====================================================
if weight > maxweight
if timer overweightMessageTimer > overweightMessageCD
overhead 'Overweight !!' 34
settimer overweightMessageTimer 0
endif
if amountOfGoldToDrop > 0
if findtype 3821 backpack as goldpile
lift goldpile amountOfGoldToDrop
droprelloc 0 0
wait 300
overhead '* Gold Dropped *' 55
endif
endif
endif
// =====================================================
// 8) FOOD / AUTO-EAT
// =====================================================
if food = 1
if not findbuff 'Food Satisfaction'
if findtype 'tray' backpack as foodtray
dclick foodtray
wait 300
endif
endif
endif
wait 60
endwhile