Remove deprecated mod files and update mixin properties for compatibility adjustments.
This commit is contained in:
@@ -0,0 +1,209 @@
|
||||
version = 3
|
||||
# (Default:
|
||||
# max(
|
||||
# 1,
|
||||
# min(
|
||||
# if( is_windows,
|
||||
# (cpus / 1.6),
|
||||
# (cpus / 1.3)
|
||||
# ) - if(is_client, 1, 0),
|
||||
# ( ( mem_gb - (if(is_client, 1.2, 0.6)) ) / 0.6 )
|
||||
# )
|
||||
# )
|
||||
# )
|
||||
# The expression for the default value of global executor parallelism.
|
||||
# This is used when the parallelism isn't overridden.
|
||||
# Available variables: is_windows, is_j9vm, is_client, cpus, mem_gb
|
||||
#
|
||||
defaultGlobalExecutorParallelismExpression = "default"
|
||||
# (Default: 4) Sets the thread priority for worker threads
|
||||
#
|
||||
# References:
|
||||
# - https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Thread.html#setPriority(int)
|
||||
#
|
||||
threadPoolPriority = "default"
|
||||
# (Default: 6) Configures the parallelism of global executor
|
||||
globalExecutorParallelism = "default"
|
||||
|
||||
[generalOptimizations]
|
||||
# (Default: 100000) The task interval of mid-tick chunk tasks in nanoseconds (-1 to disable)
|
||||
# Mid-tick chunk tasks is to execute chunk tasks during server tick loop
|
||||
# to speed up chunk loading and generation
|
||||
# This helps chunks loading and generating under high MSPT but may raise
|
||||
# MSPT when chunks are loading or generating
|
||||
#
|
||||
# It is generally not recommended to adjust this value unless you know
|
||||
# what you are doing
|
||||
#
|
||||
# Incompatible with Dimensional Threading (dimthread)
|
||||
#
|
||||
midTickChunkTasksInterval = "default"
|
||||
|
||||
[generalOptimizations.autoSave]
|
||||
# (Default: ENHANCED) Defines how auto save should be handled
|
||||
# VANILLA: Use vanilla auto-save behavior (auto-save performed every tick during ticking)
|
||||
# ENHANCED: Use C2ME enhanced auto-save (auto-save performed when the server have spare time after ticking)
|
||||
# PERIODIC: Use pre-1.18 vanilla auto-save behavior (auto-save performed every 6000 ticks during ticking)
|
||||
#
|
||||
# Please preserve quotes so this config don't break
|
||||
#
|
||||
mode = "default"
|
||||
|
||||
[ioSystem]
|
||||
# (Default: true) Whether to use the optimized implementation of IO system
|
||||
replaceImpl = "default"
|
||||
# (Default: false) EXPERIMENTAL FEATURE
|
||||
# This replaces the way your chunks are saved.
|
||||
# Please keep regular backups of your world if you are using this feature,
|
||||
# and report any world issues you encounter with this feature to our GitHub.
|
||||
#
|
||||
# Whether to use the fast reduced allocation chunk serializer
|
||||
# (may cause incompatibility with other mods)
|
||||
#
|
||||
gcFreeChunkSerializer = "default"
|
||||
# (Default: 8192) Soft limit for io worker nbt cache
|
||||
chunkDataCacheSoftLimit = "default"
|
||||
# (Default: 32678) Hard limit for io worker nbt cache
|
||||
chunkDataCacheLimit = "default"
|
||||
|
||||
[fixes]
|
||||
# (Default: true) Enforces safe world random access.
|
||||
# This feature detects unsafe off-thread world random access, helping to find the causes
|
||||
# of mysterious "Accessing LegacyRandomSource from multiple threads" crash.
|
||||
# The default behavior is to fail hard when such bad things happens.
|
||||
# Disabling this option will replace this behavior with a warning.
|
||||
#
|
||||
# It is generally not recommended to disable this settings unless you know what you are doing
|
||||
#
|
||||
#
|
||||
enforceSafeWorldRandomAccess = "default"
|
||||
|
||||
[vanillaWorldGenOptimizations]
|
||||
# (Default: false) Whether to use density function compiler to accelerate world generation
|
||||
#
|
||||
# Density function: https://minecraft.wiki/w/Density_function
|
||||
#
|
||||
# This functionality compiles density functions from world generation
|
||||
# datapacks (including vanilla generation) to JVM bytecode to increase
|
||||
# performance by allowing JVM JIT to better optimize the code
|
||||
#
|
||||
# Currently, all functions provided by vanilla are implemented.
|
||||
# Chunk upgrades from pre-1.18 versions are not implemented and will
|
||||
# fall back to the unoptimized version of density functions.
|
||||
#
|
||||
useDensityFunctionCompiler = "default"
|
||||
# (Default: true) Whether to enable aquifer optimizations to accelerate overworld worldgen
|
||||
# (may cause incompatibility with other mods)
|
||||
optimizeAquifer = "default"
|
||||
# (Default: true) Whether to enable End Biome Cache to accelerate The End worldgen
|
||||
# This is no longer included in lithium-fabric
|
||||
# (may cause incompatibility with other mods)
|
||||
#
|
||||
# Set to false for the following reasons:
|
||||
# Incompatible with biolith@3.0.10 (*) (defined in c2me)
|
||||
useEndBiomeCache = "default"
|
||||
# (Default: true) Whether to enable StructureWeightSampler optimizations to accelerate world generation
|
||||
#
|
||||
optimizeStructureWeightSampler = "default"
|
||||
|
||||
[chunkSystem]
|
||||
# (Default: true) Whether to enable async serialization
|
||||
#
|
||||
asyncSerialization = "default"
|
||||
# (Default: false) Whether to recover from errors when loading chunks
|
||||
# This will cause errored chunk to be regenerated entirely, which may cause data loss
|
||||
# Only applies when async chunk loading is enabled
|
||||
#
|
||||
recoverFromErrors = "default"
|
||||
# (Default: true) Whether to allow POIs (Point of Interest) to be unloaded
|
||||
# Unloaded POIs are reloaded on-demand or when the corresponding chunks are loaded again,
|
||||
# which should not cause any behavior change
|
||||
#
|
||||
# Note:
|
||||
# Vanilla never unloads POIs when chunks unload, causing small memory leaks
|
||||
# These leaks adds up and eventually cause issues after generating millions of chunks
|
||||
# in a single world instance
|
||||
#
|
||||
allowPOIUnloading = "default"
|
||||
# (Default: false) This option workarounds MC-276863, a bug that makes mushrooms appear in non-postprocessed chunks
|
||||
# This bug is amplified with notickvd as it exposes non-postprocessed chunks to players
|
||||
#
|
||||
# This should not affect other worldgen behavior and game mechanics in general
|
||||
#
|
||||
suppressGhostMushrooms = "default"
|
||||
# (Default: true) Whether to synchronize the management of player tickets
|
||||
#
|
||||
# In vanilla Minecraft, player tickets are not always removed immediately when players leave an area.
|
||||
# The delay in removal increases with the chunk system’s throughput, but due to vanilla’s typically
|
||||
# slow chunk loading, tickets are almost always removed immediately. However, some contraptions rely
|
||||
# on this immediate removal behavior and tend to be broken with the increased chunk throughput.
|
||||
# Enabling this option synchronizes player ticket handling, making it more predictable and
|
||||
# thus improving compatibility with these contraptions.
|
||||
#
|
||||
syncPlayerTickets = "default"
|
||||
# (Default: true) Whether to turn fluid postprocessing into scheduled tick
|
||||
#
|
||||
# Fluid post-processing is very expensive when loading in new chunks, and this can affect
|
||||
# MSPT significantly. This option delays fluid post-processing to scheduled tick to hopefully
|
||||
# mitigate this issue.
|
||||
#
|
||||
fluidPostProcessingToScheduledTick = "default"
|
||||
# (Default: true) Whether to filter fluid post-processing on worldgen threads
|
||||
#
|
||||
# The worldgen processes creates a lot of unnecessary fluid post-processing tasks,
|
||||
# which can overload the server thread and cause stutters.
|
||||
# This applies a rough filter to filter out fluids that are definitely not going to flow
|
||||
#
|
||||
filterFluidPostProcessing = "default"
|
||||
# (Default: true) Whether to use legacy scheduling for neighbor chunks
|
||||
#
|
||||
# Enabling this restores the behavior of always loading in neighbor chunks when a chunk is loaded.
|
||||
#
|
||||
useLegacyScheduling = "default"
|
||||
# (Default: false) Whether to enable low memory mode
|
||||
#
|
||||
# This option will attempt to aggressively unload unused chunks.
|
||||
# Only applies when useLegacyScheduling is disabled.
|
||||
#
|
||||
lowMemoryMode = "default"
|
||||
# (Default: true) Whether to delay full chunk events to after full chunk future have been completed
|
||||
# This restores the buggy behavior in NeoForge that the ecosystem have been relying on
|
||||
#
|
||||
# Do not change this unless you know what you are doing
|
||||
#
|
||||
delayFullChunkEvents = "default"
|
||||
|
||||
[noTickViewDistance]
|
||||
# (Default: true) Whether to enable no-tick view distance
|
||||
enabled = "default"
|
||||
# (Default: 7) No-tick view distance max concurrent chunk loads
|
||||
# Lower this for a better latency and higher this for a faster loading
|
||||
maxConcurrentChunkLoads = "default"
|
||||
# (Default: true) Whether to use compatibility mode to send chunks
|
||||
# This may fix some mod compatibility issues
|
||||
compatibilityMode = "default"
|
||||
# (Default: true) Enable server-side support for extended render distance protocol (c2me:ext_render_distance_v1)
|
||||
# This allows requesting render distances higher than 127 chunks from the server
|
||||
#
|
||||
enableExtRenderDistanceProtocol = "default"
|
||||
# (Default: false) Whether to ensure correct chunks within normal render distance
|
||||
# This will send chunks twice increasing network load
|
||||
ensureChunkCorrectness = "default"
|
||||
# (Default: 200) Applies a multiplier *in percentage* to the target chunk sending rate from vanilla
|
||||
# Setting this to 0 disables rate limiting
|
||||
#
|
||||
# Defaults to 200, which is 200%
|
||||
#
|
||||
chunkSendingSpeedMultiplierPercentage = "default"
|
||||
|
||||
[clientSideConfig.modifyMaxVDConfig]
|
||||
# (Default: true) Whether to modify maximum view distance
|
||||
enabled = "default"
|
||||
# (Default: 87) Max render distance allowed in game options
|
||||
maxViewDistance = "default"
|
||||
# (Default: true) Enable client-side support for extended render distance protocol (c2me:ext_render_distance_v1)
|
||||
# This allows requesting render distances higher than 127 chunks from the server
|
||||
#
|
||||
# Note: The server must advertise support this protocol for this to work
|
||||
#
|
||||
enableExtRenderDistanceProtocol = "default"
|
||||
@@ -0,0 +1,325 @@
|
||||
#Krypton Hybrid - Packet Compression
|
||||
#Select the compression algorithm used for all player connections.
|
||||
#IMPORTANT: BOTH the server and every connecting client must use the same
|
||||
#algorithm. Mismatched algorithms will immediately corrupt the session.
|
||||
[compression]
|
||||
#Compression algorithm to use for network packets.
|
||||
# ZLIB - vanilla zlib (DEFLATE). Always available. Minecraft default.
|
||||
# ZSTD - Zstandard compression (zstd-jni, native). Best ratio; moderate CPU.
|
||||
#Default: ZSTD
|
||||
#Allowed Values: ZLIB, ZSTD
|
||||
algorithm = "ZSTD"
|
||||
#Zstd compression level (1 = fastest/largest, 22 = slowest/smallest).
|
||||
#Only used when algorithm = ZSTD. Backed by zstd-jni (native).
|
||||
#Level 3 is the zstd reference implementation default.
|
||||
#Range: 1 – 22 | Default: 3
|
||||
# Default: 3
|
||||
# Range: 1 ~ 22
|
||||
zstd_level = 3
|
||||
|
||||
#Krypton Hybrid - Zstd Advanced / Parallel Compression
|
||||
#Fine-grained control over Zstd's native multi-threaded compression
|
||||
#and match-finding parameters. These settings only take effect when
|
||||
#compression.algorithm = ZSTD. Changes require a server restart
|
||||
#(new connections will use the updated values).
|
||||
#
|
||||
#WARNING: Misconfigured values can increase CPU usage or memory
|
||||
#consumption significantly. The defaults are safe for all scenarios.
|
||||
[zstd_advanced]
|
||||
#Number of native worker threads for parallel Zstd compression.
|
||||
#0 = single-threaded (compression runs in the Netty I/O thread).
|
||||
#Values >= 1 activate libzstd's multi-threaded mode: input data is
|
||||
#split into jobs compressed in parallel by a per-connection native
|
||||
#thread pool. Useful when compressing large payloads (chunk data,
|
||||
#recipe sync) on multi-core CPUs.
|
||||
#
|
||||
#Total native threads = workers × active connections, so keep this
|
||||
#low on high-player-count servers.
|
||||
#Range: 0 – 128 | Default: 0 (single-threaded)
|
||||
# Default: 0
|
||||
# Range: 0 ~ 128
|
||||
workers = 0
|
||||
#Overlap log for multi-threaded compression.
|
||||
#Controls how much context (dictionary data) each worker thread
|
||||
#shares with the previous thread's output. Higher values improve
|
||||
#compression ratio but use more memory per job.
|
||||
#Only meaningful when workers >= 1.
|
||||
#overlap_size = 2^(overlapLog) KB.
|
||||
#0 = auto (Zstd picks a value based on compression level).
|
||||
#Range: 0 – 9 | Default: 0
|
||||
# Default: 0
|
||||
# Range: 0 ~ 9
|
||||
overlap_log = 0
|
||||
#Job size (bytes) for multi-threaded compression.
|
||||
#Minimum input partition per worker thread. Smaller values increase
|
||||
#parallelism for small payloads but add scheduling overhead.
|
||||
#Only meaningful when workers >= 1.
|
||||
#0 = auto (Zstd selects based on compression level and overlap).
|
||||
#Range: 0 (auto) or 512 – 1073741824 | Default: 0
|
||||
# Default: 0
|
||||
# Range: 0 ~ 1073741824
|
||||
job_size = 0
|
||||
#Enable Zstd long-distance matching (LDM).
|
||||
#When true, Zstd searches for repeated byte sequences across a
|
||||
#much larger window than the standard match finder. Improves ratio
|
||||
#for highly repetitive data (flat-world chunks, bulk NBT) at the
|
||||
#cost of higher memory usage.
|
||||
#Default: false
|
||||
enable_long_distance_matching = false
|
||||
#Window log for long-distance matching.
|
||||
#Sets the LDM window size exponent: window = 2^windowLog bytes.
|
||||
#Only used when enable_long_distance_matching = true.
|
||||
#20 = 1 MB, 24 = 16 MB, 27 = 128 MB (Zstd default).
|
||||
#For Minecraft traffic, 20–24 is usually sufficient.
|
||||
#Range: 10 – 30 | Default: 27
|
||||
# Default: 27
|
||||
# Range: 10 ~ 30
|
||||
long_distance_window_log = 27
|
||||
#Zstd compression strategy (match-finding algorithm).
|
||||
#Higher strategies find better matches but use more CPU.
|
||||
#0 = auto (determined by compression level).
|
||||
#1 = fast, 2 = dfast, 3 = greedy, 4 = lazy, 5 = lazy2,
|
||||
#6 = btlazy2, 7 = btopt, 8 = btultra, 9 = btultra2.
|
||||
#Values above 5 are NOT recommended for real-time game servers.
|
||||
#Range: 0 – 9 | Default: 0 (auto)
|
||||
# Default: 0
|
||||
# Range: 0 ~ 9
|
||||
strategy = 0
|
||||
#Enable pre-trained Zstd dictionary compression.
|
||||
#Both server and client must use the same dictionary file.
|
||||
#Default: false
|
||||
dict_enabled = false
|
||||
#Path to the pre-trained dictionary file (.zdict).
|
||||
#Relative paths are resolved from the game working directory.
|
||||
#Default: config/krypton_hybrid.zdict
|
||||
dict_path = "config/krypton_hybrid.zdict"
|
||||
#If true, dictionary load failure is fatal for Zstd context creation.
|
||||
#If false, Krypton falls back to plain Zstd and logs a warning.
|
||||
#Default: false
|
||||
dict_required = false
|
||||
|
||||
#Krypton Hybrid - Network Security / Independent Packet Control
|
||||
#Protects the inbound network path without touching Velocity Native fast paths.
|
||||
#All checks run in the Minecraft / NeoForge layer and are designed to fail fast
|
||||
#before expensive decode, decompression, NBT, or gameplay processing begins.
|
||||
[security]
|
||||
#Global security kill-switch.
|
||||
#Default: true
|
||||
enabled = true
|
||||
|
||||
#Connection-rate limiting and rapid reconnect protection.
|
||||
[security.connection_rate_limit]
|
||||
#Sustained connection attempts per second per IP.
|
||||
#Range: 1 - 1000 | Default: 8
|
||||
# Default: 8
|
||||
# Range: 1 ~ 1000
|
||||
rate = 8
|
||||
#Burst capacity for new connections per IP.
|
||||
#Range: 1 - 5000 | Default: 20
|
||||
# Default: 20
|
||||
# Range: 1 ~ 5000
|
||||
burst = 20
|
||||
#Quarantine duration after repeated connection abuse.
|
||||
#Range: 0 - 3600 | Default: 30
|
||||
# Default: 30
|
||||
# Range: 0 ~ 3600
|
||||
quarantine_seconds = 30
|
||||
#Rapid reconnect detection window in milliseconds.
|
||||
#Range: 0 - 60000 | Default: 1500
|
||||
# Default: 1500
|
||||
# Range: 0 ~ 60000
|
||||
rapid_reconnect_window_ms = 1500
|
||||
#Extra connection tokens consumed on rapid reconnect.
|
||||
#Range: 0 - 128 | Default: 4
|
||||
# Default: 4
|
||||
# Range: 0 ~ 128
|
||||
rapid_reconnect_penalty = 4
|
||||
|
||||
#Decompression-bomb prevention for both ZLIB and ZSTD.
|
||||
[security.decompression_guard]
|
||||
# Default: 16777216
|
||||
# Range: > 1024
|
||||
max_decompressed_bytes = 16777216
|
||||
# Default: 100
|
||||
# Range: > 1
|
||||
max_ratio = 100
|
||||
# Default: 8
|
||||
# Range: > 0
|
||||
min_compressed_bytes_for_ratio_check = 8
|
||||
|
||||
#Handshake/login timeout budgets.
|
||||
[security.timeouts]
|
||||
# Default: 5
|
||||
# Range: 1 ~ 300
|
||||
handshake_sec = 5
|
||||
# Default: 10
|
||||
# Range: 1 ~ 300
|
||||
login_sec = 10
|
||||
# Default: 30
|
||||
# Range: 1 ~ 3600
|
||||
play_sec = 30
|
||||
|
||||
#Frame and logical payload size checks.
|
||||
[security.packet_size]
|
||||
# Default: 2097152
|
||||
# Range: > 1024
|
||||
frame_max_bytes = 2097152
|
||||
# Default: 131072
|
||||
# Range: > 0
|
||||
custom_payload_max_bytes = 131072
|
||||
#Enable FriendlyByteBuf read-side hard limits (can break large mod custom payloads).
|
||||
#Default: false
|
||||
read_limits_enabled = false
|
||||
# Default: 32767
|
||||
# Range: > 1
|
||||
string_max_chars = 32767
|
||||
# Default: 16384
|
||||
# Range: > 1
|
||||
collection_max_elements = 16384
|
||||
# Default: 8192
|
||||
# Range: > 1
|
||||
map_max_entries = 8192
|
||||
# Default: 16384
|
||||
# Range: > 1
|
||||
counted_loop_max = 16384
|
||||
# Default: 2097152
|
||||
# Range: > 1
|
||||
byte_array_max_bytes = 2097152
|
||||
|
||||
#Handshake protocol sanity checks.
|
||||
[security.handshake_validation]
|
||||
# Default: 3
|
||||
# Range: > 0
|
||||
min_protocol = 3
|
||||
# Default: 1100
|
||||
# Range: > 0
|
||||
max_protocol = 1100
|
||||
# Default: 255
|
||||
# Range: 1 ~ 1024
|
||||
max_address_length = 255
|
||||
|
||||
#Weighted anomaly response policy.
|
||||
[security.anomaly]
|
||||
# Default: 10
|
||||
# Range: 1 ~ 1000
|
||||
strike_threshold = 10
|
||||
|
||||
#Write-side backpressure and slow-reader protection.
|
||||
[security.resource_guard]
|
||||
# Default: 524288
|
||||
# Range: > 1024
|
||||
watermark_low = 524288
|
||||
# Default: 2097152
|
||||
# Range: > 1024
|
||||
watermark_high = 2097152
|
||||
# Default: 4096
|
||||
# Range: > 1
|
||||
max_pending_writes = 4096
|
||||
# Default: 15
|
||||
# Range: 1 ~ 3600
|
||||
max_unwritable_seconds = 15
|
||||
|
||||
#Krypton Hybrid - Light Data Optimization
|
||||
#Reduces ClientboundLevelChunkWithLightPacket size by replacing uniform
|
||||
#DataLayer arrays (e.g. all-max sky-light sections) with 2-byte tokens.
|
||||
#Requires Krypton Hybrid on BOTH the server and every connecting client.
|
||||
[light_opt]
|
||||
#Enable uniform-RLE encoding for light DataLayer arrays.
|
||||
#Saves up to ~40 KB per chunk load in open-sky environments.
|
||||
#Default: true
|
||||
enabled = true
|
||||
|
||||
#Krypton Hybrid - Chunk Data Optimization
|
||||
#Reduces ClientboundLevelChunkPacketData size by replacing NBT-based
|
||||
#heightmap serialization with compact binary + XOR-delta encoding, and
|
||||
#extracting biome data from the section buffer for single-value detection.
|
||||
#Requires Krypton Hybrid on BOTH the server and every connecting client.
|
||||
[chunk_data_opt]
|
||||
#Enable biome delta encoding and heightmap compression.
|
||||
#Heightmaps: compact binary format with XOR-delta (~40 bytes NBT overhead
|
||||
#saved per chunk, plus significantly better compressibility for correlated
|
||||
#heightmap data under Zstd/ZLIB).
|
||||
#Biomes: single-value sections encoded as 2 bytes instead of 3+; biome
|
||||
#data grouped for better cross-section compressor exploitation.
|
||||
#Default: true
|
||||
enabled = true
|
||||
|
||||
#Delayed Chunk Cache (DCC)
|
||||
#Reduces redundant chunk resends when a player moves near the edge of
|
||||
#their view distance. Departing chunks are buffered; if the player
|
||||
#re-enters range within the timeout, the full resend is skipped.
|
||||
[dcc]
|
||||
#Enable or disable the Delayed Chunk Cache entirely.
|
||||
#Default: true
|
||||
enabled = true
|
||||
#Maximum number of chunks buffered per player.
|
||||
#When full, new departing chunks are untracked immediately.
|
||||
#Range: 1 – 200 | Default: 60
|
||||
# Default: 60
|
||||
# Range: 1 ~ 200
|
||||
size_limit = 60
|
||||
#Cache radius (chunks) around the player's current position.
|
||||
#Cached chunks farther than this are evicted and untracked.
|
||||
#Range: 1 – 32 | Default: 5
|
||||
# Default: 5
|
||||
# Range: 1 ~ 32
|
||||
distance = 5
|
||||
#Seconds before a cached chunk is forcibly evicted.
|
||||
#Higher values improve hit rate; lower values reduce client memory.
|
||||
#Range: 5 – 300 | Default: 30
|
||||
# Default: 30
|
||||
# Range: 5 ~ 300
|
||||
timeout_seconds = 30
|
||||
|
||||
#Broadcast Serialization Cache
|
||||
#Caches serialized packet bytes when the same Packet object is
|
||||
#broadcast to multiple players, avoiding redundant serialization.
|
||||
[broadcast_cache]
|
||||
#Enable the broadcast serialization cache.
|
||||
#Saves CPU by avoiding re-serialization of the same packet
|
||||
#when broadcast to multiple players on the same Netty I/O thread.
|
||||
#Default: true
|
||||
enabled = true
|
||||
|
||||
#Packet Coalescing
|
||||
#Deduplicates redundant entity update packets within each tick's
|
||||
#bundle before sending. Removes superseded velocity, teleport,
|
||||
#and entity data packets for the same entity.
|
||||
[packet_coalescing]
|
||||
#Enable packet coalescing within entity tracking bundles.
|
||||
#Default: true
|
||||
enabled = true
|
||||
|
||||
#Block Entity NBT Delta Sync
|
||||
#Reduces block entity data packet size by sending only changed NBT
|
||||
#keys instead of the full tag. Requires Krypton Hybrid on BOTH
|
||||
#the server and every connecting client.
|
||||
[block_entity_delta]
|
||||
#Enable per-player NBT delta encoding for block entity updates.
|
||||
#Significantly reduces bandwidth for frequently-updating block
|
||||
#entities (furnaces, hoppers, redstone components).
|
||||
#Default: true
|
||||
enabled = true
|
||||
|
||||
#Proxy Compatibility
|
||||
#Controls how Krypton Hybrid interacts with reverse proxies
|
||||
#(e.g. Velocity). When behind a proxy, certain optimizations must
|
||||
#be disabled or gated to preserve proxy compatibility.
|
||||
[proxy]
|
||||
#Proxy detection mode.
|
||||
# NONE - No proxy; all optimizations active (direct connection).
|
||||
# AUTO - Auto-detect Velocity via login plugin channel.
|
||||
# When detected, forces ZLIB on backend and gates custom
|
||||
# wire formats behind capability negotiation.
|
||||
# VELOCITY - Assume Velocity proxy; always use ZLIB backend
|
||||
# compression and gate custom wire formats.
|
||||
#Default: NONE
|
||||
#Allowed Values: NONE, AUTO, VELOCITY
|
||||
mode = "NONE"
|
||||
#Shared secret for Velocity Modern Forwarding.
|
||||
#Must match the forwarding-secret in Velocity's velocity.toml.
|
||||
#When non-empty and mode is AUTO or VELOCITY, the server will
|
||||
#verify connecting players via HMAC-SHA256 signed forwarding data.
|
||||
#Leave empty to disable modern forwarding (heuristic detection only).
|
||||
#Default: (empty)
|
||||
forwarding_secret = ""
|
||||
@@ -10,7 +10,7 @@
|
||||
# Do not include the #. You may reset to defaults by deleting this file.
|
||||
#
|
||||
# Available options:
|
||||
# mixin.bugfix.chunk_deadlock=true # (default)
|
||||
# mixin.bugfix.chunk_deadlock=false # (overridden for mod compat)
|
||||
# mixin.bugfix.cofh_core_crash=true # (default)
|
||||
# mixin.bugfix.concurrency=true # (default)
|
||||
# mixin.bugfix.ctm_resourceutil_cme=true # (default)
|
||||
@@ -20,7 +20,7 @@
|
||||
# mixin.bugfix.fix_config_crashes=true # (default)
|
||||
# mixin.bugfix.missing_block_entities=false # (default)
|
||||
# mixin.bugfix.packet_leak=false # (default)
|
||||
# mixin.bugfix.paper_chunk_patches=true # (default)
|
||||
# mixin.bugfix.paper_chunk_patches=false # (overridden for mod compat)
|
||||
# mixin.bugfix.recipe_book_type_desync=true # (default)
|
||||
# mixin.bugfix.restore_old_dragon_movement=false # (default)
|
||||
# mixin.bugfix.skip_redundant_saves=false # (default)
|
||||
@@ -50,7 +50,7 @@
|
||||
# mixin.perf.attribute_supplier_dedup=true # (default)
|
||||
# mixin.perf.cache_blockstate_cache_arrays=true # (default)
|
||||
# mixin.perf.cache_profile_texture_url=true # (default)
|
||||
# mixin.perf.cache_strongholds=true # (default)
|
||||
# mixin.perf.cache_strongholds=false # (overridden for mod compat)
|
||||
# mixin.perf.capability_list_compaction=true # (default)
|
||||
# mixin.perf.chunk_meshing=true # (default)
|
||||
# mixin.perf.clear_mixin_classinfo=false # (default)
|
||||
@@ -86,7 +86,7 @@
|
||||
# mixin.perf.optimize_surface_rules=true # (default)
|
||||
# mixin.perf.patchouli_deduplicate_books=true # (default)
|
||||
# mixin.perf.reduce_blockstate_cache_rebuilds=true # (default)
|
||||
# mixin.perf.release_protochunks=true # (default)
|
||||
# mixin.perf.release_protochunks=false # (overridden for mod compat)
|
||||
# mixin.perf.remove_biome_temperature_cache=true # (default)
|
||||
# mixin.perf.resourcepacks=true # (default)
|
||||
# mixin.perf.smart_ingredient_sync=true # (default)
|
||||
|
||||
@@ -0,0 +1,335 @@
|
||||
# The main configuration file for ServerCore.
|
||||
# Most of these settings can be reloaded without restarting using /servercore reload.
|
||||
|
||||
# Most miscellaneous feature toggles.
|
||||
features:
|
||||
# Prevents lagspikes caused by players moving into unloaded chunks.
|
||||
prevent-moving-into-unloaded-chunks: false
|
||||
# The amount of seconds between auto-saves when /save-on is active.
|
||||
autosave-interval-seconds: 300
|
||||
# The fraction that decides the chance of experience orbs being able to merge with each other. (1 = 100%, 40 = 2.5%)
|
||||
# Note that just like in vanilla, experience orbs will still need to be of the same size to actually merge.
|
||||
xp-merge-fraction: 40
|
||||
# The radius in blocks that experience orbs will merge at.
|
||||
xp-merge-radius: 0.5
|
||||
# The radius in blocks that items will merge at.
|
||||
item-merge-radius: 0.5
|
||||
lobotomize-villagers:
|
||||
# Makes villagers tick less often if they are stuck in a 1x1 space.
|
||||
enabled: false
|
||||
# Decides the interval in between villager ticks when lobotomized.
|
||||
tick-interval: 20
|
||||
|
||||
|
||||
# Automatically modifies dynamic settings based on the server performance.
|
||||
dynamic:
|
||||
# Enables dynamic performance checks.
|
||||
enabled: false
|
||||
# The average MSPT to target.
|
||||
target-mspt: 35
|
||||
# The default values for dynamic settings.
|
||||
# If left unspecified, the maximum value will be used.
|
||||
# Note: adding view / simulation distance here will override their value in server.properties.
|
||||
default-values:
|
||||
MOBCAP_PERCENTAGE: 100
|
||||
CHUNK_TICK_DISTANCE: 10
|
||||
|
||||
# The settings that will be decreased when the server is overloaded, in the specified order.
|
||||
# You can remove settings from the list that you don't want to be dynamically adjusted.
|
||||
# ► max = The maximum value the server will increase the setting to.
|
||||
# ► min = The minimum value the server will decrease the setting to.
|
||||
# ► increment = The amount the setting will be increased or decreased by.
|
||||
# ► interval = The amount of seconds between each check to increase or decrease.
|
||||
dynamic-settings:
|
||||
- setting: 'CHUNK_TICK_DISTANCE'
|
||||
max: 10
|
||||
min: 6
|
||||
increment: 1
|
||||
interval: 15
|
||||
|
||||
- setting: 'MOBCAP_PERCENTAGE'
|
||||
max: 100
|
||||
min: 50
|
||||
increment: 10
|
||||
interval: 15
|
||||
|
||||
- setting: 'SIMULATION_DISTANCE'
|
||||
max: 10
|
||||
min: 6
|
||||
increment: 1
|
||||
interval: 15
|
||||
|
||||
- setting: 'CHUNK_TICK_DISTANCE'
|
||||
max: 6
|
||||
min: 2
|
||||
increment: 1
|
||||
interval: 15
|
||||
|
||||
- setting: 'MOBCAP_PERCENTAGE'
|
||||
max: 50
|
||||
min: 30
|
||||
increment: 10
|
||||
interval: 15
|
||||
|
||||
- setting: 'SIMULATION_DISTANCE'
|
||||
max: 6
|
||||
min: 5
|
||||
increment: 1
|
||||
interval: 15
|
||||
|
||||
- setting: 'VIEW_DISTANCE'
|
||||
max: 10
|
||||
min: 5
|
||||
increment: 1
|
||||
interval: 150
|
||||
|
||||
|
||||
# A special mobcap that only affects the breeding of animals and villagers.
|
||||
breeding-cap:
|
||||
# Enables breeding caps.
|
||||
enabled: false
|
||||
# The breeding cap for villagers.
|
||||
# ► limit = The limit of mobs of the same type within range. Setting this to negative will disable the breeding cap.
|
||||
# ► range = The range it will check for entities of the same type.
|
||||
# ► unlimited-height = Whether to ignore the vertical distance when checking for entities of the same type.
|
||||
villagers:
|
||||
limit: 32
|
||||
range: 64
|
||||
unlimited-height: false
|
||||
|
||||
# The breeding cap for animals.
|
||||
# Note that this cap only checks for animals of the same type.
|
||||
# If the limit is 32 you can still breed 32 cows and 32 pigs next to each other.
|
||||
animals:
|
||||
limit: 32
|
||||
range: 64
|
||||
unlimited-height: false
|
||||
|
||||
|
||||
# Gives more control over mob spawning.
|
||||
mob-spawning:
|
||||
# Mobcap settings for zombie reinforcements.
|
||||
# ► enforce-mobcap = Whether to enforce mobcaps for this type of mobspawning.
|
||||
# ► additional-capacity = Additional capacity for this specific mobcap. Decides how much it can spawn over the regular mobcap.
|
||||
# It is recommended to allow them to spawn a bit over the regular mobcap as they would otherwise never get a chance to spawn.
|
||||
zombie-reinforcements:
|
||||
enforce-mobcap: false
|
||||
additional-capacity: 32
|
||||
|
||||
# Mobcap settings for zombified piglin spawning from nether portal random ticks.
|
||||
nether-portal-randomticks:
|
||||
enforce-mobcap: false
|
||||
additional-capacity: 32
|
||||
|
||||
# Mobcap settings for mobs spawned from monster spawners.
|
||||
monster-spawners:
|
||||
enforce-mobcap: false
|
||||
additional-capacity: 32
|
||||
|
||||
# Mobcap settings for silverfish spawned from the infested potion effect.
|
||||
infested:
|
||||
enforce-mobcap: false
|
||||
additional-capacity: 32
|
||||
|
||||
# A list of mob categories with their respective mobcap and spawn interval.
|
||||
# ► category = The vanilla spawn category.
|
||||
# ► mobcap = The maximum amount of entities in the same category that can spawn near a player.
|
||||
# ► spawn-interval = The interval between spawn attempts in ticks. Higher values mean less frequent spawn attempts.
|
||||
categories:
|
||||
- category: 'MONSTER'
|
||||
mobcap: 70
|
||||
spawn-interval: 1
|
||||
|
||||
- category: 'CREATURE'
|
||||
mobcap: 10
|
||||
spawn-interval: 400
|
||||
|
||||
- category: 'AMBIENT'
|
||||
mobcap: 15
|
||||
spawn-interval: 1
|
||||
|
||||
- category: 'AXOLOTLS'
|
||||
mobcap: 5
|
||||
spawn-interval: 1
|
||||
|
||||
- category: 'UNDERGROUND_WATER_CREATURE'
|
||||
mobcap: 5
|
||||
spawn-interval: 1
|
||||
|
||||
- category: 'WATER_CREATURE'
|
||||
mobcap: 5
|
||||
spawn-interval: 1
|
||||
|
||||
- category: 'WATER_AMBIENT'
|
||||
mobcap: 20
|
||||
spawn-interval: 1
|
||||
|
||||
- category: 'AETHER_AETHER_AERWHALE'
|
||||
mobcap: 1
|
||||
spawn-interval: 1
|
||||
|
||||
- category: 'AETHER_AETHER_DARKNESS_MONSTER'
|
||||
mobcap: 5
|
||||
spawn-interval: 1
|
||||
|
||||
- category: 'AETHER_AETHER_SKY_MONSTER'
|
||||
mobcap: 4
|
||||
spawn-interval: 1
|
||||
|
||||
- category: 'AETHER_AETHER_SURFACE_MONSTER'
|
||||
mobcap: 15
|
||||
spawn-interval: 1
|
||||
|
||||
|
||||
# Settings for commands and their formatting.
|
||||
commands:
|
||||
# Enables the /servercore status command.
|
||||
status-enabled: true
|
||||
# Enables the /mobcaps command.
|
||||
mobcaps-enabled: true
|
||||
colors:
|
||||
# The colors used in command feedback. You can use hex codes or minecraft legacy color names.
|
||||
# The primary color is the most used color in command feedback.
|
||||
primary: 'dark_aqua'
|
||||
# The secondary color is used for highlighting important information, like values.
|
||||
secondary: 'green'
|
||||
# The tertiary color is mostly used for text in titles.
|
||||
tertiary: 'aqua'
|
||||
|
||||
|
||||
# Activation range can drastically reduce the amount of lag caused by ticking entities.
|
||||
# It does this by cleverly skipping certain entity ticks based on the distance to players and other factors, like immunity checks.
|
||||
# Immunity checks determine whether an entity should be ticked even when it's outside the activation range, like for example when it is falling or takes damage.
|
||||
# Note: while this is a very powerful feature, it can still slow down mobfarms and break very specific technical contraptions.
|
||||
activation-range:
|
||||
# Enables activation range.
|
||||
enabled: false
|
||||
# Briefly ticks entities newly added to the world for 10 seconds (includes both spawning and loading).
|
||||
# This gives them a chance to properly immunize when they are spawned if they should be. Can be helpful for mobfarms.
|
||||
tick-new-entities: true
|
||||
# Enables vertical range checks. By default, activation ranges only work horizontally.
|
||||
# This can greatly improve performance on taller worlds, but might break a few very specific ai-based mobfarms.
|
||||
use-vertical-range: false
|
||||
# Skips 1/4th of entity ticks whilst not immune.
|
||||
# This affects entities that are within the activation range, but not immune (for example by falling or being in water).
|
||||
skip-non-immune: false
|
||||
# Allows villagers to tick regardless of the activation range when panicking.
|
||||
villager-tick-panic: true
|
||||
# The time in seconds that a villager needs to be inactive for before obtaining work immunity (if it has work tasks).
|
||||
villager-work-immunity-after: 20
|
||||
# The amount of ticks an inactive villager will wake up for when it has work immunity.
|
||||
villager-work-immunity-for: 20
|
||||
# A list of entity types that should be excluded from activation range checks.
|
||||
excluded-entity-types:
|
||||
- 'minecraft:warden'
|
||||
- 'minecraft:ghast'
|
||||
- 'minecraft:hopper_minecart'
|
||||
# The activation type that will get assigned to any entity that doesn't have a custom activation type.
|
||||
# ► activation-range = The range an entity is required to be in from a player to be activated.
|
||||
# ► tick-interval = The interval between 'active' ticks whilst the entity is inactive. Negative values will disable these active ticks.
|
||||
# ► wakeup-interval = The interval between inactive entity wakeups in seconds.
|
||||
# ► extra-height-up = Allows entities to be ticked when far above the player when vertical range is in use.
|
||||
# ► extra-height-down = Allows entities to be ticked when far below the player when vertical range is in use.
|
||||
default-activation-type:
|
||||
activation-range: 16
|
||||
tick-interval: 20
|
||||
wakeup-interval: -1
|
||||
extra-height-up: false
|
||||
extra-height-down: false
|
||||
|
||||
# A list of custom activation types.
|
||||
# ► name = The name of the activation type.
|
||||
# ► entity-matcher = A list of conditions to filter entities. Only one of these conditions needs to be met for an entity to match.
|
||||
# ► If an entity matches multiple activation types, the one highest in the list will be used. The conditions accept the following formats:
|
||||
# - Entity type matching | Uses the entity type's identifier. | 'minecraft:zombie' matches zombies, but for example not husks or drowned.
|
||||
# - Typeof class matching | Uses the 'typeof:' prefix. | 'typeof:monster' matches all monsters.
|
||||
# ► Available typeof classes: mob, monster, raider, neutral, ambient, animal, water_animal, flying_animal, flying_monster, villager, projectile.
|
||||
custom-activation-types:
|
||||
- name: 'raider'
|
||||
activation-range: 48
|
||||
tick-interval: 20
|
||||
wakeup-interval: 20
|
||||
extra-height-up: true
|
||||
extra-height-down: false
|
||||
entity-matcher:
|
||||
- 'typeof:raider'
|
||||
|
||||
- name: 'water'
|
||||
activation-range: 16
|
||||
tick-interval: 20
|
||||
wakeup-interval: 60
|
||||
extra-height-up: false
|
||||
extra-height-down: false
|
||||
entity-matcher:
|
||||
- 'typeof:water_animal'
|
||||
|
||||
- name: 'villager'
|
||||
activation-range: 16
|
||||
tick-interval: 20
|
||||
wakeup-interval: 30
|
||||
extra-height-up: false
|
||||
extra-height-down: false
|
||||
entity-matcher:
|
||||
- 'typeof:villager'
|
||||
|
||||
- name: 'zombie'
|
||||
activation-range: 16
|
||||
tick-interval: 20
|
||||
wakeup-interval: 20
|
||||
extra-height-up: true
|
||||
extra-height-down: false
|
||||
entity-matcher:
|
||||
- 'minecraft:zombie'
|
||||
- 'minecraft:husk'
|
||||
|
||||
- name: 'monster-below'
|
||||
activation-range: 32
|
||||
tick-interval: 20
|
||||
wakeup-interval: 20
|
||||
extra-height-up: true
|
||||
extra-height-down: true
|
||||
entity-matcher:
|
||||
- 'minecraft:creeper'
|
||||
- 'minecraft:slime'
|
||||
- 'minecraft:magma_cube'
|
||||
- 'minecraft:hoglin'
|
||||
|
||||
- name: 'flying-monster'
|
||||
activation-range: 48
|
||||
tick-interval: 20
|
||||
wakeup-interval: 20
|
||||
extra-height-up: true
|
||||
extra-height-down: false
|
||||
entity-matcher:
|
||||
- 'minecraft:ghast'
|
||||
- 'minecraft:phantom'
|
||||
|
||||
- name: 'monster'
|
||||
activation-range: 32
|
||||
tick-interval: 20
|
||||
wakeup-interval: 20
|
||||
extra-height-up: true
|
||||
extra-height-down: false
|
||||
entity-matcher:
|
||||
- 'typeof:monster'
|
||||
|
||||
- name: 'animal'
|
||||
activation-range: 16
|
||||
tick-interval: 20
|
||||
wakeup-interval: 60
|
||||
extra-height-up: false
|
||||
extra-height-down: false
|
||||
entity-matcher:
|
||||
- 'typeof:animal'
|
||||
- 'typeof:ambient'
|
||||
|
||||
- name: 'creature'
|
||||
activation-range: 24
|
||||
tick-interval: 20
|
||||
wakeup-interval: 30
|
||||
extra-height-up: false
|
||||
extra-height-down: false
|
||||
entity-matcher:
|
||||
- 'typeof:mob'
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
# Allows you to toggle specific optimizations that don't have full vanilla parity.
|
||||
# These settings will only take effect after server restarts.
|
||||
|
||||
# Prevents many different lagspikes caused by loading chunks synchronously.
|
||||
# This for example causes maps to only update loaded chunks, which depending on the viewdistance can be a smaller radius than vanilla.
|
||||
reduce-sync-loads: true
|
||||
# Can significantly reduce the time spent on chunk iteration by only updating the ticking chunks list each second, rather than each tick.
|
||||
# This is especially useful for servers with a high playercount and / or viewdistance.
|
||||
# Note: This setting is incompatible with Moonrise.
|
||||
cache-ticking-chunks: true
|
||||
# Optimizes command block executions by caching parsed commands.
|
||||
# Command parsing is a relatively expensive operation. By caching it we avoid parsing the same command every time it is executed.
|
||||
optimize-command-blocks: false
|
||||
# Can significantly reduce time spent on mobspawning, but isn't as accurate as vanilla on biome borders.
|
||||
# This may cause mobs from another biome to spawn a few blocks across a biome border (this does not affect structure spawning!).
|
||||
fast-biome-lookups: false
|
||||
# Fluid random ticks, like lava spreading fire, are run twice each game tick.
|
||||
# Enabling this will cancel the 'duplicate' second fluid tick, but this may cause slight behavior changes.
|
||||
cancel-duplicate-fluid-ticks: false
|
||||
Reference in New Issue
Block a user