Description
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
cullDistancein 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:
# 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 |


