diff --git a/client_pack/config/cullleaves.json b/client_pack/config/cullleaves.json new file mode 100644 index 0000000..22ec881 --- /dev/null +++ b/client_pack/config/cullleaves.json @@ -0,0 +1 @@ +{"enabled": true, "cullRoots": true} diff --git a/client_pack/config/entityculling.json b/client_pack/config/entityculling.json new file mode 100644 index 0000000..231afb2 --- /dev/null +++ b/client_pack/config/entityculling.json @@ -0,0 +1,53 @@ +{ + "configVersion": 8, + "renderNametagsThroughWalls": true, + "blockEntityWhitelist": [ + "create:rope_pulley", + "create:hose_pulley", + "minecraft:beacon" + ], + "entityWhitelist": [ + "minecraft:boat", + "minecraft:block_display", + "minecraft:item_display", + "minecraft:text_display", + "create:contraption", + "create:gantry_contraption", + "create:stationary_contraption", + "create:carriage_contraption", + "createbigcannons:cannon_carriage", + "createbigcannons:pitch_contraption" + ], + "tracingDistance": 128, + "debugMode": false, + "sleepDelay": 10, + "hitboxLimit": 50, + "captureRate": 5, + "tickCulling": true, + "tickCullingWhitelist": [ + "minecraft:block_display", + "minecraft:item_display", + "minecraft:text_display", + "minecraft:boat", + "minecraft:jungle_boat", + "minecraft:spruce_boat", + "minecraft:oak_boat", + "minecraft:dark_oak_boat", + "minecraft:acacia_boat", + "minecraft:birch_boat", + "minecraft:cherry_boat", + "minecraft:mangrove_boat", + "create:contraption", + "create:gantry_contraption", + "create:stationary_contraption", + "create:carriage_contraption", + "createbigcannons:cannon_carriage", + "createbigcannons:pitch_contraption" + ], + "disableF3": false, + "skipEntityCulling": false, + "skipBlockEntityCulling": false, + "blockEntityFrustumCulling": true, + "forceDisplayCulling": false, + "solidLeaves": false +} diff --git a/client_pack/config/flywheel-client.toml b/client_pack/config/flywheel-client.toml new file mode 100644 index 0000000..92d5ec2 --- /dev/null +++ b/client_pack/config/flywheel-client.toml @@ -0,0 +1,11 @@ +#Select the backend to use. Set to "DEFAULT" to let Flywheel decide. +#Medium tier: INSTANCING gives good Create contraption performance on a 5600X + RX 580 class machine. +backend = "INSTANCING" +#Enable or disable instance update limiting with distance. +limitUpdates = true +#The number of worker threads to use. Set to -1 to let Flywheel decide. Set to 0 to disable parallelism. +workerThreads = 2 + +#Config options for Flywheel's built-in backends. +[flw_backends] + lightSmoothness = "SMOOTH" diff --git a/client_pack/config/iris.properties b/client_pack/config/iris.properties new file mode 100644 index 0000000..e23c140 --- /dev/null +++ b/client_pack/config/iris.properties @@ -0,0 +1,9 @@ +#This file stores configuration options for Iris, such as the currently active shaderpack +#SCICRAFT Medium preset +allowUnknownShaders=false +colorSpace=SRGB +disableUpdateMessage=true +enableDebugOptions=false +enableShaders=true +maxShadowRenderDistance=32 +shaderPack= diff --git a/client_pack/config/lambdynlights.toml b/client_pack/config/lambdynlights.toml new file mode 100644 index 0000000..3cfbe5a --- /dev/null +++ b/client_pack/config/lambdynlights.toml @@ -0,0 +1,27 @@ +# LambDynamicLights configuration. +# The dynamic lights mode (off, simple, fancy) +mode = "fancy" + +# The chunk rebuild scheduler mode (immediate, culling). +chunk_rebuild_scheduler = "culling" + +[adaptive_ticking] + # How far away (in chunks) until light sources get ticked less often. + slow = 5 + # How far away (in chunks) until light sources get ticked even less often. + slower = 8 + # Reduces how often sources behind the camera get ticked. + background_sleep = true + +# Light sources settings. +[light_sources] + entities = true + self = true + water_sensitive_check = true + creeper = "simple" + tnt = "off" + beam = true + firefly = true + guardian_laser = true + sonic_boom = true + glowing_effect = true diff --git a/client_pack/config/sodium-options.json b/client_pack/config/sodium-options.json new file mode 100644 index 0000000..ad775a7 --- /dev/null +++ b/client_pack/config/sodium-options.json @@ -0,0 +1,30 @@ +{ + "quality": { + "weather_quality": "DEFAULT", + "leaves_quality": "DEFAULT", + "enable_vignette": true, + "use_closest_point_entity_sort": false + }, + "advanced": { + "enable_memory_tracing": false, + "use_advanced_staging_buffers": true, + "cpu_render_ahead_limit": 3 + }, + "performance": { + "chunk_builder_threads": 0, + "chunk_build_defer_mode": "ALWAYS", + "animate_only_visible_textures": true, + "use_entity_culling": true, + "use_fog_occlusion": true, + "use_block_face_culling": true, + "use_no_error_g_l_context": true, + "quad_splitting_mode": "SAFE" + }, + "notifications": { + "has_cleared_donation_button": false, + "has_seen_donation_prompt": false + }, + "debug": { + "terrain_sorting_enabled": true + } +} \ No newline at end of file diff --git a/client_pack/config/sound_physics_remastered/soundphysics.properties b/client_pack/config/sound_physics_remastered/soundphysics.properties new file mode 100644 index 0000000..574fe09 --- /dev/null +++ b/client_pack/config/sound_physics_remastered/soundphysics.properties @@ -0,0 +1,38 @@ +# Enables/Disables all sound effects +enabled=true +attenuation_factor=1.0 +reverb_attenuation_distance=0.0 +reverb_gain=1.0 +reverb_brightness=1.0 +reverb_distance=1.5 +block_absorption=1.0 +occlusion_variation=0.35 +default_block_reflectivity=0.5 +default_block_occlusion_factor=1.0 +sound_distance_allowance=4.0 +air_absorption=1.0 +underwater_filter=0.9 +evaluate_ambient_sounds=false +environment_evaluation_ray_count=24 +environment_evaluation_ray_bounces=4 +non_full_block_occlusion_factor=0.25 +max_occlusion_rays=16 +max_occlusion=64.0 +strict_occlusion=false +sound_direction_evaluation=true +redirect_non_occluded_sounds=true +update_moving_sounds=false +sound_update_interval=5 +max_sound_processing_distance=512.0 +unsafe_level_access=false +level_clone_range=4 +level_clone_max_retain_ticks=20 +level_clone_max_retain_block_distance=16 +debug_logging=false +occlusion_logging=false +environment_logging=false +performance_logging=false +render_sound_bounces=false +render_occlusion=false +simple_voice_chat_integration=true +simple_voice_chat_hear_self=false diff --git a/docs/performance.md b/docs/performance.md index 0add0f6..2e86baf 100644 --- a/docs/performance.md +++ b/docs/performance.md @@ -1,25 +1,67 @@ # Performance — Client -## Shader Tuning for 4GB VRAM +Three drop-in tiers are provided: **Low**, **Medium**, and **High**. The +**Medium** tier ships as the pack default (matches a Ryzen 5 5600X / 16-32 GB +RAM / RX 580 8 GB machine). Full details and copy commands live in +`presets/README.md`. + +| Tier | Target | Shaders | Render distance | Key trade-offs | +|------|--------|---------|-----------------|----------------| +| **Low** | 4 GB VRAM / iGPU | **Off** | 4-6 | Minimal effects, most CPU headroom | +| **Medium** | 8 GB VRAM (RX 580-class) | On (Complementary, Performance) | 8 | Balanced 60 FPS — **default** | +| **High** | 8 GB+ VRAM (RTX 3060+) | On (Complementary, Ultra) | 10-12 | Max visual quality | + +## Applying a tier + +```bash +# client configs → instance config dir +cp -r presets/low/config/* ~/.local/share/PrismLauncher/instances//minecraft/config/ +``` + +Restart the game after copying. See `presets/README.md` for the full file map. + +## What each tier changes + +| Config | Low | Medium | High | +|--------|-----|--------|------| +| Sodium chunk threads | 1 | auto | auto | +| Sodium cpu render-ahead | 1 | 3 | 4 | +| Sodium quality | FAST | DEFAULT | DEFAULT | +| Iris shaders | **off** | on, shadow 32 | on, shadow 64 | +| Dynamic lights | simple | fancy | fancy (max) | +| Entity culling distance | 64 | 128 | 192 | +| Sound reverb rays | 16 | 24 | 32 | +| Flywheel backend | BATCHING | INSTANCING | INSTANCING | + +## Shader tuning (Complementary Reimagined r5.4) Shader loader is **Iris** (native NeoForge). Recommended shaderpack: **Complementary Reimagined r5.4** (`client_pack/shaderpacks/`, see README). -Preset for 4GB VRAM: -- Preset: **Fast / Performance** -- Render Distance: **8** (server view-distance) -- Antialiasing: **OFF** -- SSAO: **Fast**, Shadow Quality **1.0x** (0.5x if <30 FPS) -- Shadow Distance: **64** -- Bloom: **OFF/Low**, Clouds: **2D Fast** -- Water Reflections: **Screenspace Fast** -- Colored Light / Block Light: **OFF** +In-game (`Esc → Options → Shader Packs → Complementary → Shader Pack Settings`): -If still under 60 FPS: reduce Shadow Quality to 0.5x, then disable Bloom, -before touching render distance. +### Medium (8 GB VRAM) +- Preset: **Fast / Performance** +- Antialiasing: OFF, SSAO: Fast, Shadow Quality 1.0x +- Shadow Distance: 64, Bloom: Low, Clouds: 2D Fast +- Water Reflections: Screenspace Fast, Colored Light: OFF + +### High (8 GB+ VRAM) +- Preset: **High / Default** +- Antialiasing: OFF or FXAA, SSAO: High, Shadow Quality 1.5x +- Shadow Distance: 128, Bloom: On, Clouds: 3D +- Water Reflections: Screenspace, Colored Light: On + +### Low (no shaders, or "Potato") +- Play with shaders **off** (Iris `enableShaders=false`). +- If you want them on, use Complementary "Potato/Ultra" preset, shadows OFF. + +If FPS is still low, lower Shadow Quality / disable Bloom before touching +render distance. ## Reload rules - Server scripts / recipes / advancements: `/reload` - Client tooltips / JEI / textures / lang: `F3+T` -- New items/blocks (`registry_blocks.js`): **full restart** \ No newline at end of file +- New items/blocks (`registry_blocks.js`): **full restart** +- Config files (Sodium, Iris, etc.): **full restart** diff --git a/docs/server.md b/docs/server.md index 765e620..40abbc8 100644 --- a/docs/server.md +++ b/docs/server.md @@ -1,24 +1,24 @@ # Server — Properties, JVM, Operations -## Server properties (view-distance=8, simulation-distance=6) +Three server tiers are provided as drop-in presets in `presets//server/` +(see `presets/README.md`). The **Medium** tier is the recommended default. -`server_pack/server.properties` — set these values: +| Tier | Host RAM | view-distance | simulation-distance | max-players | +|------|----------|---------------|---------------------|-------------| +| Low | 8-16 GB | 5 | 4 | 8 | +| **Medium** | 16-32 GB | 8 | 6 | 8 | +| High | 32 GB+ | 12 | 10 | 16 | -```properties -view-distance=8 -simulation-distance=6 -max-players=8 -motd=SCICRAFT - The Dark Photon Protocol -difficulty=hard -spawn-protection=0 -network-compression-threshold=256 -enable-command-block=true -online-mode=true +Apply a tier (after `packwiz install`): + +```bash +cp presets/medium/server/server.properties server_pack/server.properties +# then use the matching jvm-flags.txt when launching ``` `server_pack/eula.txt` → `eula=true` (after review). -## Recommended JVM Flags (server) +## Recommended JVM Flags (server, Medium) ```bash java -Xms4G -Xmx8G \ @@ -44,8 +44,10 @@ java -Xms4G -Xmx8G \ Notes: - G1 tuning keeps large-tech-server TPS stable under chunk gen (Krypton Reno + BadOptimizations help server-side). -- `-Xms4G` avoids early GC churn. Cap at 8G; this pack is RAM-hungry - from AE2/Mekanism tick load but does not need 16G. +- `-Xms4G` avoids early GC churn. Cap at 8G for Medium; this pack is + RAM-hungry from AE2/Mekanism tick load but Medium does not need 16G. +- See `presets/low/server/jvm-flags.txt` (2-4G) and + `presets/high/server/jvm-flags.txt` (8-16G) for the other tiers. ## Server start order diff --git a/presets/README.md b/presets/README.md new file mode 100644 index 0000000..26338f8 --- /dev/null +++ b/presets/README.md @@ -0,0 +1,70 @@ +# Performance Presets — SCICRAFT + +Three drop-in tiers for client (and server) tuning. The **Medium** tier is the +pack default — it ships inside the mrpack (`overrides/config/`) and matches a +Ryzen 5 5600X / 16-32 GB RAM / RX 580 8 GB class machine. + +To use a different tier, copy the files from the matching folder into the +`.minecraft/config/` directory (client) and the pack's `server/` directory +(server), then restart. + +## Tier targets + +| Tier | CPU | RAM | GPU | Use case | +|------|-----|-----|-----|----------| +| **Low** | 4-core / older | 8-16 GB | 4 GB VRAM or iGPU | Integrated graphics, laptops, weak desktops | +| **Medium** | 6-8 core (5600X-class) | 16-32 GB | 8 GB VRAM (RX 580-class) | **Default. Balanced 60 FPS.** | +| **High** | 8+ core | 32 GB+ | 8 GB+ VRAM (RTX 3060+) | High FPS at high render distance / shaders | + +## What's included per tier + +### Client (`presets//config/` → `.minecraft/config/`) + +| File | Effect | +|------|--------| +| `sodium-options.json` | Terrain renderer: chunk threads, culling, quality | +| `iris.properties` | Shader loader: on/off, max shadow render distance | +| `lambdynlights.toml` | Dynamic lighting quality / adaptive ticking | +| `entityculling.json` | Entity/block-entity culling distance | +| `cullleaves.json` | Leaf culling on/off | +| `soundphysics.properties` | Reverb/ray budget (audio CPU cost) | +| `flywheel-client.toml` | Create/Flywheel render backend (batching vs instancing) | + +> Note: `sodium-mixins.properties` is left at default on all tiers. Hand-editing +> Sodium mixin flags can cause crashes, so we tune the safe, supported options +> (`sodium-options.json`) instead. + +### Server (`presets//server/`) + +| File | Effect | +|------|--------| +| `server.properties` | view-distance, simulation-distance, compression | +| `jvm-flags.txt` | Recommended JVM heap + GC flags for that RAM tier | + +## Applying a tier (client) + +```bash +# Example: switch to LOW +cp -r presets/low/config/* ~/.local/share/PrismLauncher/instances//minecraft/config/ +``` + +Then restart the game. Shader-pack in-game settings (Complementary) still +override a few visual options — see `docs/performance.md`. + +## Applying a tier (server) + +```bash +# Example: switch to LOW +cp presets/low/server/server.properties server_pack/server.properties +# use the jvm-flags.txt line when launching +``` + +## Notes + +- **Shaders are disabled on the Low tier** — this is the single biggest FPS win. + On Low, either play without a shaderpack or use an "Ultra/Performance" + preset of Complementary with shadows off. +- **Medium is the shipped default** — the mrpack already contains these configs, + so players who do nothing get the balanced experience. +- `enableShaderCompatibleRendering` is on for Mekanism Covers on all tiers so + covers render correctly with shaders. diff --git a/presets/high/config/cullleaves.json b/presets/high/config/cullleaves.json new file mode 100644 index 0000000..22ec881 --- /dev/null +++ b/presets/high/config/cullleaves.json @@ -0,0 +1 @@ +{"enabled": true, "cullRoots": true} diff --git a/presets/high/config/entityculling.json b/presets/high/config/entityculling.json new file mode 100644 index 0000000..24a1c2b --- /dev/null +++ b/presets/high/config/entityculling.json @@ -0,0 +1,53 @@ +{ + "configVersion": 8, + "renderNametagsThroughWalls": true, + "blockEntityWhitelist": [ + "create:rope_pulley", + "create:hose_pulley", + "minecraft:beacon" + ], + "entityWhitelist": [ + "minecraft:boat", + "minecraft:block_display", + "minecraft:item_display", + "minecraft:text_display", + "create:contraption", + "create:gantry_contraption", + "create:stationary_contraption", + "create:carriage_contraption", + "createbigcannons:cannon_carriage", + "createbigcannons:pitch_contraption" + ], + "tracingDistance": 192, + "debugMode": false, + "sleepDelay": 10, + "hitboxLimit": 60, + "captureRate": 6, + "tickCulling": true, + "tickCullingWhitelist": [ + "minecraft:block_display", + "minecraft:item_display", + "minecraft:text_display", + "minecraft:boat", + "minecraft:jungle_boat", + "minecraft:spruce_boat", + "minecraft:oak_boat", + "minecraft:dark_oak_boat", + "minecraft:acacia_boat", + "minecraft:birch_boat", + "minecraft:cherry_boat", + "minecraft:mangrove_boat", + "create:contraption", + "create:gantry_contraption", + "create:stationary_contraption", + "create:carriage_contraption", + "createbigcannons:cannon_carriage", + "createbigcannons:pitch_contraption" + ], + "disableF3": false, + "skipEntityCulling": false, + "skipBlockEntityCulling": false, + "blockEntityFrustumCulling": true, + "forceDisplayCulling": false, + "solidLeaves": false +} diff --git a/presets/high/config/flywheel-client.toml b/presets/high/config/flywheel-client.toml new file mode 100644 index 0000000..b3a4f9e --- /dev/null +++ b/presets/high/config/flywheel-client.toml @@ -0,0 +1,11 @@ +#Select the backend to use. Set to "DEFAULT" to let Flywheel decide. +#High tier: INSTANCING on a modern GPU. Auto threads. +backend = "INSTANCING" +#Enable or disable instance update limiting with distance. +limitUpdates = true +#The number of worker threads to use. Set to -1 to let Flywheel decide. Set to 0 to disable parallelism. +workerThreads = -1 + +#Config options for Flywheel's built-in backends. +[flw_backends] + lightSmoothness = "SMOOTH_INNER_FACE_CORRECTED" diff --git a/presets/high/config/iris.properties b/presets/high/config/iris.properties new file mode 100644 index 0000000..1e18d1e --- /dev/null +++ b/presets/high/config/iris.properties @@ -0,0 +1,9 @@ +#This file stores configuration options for Iris, such as the currently active shaderpack +#SCICRAFT High preset +allowUnknownShaders=false +colorSpace=SRGB +disableUpdateMessage=true +enableDebugOptions=false +enableShaders=true +maxShadowRenderDistance=64 +shaderPack= diff --git a/presets/high/config/lambdynlights.toml b/presets/high/config/lambdynlights.toml new file mode 100644 index 0000000..f87d69c --- /dev/null +++ b/presets/high/config/lambdynlights.toml @@ -0,0 +1,24 @@ +# LambDynamicLights configuration. +# The dynamic lights mode (off, simple, fancy) +mode = "fancy" + +# The chunk rebuild scheduler mode (immediate, culling). +chunk_rebuild_scheduler = "culling" + +[adaptive_ticking] + slow = 6 + slower = 10 + background_sleep = true + +# Light sources settings. +[light_sources] + entities = true + self = true + water_sensitive_check = true + creeper = "fancy" + tnt = "fancy" + beam = true + firefly = true + guardian_laser = true + sonic_boom = true + glowing_effect = true diff --git a/presets/high/config/sodium-options.json b/presets/high/config/sodium-options.json new file mode 100644 index 0000000..c6e57ba --- /dev/null +++ b/presets/high/config/sodium-options.json @@ -0,0 +1,30 @@ +{ + "quality": { + "weather_quality": "DEFAULT", + "leaves_quality": "DEFAULT", + "enable_vignette": true, + "use_closest_point_entity_sort": true + }, + "advanced": { + "enable_memory_tracing": false, + "use_advanced_staging_buffers": true, + "cpu_render_ahead_limit": 4 + }, + "performance": { + "chunk_builder_threads": 0, + "chunk_build_defer_mode": "ALWAYS", + "animate_only_visible_textures": true, + "use_entity_culling": true, + "use_fog_occlusion": true, + "use_block_face_culling": true, + "use_no_error_g_l_context": true, + "quad_splitting_mode": "SAFE" + }, + "notifications": { + "has_cleared_donation_button": false, + "has_seen_donation_prompt": false + }, + "debug": { + "terrain_sorting_enabled": true + } +} \ No newline at end of file diff --git a/presets/high/config/soundphysics.properties b/presets/high/config/soundphysics.properties new file mode 100644 index 0000000..fb56116 --- /dev/null +++ b/presets/high/config/soundphysics.properties @@ -0,0 +1,38 @@ +# Enables/Disables all sound effects +enabled=true +attenuation_factor=1.0 +reverb_attenuation_distance=0.0 +reverb_gain=1.0 +reverb_brightness=1.0 +reverb_distance=1.5 +block_absorption=1.0 +occlusion_variation=0.35 +default_block_reflectivity=0.5 +default_block_occlusion_factor=1.0 +sound_distance_allowance=4.0 +air_absorption=1.0 +underwater_filter=0.9 +evaluate_ambient_sounds=true +environment_evaluation_ray_count=32 +environment_evaluation_ray_bounces=4 +non_full_block_occlusion_factor=0.25 +max_occlusion_rays=16 +max_occlusion=64.0 +strict_occlusion=false +sound_direction_evaluation=true +redirect_non_occluded_sounds=true +update_moving_sounds=false +sound_update_interval=5 +max_sound_processing_distance=512.0 +unsafe_level_access=false +level_clone_range=4 +level_clone_max_retain_ticks=20 +level_clone_max_retain_block_distance=16 +debug_logging=false +occlusion_logging=false +environment_logging=false +performance_logging=false +render_sound_bounces=false +render_occlusion=false +simple_voice_chat_integration=true +simple_voice_chat_hear_self=false diff --git a/presets/high/server/jvm-flags.txt b/presets/high/server/jvm-flags.txt new file mode 100644 index 0000000..d142054 --- /dev/null +++ b/presets/high/server/jvm-flags.txt @@ -0,0 +1,19 @@ +# SCICRAFT High tier server JVM flags - 32GB+ RAM host +# Launch with: java -jar neoforge-21.1.248-server.jar nogui +-Xms8G -Xmx16G \ + -XX:+UseG1GC \ + -XX:+ParallelRefProcEnabled \ + -XX:MaxGCPauseMillis=150 \ + -XX:+UnlockExperimentalVMOptions \ + -XX:+DisableExplicitGC \ + -XX:+AlwaysPreTouch \ + -XX:G1NewSizePercent=30 \ + -XX:G1MaxNewSizePercent=40 \ + -XX:G1HeapRegionSize=16M \ + -XX:G1ReservePercent=20 \ + -XX:G1HeapWastePercent=5 \ + -XX:G1MixedGCCountTarget=4 \ + -XX:InitiatingHeapOccupancyPercent=15 \ + -XX:G1MixedGCLiveThresholdPercent=90 \ + -XX:G1RSetUpdatingPauseTimePercent=5 \ + -Dlog4j2.formatMsgNoLookups=true diff --git a/presets/high/server/server.properties b/presets/high/server/server.properties new file mode 100644 index 0000000..aa911b0 --- /dev/null +++ b/presets/high/server/server.properties @@ -0,0 +1,13 @@ +#SCICRAFT High tier - for a beefy server host (8+ core / 32GB+ RAM) +# Generated by presets/high/server/server.properties +view-distance=12 +simulation-distance=10 +max-players=16 +motd=SCICRAFT - The Dark Photon Protocol +difficulty=hard +spawn-protection=0 +network-compression-threshold=512 +enable-command-block=true +online-mode=true +max-tick-time=60000 +entity-broadcast-range-percentage=100 diff --git a/presets/low/config/cullleaves.json b/presets/low/config/cullleaves.json new file mode 100644 index 0000000..22ec881 --- /dev/null +++ b/presets/low/config/cullleaves.json @@ -0,0 +1 @@ +{"enabled": true, "cullRoots": true} diff --git a/presets/low/config/entityculling.json b/presets/low/config/entityculling.json new file mode 100644 index 0000000..2e17f8a --- /dev/null +++ b/presets/low/config/entityculling.json @@ -0,0 +1,53 @@ +{ + "configVersion": 8, + "renderNametagsThroughWalls": true, + "blockEntityWhitelist": [ + "create:rope_pulley", + "create:hose_pulley", + "minecraft:beacon" + ], + "entityWhitelist": [ + "minecraft:boat", + "minecraft:block_display", + "minecraft:item_display", + "minecraft:text_display", + "create:contraption", + "create:gantry_contraption", + "create:stationary_contraption", + "create:carriage_contraption", + "createbigcannons:cannon_carriage", + "createbigcannons:pitch_contraption" + ], + "tracingDistance": 64, + "debugMode": false, + "sleepDelay": 8, + "hitboxLimit": 40, + "captureRate": 4, + "tickCulling": true, + "tickCullingWhitelist": [ + "minecraft:block_display", + "minecraft:item_display", + "minecraft:text_display", + "minecraft:boat", + "minecraft:jungle_boat", + "minecraft:spruce_boat", + "minecraft:oak_boat", + "minecraft:dark_oak_boat", + "minecraft:acacia_boat", + "minecraft:birch_boat", + "minecraft:cherry_boat", + "minecraft:mangrove_boat", + "create:contraption", + "create:gantry_contraption", + "create:stationary_contraption", + "create:carriage_contraption", + "createbigcannons:cannon_carriage", + "createbigcannons:pitch_contraption" + ], + "disableF3": false, + "skipEntityCulling": false, + "skipBlockEntityCulling": false, + "blockEntityFrustumCulling": true, + "forceDisplayCulling": false, + "solidLeaves": false +} diff --git a/presets/low/config/flywheel-client.toml b/presets/low/config/flywheel-client.toml new file mode 100644 index 0000000..6a8fe4b --- /dev/null +++ b/presets/low/config/flywheel-client.toml @@ -0,0 +1,11 @@ +#Select the backend to use. Set to "DEFAULT" to let Flywheel decide. +#Low tier: BATCHING is the most compatible/least demanding on weak GPUs/iGPU. +backend = "BATCHING" +#Enable or disable instance update limiting with distance. +limitUpdates = true +#The number of worker threads to use. Set to -1 to let Flywheel decide. Set to 0 to disable parallelism. +workerThreads = 1 + +#Config options for Flywheel's built-in backends. +[flw_backends] + lightSmoothness = "FLAT" diff --git a/presets/low/config/iris.properties b/presets/low/config/iris.properties new file mode 100644 index 0000000..7f4888c --- /dev/null +++ b/presets/low/config/iris.properties @@ -0,0 +1,9 @@ +#This file stores configuration options for Iris, such as the currently active shaderpack +#SCICRAFT Low preset - shaders DISABLED for maximum performance +allowUnknownShaders=false +colorSpace=SRGB +disableUpdateMessage=true +enableDebugOptions=false +enableShaders=false +maxShadowRenderDistance=16 +shaderPack= diff --git a/presets/low/config/lambdynlights.toml b/presets/low/config/lambdynlights.toml new file mode 100644 index 0000000..8521660 --- /dev/null +++ b/presets/low/config/lambdynlights.toml @@ -0,0 +1,24 @@ +# LambDynamicLights configuration. +# The dynamic lights mode (off, simple, fancy) +mode = "simple" + +# The chunk rebuild scheduler mode (immediate, culling). +chunk_rebuild_scheduler = "culling" + +[adaptive_ticking] + slow = 4 + slower = 6 + background_sleep = true + +# Light sources settings. +[light_sources] + entities = true + self = true + water_sensitive_check = true + creeper = "off" + tnt = "off" + beam = false + firefly = false + guardian_laser = false + sonic_boom = false + glowing_effect = true diff --git a/presets/low/config/sodium-options.json b/presets/low/config/sodium-options.json new file mode 100644 index 0000000..5c95a1f --- /dev/null +++ b/presets/low/config/sodium-options.json @@ -0,0 +1,30 @@ +{ + "quality": { + "weather_quality": "FAST", + "leaves_quality": "FAST", + "enable_vignette": false, + "use_closest_point_entity_sort": true + }, + "advanced": { + "enable_memory_tracing": false, + "use_advanced_staging_buffers": true, + "cpu_render_ahead_limit": 1 + }, + "performance": { + "chunk_builder_threads": 1, + "chunk_build_defer_mode": "ALWAYS", + "animate_only_visible_textures": true, + "use_entity_culling": true, + "use_fog_occlusion": false, + "use_block_face_culling": true, + "use_no_error_g_l_context": true, + "quad_splitting_mode": "FAST" + }, + "notifications": { + "has_cleared_donation_button": false, + "has_seen_donation_prompt": false + }, + "debug": { + "terrain_sorting_enabled": true + } +} \ No newline at end of file diff --git a/presets/low/config/soundphysics.properties b/presets/low/config/soundphysics.properties new file mode 100644 index 0000000..f5c4f7a --- /dev/null +++ b/presets/low/config/soundphysics.properties @@ -0,0 +1,41 @@ +# Enables/Disables all sound effects +enabled=true +# Lower attenuation for less CPU on low-end +attenuation_factor=1.0 +# Reverb disabled on low tier to save CPU +reverb_attenuation_distance=0.0 +reverb_gain=0.6 +reverb_brightness=1.0 +reverb_distance=1.2 +block_absorption=1.0 +occlusion_variation=0.35 +default_block_reflectivity=0.5 +default_block_occlusion_factor=1.0 +sound_distance_allowance=3.0 +air_absorption=1.0 +underwater_filter=0.9 +evaluate_ambient_sounds=false +# Fewer rays = fewer lag spikes on weak CPUs +environment_evaluation_ray_count=16 +environment_evaluation_ray_bounces=2 +non_full_block_occlusion_factor=0.25 +max_occlusion_rays=8 +max_occlusion=32.0 +strict_occlusion=false +sound_direction_evaluation=true +redirect_non_occluded_sounds=true +update_moving_sounds=false +sound_update_interval=5 +max_sound_processing_distance=256.0 +unsafe_level_access=false +level_clone_range=2 +level_clone_max_retain_ticks=15 +level_clone_max_retain_block_distance=12 +debug_logging=false +occlusion_logging=false +environment_logging=false +performance_logging=false +render_sound_bounces=false +render_occlusion=false +simple_voice_chat_integration=true +simple_voice_chat_hear_self=false diff --git a/presets/low/server/jvm-flags.txt b/presets/low/server/jvm-flags.txt new file mode 100644 index 0000000..2c39735 --- /dev/null +++ b/presets/low/server/jvm-flags.txt @@ -0,0 +1,18 @@ +# SCICRAFT Low tier server JVM flags - 8-16GB RAM host +# Launch with: java -jar neoforge-21.1.248-server.jar nogui +-Xms2G -Xmx4G \ + -XX:+UseG1GC \ + -XX:+ParallelRefProcEnabled \ + -XX:MaxGCPauseMillis=200 \ + -XX:+UnlockExperimentalVMOptions \ + -XX:+DisableExplicitGC \ + -XX:+AlwaysPreTouch \ + -XX:G1NewSizePercent=30 \ + -XX:G1MaxNewSizePercent=40 \ + -XX:G1HeapRegionSize=8M \ + -XX:G1ReservePercent=20 \ + -XX:G1HeapWastePercent=5 \ + -XX:G1MixedGCCountTarget=4 \ + -XX:InitiatingHeapOccupancyPercent=15 \ + -XX:G1MixedGCLiveThresholdPercent=90 \ + -Dlog4j2.formatMsgNoLookups=true diff --git a/presets/low/server/server.properties b/presets/low/server/server.properties new file mode 100644 index 0000000..0b0b51f --- /dev/null +++ b/presets/low/server/server.properties @@ -0,0 +1,13 @@ +#SCICRAFT Low tier - for a lower-end server host (4 cores / 8-16GB RAM) +# Generated by presets/low/server/server.properties +view-distance=5 +simulation-distance=4 +max-players=8 +motd=SCICRAFT - The Dark Photon Protocol [Low] +difficulty=hard +spawn-protection=0 +network-compression-threshold=256 +enable-command-block=true +online-mode=true +max-tick-time=60000 +entity-broadcast-range-percentage=50 diff --git a/presets/medium/config/cullleaves.json b/presets/medium/config/cullleaves.json new file mode 100644 index 0000000..22ec881 --- /dev/null +++ b/presets/medium/config/cullleaves.json @@ -0,0 +1 @@ +{"enabled": true, "cullRoots": true} diff --git a/presets/medium/config/entityculling.json b/presets/medium/config/entityculling.json new file mode 100644 index 0000000..231afb2 --- /dev/null +++ b/presets/medium/config/entityculling.json @@ -0,0 +1,53 @@ +{ + "configVersion": 8, + "renderNametagsThroughWalls": true, + "blockEntityWhitelist": [ + "create:rope_pulley", + "create:hose_pulley", + "minecraft:beacon" + ], + "entityWhitelist": [ + "minecraft:boat", + "minecraft:block_display", + "minecraft:item_display", + "minecraft:text_display", + "create:contraption", + "create:gantry_contraption", + "create:stationary_contraption", + "create:carriage_contraption", + "createbigcannons:cannon_carriage", + "createbigcannons:pitch_contraption" + ], + "tracingDistance": 128, + "debugMode": false, + "sleepDelay": 10, + "hitboxLimit": 50, + "captureRate": 5, + "tickCulling": true, + "tickCullingWhitelist": [ + "minecraft:block_display", + "minecraft:item_display", + "minecraft:text_display", + "minecraft:boat", + "minecraft:jungle_boat", + "minecraft:spruce_boat", + "minecraft:oak_boat", + "minecraft:dark_oak_boat", + "minecraft:acacia_boat", + "minecraft:birch_boat", + "minecraft:cherry_boat", + "minecraft:mangrove_boat", + "create:contraption", + "create:gantry_contraption", + "create:stationary_contraption", + "create:carriage_contraption", + "createbigcannons:cannon_carriage", + "createbigcannons:pitch_contraption" + ], + "disableF3": false, + "skipEntityCulling": false, + "skipBlockEntityCulling": false, + "blockEntityFrustumCulling": true, + "forceDisplayCulling": false, + "solidLeaves": false +} diff --git a/presets/medium/config/flywheel-client.toml b/presets/medium/config/flywheel-client.toml new file mode 100644 index 0000000..92d5ec2 --- /dev/null +++ b/presets/medium/config/flywheel-client.toml @@ -0,0 +1,11 @@ +#Select the backend to use. Set to "DEFAULT" to let Flywheel decide. +#Medium tier: INSTANCING gives good Create contraption performance on a 5600X + RX 580 class machine. +backend = "INSTANCING" +#Enable or disable instance update limiting with distance. +limitUpdates = true +#The number of worker threads to use. Set to -1 to let Flywheel decide. Set to 0 to disable parallelism. +workerThreads = 2 + +#Config options for Flywheel's built-in backends. +[flw_backends] + lightSmoothness = "SMOOTH" diff --git a/presets/medium/config/iris.properties b/presets/medium/config/iris.properties new file mode 100644 index 0000000..e23c140 --- /dev/null +++ b/presets/medium/config/iris.properties @@ -0,0 +1,9 @@ +#This file stores configuration options for Iris, such as the currently active shaderpack +#SCICRAFT Medium preset +allowUnknownShaders=false +colorSpace=SRGB +disableUpdateMessage=true +enableDebugOptions=false +enableShaders=true +maxShadowRenderDistance=32 +shaderPack= diff --git a/presets/medium/config/lambdynlights.toml b/presets/medium/config/lambdynlights.toml new file mode 100644 index 0000000..3cfbe5a --- /dev/null +++ b/presets/medium/config/lambdynlights.toml @@ -0,0 +1,27 @@ +# LambDynamicLights configuration. +# The dynamic lights mode (off, simple, fancy) +mode = "fancy" + +# The chunk rebuild scheduler mode (immediate, culling). +chunk_rebuild_scheduler = "culling" + +[adaptive_ticking] + # How far away (in chunks) until light sources get ticked less often. + slow = 5 + # How far away (in chunks) until light sources get ticked even less often. + slower = 8 + # Reduces how often sources behind the camera get ticked. + background_sleep = true + +# Light sources settings. +[light_sources] + entities = true + self = true + water_sensitive_check = true + creeper = "simple" + tnt = "off" + beam = true + firefly = true + guardian_laser = true + sonic_boom = true + glowing_effect = true diff --git a/presets/medium/config/sodium-options.json b/presets/medium/config/sodium-options.json new file mode 100644 index 0000000..ad775a7 --- /dev/null +++ b/presets/medium/config/sodium-options.json @@ -0,0 +1,30 @@ +{ + "quality": { + "weather_quality": "DEFAULT", + "leaves_quality": "DEFAULT", + "enable_vignette": true, + "use_closest_point_entity_sort": false + }, + "advanced": { + "enable_memory_tracing": false, + "use_advanced_staging_buffers": true, + "cpu_render_ahead_limit": 3 + }, + "performance": { + "chunk_builder_threads": 0, + "chunk_build_defer_mode": "ALWAYS", + "animate_only_visible_textures": true, + "use_entity_culling": true, + "use_fog_occlusion": true, + "use_block_face_culling": true, + "use_no_error_g_l_context": true, + "quad_splitting_mode": "SAFE" + }, + "notifications": { + "has_cleared_donation_button": false, + "has_seen_donation_prompt": false + }, + "debug": { + "terrain_sorting_enabled": true + } +} \ No newline at end of file diff --git a/presets/medium/config/soundphysics.properties b/presets/medium/config/soundphysics.properties new file mode 100644 index 0000000..574fe09 --- /dev/null +++ b/presets/medium/config/soundphysics.properties @@ -0,0 +1,38 @@ +# Enables/Disables all sound effects +enabled=true +attenuation_factor=1.0 +reverb_attenuation_distance=0.0 +reverb_gain=1.0 +reverb_brightness=1.0 +reverb_distance=1.5 +block_absorption=1.0 +occlusion_variation=0.35 +default_block_reflectivity=0.5 +default_block_occlusion_factor=1.0 +sound_distance_allowance=4.0 +air_absorption=1.0 +underwater_filter=0.9 +evaluate_ambient_sounds=false +environment_evaluation_ray_count=24 +environment_evaluation_ray_bounces=4 +non_full_block_occlusion_factor=0.25 +max_occlusion_rays=16 +max_occlusion=64.0 +strict_occlusion=false +sound_direction_evaluation=true +redirect_non_occluded_sounds=true +update_moving_sounds=false +sound_update_interval=5 +max_sound_processing_distance=512.0 +unsafe_level_access=false +level_clone_range=4 +level_clone_max_retain_ticks=20 +level_clone_max_retain_block_distance=16 +debug_logging=false +occlusion_logging=false +environment_logging=false +performance_logging=false +render_sound_bounces=false +render_occlusion=false +simple_voice_chat_integration=true +simple_voice_chat_hear_self=false diff --git a/presets/medium/server/jvm-flags.txt b/presets/medium/server/jvm-flags.txt new file mode 100644 index 0000000..f7fea57 --- /dev/null +++ b/presets/medium/server/jvm-flags.txt @@ -0,0 +1,19 @@ +# SCICRAFT Medium tier server JVM flags - 16-32GB RAM host +# Launch with: java -jar neoforge-21.1.248-server.jar nogui +-Xms4G -Xmx8G \ + -XX:+UseG1GC \ + -XX:+ParallelRefProcEnabled \ + -XX:MaxGCPauseMillis=200 \ + -XX:+UnlockExperimentalVMOptions \ + -XX:+DisableExplicitGC \ + -XX:+AlwaysPreTouch \ + -XX:G1NewSizePercent=30 \ + -XX:G1MaxNewSizePercent=40 \ + -XX:G1HeapRegionSize=8M \ + -XX:G1ReservePercent=20 \ + -XX:G1HeapWastePercent=5 \ + -XX:G1MixedGCCountTarget=4 \ + -XX:InitiatingHeapOccupancyPercent=15 \ + -XX:G1MixedGCLiveThresholdPercent=90 \ + -XX:G1RSetUpdatingPauseTimePercent=5 \ + -Dlog4j2.formatMsgNoLookups=true diff --git a/presets/medium/server/server.properties b/presets/medium/server/server.properties new file mode 100644 index 0000000..c81ed45 --- /dev/null +++ b/presets/medium/server/server.properties @@ -0,0 +1,13 @@ +#SCICRAFT Medium tier - balanced (6-8 core / 16-32GB RAM) +# Generated by presets/medium/server/server.properties +view-distance=8 +simulation-distance=6 +max-players=8 +motd=SCICRAFT - The Dark Photon Protocol +difficulty=hard +spawn-protection=0 +network-compression-threshold=256 +enable-command-block=true +online-mode=true +max-tick-time=60000 +entity-broadcast-range-percentage=75