You are viewing a potentially older version of this package. View all versions.
Phoenixf-InnangardServerLagFix-1.0.10 icon

InnangardServerLagFix

Multiplayer patches aimed at Innangard 0.1.9 (improves fps / eliminate network delay / desync)

Date uploaded 3 weeks ago
Version 1.0.10
Download link Phoenixf-InnangardServerLagFix-1.0.10.zip
Downloads 109
Dependency string Phoenixf-InnangardServerLagFix-1.0.10

This mod requires the following mods to function

Yololo-Innangard-0.1.9 icon
Yololo-Innangard

Build a living settlement: recruit villagers, give each a craft, stake out fields, and join your villages with roads your own people help you build.

Preferred version: 0.1.9

README

Innangard Server Lag Fix

Multiplayer, AI, pathfinding, storage, and quality-of-life fixes for Innangard.

Installation

  • Install on both the dedicated server and all clients.
  • Requires Innangard.
  • Better Organisation is optional.
  • BetrValheim / ItemDrawers support is optional through my separate drawer bridge.
  • If optional integrations are missing, the remaining fixes continue to work normally.

Features

Craft/Build from Frith Drawers

  • Previously it didn't use the ItemDrawers API, now it does. Now uses resources from drawers that support this API first, before chests.

Stations tab

  • Easily prevent the settlement from using a specific station (smelter, kiln, campfire etc) and it will no longer be seen by the settlement at all! Useful for multiple machines where you only want one running, or you don't want them wasting wood on all the campfires you left out there!

Networking / Ownership

  • Prevents station reservations from unnecessarily stealing ZDO ownership.
  • Deduplicates repeated StationClaim.Take calls.
  • Reduces unnecessary station lease renewal writes.
  • Coalesces immediate release/re-take cycles on the same station.
  • Preserves ownership acquisition for real inventory/world mutations.
  • Protects player-owned objects from unnecessary dedicated-server JIT ownership takeover.
  • Reduces redundant settler transform, velocity, and animation ZDO writes.
  • Keeps normal Valheim/Innangard settler ownership and simulation selection.
  • Includes client death/respawn safety for ownership and sync patches.

Movement / Pathfinding

  • Tighter intermediate path corners to reduce wall/corner cutting.
  • Body-aware path clearance so planner width better matches the settler's real collider.
  • Live-configurable settler collider and planner radius multipliers.
  • Improved recovery routing around walls, furniture, and narrow areas.
  • Storage interactions prefer reachable positions on the settler's current floor.
  • Tests all available storage interaction positions before accepting an unreachable fallback.
  • Chests and drawers use improved standing-position routing.
  • Smelters, kilns, fires, and other machines prefer a reachable interaction side.

Chairs / Meals

  • Improved chair approach routing around tables and furniture.
  • Settlers approach from a reachable point beside/behind the reserved chair before sitting.
  • Works for both meal seating and normal idle/social sitting.
  • Fixes distant workers using up the meal timer while travelling to collect food.
  • After collecting food and reserving a chair, settlers receive a fresh 30-second seating window.
  • Keeps Innangard's normal standing-meal fallback if a chair genuinely cannot be reached.

Combat / AI State

  • Clears stale hostile targets that can leave residents permanently stuck with a red !.
  • Prevents stale combat state from blocking meals, sitting, resting, and normal work.
  • Nearby or genuinely threatening enemies are still retained normally.
  • Guards, hunters, and followers keep their existing specialized combat behavior.

Storage / Caretakers

  • Multiple settlers can use the same chest/drawer without global StationClaim locking.
  • Existing item/capacity protections remain active.
  • Drawer reach follows Innangard's normal horizontal and vertical storage reach settings.
  • Caretakers prefer compatible drawers where appropriate.
  • Caretakers deliver carried cargo before making optional CollectMore trips.
  • Fixes CollectMore getting stuck when already within valid interaction range.
  • Fixes deposit jobs stalling on the final blocked/stuck approach.
  • Open but already-emptied source chests no longer stall sorting jobs.
  • Prevents already-collected cargo from being unnecessarily returned or abandoned.

Loose Ground Items

  • Local in-memory reservations stop multiple caretakers chasing the same dropped stack.
  • Nearby loose items are grouped into piles.
  • The nearest caretaker wins the pile claim.
  • Claims can switch if another caretaker becomes meaningfully closer.
  • Loose-item claims add no extra ZDO fields, ownership changes, RPCs, or persistent data.

