promotional bannermobile promotional banner
premium banner
A server-side performance addon for Valkyrien Skies Space War 0.6.18

Description

VSSW Performance Fix

AI was used in the making of this project


A server-side performance addon for Valkyrien Skies Space War 0.6.18. The VSSW projectiles were lagging the game pretty hard, so here is a mod that fixes this!

Proven results

Tested live on a Forge 1.20.1 server while spamming laser cannons from a flying ship:

Metric Before After
VSSW server tick usage 3.56% 0.51%
Projectile tick cost 3.43% negligible
Sync packet overhead 3.52% 0.07%
Improvement ~7× faster

The projectile system went from dominating the server tick to being smaller than CC:Tweaked's tick handler.

What it fixes

1. Sync packet flood — Every projectile sent a SyncProjectilePacket to every player on the server, every physics tick (up to 4× per game tick). With 10 projectiles and 5 players this produced ~3000 packets/second. Fixed by replacing sendToAllPlayers with distance-gated, throttled sends.

2. Distance-based ticking — Every projectile ticked at full rate regardless of whether any player could see it. Fixed by bucketing projectiles into three tiers based on nearest player distance: full rate within 96 blocks, half rate within 192 blocks, and 1/4 rate beyond that.

3. Global projectile cap — No upper bound on simultaneous projectiles. Rapid-fire turrets can flood the server with thousands of live projectiles. Fixed with a configurable cap (default: 200).

4. Linear energy shield scan — Every projectile scanned all connector block entities in the world every physics tick to find shields. Fixed with a spatial grid cache that returns only nearby candidates.

5. Redundant chunk force-loading — Projectiles triggered disk I/O on already-loaded chunks every tick. Fixed by skipping the ticket if the chunk is already present.

6. Turret rotation spam — Every turret sent a block-entity sync packet every tick even when stationary. Fixed by suppressing setChanged() when rotation hasn't changed.

Configuration

On first launch, config/vssw_perf_fix.properties is created with all defaults. Edit and restart to tune:

 
 
properties
# Tick rate tiers (blocks)
distanceTick.nearThresholdBlocks=96.0
distanceTick.midThresholdBlocks=192.0
distanceTick.farTickInterval=4

# Global cap
cap.maxProjectiles=200

# Sync packets
packets.syncIntervalTicks=3
packets.syncChunkRange=8

Requirements

  • Minecraft 1.20.1 — Forge 47.x
  • Valkyrien Skies Space War 0.6.18
  • Server-side only — clients do not need this mod