Skip to content

Releases: timbermods/HungryPathing

HungryPathing 0.3.1

Choose a tag to compare

@kramsey458 kramsey458 released this 22 Sep 17:25
cff48bf

The release to install, replacing 0.2.1. Game 1.1.2.4, requires the Harmony mod.

Coming from 0.2.1: this includes every change in 0.3.0, and those change what beavers decide, so all co-op players must update together. BeaverBuddies only warns when mod versions differ. Neither 0.3 release has been played in a live colony yet. Every change has offline checks, and the numbers on the site come from 0.1.0 and 0.2.0.

New in 0.3.1

  • A switch-off is now said in the game, not only in Player.log. The mod is built so that an error throws on every co-op player at the same moment, since its code reads only the simulation. That can't be guaranteed: an error that only one computer hits leaves that computer running the base game while the others run the mod, and the games drift apart. When the safety switch trips, or the BeaverBuddies MultiColony shift end falls back to the game's, that computer now:

    • shows a dialog that names what switched off and what beavers there do now. It asks co-op players to have the host save and host that save again, with every player joining it, before playing on. A switch-off lasts one game, so that load turns the mod back on for everyone. No restart is needed;
    • writes Day N: switched off on this computer ... on every later in-game day of that game, so two players' logs still compare day by day.

    The dialog is shown from the frame loop, never from inside the game tick where the error happened, and it changes nothing in the simulation. On top of 0.3.0, 0.3.1 does not change decisions.

From 0.3.0, in short: the safety switch lasts one game instead of the whole process. Pre-fuel and the builder check pick among storages within their near limit. Tubeways, ziplines and stairs count when deciding which storages to measure. Every storage that failed to start a trip is remembered. The critical-redirect hook runs after other mods' hooks. Full list in CHANGELOG.md.

Install

Unzip into Documents\Timberborn\Mods so that Mods\HungryPathing\version-1.1\manifest.json exists, replacing the previous version, and enable it in the mod manager. In multiplayer every player needs the same version and an identical settings file.

SHA-256 of HungryPathing-0.3.1.zip: b81dac4a3678b3d23277a9a182183014389801ef113a77f8aedd003292d7afef

HungryPathing 0.3.0 (preview)

Pre-release

Choose a tag to compare

@kramsey458 kramsey458 released this 22 Sep 16:48

Preview: fixes from a code review, all of which change decisions. Game 1.1.2.4, requires the Harmony mod. All co-op players must update together; BeaverBuddies only warns when mod versions differ. None of this has been observed in a live game yet; every change has offline checks that fail on 0.2.2 and pass here.

Fixed

  • The safety switch lasts one game, not the whole process. After an error the mod used to stay off until the game was restarted, so a player who then loaded, joined or rehosted a co-op game ran the base game while the others ran the mod. It now switches off for the rest of that game only; the next load turns it back on (Breaker from the previous game cleared in Player.log). The same goes for the BeaverBuddies MultiColony shift-end fallback.
  • Pre-fuel and the builder job check no longer give up because of a better food just past the near limit. They now pick among the storages within PreFuelNearFoodHours, and a builder who lets a site go tops off at one of them.
  • Tubeways, ziplines and stairs are taken into account when deciding which storages are worth measuring. The cheapest path cost per tile is read from the loaded buildings once per game and logged (Cheapest travel here:). This costs more path queries on pre-fuel checks (estimated 4.5 to 5 per evaluation in the reference colony, up from about 3, still below 0.1.0). In co-op, compare that line between players.
  • Every storage that failed to start a trip is remembered, not just the last one. After a penalty-state redirect where every storage failed, the game's own behavior takes over for RetryHours. The daily line now counts failed launches.
  • The critical-redirect hook runs after other mods' hooks on the same method, so the order no longer depends on each player's mod load order. A failed hook install removes only this mod's patches.

Also: docs say Folktails is tested and Iron Teeth expected to work but untested; the site offers GitHub's Latest release; CI runs the checks on every pull request. Full list in CHANGELOG.md.

Install

Unzip into Documents\Timberborn\Mods so that Mods\HungryPathing\version-1.1\manifest.json exists, replacing the previous version, and enable it in the mod manager. In multiplayer every player needs the same version and an identical settings file.

HungryPathing 0.2.2 (preview)

Pre-release

Choose a tag to compare

@kramsey458 kramsey458 released this 22 Sep 08:46

Preview: a compatibility fix for BeaverBuddies MultiColony, found by an audit rather than by a beaver. Game 1.1.2.4, requires the Harmony mod.

Fixed

  • MultiColony gives each colony its own working hours. It patches the per-beaver "are we working" test, which this mod already goes through, but not the game's single WorkingHoursManager.EndHours, which the pre-fuel rule reads for "hours left in the shift". So beavers of a colony that chose, say, a 20-hour day were planned against the game's 16. The mod now asks MultiColony's ColonyWorkingHours for the beaver's own colony, through reflection with no dependency; without MultiColony, or if its API changes, the game's value is used and the log says which (MultiColony: line after Needs in this game).

Everything else is 0.2.1. Not yet observed in a game where a colony set its own hours; in every session so far both code paths gave the same answer, so this is a preview until someone plays that case.

Install

Unzip into Documents\Timberborn\Mods so that Mods\HungryPathing\version-1.1\manifest.json exists, replacing the previous version, and enable it in the mod manager. In multiplayer every player needs the same version and an identical settings file.

HungryPathing 0.2.1

Choose a tag to compare

@kramsey458 kramsey458 released this 22 Sep 07:08

