9 # ) - if(is_client, 1, 0),
\r
10 # ( ( mem_gb - (if(is_client, 1.0, 0.5)) ) / 0.6 )
\r
14 # The expression for the default value of global executor parallelism.
\r
15 # This is used when the parallelism isn't overridden.
\r
16 # Available variables: is_windows, is_j9vm, is_client, cpus, mem_gb
\r
18 defaultGlobalExecutorParallelismExpression = "max(1,min(if(is_client,(cpus/2.66+1),(cpus/1.5)),if(is_j9vm,((mem_gb-(if(is_client,0.5,0.2)))/0.2),((mem_gb-(if(is_client,0.8,0.5)))/0.2))))"
\r
19 # (Default: 4) Sets the thread priority for worker threads
\r
22 # - https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Thread.html#setPriority(int)
\r
24 threadPoolPriority = "default"
\r
25 # (Default: 5) Configures the parallelism of global executor
\r
26 globalExecutorParallelism = "default"
\r
28 [clientSideConfig.modifyMaxVDConfig]
\r
29 # (Default: true) Enable client-side support for extended render distance protocol (c2me:ext_render_distance_v1)
\r
30 # This allows requesting render distances higher than 127 chunks from the server
\r
32 # Requires Fabric API (currently available)
\r
34 # Note: The server must advertise support this protocol for this to work
\r
36 enableExtRenderDistanceProtocol = false
\r
37 # (Default: true) Whether to modify maximum view distance
\r
39 # (Default: 43) Max render distance allowed in game options
\r
40 maxViewDistance = "default"
\r
42 [noTickViewDistance]
\r
43 # (Default: 10) No-tick view distance max concurrent chunk loads
\r
44 # Lower this for a better latency and higher this for a faster loading
\r
45 maxConcurrentChunkLoads = 2
\r
46 # (Default: true) Enable server-side support for extended render distance protocol (c2me:ext_render_distance_v1)
\r
47 # This allows requesting render distances higher than 127 chunks from the server
\r
49 # Requires Fabric API (currently available)
\r
51 enableExtRenderDistanceProtocol = false
\r
52 # (Default: true) Whether to attempt to smooth out chunk sending rate
\r
54 # Due to the nature of chunk loading and generation, chunks reach full status in bursts,
\r
55 # which can cause frame time stability if the server also delivers chunks in a bursty way
\r
56 # This config attempts to smooth out the bursty stream of chunks to help frame time stability
\r
58 smoothChunkSendingRate = "default"
\r
59 # (Default: false) Whether to ensure correct chunks within normal render distance
\r
60 # This will send chunks twice increasing network load
\r
61 ensureChunkCorrectness = "default"
\r
64 # (Default: false) EXPERIMENTAL FEATURE
\r
65 # This replaces the way your chunks are saved.
\r
66 # Please keep regular backups of your world if you are using this feature,
\r
67 # and report any world issues you encounter with this feature to our GitHub.
\r
69 # Whether to use the fast reduced allocation chunk serializer
\r
70 # (may cause incompatibility with other mods)
\r
72 # Set to false for the following reasons:
\r
73 # Incompatible with architectury@18.0.8 (*) (defined in c2me)
\r
74 gcFreeChunkSerializer = true
\r
75 # (Default: 8192) Soft limit for io worker nbt cache
\r
76 chunkDataCacheSoftLimit = "default"
\r
77 # (Default: 32678) Hard limit for io worker nbt cache
\r
78 chunkDataCacheLimit = "default"
\r
79 # (Default: true) Whether to use the optimized implementation of IO system
\r
80 replaceImpl = "default"
\r
83 # (Default: true) Whether to synchronize the management of player tickets
\r
85 # In vanilla Minecraft, player tickets are not always removed immediately when players leave an area.
\r
86 # The delay in removal increases with the chunk system’s throughput, but due to vanilla’s typically
\r
87 # slow chunk loading, tickets are almost always removed immediately. However, some contraptions rely
\r
88 # on this immediate removal behavior and tend to be broken with the increased chunk throughput.
\r
89 # Enabling this option synchronizes player ticket handling, making it more predictable and
\r
90 # thus improving compatibility with these contraptions.
\r
92 syncPlayerTickets = false
\r
93 # (Default: true) Whether to enable async serialization
\r
95 asyncSerialization = "default"
\r
96 # (Default: false) Whether to recover from errors when loading chunks
\r
97 # This will cause errored chunk to be regenerated entirely, which may cause data loss
\r
98 # Only applies when async chunk loading is enabled
\r
100 recoverFromErrors = "default"
\r
101 # (Default: true) Whether to allow POIs (Point of Interest) to be unloaded
\r
102 # Unloaded POIs are reloaded on-demand or when the corresponding chunks are loaded again,
\r
103 # which should not cause any behavior change
\r
106 # Vanilla never unloads POIs when chunks unload, causing small memory leaks
\r
107 # These leaks adds up and eventually cause issues after generating millions of chunks
\r
108 # in a single world instance
\r
110 allowPOIUnloading = "default"
\r
111 # (Default: true) This option workarounds MC-276863, a bug that makes mushrooms appear in non-postprocessed chunks
\r
112 # This bug is amplified with notickvd as it exposes non-postprocessed chunks to players
\r
114 # This should not affect other worldgen behavior and game mechanics in general
\r
116 suppressGhostMushrooms = "default"
\r
117 # (Default: true) Whether to turn fluid postprocessing into scheduled tick
\r
119 # Fluid post-processing is very expensive when loading in new chunks, and this can affect
\r
120 # MSPT significantly. This option delays fluid post-processing to scheduled tick to hopefully
\r
121 # mitigate this issue.
\r
123 fluidPostProcessingToScheduledTick = "default"
\r
124 # (Default: true) Whether to filter fluid post-processing on worldgen threads
\r
126 # The worldgen processes creates a lot of unnecessary fluid post-processing tasks,
\r
127 # which can overload the server thread and cause stutters.
\r
128 # This applies a rough filter to filter out fluids that are definitely not going to flow
\r
130 filterFluidPostProcessing = "default"
\r
131 # (Default: false) Whether to use legacy scheduling for neighbor chunks
\r
133 # Enabling this restores the behavior of always loading in neighbor chunks when a chunk is loaded.
\r
135 # This is currently deprecated and will be removed in the future.
\r
137 useLegacyScheduling = "default"
\r
138 # (Default: false) Whether to enable low memory mode
\r
140 # This option will attempt to aggressively unload unused chunks.
\r
141 # Only applies when useLegacyScheduling is disabled.
\r
143 lowMemoryMode = "default"
\r
147 # Whether to disable the shutdown hook of log4j2 on dedicated servers.
\r
148 # Enabling this also makes the JVM exit when the dedicated server is considered fully shut down.
\r
149 # This option have no effect on client-side.
\r
150 # We has historically been doing this, and this config option allows you to disable this behavior.
\r
152 disableLoggingShutdownHook = "default"
\r
153 # (Default: true) Whether to prevent early client ticks.
\r
155 # This avoids the player from falling through the world.
\r
156 # Mitigates https://github.com/CaffeineMC/sodium/issues/3065
\r
158 preventEarlyClientMovementTicks = "default"
\r
159 # (Default: true) Enforces safe world random access.
\r
160 # This feature detects unsafe off-thread world random access, helping to find the causes
\r
161 # of mysterious "Accessing LegacyRandomSource from multiple threads" crash.
\r
162 # The default behavior is to fail hard when such bad things happens.
\r
163 # Disabling this option will replace this behavior with a warning.
\r
165 # It is generally not recommended to disable this settings unless you know what you are doing
\r
168 enforceSafeWorldRandomAccess = "default"
\r
170 [vanillaWorldGenOptimizations]
\r
171 # (Default: true) Whether to use density function compiler to accelerate world generation
\r
173 # Density function: https://minecraft.wiki/w/Density_function
\r
175 # This functionality compiles density functions from world generation
\r
176 # datapacks (including vanilla generation) to JVM bytecode to increase
\r
177 # performance by allowing JVM JIT to better optimize the code
\r
179 # Currently, all functions provided by vanilla are implemented.
\r
180 # Chunk upgrades from pre-1.18 versions are not implemented and will
\r
181 # fall back to the unoptimized version of density functions.
\r
183 useDensityFunctionCompiler = "default"
\r
184 # (Default: true) Whether to enable aquifer optimizations to accelerate overworld worldgen
\r
185 # (may cause incompatibility with other mods)
\r
186 optimizeAquifer = "default"
\r
187 # (Default: true) Whether to enable End Biome Cache to accelerate The End worldgen
\r
188 # This is no longer included in lithium-fabric
\r
189 # (may cause incompatibility with other mods)
\r
191 useEndBiomeCache = "default"
\r
192 # (Default: true) Whether to enable StructureWeightSampler optimizations to accelerate world generation
\r
194 optimizeStructureWeightSampler = "default"
\r
196 [generalOptimizations]
\r
197 # (Default: 100000) The task interval of mid-tick chunk tasks in nanoseconds (-1 to disable)
\r
198 # Mid-tick chunk tasks is to execute chunk tasks during server tick loop
\r
199 # to speed up chunk loading and generation
\r
200 # This helps chunks loading and generating under high MSPT but may raise
\r
201 # MSPT when chunks are loading or generating
\r
203 # It is generally not recommended to adjust this value unless you know
\r
204 # what you are doing
\r
206 # Incompatible with Dimensional Threading (dimthread)
\r
208 midTickChunkTasksInterval = "default"
\r
210 [generalOptimizations.autoSave]
\r
211 # (Default: ENHANCED) Defines how auto save should be handled
\r
212 # VANILLA: Use vanilla auto-save behavior (auto-save performed every tick during ticking)
\r
213 # ENHANCED: Use C2ME enhanced auto-save (auto-save performed when the server have spare time after ticking)
\r
214 # PERIODIC: Use pre-1.18 vanilla auto-save behavior (auto-save performed every 6000 ticks during ticking)
\r
216 # Please preserve quotes so this config don't break
\r