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