Skip to content

Releases: Zaldaryon/Synergy

v1.1.24

Choose a tag to compare

@Zaldaryon Zaldaryon released this 25 Jun 11:50
9e7504b

Fixes hostile mobs rendering at stale positions after burst packet loss. ACKs are now exact per-datagram: when a snapshot generation splits across multiple UDP datagrams, receiving one datagram no longer acknowledges entities in a lost sibling. Entity baselines promote only when the exact datagram carrying that entity is acknowledged.

v1.1.23

Choose a tag to compare

@Zaldaryon Zaldaryon released this 24 Jun 13:48
16a73d2

Fix delta encoding cumulative ack advancing when any entity in the batch could not be applied. Prevents stationary mobs from appearing at stale positions after packet loss.

v1.1.22

Choose a tag to compare

@Zaldaryon Zaldaryon released this 22 Jun 17:40
867367d

Fix dropped items spinning forever after landing. Exclude EntityItem from delta position encoding, distance-based send frequency throttling, and collision fast-path. Integer quantization in delta encoding introduced sub-pixel Y offsets that broke client-side collision detection. Includes v2 ack-based delta protocol for all other entity types. Automated integration test harness for packet-loss testing.

v1.1.21: full-rate AI for feeding, survival, and social tasks

Choose a tag to compare

@Zaldaryon Zaldaryon released this 20 Jun 00:19
cbd6e0e

The AI brain throttle now keeps full-rate AI for tasks whose urgency does not depend on how far away a player is:

  • Animals that still need to eat to breed are never throttled, so feeding, breeding, and domestication generation progress are not delayed.
  • Land animals escaping water and aquatic creatures stranded on land react immediately.
  • Owned pets answer their owner and herd animals stay together at any distance.

Diagnostics: the aithrottle dump now reports feedBypass and safetyBypass counts.

v1.1.20

Choose a tag to compare

@Zaldaryon Zaldaryon released this 19 Jun 18:15
ab5431d

Load-adaptive activation range and AI throttle.

  • Activation range shrinks proportionally to tick duration when server exceeds 200ms/tick (floor: 16 blocks)
  • AI brain throttle scales DEAR divisor down under server pressure
  • Post-save cooldown halves activation range for 3 ticks after autosave
  • Servers under heavy load recover in 2-3 ticks instead of staying overloaded for minutes

Config: AdaptiveRangeEnabled (true), AdaptiveRangeMinBlocks (16), AdaptiveRangeThresholdMs (200)

v1.1.19

Choose a tag to compare

@Zaldaryon Zaldaryon released this 19 Jun 12:22
af4745e

Fixed crafting output desync. The InventoryDirtyScan optimization was skipping dirty slot sync for the crafting grid because vanilla's FindMatchingRecipe() writes to dirtySlots directly without calling MarkSlotDirty(). Players could see the craft output appear briefly then vanish, making items uncraftable until another inventory event triggered the sync.

Added postfix patches on FindMatchingRecipe and ConsumeIngredients to properly signal dirty state.

v1.1.18

Choose a tag to compare

@Zaldaryon Zaldaryon released this 18 Jun 12:53
1cf86f0

Fix invisible entities (dropped items, FallingTree) for remote clients when delta encoding is active.

  • Client no longer treats relative deltas without a baseline as absolute positions
  • Server forces periodic absolute resync for all entities via slot-based stagger
  • Entity baselines pruned on despawn to prevent unbounded memory growth

Closes #1.

v1.1.17

Choose a tag to compare

@Zaldaryon Zaldaryon released this 17 Jun 19:28
4386320

Fix VSVillage compatibility: entities from the vsvillage mod are now excluded from activation range sleeping, AI brain throttle, and repulsion throttle. Their custom pathfinding and AI tasks require full ticking to function.

Also includes translations for 11 missing i18n keys across all 30 languages.

v1.1.16

Choose a tag to compare

@Zaldaryon Zaldaryon released this 10 Jun 10:29

Fixed block tick pooling NullReferenceException that occurred under high time speed or heavy block tick load. Pool reset now guards against overwriting in-flight entries awaiting main thread consumption. Added FluidBlockPos pool for correct fluid block dispatch.

v1.1.15 - Block tick pooling NRE fix

Choose a tag to compare

@Zaldaryon Zaldaryon released this 08 Jun 23:42

Fix NullReferenceException spam in BlockSoil.OnServerGameTick when Block Tick Pooling is active.

The pooled BlockPos was being passed by reference into BlockPosWithExtraObject, creating a race condition where the position could be overwritten before the main thread consumed it. Additionally, the Activator.CreateInstance path for constructing the wrapper object was fragile with private nested types.

Changes:

  • Cache ConstructorInfo at init instead of using Activator.CreateInstance
  • Copy position for extra-carrying ticks instead of referencing the pool
  • Skip patch entirely if the internal wrapper type can't be resolved

Reported on servers with TerrainSlabs + TerraPrety (more soil blocks = more frequent extra-carrying ticks = higher chance of hitting the race).