Fixes significant FPS drops that occur when multiple idle ships with thrusters are within render range. Tested with 20+ ships carrying 94 thrusters — total ship block entity rendering cost drops from ~34% of the client frame to ~17%.
What does it fix?
Every thruster on every VSSW ship runs an expensive renderTick() call every frame, even when the ship is completely idle with no thrust. This method performs a VS2 ship matrix lookup (getClientShip()) and several quaternion transforms — multiplied across dozens of thrusters across many ships, this adds up fast.
VSSW Client Fix skips renderTick() entirely for thrusters on ships beyond a configurable distance from the player, eliminating the per-frame VS2 overhead for ships you can't meaningfully interact with.
Features
- Automatic thruster culling — thrusters on distant ships skip their expensive per-frame VS2 ship matrix lookups
- Particle cleanup — the particle cube HashSet is cleared for culled thrusters, preventing stale particles from rendering
- Single config value — just set
cullDistance in blocks, done
- Client-side only — install only on your client, no server changes needed
- Compatible with Embeddium / Radium / Sodium — uses a Forge event + targeted Mixin, no conflicts with the Embeddium rendering pipeline
Configuration
After first launch, edit config/vssw_client_fix.properties:
properties
# Thrusters on ships beyond this distance (in blocks) skip their
# expensive per-frame VS2 ship matrix lookups. Default: 100
# Set to 99999 to disable.
cullDistance=100.0
Restart required after changing the config.
Requirements
| Dependency |
Version |
| Minecraft |
1.20.1 |
| Forge |
47.x |
| Valkyrien Skies 2 |
Any |
| Valkyrien Space Star Wars (VSSW) |
0.6.x |