Fix release, and the one to install: 0.2.0 switches itself off on any day with real construction, this does not. Game 1.1.2.4, requires the Harmony mod. Beta: the builder job check's decisions are still to be observed on a day with multi-material buildings; everything else has 39 in-game days behind it.

Fixed

  • The first day with construction queued tripped the circuit breaker in the builder job check: a construction site entity carries two Accessible components (its own and the finished building's), so the lookup introduced in 0.2.0 was ambiguous and threw. The check now reads the destination from the walk the builder has just started, with the site's dedicated accessible as the fallback. The breaker did its job in the meantime: the session continued on the game's own behavior with one warning in the log.

Everything else is 0.2.0: see that release for the before-and-after numbers and the review fixes. 36 in-game days in a 355-beaver colony so far, nearly all in co-op, with no other errors.

Install

Unzip into Documents\Timberborn\Mods so that Mods\HungryPathing\version-1.1\manifest.json exists, replacing the previous version, and enable it in the mod manager. In multiplayer every player needs the same version and an identical settings file.

HungryPathing 0.2.0

Choose a tag to compare

@kramsey458 kramsey458 released this 22 Sep 06:56

First release after a code review and eight days in a live colony. Game 1.1.2.4, requires the Harmony mod.

Working beavers plan food and water around their shift instead of waiting for the penalty, and eat at the closest stocked storage while on the job.

Measured in a 355-beaver colony, an hour before the end of the shift, with and without the mod

Without With
In the hunger or thirst penalty 15 0
Within 3 hours of a penalty 117 0
Median walk per working-hour eating trip 0.96 h 0.72 h
Trips started in the last 4 hours of the shift 49 21
Beavers mid-trip walking past a closer stocked storage 2 of 18 0 of 11

Eight in-game days without an error, part of them as a BeaverBuddies host with a guest; three days replayed from the same save gave identical daily counters and identical co-op consistency hashes. Full numbers and method in TESTING.md.

Fixed since 0.1.0 (all from the review)

  • The builder job check could throw on any construction site with more than one access point, which on a construction-heavy day would have tripped the circuit breaker and switched the mod off. It now uses the nearest access point.
  • A storage that could not start a trip is skipped in the same decision and left alone for twice RetryHours, instead of being retried on every check.
  • The variety tolerance is measured from the closest storage, so a chain of slightly farther, slightly better foods cannot win by more than the tolerance, and the pick no longer depends on list order.
  • A builder that let a site go stops walking toward it.
  • Pre-fuel-only checks stop measuring walks past the near limit; fewer path queries for beavers with hours to spare.
  • Sleeps between checks are capped at three hours; disabled needs, an unknown walking speed on the first tick and beaver templates missing a component are handled without tripping the breaker.

Install

Unzip into Documents\Timberborn\Mods so that Mods\HungryPathing\version-1.1\manifest.json exists, replacing 0.1.0 if present, and enable it in the mod manager. Settings in version-1.1\HungryPathing.cfg; in multiplayer every player needs the same version and an identical settings file.

HungryPathing 0.1.0 alpha

Pre-release

Choose a tag to compare

@kramsey458 kramsey458 released this 22 Sep 04:36

First alpha. Game 1.1.2.4, requires the Harmony mod.

Working beavers plan food and water around their shift instead of waiting for the penalty, and eat at the closest stocked storage while on the job.

What changes (employed adults, working hours only)

  • A 3-hour buffer through the game's own HoursWarningThreshold, set by two partial blueprints for Hunger and Thirst. Beavers honor it the way bots already do.
  • Just in time: leave for the closest stocked storage early enough to arrive with the buffer in hand.
  • Pre-fuel: top off when a storage is within half an hour's walk and the beaver would not last the rest of the shift.
  • Builder job check: a builder who has just reserved a site it would not last at lets it go, through the game's own unreserve path, and tops off first.
  • Closest storage by walking time, for the mod's trips and for the game's penalty-state trips during working hours. A higher-scoring food wins only within a quarter hour of extra walking. Off duty the game's variety-seeking is untouched.

Why

In the base game a working beaver only leaves a job once the need is already at zero, and the district picks the food group with the most need points before it looks at distance. Sixteen of seventeen foods carry a variety need, so berries next to the site lose to bread at the center. In a 357-beaver save at the end of a shift, 90 adults were within three hours of the hunger penalty; 193 of the last 200 eating trips started during working hours with a median walk of about an hour.

Guardrails

Decisions read only simulation state and the game's path queries, with fixed iteration order and tie-breaks. Nothing is written to saves. Path queries are capped per decision. A unit of food restores a fixed amount and the game refuses one that would not fit, so consumption per day is unchanged.

Status

Builds against 1.1.2.4 with no warnings, every hook resolves against the game's assemblies, and the planner checks pass. First live run: three in-game days in a 330-adult colony, played twice from the same save, the second time as a BeaverBuddies host with a guest whose mod list matched. No exceptions; both runs produced identical daily counters and identical co-op consistency hashes. Per day the rules started roughly 50 just-in-time trips, 90 to 145 pre-fuel trips and redirected 12 to 15 penalty-state trips, at about 8,000 path queries. Still one colony and three days, so still an alpha. If anything in the mod throws, it logs the stack trace once and switches itself off for the session. Please post the [HungryPathing] lines from Player.log if anything looks off.

Install

Unzip into Documents\Timberborn\Mods so that Mods\HungryPathing\version-1.1\manifest.json exists, enable it in the mod manager. Settings in version-1.1\HungryPathing.cfg; in multiplayer every player needs the same version and an identical settings file.