Files
onion-mc/analysis/client-perf/PLAYER-TUNING.md
T

6.8 KiB
Raw Blame History

Onion MC: performance settings for players

These are things the pack can't set for you, plus the settings to change for your machine. Values marked (provisional) are waiting on Phase 2 benchmarks and may change.

1. Which tier are you?

Tier Typical machine Examples
Deck handheld or integrated graphics, shared RAM Steam Deck, laptop iGPU
Mid (pack default) 4–6 core CPU, ~6 GB VRAM graphics card GTX 1060 6 GB, RX 580
High 8 GB+ VRAM card GTX 1080 Ti, RTX 3060+

The pack's defaults are the mid tier. They're applied only when the config file doesn't exist yet. If you played before the defaults shipped, close the game and delete these files from the instance folder to pick them up on the next launch. This resets those mods' settings.

config/DistantHorizons.toml
config/sodium-options.json
config/entity_model_features.json
config/flywheel-client.toml
config/lambdynlights.toml
config/ssrd-common.toml
config/sound_physics_remastered/soundphysics.properties

Don't delete options.txt: that resets all your video, audio and control settings, keybinds included. Set the video values in the table below by hand instead.

Then change these for your tier (provisional):

Setting Where Deck Mid High
LOD render distance Options → Distant Horizons button 64 128 128 (192–256 if you have ≥16 GB free RAM and 6+ cores)
DH ambient occlusion (SSAO) DH → Advanced → Graphics off off on
DH quality preset DH quick options Low Medium Medium
Biome blend Video Settings off 3×3 5×5
Mipmap levels Video Settings 2 2 4
Particles / entity shadows Video Settings Decreased / off All / on All / on
Leaves & weather quality Sodium → Quality Fast Default Default
Sub-level (airship) render distance Sodium video settings slider 16 16 32
Dynamic lights LambDynamicLights settings Fastest, entities off Fast Fast, entities off

Leave render distance at 8. The server sends 8 chunks, so anything higher loads nothing extra in multiplayer. Distant Horizons draws everything beyond that.

2. Java memory and garbage collector (Prism → Edit Instance → Settings → Java)

Use Java 21 (Temurin 21 recommended). More memory is not faster: a bigger heap makes each GC pause longer. Bench (B4h): 5 GB is enough; 4 GB is measurably worse (tour 1 % low −23 fps); 6 and 8 GB were no faster than 5. Don't go below 5 GB on any machine.

Your machine Max memory (-Xmx) Min memory
Steam Deck (16 GB shared with the GPU) 5 GB, never above 6 leave low (512 MB)
16 GB PC 6 GB leave low
32 GB PC 6–8 GB may equal max
PC with little free RAM (other apps/containers running) min(6 GB, free RAM − 2 GB) leave low

JVM arguments (provisional; Phase 2 block B4 picks the winner). Paste one line into Java arguments (Prism adds -Xmx itself from the memory box):

  • Default (all machines): client-tuned G1
    -XX:+UseG1GC -XX:MaxGCPauseMillis=37 -XX:G1HeapRegionSize=16M -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=23 -XX:G1ReservePercent=20 -XX:G1MixedGCCountTarget=3 -XX:G1HeapWastePercent=20 -XX:InitiatingHeapOccupancyPercent=10 -XX:G1RSetUpdatingPauseTimePercent=0 -XX:MaxTenuringThreshold=1 -XX:GCTimeRatio=99 -XX:+DisableExplicitGC -XX:+PerfDisableSharedMem
    
  • 32 GB machines, if you still get stutter: Generational ZGC. Distant Horizons recommends it in its log warning about G1.
    -XX:+UseZGC -XX:+ZGenerational -XX:+DisableExplicitGC -XX:+PerfDisableSharedMem
    
    -XX:+ZGenerational is required: on Java 21, -XX:+UseZGC alone selects the older non-generational ZGC. Avoid ZGC on the Deck or on low-RAM PCs. It needs spare memory and CPU those machines don't have.

Don't add -XX:+AlwaysPreTouch on the Deck or on low-RAM PCs. Don't copy -XX:ShenandoahGCMode=iu from older guides: Java 21 refuses to start with it.

3. Shaders

Pending the owner's shader policy. Interim advice: shaders off is the pack default. They cost more in this pack than usual:

  • On its own, Flywheel (Create's GPU renderer) switches off when any shaderpack is on. The pack now ships Iris Flywheel Compat, which keeps it working under shaders (bench: Create floor p99 13.3 → 4.0 ms with MakeUp). It's unofficial, so it may lag behind Create/Iris updates; if Create machines render wrong with shaders, report it.
  • Shader shadows corrupt airships (Sable sub-levels; Iris issue #3164).
  • Distant Horizons adds a shadow pass over all its terrain.

If you want shaders anyway:

Tier Pack Profile (shader settings screen)
Deck MakeUp – Ultra Fast shadowless_low or shadowless_medium. These have no shadows, so no airship corruption.
Mid MakeUp – Ultra Fast shadowless_medium, or low if you accept shadow artefacts on airships
High Complementary Reimagined LOW or MEDIUM (MEDIUM = 8-chunk shadows). Avoid HIGH and above near Create builds.

4. Resource packs

The pack downloads these but doesn't enable them:

  • Fresh Animations (+ FA: Extensions): re-models and animates every vanilla mob. It's the most expensive optional visual in the pack, especially with shaders and near villages or farms. Deck: don't use it. Mid: Fresh Animations alone is OK, but skip Extensions. High: fine.
  • Better Leaves: much denser leaves. The pack has no leaf-culling mod for it yet, so avoid it on Deck and mid until one is added.

5. Steam Deck

  • Run Prism in Desktop Mode (flatpak from prismlauncher.org).
  • Prism → Edit Instance → Settings → Environment variables: mesa_glthread=true. Minecraft uses Mesa's OpenGL driver (radeonsi), and glthread helps the Deck's CPU-bound draw path.
  • Prism → Custom Commands → Wrapper command: gamemoderun (the flatpak reaches GameMode through the desktop portal).
  • Native 1280×800. Cap FPS at the panel rate (60 LCD / 90 OLED) after tuning. Uncapped only matters for benchmarks.

6. Other platforms

  • Windows + NVIDIA: NVIDIA Control Panel → Manage 3D settings → Program settings → your Java javaw.exe → Power management mode: Prefer maximum performance. Leave Threaded optimization alone: the driver ignores it for Minecraft, and Sodium handles it.
  • Linux + NVIDIA: use the proprietary driver, not nouveau. Sodium already sets __GL_THREADED_OPTIMIZATIONS=0, so you don't need to.

7. Still slow? Change these first

  1. Turn shaders off.
  2. Lower the Distant Horizons LOD distance (biggest always-on cost).
  3. Disable Fresh Animations.
  4. Lower the airship render distance (Sodium video settings).
  5. Lower biome blend (helps stutter while flying, not steady FPS).