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.
TooManyLags FGN Addon
FiresGhettoNetworking addon aiming for no noticeable latency for every player whenever possible, and the lowest possible latency otherwise. Dynamic object and mob ownership completely removes the impact of other players' lag.
| Date uploaded | 2 weeks ago |
| Version | 1.0.29 |
| Download link | Botaniclas-TooManyLags_FGN_Addon-1.0.29.zip |
| Downloads | 50 |
| Dependency string | Botaniclas-TooManyLags_FGN_Addon-1.0.29 |
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.2351VerdantsAscent-FiresGhettoNetworking
Comprehensive networking + server-authority mod with ZDO delta compression, WearNTear server/client CPU skips for invulnerable pieces, AoI-filtered RPC broadcasts, and a built-in per-client config auto-tuner.
Preferred version: 1.5.36README
TooManyLags - FiresGhettoNetworking Addon
A FiresGhettoNetworking extension designed to make nearby interactions feel almost latency-free: locally owned objects are processed directly on your client, without waiting for another player's connection. In shared areas, the server takes over so each player primarily feels their own latency instead of someone else's lag. Includes ownership improvements for Hostile Mobs.
Forced FiresGhettoNetworking settings
TooManyLags applies required FiresGhettoNetworking settings at startup, including enabling Server-Side Simulation on the dedicated server by default. Their saved config values are ignored while TooManyLags is enabled; the config file stays unchanged. Other FiresGhettoNetworking settings and incompatible-mod safety blocks remain active.
Quick start: Install both mods on the dedicated server and every client, then play. FiresGhettoNetworking's default settings and Auto-Tune, combined with TooManyLags' defaults and required overrides, are intended to provide an optimal starting setup for almost all dedicated servers without manual configuration. You can still fine-tune all other FiresGhettoNetworking settings yourself; its config is worth a look.
Server-Side Simulation adds CPU workload to the server. For a weak or already overloaded server CPU, set NoServerSideSimulation=true. Objects and Hostile Mobs then stay player-owned; shared fields prefer the better-connected player. Server-owned buildings, default ownership and permanent station ownership are unavailable. Inventory, refilling and active-use safeguards remain; all clients need the mod for full handoffs. Shared interactions can still depend on the selected player's latency.
| Your setup | Recommended edition and mode |
|---|---|
| Dedicated server, strong CPU | This addon with Server-Side Simulation (default). Most-tested mode. |
| Dedicated server, weak CPU, with FiresGhettoNetworking | This addon with NoServerSideSimulation=true. |
| Dedicated server, weak CPU, without FiresGhettoNetworking | TooManyLags - Standalone. |
| Locally hosted multiplayer | TooManyLags - Standalone. |
Why it helps
Valheim distributes simulation between object owners. A door or creature owned by another player can feel delayed when that player's connection is slow, even if yours is fast.
TooManyLags assigns nearby interactive objects to you, allowing supported interactions to run locally without a network round trip. Where players' fields overlap, the server becomes the owner. If your connection is poor while you are close to other players, you can still feel that delay when using server-owned objects; other players' interactions no longer depend on your client processing those objects.
Hostile Mobs prefer their current player target as owner. A high-ping target can use the server when another eligible player is nearby. The aim is to keep each player's experience responsive and prevent one slow connection from becoming everyone's lag.
This shares client workload more fairly, especially in large bases. Server ownership can increase server CPU usage. Server overload and protected ownership transitions can still cause delays; this is not a guarantee of zero lag.
Help find problems
Real-world testing is still limited. Please share bugs and ideas through GitHub Issues.
Before reporting a bug, test on a separate copy of your server and world:
- Run only BepInEx and FiresGhettoNetworking, without this mod or other mods. Repeat the steps that caused the problem. If it still happens, please report it to the relevant project rather than here.
- Add this mod to that isolated setup and repeat the same steps. If the problem appears only with this mod, open an issue with a detailed description, steps to reproduce, mod versions, relevant settings and logs.
Thanks for helping improve the mod. Have fun, and enjoy smoother adventures together!
How it works
- With
ServerOwnedInteractivesByDefault=true, new or abandoned stationary interactives can receive server ownership directly during vanilla assignment. Settled grid fields take priority. Active owners keep the existing guarded handoff path; vehicles and animals keep their existing loading safeguards. - A camera-directed grid covers nearby interactive objects and idle tamed animals. One player's fields go to that player; overlapping fields go to the server. Stationary players still count. KeepOwnershipOnCellExit=true keeps the rear cutout; false covers the full shape with a red 3x3 centre and the orange row ahead.
CameraDirectionOverlapDegreessets base angular overlap between adjacent directions: 30° by default, adjustable from 0–45° on the server. At 0°, one base direction is active; at 45°, two. Clients receive the server's angle; character-heading fallback uses it too. Changed coverage triggers the next server pass immediately; unchanged coverage does no field work. Isolated players use vanilla ownership by default.CameraRotationPredictionSecondsprepares fields in your turning direction 0.1 seconds ahead by default; 0 disables, range 0–0.5. Faster turns can add one direction, up to three in total, while keeping your current coverage. Newly added fields use the inner/red delay (default 0 seconds); existing fields keep their delays. Brief reversals are damped; usage protection stays active. Set it on the server; updated clients receive it automatically.- Hostile Mobs use AI target ownership with attack protection, consent, retries and safe server fallback. Outdated handoffs retry the latest target without a six-second lock; attacks finish before the target is checked again. Update server and clients together. Hostile summons follow the same rules. Friendly magic summons, including skeletons, spirit animals and roots, stay outside both the grid and mob ownership policy. Ordinary tamed animals still use the grid; active controls retain their safeguards.
- In Server-Side Simulation mode,
BossAlwaysServerOwned(on): at a boss player-target change, two living players withinBossPlayerRadius(30 metres) select server ownership. Otherwise bosses use normal Hostile Mob rules. Turning it off always uses those normal rules. Requires AI ownership; server ownership requires Server-Side Simulation. Radius decisions wait for the next target change; movement alone does not rescan. Attacks finish before transfers. WithNoServerSideSimulation=true, bosses retain the existing vanilla exclusion. - Optional
ServerOwnedMobsByDefault(off) gives idle tamed animals a server default outside player fields and puts Hostile Mobs without a player target on the server, even with one player online. Loading and usage safeguards still apply; field-exit retention stays unchanged. Hostile Mobs requireEnableAIOwnership. Friendly summons and bosses remain excluded. This can increase server CPU usage. - Open inventories, active users and refilling remain protected. Local PUP collision/stability guards remain a separate feature.
Ownership grid in action
These examples use BotanicOwnerDebug to show ownership: white objects belong to the server; purple objects belong to the player in these recordings. Movement and camera-sector changes update nearby grid cells using their configured delays.
Ownership from above
Ownership while moving
Configuration
Configure all gameplay settings on the server in BepInEx/config/botanic.toomanylags.fgnaddon.cfg, including Enabled, EnableAIOwnership and camera settings. Clients follow the server when connecting; their local copies are ignored. Only EnableLogs is local. Config descriptions state their scope; object categories share one note at the bottom.
Console: tml_config list lists settings; tml_config <Key> reads one; tml_config <Key> <Value> saves a change. Only admins can change server settings.
Intervals, delays and mob fallback limits apply immediately. Other settings, including Enabled and EnableAIOwnership, take effect after a server restart; clients receive the new mode when reconnecting.
Use BotanicOwnerDebug as an optional client-side debugging tool to see object and mob owners, check ownership transfers and tune your configuration.
| Feature | Defaults and options |
|---|---|
| Simulation mode | NoServerSideSimulation=false: full Server-Side Simulation. Set true for weak server CPUs; transfers stay between players. |
| Grid | 4-metre cells, rounded 7x7. Also 6.4/8/16 metres and square 3x3/rounded 5x5. 6.4 metres divides each vanilla zone into 10x10 cells. 4 metres requires a rounded grid. |
| Direction and delays | Camera direction; overlap 0–45°, default 30 (CameraDirectionOverlapDegrees, server-controlled, live console supported). Inner 0s, forward 0.2s, outer 3s. Full-grid mode uses 2s. Missing camera data uses character heading. |
| Server overlap cooldown | ServerOverlapCooldownSeconds=1: after an overlapping field switches to the server, keep it there and ignore new grid ownership decisions for 1s. Then the next movement/heading update can request it again; expiry alone causes no transfer. 0 disables. Requires Server-Side Simulation. |
| Experimental interaction protection | EnableExperimentalInteractionProtection=true by default. Extra handoff and receiver checks introduced in 1.0.15; set on the server and restart. Existing inventory, refill and active-use protection stays enabled. Applies only with Server-Side Simulation. |
| Checks | Movement and camera each default to 0.05s; both support 0.05–5s. Changed camera coverage gets send priority and wakes the next server pass, without another interval wait. Network delivery and protected handoffs can still add delay. |
| Leaving fields | Keep ownership: on. In directional mode, when only one player remains, red fields transfer automatically; forward/outer fields keep their owner until that player's next cell or heading-sector change. Fully vacated fields retain ownership. Native release still applies. |
| Categories and overrides | 24 object groups; separate static, default-interactive, default-mob and permanent-refill server ownership. These overrides default off and are ignored with NoServerSideSimulation=true. |
| Hostile Mobs | AI ownership on; server fallback target ping 200ms, other-player distance 6 metres. Without Server-Side Simulation, fallback uses a lower-latency nearby player. |
Requirements and installation
- Install BepInEx, FiresGhettoNetworking and the same mod version on the dedicated server and every client. Copy
TooManyLags.dllintoBepInEx/plugins/TooManyLags/. Update clients together with the server. With experimental interaction protection enabled, clients without handoff support keep native interactive ownership. - Configure the server using the supplied config in
BepInEx/config/, or let first startup generate it. Client gameplay settings need no adjustment. - Restart. TooManyLags automatically applies all required FiresGhettoNetworking settings at startup; no manual FiresGhettoNetworking configuration is needed. These overrides apply to the current session only. Your saved FiresGhettoNetworking config and other FiresGhettoNetworking settings remain unchanged.
Updating: Object categories now use 10 - Object Categories. Use the supplied config and reapply your custom values. Existing configs retain their saved check intervals; set both to 0.05 to use the new defaults. Update all clients too.
PUP FPS is optional.
The imported PUP readiness check supports the verified PUP FPS 1.0.34 build. Other PUP builds block AI server fallback; target-player ownership still works. Without PUP, native loading readiness is checked instead.
BotanicPupPatch is recommended when combining PUP FPS with FiresGhettoNetworking. It adds compatibility safeguards for cluster collisions and building stability during loading and ownership changes. Install it on the server and all clients; it is optional for TooManyLags.
CHANGELOG
Changelog
2.0.0
A complete rebuild of the systems behind TooManyLags' ownership logic. The goal stays the same: responsive local interactions and smoother multiplayer combat, with less network traffic and safer ownership changes.
- Less grid bandwidth. Compact, batched handoffs and reuse of unchanged object state reduce the traffic needed to keep the ownership grid running.
- Safer object transfers. Safeguards across supported object categories handle busy inventories, delayed updates, loading boundaries and repeated ownership changes. Objects retain a safe owner while a transfer cannot complete.
- Physics objects and destruction. The
PhysicsObjectscategory covers movable world props and objects that create physical successors when destroyed, such as trees and logs. Moving bodies wait until they are at rest before an automatic grid transfer; projectiles, visual debris and ordinary loot are excluded. - A real simulation bridge for enemy handoffs.
- Transfers the enemy's AI and movement state, attack cooldowns, flight state and active effects so the new owner can continue where the old one left off.
- Bridges the latency gap with locally continued native simulation, replayed smoothly until the new owner's simulation reaches the same point.
- Blends back into live movement instead of snapping to a delayed position, reducing freezes and backward jumps during high-latency ownership changes. Nearby observers can share the same recorded transition.
- Keeps hitboxes, nameplates and attached effects aligned with the displayed enemy. Hits during the transition continue to reach its current owner.
- Restores locomotion animation immediately at ownership changes, avoiding an idle pose while the enemy is already moving or preparing an attack.
- Joins a matching attack at its current animation phase instead of retriggering it, preventing visible attack restarts during fake playback and takeover.
- Clears test and handoff presentation immediately when an ownership test stops, so a delayed visual cannot remain displaced from the mob until the next test starts.
- Continuous owner-gain presentation. Preserves the source position, rotation and velocity through native owner-sync setup, and blends the visible replica into the new local simulation. Final smoothing follows live motion and uses measured update readiness, with a bounded correction window.
- Less background overhead. Removes routine debug logging and profiling from normal builds; genuine errors remain visible. One-time bridge reflection, delegate and JIT setup is prepared in small staged steps during the session instead of the first ownership change.
- Shorter transitions on fast connections. Uses measured connection timing instead of a conservative ownership-policy fallback that could unnecessarily stretch the simulation bridge.
- Smoother low-ping handoffs. Publishes completed movement independently of AI timing, uses received matching positions immediately and plans short recordings around actual physics steps. Reduces unnecessary near-stops; genuinely late updates can still require slowing or waiting.
- More resilient handoff buffers. Accounts for the new owner's first publishable movement step and keeps 20% recording reserve for unexpected delays. Uses matching real progress as soon as available; unused reserve does not extend the visible transition.
- Lighter handoff playback. Avoids unused skeleton interpolation during native locomotion, reduces animation-recording allocations and removes unnecessary pose storage on spectator relays. Very short recordings now move from the start, and clean final corrections no longer have an added 20 ms minimum.
- Less handoff setup and effect overhead. Avoids repeated rig-hierarchy scans and reuses temporary storage for attached-effect updates while keeping the same animations and effects.
Update the dedicated server and every client together. The simulation bridge is enabled by default through EnableMobHandoffVisualBridge. Existing ownership settings remain available. Enemies targeting you still normally run on your client; shared-combat and configured server-fallback rules still apply.
1.0.63
- Restores station handoff integration with FiresGhettoNetworking 1.5.72 in both simulation modes. Keeps target-based Hostile Mob ownership compatible with its new native combat safeguards and respects its excluded companion prefabs.
1.0.62
- Reduces repeated state payloads on ownership changes with Server-Side Simulation: unchanged objects use ownership-only native updates; changed/initial state stays complete. Adds bounded missing-state recovery and removes duplicate forced/ordinary records. Requires updated endpoints; unsupported contracts retain full native payloads. Existing usage/readiness guards and priorities remain active.
- Fixes eligible fixed building/world roots being skipped because of visual or mod scripts, including rocks, ore and PlantEverything's decorative vines. Configured early server defaults respect settled player fields; creatures and PUP FPS clusters remain separate. Update server and clients for early grid handoffs and rock-hit routing.
- Gives loose items, including eggs, the interactive server default directly during native initial owner assignment; settled player fields retain priority. Existing active owners, physics readiness and native pickup remain protected. Server update only for this fix.
- Adds PhysicsObjects under interactive categories for synchronized world props and sources of physical successors, such as trees/logs; excludes projectiles, visual debris and ordinary loot. Normal body transfers require sleep at the owner; genuine vacant-field server returns bypass sleep. Native spawns retain creator ownership. Requires Server-Side Simulation and updated clients.
- Batches small grid handoff requests and replies without an extra waiting interval. Failed sends remain isolated per connection, with individual-message fallback if packaging fails. Existing priorities, usage/readiness guards and token checks remain active; older peers retain individual messages. Update server and clients to use batching.
1.0.57
- Assigns configured server defaults to eligible unowned mobs before server construction and preserves server ownership for server-created newborns. Existing owners, player grid claims and handoff guards remain protected. Server update only; existing clients and configs remain compatible.
- Gives fixed mob spawners a server default with ServerOwnedMobsByDefault=true. Keeps native spawning checks and limits; ambient spawning stays native. Requires Server-Side Simulation.
- Prioritises inner, forward and outer grid handoffs before server returns, including forced ownership updates, and reduces repeated field lookups in dense areas. Reverts 1.0.50's grid scheduling optimisations while keeping its loading fixes.
1.0.50
- Fixes server zones and tamed animals never loading after automatically enabling FiresGhettoNetworking simulation with ValheimCommunityPatch installed. Restores the missing native simulation hooks; update the server and restart. No client update is required for this fix.
- Fixes cached simulation callbacks remaining active in NoServerSideSimulation mode; shared networking and profiling hooks remain unchanged.
- Reduces grid allocations with KeepOwnershipOnCellExit=false and skips scans of future ownership jobs. Readiness replies, accelerated fields and due blocked handoffs retain their existing responsiveness in both simulation modes.
1.0.49
- Adds server-side ValheimCommunityPatch compatibility for automatic Server-Side Simulation setup (checked with CommunityPatch 0.37.0 and FiresGhettoNetworking 1.5.65). Conflicting loading optimisations stand down while the unload crash guard keeps its setting; no client update is needed for this fix.
- Completes FiresGhettoNetworking's native transform-sync setup when TooManyLags starts or stops Server-Side Simulation.
1.0.48
- Fixes startup with FiresGhettoNetworking 1.5.65 when NoServerSideSimulation=true; unrelated networking patches remain active.
- Reduces diagnostic overhead with EnableLogs=false. Owner/AI status queries now require logging enabled; startup and feature-failure warnings remain available.
- Adds AutoConfigureFiresGhettoNetworking (default true). Set false for manual FiresGhettoNetworking setup; TML ownership patches and handoff safeguards remain active. Update server and clients for manual mode.
1.0.47
- Adds loose item drops to the existing ownership grid, including shared server fields. LooseItems defaults to true; set false to retain native ownership. Native pickup has priority. Update server and clients; older clients keep native item ownership.
1.0.46
- Protects sign and portal-name editing: the edited object's ownership stays with its editor until actual movement, including after confirming the text. Discarded grid takeovers are not replayed. Update server and clients.
- Reorganizes config sections automatically while preserving saved values and keeping an original backup. New configs use a 0.1-second movement check; existing intervals and the 0.05-second camera default are unchanged.
1.0.45
- Adds optional PUP FPS collision, building-stability, loading and ownership-handoff safeguards from BotanicPupPatch 2.1.1. EnablePupCompatibility defaults to true locally and requires a restart; missing dependencies or an installed standalone BotanicPupPatch disable only the embedded safeguards.
1.0.44
- Adds optional UseGridForStaticBuildings (default false): eligible non-interactive pieces share the existing grid's client ownership, server overlaps, delays and exit policy. PUP FPS remains optional; baked originals stay excluded. Requires Server-Side Simulation and updated clients.
- Separates interactive and static server defaults at the top of the config; ServerOwnedStaticBuildings becomes ServerOwnedStaticBuildingsByDefault. Moves KeepOwnershipOnCellExit to General; false requires Server-Side Simulation and at least one interactive/static server default. Invalid startup combinations retain ownership and report a warning. Use the supplied new config and reapply custom values.
- Makes interaction handoff protection mandatory with Server-Side Simulation and removes EnableExperimentalInteractionProtection. Refilling now protects ownership for 1 second instead of 10, renewed by each refill, in both simulation modes. Update server and clients.
1.0.41
- Fixes delayed grid ownership and unusable harvestables, torches, doors and public chests after login or returning to neighbouring zones. Eligible server defaults enter the grid before server instantiation; loading proofs share native area checks and avoid duplicate inventory searches. Update server and clients; early transfers require experimental protection.
- Keeps the available player owner when an overlapping field requests a server that is not ready. Only a fresh covering movement/rotation update retries that takeover; pending source handoffs survive server instantiation without restarting.
- Adds incinerator ownership with open-inventory and burning protection; requires updated clients and experimental protection. Adds optional WorldMarkers server defaults for existing networked dungeon entrances and Vegvisirs when ServerOwnedInteractivesByDefault=true.
- Supports newer PUP FPS dedicated-collider readiness without an exact-version lock for AI server takeovers. Unfinished replacements and incompatible interfaces still block takeover.
- Adds prefab-name filters to admin ownership diagnostics, including missing server instances and loading waits, without background checks.
1.0.34
- Fixes temporary player ownership during login when ServerOwnedInteractivesByDefault=true and a grid timer is pending. Eligible native assignments start at the server; grid timers and active-owner handoff safeguards remain in place.
- Applies permanent refill ownership to initial assignments before the server instance exists. Incinerators retain their existing native-only ownership policy.
- Adds admin-only `tml_config owner_status` snapshots in the console and server BepInEx log, including with EnableLogs=false, without background checks.
1.0.31
- Fixes unused chests remaining server-owned after a completed native inventory handoff loses its response. Open inventories and pending openings remain protected.
- Allows server-owned stationary interactions to transfer during incomplete server-area loading when the receiving client confirms the exact object and its loaded area. Requires experimental interaction protection; older clients retain the original loading guard.
- Reduces repeated work while loading blocks ownership changes and resumes transfers sooner when object data becomes ready. Obsolete loading permissions are discarded. Update server and clients for the full improvement.
1.0.29
- Enables experimental interaction protection by default for new configs. Existing saved values remain unchanged.
- Fixes interactions waiting indefinitely when recipient-readiness replies take longer than 0.5 seconds. Retries keep the pending request identity; changed ownership, state and unloading still invalidate readiness. Server-side fix; existing client protocol unchanged.
1.0.28
- Adds BossAlwaysServerOwned (default on): boss player-target changes choose the server with at least two living players within BossPlayerRadius (default 30 metres); otherwise bosses use normal Hostile Mob rules. Server ownership requires Server-Side Simulation. Unchanged targets reuse their decision without movement or radius polling.
- Bosses can use guarded target ownership when the option is off. Only identified TooManyLags handoffs bypass FiresGhettoNetworking's boss exclusion; attack, stagger, control and loading safeguards remain. Update server and clients together.
1.0.27
- Replaces outdated Hostile Mob handoffs with the latest target after the pending reply, without the six-second rejection lock. Attacks still block transfers; attack end checks the current target again. Ping fallback and other native safeguards remain active.
- Identifies mob requests and waits for actual owner replication before another transfer, preventing late replies from affecting newer handoffs. Update server and clients together; older peers retain native FiresGhettoNetworking ownership.
1.0.26
- With ServerOwnedInteractivesByDefault=true, gives eligible stationary interactives their server owner during vanilla assignment, avoiding an initial player-to-server handoff. Settled grid fields take priority; native active-owner checks and region release remain in place. Server-side change only.
- Adds ServerOwnedMobsByDefault (off): idle tamed animals use server ownership outside player fields, and Hostile Mobs without a player target use guarded server ownership, including with one player online. Player targets and active-use/loading safeguards remain in place. Requires Server-Side Simulation; Hostile Mobs also require EnableAIOwnership.
1.0.24
- Fixes the object ownership grid failing to start when newer FiresGhettoNetworking versions already patch Pickable.RPC_Pick. Preserves its existing server-safe effect actor; harvesting, inventory safeguards and grid timing are unchanged.
1.0.23
- Makes Enabled and EnableAIOwnership server-controlled; clients ignore their local values, and only logging remains local. Both switches require a server restart; update server and clients together.
- Restores guarded interactive handoffs after delayed join negotiation or stale owner replication. The extra 1.0.15 handoff protocol is now experimental and opt-in (EnableExperimentalInteractionProtection=false); existing inventory, refill, active-use and overlap safeguards remain enabled, and the player-simulation mode is unchanged.
- Adds 6.4-metre cells and live tuning of camera overlap (0–45°, default 30°) and turn prediction (default 0.1s, 0 disables); predicted cells use the inner/red delay. KeepOwnershipOnCellExit=false includes rear fields with a red 3x3 centre, and outdated positions after teleportation no longer block grid transfers; changing cell size requires a server restart.
1.0.17
- Restores camera-directed grid updates when initial server camera settings are missed; clients retry until synchronization succeeds.
- Fixes ownership handoffs leaving door and harvesting interactions waiting. Verifies source results and recipient readiness, with per-object processing and extra checks limited to actual transfers or delivery failures. Preserves inventory/refill and pending item-stand protection. Update server and clients together.
- Adds ServerOverlapCooldownSeconds (default 1s, 0 disables) to reduce rapid ownership changes when nearby players turn their cameras. Shared fields stay server-owned during the cooldown; a later movement or direction update can request another change. Supports live tuning.
1.0.12
- Adds admin-only in-game tuning of ownership check intervals, transition delays and Hostile Mob fallback thresholds without restarting. Preserves pending handoffs and usage safeguards. Other settings can be saved for the next restart, with pending and active values shown in the console.
- Camera timing is controlled by the server; camera and movement checks default to 0.05s. Directions cover +/-37.5 degrees with 30 degrees of overlap. Changed directions get native send priority and wake the next server pass without another interval wait; duplicate field work is avoided.
- Moves object categories to the final config section, 10 - Object Categories. Use the supplied config and reapply custom category values; saved check intervals are retained.
1.0.9
- Fixes Hostile Mob ownership being disabled by another installed target-ownership feature. Keeps collision protection active and restores the previous target policy if startup fails.
1.0.8
- Adds NoServerSideSimulation for weak dedicated servers: overlapping fields and high-ping Hostile Mobs prefer a better-connected player. Server ownership is disabled in this mode.
1.0.6
- Automatically applies required FiresGhettoNetworking settings, including Server-Side Simulation, without editing the saved config. Server CPU usage may increase.
1.0.4
- With KeepOwnershipOnCellExit enabled in directional mode, only inner/red fields transfer after an overlap ends. Other fields wait for the remaining player's next cell or direction-sector change.
1.0.3
- CameraHeadingCheckIntervalSeconds now accepts 0.05–5 seconds, allowing up to 20 camera-direction checks per second. The default remains 0.1 seconds.

