# Do not modify this value config-version: '${config_version}' # Enables or disables debug mode debug: false # Enables or disables metrics collection via BStats metrics: true # Enables automatic update checks update-checker: true # Forces a specific locale (e.g., zh_cn) forced-locale: '' # Filter configuration phase player disconnection logs filter-configuration-phase-disconnect: false resource-pack: # Should those images in minecraft:default font also work in minecraft:uniform override-uniform-font: true # Generate assets for CraftEngine fabric mod # Note: fabric mod is used for clientside Axiom/WorldEdit mod generate-mod-assets: false # Resource pack protection protection: # Warning: Do not attempt to unzip the resource pack with crash tools enabled. # You can enable all the methods at the same time. crash-tools: method-1: false method-2: false method-3: false # Enable this would increase the resource pack size by 0.67MB # Obfuscate your resource pack obfuscation: enable: false seed: 0 # 0 = random seed fake-directory: false escape-unicode: false break-json: false resource-location: enable: true random-namespace: amount: 32 # 0 = disable length: 9 random-path: source: obf depth: 16 anti-unzip: false random-atlas: amount: 5 # 0 = disable use-double: true # Sometimes, some vanilla files that have been overwritten might be mistakenly obfuscated. # Please add the ignored textures/models/sounds here. bypass-textures: # - minecraft:block/farmland - "@legacy_unicode" - "@vanilla_font_textures" - "@vanilla_item_textures" - "@vanilla_block_textures" bypass-models: [] bypass-sounds: [] bypass-equipments: [] supported-version: min: "1.20" max: LATEST # Remove 1.21.5+ tinted_leaves particles remove-tinted-leaves-particle: true merge-external-folders: - ModelEngine/resource pack - BetterModel/build merge-external-zip-files: - CustomNameplates/resourcepack.zip exclude-file-suffixes: - "md" - "psd" - "bbmodel" - "db" delivery: # Send the resource pack on joining the server send-on-join: true kick-if-declined: true prompt: "To fully experience our server, please accept our custom resource pack." # If you are hosting the resource pack by yourself, replace `localhost` with your server ip otherwise it would only work on your local pc # If using BungeeCord or Velocity, consider using a proxy-side plugin to handle resource pack delivery. # Read this page for more host types: https://mo-mi.gitbook.io/xiaomomi-plugins/craftengine/plugin-wiki/craftengine/resource-pack/host hosting: - type: "self" ip: "localhost" port: 8163 protocol: "http" # The optional URL must be complete and include a trailing slash / at the end. #url: "http://localhost:8163/" deny-non-minecraft-request: true one-time-token: true rate-limit: max-requests: 10 reset-interval: 30 # Upload the resource pack automatically on generation # When disabled, you must manually trigger uploads using the /ce upload command auto-upload: true # The file to upload file-to-upload: "./generated/resource_pack.zip" # Resend the resource pack to players upon successful upload resend-on-upload: true duplicated-files-handler: - term: type: any_of terms: - type: parent_path_suffix suffix: "minecraft/items" - type: parent_path_suffix suffix: "minecraft/models/item" resolution: type: merge_json deeply: true - term: type: exact path: "pack.mcmeta" resolution: type: merge_pack_mcmeta description: "CraftEngine ResourcePack" - term: type: exact path: "pack.png" resolution: type: retain_matching term: type: contains path: "resources/default/resourcepack" - term: type: filename name: "sounds.json" resolution: type: merge_json deeply: false - term: type: parent_path_suffix suffix: "minecraft/atlases" resolution: type: merge_atlas item: # Add a tag on item name and lore non-italic-tag: false block: # Enables the sound system, which prevents the client from hearing some non-custom block sounds and improves the client experience. sound-system: enable: true # In Adventure Mode, players need the correct tool to break custom blocks. # Vanilla clients DO NOT recognize custom block IDs (e.g., craftengine:note_block_0). # # - When ENABLED: # - Players can break custom blocks if their tools can mine their VANILLA EQUIVALENTS. # Example: A tool for "note_block" can break "craftengine:note_block_0". # # - When DISABLED: # ⚠️ WARNING: # - Server MUST list ACTUAL CUSTOM BLOCK IDs in item's `can_break` component. # - Sending custom IDs (e.g., craftengine:note_block_0) to vanilla clients WILL CRASH THEM! # ✅ Solution: # - Use `client-bound-item-data` to safely sync custom block data to clients. # Documentation: https://mo-mi.gitbook.io/xiaomomi-plugins/craftengine/plugin-wiki/craftengine/add-new-contents/items/item-data/client-bound-item-data simplify-adventure-break-check: false # Similar to the option above, but designed for block placement simplify-adventure-place-check: false # Whether plugin should predict the next block to break # This can help improve mining experience to some extent at the cost of performance predict-breaking: enable: false interval: 10 extended-interaction-range: 0.5 furniture: # Automatically remove outdated furniture entities when a chunk is loaded. handle-invalid-furniture-on-chunk-load: # Enable/disable the cleanup system enable: false # Removes the specified invalid furniture remove: - "xxx:invalid_furniture" # Converts the invalid furniture to a valid one convert: "namespace:furniture_a": "namespace:furniture_b" # Hide technical entities used for storing furniture metadata. # NOTE: # - These are INVISIBLE entities used internally for tracking furniture states # - Recommended to keep enabled for better performance hide-base-entity: true # Requires a restart to apply # interaction (best performance) # boat (better compatibility with some anti-cheat plugin) collision-entity-type: interaction emoji: chat: true book: true anvil: true sign: true image: # Block image tags using minecraft:default font in these interfaces # Permission bypass: craftengine.filter.bypass.xxx (replace xxx with context: anvil/book/chat/etc) illegal-characters-filter: anvil: true book: true chat: true command: true sign: true # Allow and tags in third-party plugins via packet manipulation # ⚠️ Disable unused handlers to reduce async thread workload intercept-packets: system-chat: true tab-list: true # Tab list header and footer player-info: true # User list in tab set-score: true actionbar: true title: true bossbar: true container: true # GUI team: true # Team prefix, suffix and display name scoreboard: true entity-name: false armor-stand: true # Legacy Holograms text-display: true # Modern Holograms # Defines Unicode characters used for positioning # - Must match the font defined in resource packs # - Do NOT modify unless you understand text rendering mechanics offset-characters: font: minecraft:offset_chars -1: '\uf800' -2: '\uf801' -3: '\uf802' -4: '\uf803' -5: '\uf804' -6: '\uf805' -7: '\uf806' -8: '\uf807' -9: '\uf808' -10: '\uf809' -11: '\uf80a' -12: '\uf80b' -13: '\uf80c' -14: '\uf80d' -15: '\uf80e' -16: '\uf80f' -24: '\uf810' -32: '\uf811' -48: '\uf812' -64: '\uf813' -128: '\uf814' -256: '\uf815' 1: '\uf830' 2: '\uf831' 3: '\uf832' 4: '\uf833' 5: '\uf834' 6: '\uf835' 7: '\uf836' 8: '\uf837' 9: '\uf838' 10: '\uf839' 11: '\uf83a' 12: '\uf83b' 13: '\uf83c' 14: '\uf83d' 15: '\uf83e' 16: '\uf83f' 24: '\uf840' 32: '\uf841' 48: '\uf842' 64: '\uf843' 128: '\uf844' 256: '\uf845' recipe: # Master switch for custom recipes # NOTE: When enabled, plugin recipes will OVERRIDE vanilla recipes enable: true # Manage Minecraft's default recipe behavior disable-vanilla-recipes: # ⚠️ WARNING: When true, DISABLES ALL VANILLA RECIPES # - Conflicts with 'list' option (list will be ignored) all: false # Selective recipe disabling (safer alternative to 'all: true') # Example: ["minecraft:wooden_sword", "minecraft:stone_hoe"] list: [] gui: browser: sounds: change-page: "minecraft:ui.loom.take_result" return-page: "minecraft:ui.button.click" pick-item: "minecraft:entity.item.pickup" click-button: "minecraft:ui.hud.bubble_pop" main: title: "" page-navigation: next: available: "internal:next_page_0" not-available: "internal:next_page_1" previous: available: "internal:previous_page_0" not-available: "internal:previous_page_1" category: title: "" page-navigation: next: available: "internal:next_page_0" not-available: "internal:next_page_1" previous: available: "internal:previous_page_0" not-available: "internal:previous_page_1" return: "internal:return" exit: "internal:exit" recipe: get-item-icon: internal:get_item cooking-information-icon: internal:cooking_info page-navigation: next: available: "internal:next_recipe_0" not-available: "internal:next_recipe_1" previous: available: "internal:previous_recipe_0" not-available: "internal:previous_recipe_1" return: "internal:return" exit: "internal:exit" none: title: "" blasting: title: "" smelting: title: "" smoking: title: "" campfire-cooking: title: "" crafting: title: "" stonecutting: title: "" smithing-transform: title: "" performance: # Maximum chain update depth when fixing client visuals max-block-chain-update-limit: 64 # Prevent lag or oversized packet when processing emoji-heavy content max-emojis-per-parse: 16 light-system: # Required for custom light-emitting blocks enable: true # Turning this option on will reduce lighting system issues to some extent, but will increase server bandwidth consumption. force-update-light: false chunk-system: # With cache system, those frequently load/unload chunks would consume fewer resources on serialization # Enabling this option will increase memory consumption to a certain extent cache-system: true # 1 = NONE | Compression Speed | Decompress Speed | Compression Ratio | Memory Usage | # 2 = DEFLATE | Medium-Slow Medium Moderate Low | # 3 = GZIP | Medium-Slow Medium Moderate Low | # 4 = LZ4 | Blazing-Fast Blazing-Fast Low Low | # 5 = ZSTD | Medium-Fast Fast High Medium | compression-method: 4 # Settings for injection injection: # Requires a restart to apply # SECTION: Inject the LevelChunkSection (Faster & Experimental) since 0.0.53 # PALETTE: Inject the PalettedContainer target: PALETTE # Enables faster injection method # Note: May not work with certain server forks that alter chunk class structure (In most cases it won't conflict) use-fast-method: false # Auto-convert custom blocks -> vanilla blocks when unloading chunks # # - When ENABLED (true): # - Prevents custom blocks becoming AIR if plugin is uninstalled # - Ensures world portability for vanilla environments # # - When DISABLED (false): # ⚠️ IRREVERSIBLE DATA LOSS WARNING: # - Custom blocks permanently turn to AIR without plugin # - Recommended for temporary/test worlds only restore-vanilla-blocks-on-chunk-unload: true # Convert vanilla blocks -> custom blocks when loading chunks # # - Performance Mode (false): # ⚠️ REQUIRED CONDITIONS: # 1. Must disable restore-vanilla-blocks-on-chunk-unload # 2. Accept risk of custom block data loss on plugin removal # # - Compatibility Mode (true): # - Full state recovery with minor performance cost restore-custom-blocks-on-chunk-load: true # When you edit a map locally using CraftEngine fabric mod, the custom block data is not immediately synchronized with the # server's CraftEngine internal data. Enabling this option will synchronize the data when the chunk is loaded. # (This option only slightly impacts performance, which has been fully optimized, so you don't need to worry too much.) sync-custom-blocks-on-chunk-load: false