Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Heel
Looks after your tames. The ones following you catch up on their own after a delay - through portals, out of pits. The ones you parked stop wandering into fires, lava, water, smoke and spike traps.
| Last updated | a week ago |
| Total downloads | 444 |
| Total rating | 0 |
| Categories | Mods AI Generated |
| Dependency string | Dafini-Heel-2.1.0 |
| Dependants | 0 other packages depend on this package |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2350README
Heel
Looks after your tames — both halves of them.
Following you? They catch up on their own after a delay. Parked? They stop walking into things that kill them.
The ones following you
If something tamed is following you and it falls a long way behind — or gets stuck somewhere it will never climb out of — it waits 25 seconds and then turns up behind you. Through portals. Out of pits. Off the wrong side of a river.
They arrive in an arc behind your back, one at a time, so a dozen wolves never land on top of you and wall you into a portal.
What it will and will not touch
It only ever moves a creature that is tamed, alive, and following you specifically.
That is three separate safety rules and each one is doing a job:
- Tamed — a wild wolf is never brought to a player by this mod, under any setting. That would make it a way to drop a two-star troll on somebody.
- Following you — your friend's boars are their client's business. Two clients both moving the same animal would fight over it, and it would flicker between two places until one gave up.
- Following — a penned or parked animal is tamed and near you and going nowhere, which is every trigger this mod has. If "following" were not required, walking past your own barn would empty it into the field behind you. Told to stay means stays.
Where it will not put them
A spot has to earn it, and when nothing earns it nothing happens — the follower stays where it is and it tries again shortly. Doing nothing is always safe and always available.
- Never in water, never on ground that has not loaded, never in mid-air.
- Never inside a ward you are not admitted to. A convenience mod that can push livestock into a stranger's base is a griefing tool wearing a convenience mod's coat.
- Never on top of another arrival.
Two ways to fall behind
Adrift — you are more than 40 metres away. The clock runs no matter what they are doing, because a wolf three hundred metres back is running towards you at full speed and will still be running in an hour. This is the portal case.
Stalled — you are near enough that they ought to be with you, and the gap is not closing. Pit, fence, roof, a rock they cannot path around. This is the one a distance check cannot see: a wolf eight metres below you at the bottom of a hole is not far away by any measure worth having, and it is never getting out.
If they are simply behind and gaining, they are left alone to arrive under their own steam — which is what happens almost every time you jog across a field. The delay is the point.
The ones you parked
Anything tamed that is not following anybody stops wandering into open flames, lava, deep water, smoke and spike traps.
Most of this is not new code — it is a switch the game turns off for tames. BaseAI.AvoidFire
literally opens with if (m_character.IsTamed()) return false;, and the wander validator
already checks fire, lava and water behind three public flags that are simply never set on a
tamed creature. Presumably so a follower walks past your hearth instead of bolting; the price
is a boar standing in a firepit until it dies. Heel turns them back on for the animals you
parked, and leaves followers exactly as the game intends.
Two hazards the game has no switch for, because it has no concept of them as places:
- Smoke — the same
CheckSphereon the"smoke"layer the game runs on your own head. - Traps — derived, not listed: anything that hits characters, hits friendly ones, and deals damage. Sharp stakes, dvergr spikes, modded traps. A trap already set to spare friendly targets is left alone, since it was never going to hurt them.
Already standing in something? It walks out. Nothing is teleported or shoved — the AI is just told to pick a new destination now, and the validator refuses to send it back in. That fixes a pen built around a firepit without you rebuilding it.
One to know about: AvoidSmoke will also keep tames out of a working smokehouse. Turn it
off if you cure meat around your animals.
Console
heel
Says who it thinks is yours, what the clock is doing, and why anything is still sitting in a pit.
Multiplayer
On your own machine, it moves your followers on your machine, asks nothing of the server and nothing of anyone else's client — so it works on a vanilla server, and two people running different settings cannot desync anything. Everyone who wants it installs it; everyone who does not, does not.
On a dedicated server, drop it in and the catch-up works for everybody on it, with vanilla
clients. Nothing for them to install, nothing to keep in version lockstep. A follower that has
been left behind for CatchUpDelay seconds is brought to its player, in an arc, one every
ArrivalSpacing — whether the zone it was left in is loaded or not.
Two things the server path cannot do, and says so in the startup log rather than shipping a switch that does nothing:
- Hazard avoidance is client-only.
m_avoidFireand friends are fields on a live AI component, and a server never runs one. - A follower parked next to a different player stays put until they move on. It is on somebody else's screen, and making it vanish out of their camp is not this mod's call.
Settings
Everything is in BepInEx/config/dafini.heel.cfg. The ones worth knowing:
| Setting | Default | What it does |
|---|---|---|
CatchUpDelay |
25s | How long they get to sort themselves out first |
AdriftDistance |
40m | Past this, the clock runs regardless |
WithYouDistance |
12m | Inside this, they count as having arrived |
ArrivalSpacing |
0.5s | Gap between one arrival and the next |
ServerSide |
on | On a dedicated server, run the catch-up for everyone |
MinRadius |
5m | How far behind you the first ring lands |
HoldWhileFighting |
off | Leave tames to finish their fights instead of rescuing them |
MindHazards |
on | Keep parked tames out of danger at all |
AvoidFire / AvoidLava / AvoidWater |
on | The three the game already knows |
AvoidSmoke |
on | Also keeps them out of a working smokehouse |
AvoidTraps |
on | Anything built that would hurt them |
TrapMargin |
1.5m | How wide a berth to give a trap |
HoldWhileFighting is off on purpose: the wolf you most want rescued is usually the one
stuck in a pit with something.