Feelix's Soulrend Optimizations
Soulrend, faster. Join your world in about half the time, wait seconds for JEI instead of a minute and a half, stutter less, and pick one graphics preset that sets everything at once.
Made for the Soulrend modpack (Minecraft 1.20.1, Forge). Drop it into your mods folder. It works on the client, on a server, or on both; neither side needs the other to have it.
What you get
Measured on the pack as published, on an i5-7600K with an RTX 3060, using the same world and the same Java arguments (averages of two runs where there were two):
|
Without |
With |
| Start the game → playing in your world |
348 s |
157 s |
| First launch of a new install |
436 s |
188 s |
| JEI after you join (the game is frozen until it's done) |
92 s |
10–16 s |
| Dedicated server start |
186 s |
108 s |
| Server tick with 1,000 mobs (average) |
8.5 ms |
5.9 ms |
| Graphics memory used by texture atlases |
1,463 MB |
951 MB |
| Time frozen in stutters (frames over 50 ms) on High with shaders, flying into new terrain then 80 mobs |
3.0-4.1 s |
2.0 s (1.4 s with the Java settings FSO offers) |
Your PC will give different numbers, but the slow parts it removes are the same on every PC.
Graphics presets
Open Options → Video Settings. FSO's Graphics tab is the first thing you see.
- The preset sits on top: Potato, Low, Medium, High, Ultra. Every setting it covers is listed below it.
- A preset sets vanilla, Embeddium, the shader, and about 40 settings of the pack's heavier effect mods (Epic Fight effects, particles, dynamic lights, Falling Leaves, clouds, loot beams, and more).
- High is Soulrend exactly as it ships. Medium keeps the pack's look without shaders and runs much faster.
- High and Ultra switch your shader on. Pick Bliss (moody, painterly, thick fog) or Complementary Unbound (natural light, coloured torchlight, long shadows). Below High, shaders are off.
- Change anything yourself and the preset shows Custom, as in any other game.
- Reset to defaults puts graphics back to High, as a new install starts.
- A new install starts on High, the pack's own look with shaders. Until you first open Video Settings, a red note on the title screen tells you so and how to go lower.
Where the FPS comes from: with Medium instead of the pack's default (Bliss on, render distance 14), our test PC went from 92 to 247 FPS flying and from 126 to 311 FPS in front of 75 mobs. Most of that comes from turning shaders off. The rest comes from the effect settings Medium lowers. If you keep High, FSO makes loading faster and frames steadier, but your average FPS stays about the same.
Fewer stutters
- spark's background profiler (in the pack) stays off. On Windows it stopped the whole game about 75 times a second.
- Most remaining stutters come from Java's garbage collector, which launchers run with settings that allow pauses of up to 0.2 s. If yours does, a yellow link at the top left of the title screen gives you better Java arguments to copy into your launcher, and tells you where they go.
Exploring in singleplayer
- ServerCore (in the pack, made for servers) no longer cuts your render and simulation distance in singleplayer, so terrain keeps loading as you move.
- While you choose your origin and class, or step away for a minute, the terrain around you is generated in the background. It stops the moment you play.
- While terrain around you is still being generated, FSO caps your frame rate at your monitor's refresh rate (60 to 120), so the world generator gets the CPU those extra frames took. With an unlimited frame rate, new terrain filled in about 1.5× faster on our test PC. Once it's in, your own limit applies again.
Falling Trees
A felled tree takes its whole canopy with it. Parts of a canopy used to hang in the air until they decayed, mostly on trees in freshly generated terrain. Leaves that another tree still holds stay where they are.
Choosing your origin
After you pick your origin, the class screen has a Back button, so a misclick or a change of heart doesn't lock you in. Nothing is handed out until you've made every choice. It works in singleplayer, and on servers that run FSO too.
If something goes wrong
Type /fsoclient in chat. These commands work even when every feature is off.
/fsoclient restore puts back every setting FSO changed. Your keybinds and other settings stay as they are.
/fsoclient safemode on turns every FSO change off from the next launch. safemode off brings them back.
/fsoclient features lists each change, and /fsoclient feature <name> off turns one off.
- If the game won't start at all, add
-Dfso.safemode=true to your Java arguments.
Server operators have /fso features, /fso feature and /fso safemode.
Good to know
- FSO changes only the Soulrend mods it knows. Every change checks the exact mod version. After a mod update, a change that no longer fits switches itself off instead of crashing.
- It never changes which recipes or items exist. The load-time changes were checked against the game without them: same recipe counts and recipe hashes, same JEI recipe lists, same tooltip text.
- Before FSO first changes a settings file, it saves a copy in
local/fso/backup.