Lumberjacks

  • Improves tree/log target selection.
  • A much closer standing tree can beat a distant felled log.
  • Existing Innangard work-area restrictions remain in place.

Better Organisation Integration

Optional — all other features work without Better Organisation installed.

  • Innangard understands Better Organisation category rules.
  • Supports BO per-item include/exclude rules.
  • BO rules are read locally without duplicating them into chest ZDO data.
  • Compatible drawers remain preferred where appropriate.
  • BO-managed chests integrate with Innangard's chest-rules UI.
  • Adds a shortcut from Innangard's chest UI to Better Organisation storage rules.
  • Configurable chest-rules modifier key.

BetrValheim / ItemDrawers Integration

With the separate Innangard BetrValheim Drawer Bridge installed:

  • Innangard can discover and use BetrValheim drawers.
  • Caretakers can deposit ordinary cargo directly into compatible drawers.
  • Drawer transfers use the actual drawer API and capacity checks.
  • Drawer support works independently of Better Organisation.

Check the full Changelog for each feature added/changed.

Important Config Options

[Movement]

SettlerColliderRadiusMultiplier = 0.92
PlannerRadiusMultiplier = 0.96
MealSeatSearchSeconds = 30

[Combat]

ClearStaleResidentTargets = true
StaleResidentTargetCloseRetainDistance = 4

[UI]

ChestRulesModifierKey = LeftShift

CHANGELOG

1.0.12

  • Put LagFix debug behind Innangards VerboseLog config
  • Caretaker sorting inventory is now counted into Stock, so them sorting your chests does not interfere and craft/cook more
  • Added more SceneObject caches for missed lookups
  • Item drop now has priority for the jobs that are for them, caretakers last. Priority also depends on who is closest and who is busy.
  • Forager can now collect honey. Caretaker can now pick up barley flour/oat flour
  • Lumberjack now blacklists logs he can't reach (e.g. stuck in the air) and chooses another one
  • Fighting now uses navmesh path and doesn't get stuck on doors
  • Cook/Caretaker can now use relevant stations and take stock targets
  • Null guards for a few job errors (hunter prey spawning etc)
  • Automatic data rollback mode added. Won't patch anything if Innangard 0.2.0 is detected and reverts data optimisations/redirection. So you don't need to setup patrols/farmer lists again as I redesigned/shrunk the data massively

1.0.11

  • Guards/Farmers no longer store their route/preferences on the Settler. It is now stored on the Frith so it does not get serialized/sent each time they walk (big lag in multiplayer)
  • Compacted assignments. Converted base64 encoding to byte records, 184B -> 52B reduction in testing (5 patrol entites+2 routes) (2/3rds reduction)
  • All new compact persistence formats use verified A→B migration. Old data is retained until the new representation round-trips successfully.
  • Settlers now have a favourite food. +2 to Morale. It's cheap and can all be fulfilled by the farmer or cook. Observe them to find out!
  • Improved hunter search/pathing, work-areas are now authorative and they will only work inside them
  • Broad door search logic has been disabled. It's no longer required as doors are treated like they aren't there. Pacing will pause the npc motor for a moment while the door opens.
  • Restored player avoidance/pushaway logic. It was forgotten
  • Doors now get persistent nav links in work areas too so pathing understands its accessible.
  • Lumberjacks now prefer axes instead of anything with m_chop > 0 (I had a crossbow with 140 chop in testing, and axes only had 40! Fixed). Now they use their axes.
  • Improved physics lookup for lumberjack wood collection after tree destruction. It now also uses the rooted trunk position instead of the collider.
  • Forager now ignores items with fulfilled stock targets. (Ember no longer fills storage!)
  • Incremental path searches that are merely still pending are no longer accidentally cached as failed routes. Genuine stalled routes recover faster without disturbing healthy long routes

1.0.10

  • Optimised/redesigned some internal logic
  • No longer errors without Better Organisation installed. Those features were meant to be optional after all.
  • Farmer can now plant all crops without issue (other mods will still conflict, but it might handle those better now)
  • Removed E crop rotator from farm plots. E now opens the menu. Changing the crop now deletes invisible growers so the farmer can plant the new ones.

