]> gitweb.ps.run Git - packwiz/blob - config/c2me.toml
repaya
[packwiz] / config / c2me.toml
1 version = 3\r
2 # (Default: \r
3 #    max(\r
4 #        1,\r
5 #        min(\r
6 #            if( is_windows,\r
7 #                (cpus / 1.6),\r
8 #                (cpus / 1.3)\r
9 #            )  - if(is_client, 1, 0),\r
10 #            ( ( mem_gb - (if(is_client, 1.0, 0.5)) ) / 0.6 )\r
11 #        )\r
12 #    )\r
13 # )  \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
17\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
20\r
21 # References:\r
22 # - https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Thread.html#setPriority(int)\r
23\r
24 threadPoolPriority = "default"\r
25 # (Default: 5) Configures the parallelism of global executor\r
26 globalExecutorParallelism = "default"\r
27 \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
31                 # \r
32                 # Requires Fabric API (currently available)\r
33                 # \r
34                 # Note: The server must advertise support this protocol for this to work\r
35                 # \r
36                 enableExtRenderDistanceProtocol = false\r
37                 # (Default: true) Whether to modify maximum view distance\r
38                 enabled = false\r
39                 # (Default: 43) Max render distance allowed in game options\r
40                 maxViewDistance = "default"\r
41 \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
48         # \r
49         # Requires Fabric API (currently available)\r
50         # \r
51         enableExtRenderDistanceProtocol = false\r
52         # (Default: true) Whether to attempt to smooth out chunk sending rate\r
53         # \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
57         # \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
62 \r
63 [ioSystem]\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
68         # \r
69         # Whether to use the fast reduced allocation chunk serializer\r
70         # (may cause incompatibility with other mods)\r
71         # \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
81 \r
82 [chunkSystem]\r
83         # (Default: true) Whether to synchronize the management of player tickets\r
84         # \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
91         # \r
92         syncPlayerTickets = false\r
93         # (Default: true) Whether to enable async serialization\r
94         # \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
99         # \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
104         #  \r
105         # Note:\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
109         # \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
113         # \r
114         # This should not affect other worldgen behavior and game mechanics in general\r
115         # \r
116         suppressGhostMushrooms = "default"\r
117         # (Default: true) Whether to turn fluid postprocessing into scheduled tick\r
118         # \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
122         # \r
123         fluidPostProcessingToScheduledTick = "default"\r
124         # (Default: true) Whether to filter fluid post-processing on worldgen threads\r
125         # \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
129         # \r
130         filterFluidPostProcessing = "default"\r
131         # (Default: false) Whether to use legacy scheduling for neighbor chunks\r
132         # \r
133         # Enabling this restores the behavior of always loading in neighbor chunks when a chunk is loaded.\r
134         # \r
135         # This is currently deprecated and will be removed in the future.\r
136         # \r
137         useLegacyScheduling = "default"\r
138         # (Default: false) Whether to enable low memory mode\r
139         # \r
140         # This option will attempt to aggressively unload unused chunks.\r
141         # Only applies when useLegacyScheduling is disabled.\r
142         # \r
143         lowMemoryMode = "default"\r
144 \r
145 [fixes]\r
146         # (Default: true)  \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
151         # \r
152         disableLoggingShutdownHook = "default"\r
153         # (Default: true) Whether to prevent early client ticks.\r
154         # \r
155         # This avoids the player from falling through the world.\r
156         # Mitigates https://github.com/CaffeineMC/sodium/issues/3065\r
157         # \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
164         # \r
165         # It is generally not recommended to disable this settings unless you know what you are doing  \r
166         # \r
167         # \r
168         enforceSafeWorldRandomAccess = "default"\r
169 \r
170 [vanillaWorldGenOptimizations]\r
171         # (Default: true) Whether to use density function compiler to accelerate world generation\r
172         # \r
173         # Density function: https://minecraft.wiki/w/Density_function\r
174         # \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
178         # \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
182         # \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
190         # \r
191         useEndBiomeCache = "default"\r
192         # (Default: true) Whether to enable StructureWeightSampler optimizations to accelerate world generation\r
193         # \r
194         optimizeStructureWeightSampler = "default"\r
195 \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
202         #  \r
203         # It is generally not recommended to adjust this value unless you know  \r
204         # what you are doing  \r
205         #  \r
206         # Incompatible with Dimensional Threading (dimthread)\r
207         # \r
208         midTickChunkTasksInterval = "default"\r
209 \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
215                 #  \r
216                 # Please preserve quotes so this config don't break\r
217                 # \r
218                 mode = "default"\r