Selsion-DSPOptimizations icon

DSPOptimizations

Adds performance optimizations to DSP

Last updated 3 weeks ago
Total downloads 47702
Total rating 12 
Categories Optimization
Dependency string Selsion-DSPOptimizations-1.1.18
Dependants 1 other package depends on this package

This mod requires the following mods to function

xiaoye97-BepInEx-5.4.17 icon
xiaoye97-BepInEx

BepInEx5.4.17 mod plugin framework, Mod框架

Preferred version: 5.4.17
CommonAPI-DSPModSave-1.1.3 icon
CommonAPI-DSPModSave

Library that allows to store mod save data separately from vanilla saves

Preferred version: 1.1.3

README

DSPOptimizations Mod

This mod adds performance optimizations to DSP. This is an ongoing project with more optimizations occasionally being added. The mod does not alter gameplay, does not disable achievements, and can be enabled/disabled anytime.

Features

  • Dense spheres with shells now impact the game's framerate much less
    • e.g. the framerate with a single sphere layer with 5240 shells with the game paused went from 8 fps to 24 fps
  • Multithreading is added for the logic controlling belts going in and out of stations
    • this should greatly reduce the CPU time under the "Storage" category in the performance window
  • Ejected sails will impact UPS much less (~15%) when not visible. You can choose to always hide them in the config
  • Most of the lag from dyson node game logic has been eliminated
  • Hidden sphere layers under construction cause less lag
  • Shadows can be disabled in the config

Commands

The following commands may be used with the developer console:

  • -resetLocalFactory
    • completely resets the factory data for the nearby planet. This can eliminate lag that would have persisted even after deleting all buildings
    • requires a planet to be loaded
    • does not reset terrain, vegetation, or veins
    • note: ILSs waiting on vessel trips from a deleted factory might be stuck waiting. This bug happens in vanilla too, but I plan to fix it
  • -resetLocalSwarm
    • completely resets all swarms for the nearby star, deleting all sails. This can eliminate permanent save bloat
    • requires the player to be near a star (within ~2 lyrs - the star name should be visible in the bottom left)
  • -resetLocalSphereLayer layerId
    • instantly deletes a sphere layer without releasing sails
    • requires the player to be near a star (within ~2 lyrs - the star name should be visible in the bottom left)
    • layerId should be an integer between 1 and 10 corresponding to the ID of the sphere layer you wish to delete
  • -resetAllSpheresAndSwarms
    • instantly deletes all dyson spheres and swarms for all stars. No sails will be released
    • if you have the dyson editor open while running this command, reopen it to see the changes

Installation Note

This mod depends on DSPModSave. Make sure that you have the version under the CommonAPI name, rather than the old version released by crecheng. The old version has bugs, and may cause problems. The old version of the mod is marked as deprecated.

Compatibility

Compatibility with the Nebula Mod is not tested, however there are plans to add and test compatibility in the future if needed.

Bug Reports

If you encounter any bugs or issues, then please contact me either on discord at Selsion#0769, or by raising an issue on the mod github page.

Changelog

  • v1.1.18
    • removed obsolete optimization for dyson node sail absorption update code
  • v1.1.17
    • fixed bug introduced by recent DSP update v0.10.30
    • fixed issue where a process filter may prevent the mod from working with an Xbox Game Pass version of DSP
  • v1.1.16
    • fixed bug with calculating sphere power
  • v1.1.15
    • removed dyson colour optmization for compatibility with v0.10 of DSP
  • v1.1.14
    • removed prototype code that should have been disabled. this might fix the bug where assemblers don't always run when they should

Older version changes may be found here.

Attributions

Icon(s) made by Freepik from www.flaticon.com