1.0.9

  • Scene lookup reduction. Now using cached lists for most lookups.
  • Placing/removing a farming area now destroys invisible respawning zdos, preventing them from stacking.
  • Improved ItemDrawer routing, same-floor selection, direct positioning and movement pacing.
  • Reworked normal stuck detection to repath only after real lack of movement.
  • Fixed Better Organisation favourite-item handling during caretaker sorting.
  • Prevented stale Innangard cargo metadata from breaking dropped-item sorting.
  • Added more live scene caches to eliminate repeated whole-scene Unity searches. (Beds, Chests, Drawers, Doors, Plants, Trees, Pickables etc)
  • Farmer picker menu now shows all available plants, regardless of you having them (in storage) and has icons for them too to differentiate quickly.
  • Fixed harvested crops not being recognised as farmer cargo.
  • Fixed DepositThreshold = 0; farmers now keep working until full or unload after ~4 seconds with nothing ripe.
  • Fixed farmers repeatedly equipping a shield alongside the cultivator.
  • Added HOTPATH profiling controls under [Diagnostics].
  • Significantly optimised most individual jobs logic. (excludes cook, builder, fisherman, miner- for now)
  • Reduced lumberjack pickup/search hotpaths and repeated tree scanning.
  • Significantly optimized farmer crop/ripe-plant searches.

1.0.8

  • Settlers now use a pacing system and can run/walk. They will ramp up and down as they start/end pathing
  • Pathing is now incremental and offloaded to multiple frames instead of all done at once.
  • Reused healthy paths instead of periodically repathing moving settlers.
  • Improved chest, drawer and seating standing points. Caches bad points for 10s.
  • Settlers will now hold what they are eating in their hands and play a sound as they eat.
  • Settlers now put older gear in the chest when they equip better ones.
  • A priority 1 chest (Better Organisation) now overrides a drawer.
  • Improved path fail retry mechanism, added logging output for these events.
  • Doors are now no longer nav blockers. They have nav links permanently and Settlers pause slightly when they open them.
  • Cached Hazards, Fireplaces+WorkAreas as a Scene lookup is slow and they can be cached on creation/destroy.
  • Fixed forager chasing embers like a madman and repathing repetitively. They will now pick them from the goal.
  • Added Ctrl+E to trees (in frith+valid workareas) to ignore them from being cut.

1.0.7

  • Fixed ItemDrawers API harmony warning spam if there is no ItemDrawer API. Also caches type to prevent re-looking this up in future.
  • Items that would be ignored on the ground like eggs are no longer ignored while in storage (now they can be sorted properly)

1.0.6

  • Crafting from Frith now works, instead of just visually! Whoops.
  • Settlers tried to exit chairs to pick/check tasks every second. Now they will exit a chair only if their task wants them to.

1.0.5

  • Fixed Craft/Build from Frith not using ItemDrawers. Now supported and checked prior to chests. Optimised.
  • Settlers now prefer to get out at the same position they got into chairs from. Otherwise it will fall back to old nearby logic.
  • Settlers can now be assigned beds with Ctrl+E and then Ctrl+E on a bed. They will swap beds, or fill an empty one.
  • Added Stations (!!) tab to Innangard Frith, allows you to enable or disable them from using specific stations like campfires, or multiple kilns so they only run one. Sorted by distance. You can also Ctrl+E on relevant stations to toggle them. These are stored in the ZDO so are replicated to other players and saved.
  • Improved stale hostile-target cleanup further.

1.0.4

  • Added body-aware settler/path clearance.
  • Added live collider/planner radius configuration.
  • Improved storage and machine approach routing.
  • Added full storage standing-position fallback search.
  • Added improved chair/table approach routing.
  • Fixed meal seating timeout being consumed by travel to food.
  • Added stale hostile-target cleanup.
  • Added deliver-first caretaker sorting.
  • Added blocked/stalled CollectMore and deposit recovery.
  • Added Better Organisation rule/UI integration.
  • Improved lumberjack tree/log target choice.

1.0.3

  • Bumped Readme/Changelog (no functional changes- new mod maker bla bla)

1.0.2

  • More Fixes for Innangard. Listed fixes are in readme

1.0.0/1

  • Initial Release. Reuploaded as 1.0.1 to fix Readme/Changelog (no functional changes)