mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-26 10:29:20 +00:00
395 lines
14 KiB
YAML
395 lines
14 KiB
YAML
# 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: "<yellow>To fully experience our server, please accept our custom resource pack.</yellow>"
|
|
# 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: "<gray>CraftEngine ResourcePack</gray>"
|
|
- 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 <!i> 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 <image:...> and <shift:...> 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 <shift:xxx> 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: "<white><shift:-11><image:internal:item_browser>"
|
|
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: "<white><shift:-11><image:internal:category>"
|
|
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: "<white><shift:-11><image:internal:no_recipe>"
|
|
blasting:
|
|
title: "<white><shift:-11><image:internal:cooking_recipe><shift:-136><image:internal:blasting>"
|
|
smelting:
|
|
title: "<white><shift:-11><image:internal:cooking_recipe><shift:-136><image:internal:smelting>"
|
|
smoking:
|
|
title: "<white><shift:-11><image:internal:cooking_recipe><shift:-136><image:internal:smoking>"
|
|
campfire-cooking:
|
|
title: "<white><shift:-11><image:internal:cooking_recipe><shift:-136><image:internal:campfire>"
|
|
crafting:
|
|
title: "<white><shift:-11><image:internal:crafting_recipe>"
|
|
stonecutting:
|
|
title: "<white><shift:-11><image:internal:stonecutting_recipe>"
|
|
smithing-transform:
|
|
title: "<white><shift:-11><image:internal:smithing_transform_recipe>"
|
|
|
|
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 |