9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-27 02:49:15 +00:00
Files
craft-engine/common-files/src/main/resources/config.yml
2025-09-07 04:18:57 +08:00

428 lines
15 KiB
YAML

# Do not modify this value
config-version: '${config_version}'
# 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
resource-location:
enable: true
random-namespace:
amount: 16 # 0 = disable
length: 9
random-path:
source: obf
depth: 16
anti-unzip: false
random-atlas:
images-per-canvas: 32 # 0 = disable
# 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_textures"
bypass-models:
- "@vanilla_models"
bypass-sounds: []
bypass-equipments: []
# Validate if there are any errors in the resource pack, such as missing textures or models
validate:
enable: true
# Define the name of the overlay folders
overlay-format: "ce_overlay_{version}"
# Allowed values:
# - 1.20.1, 1.21, 1.21.8, etc.
# - LATEST: the latest client version
# - SERVER: the current server version
supported-version:
min: SERVER
max: LATEST
# Remove 1.21.5+ tinted_leaves particles
remove-tinted-leaves-particle: true
merge-external-folders:
- "ModelEngine/resource pack"
merge-external-zip-files:
- "CustomNameplates/resourcepack.zip"
- "BetterModel/build.zip"
exclude-file-extensions: ["md", "psd", "bbmodel", "db", "ini"]
# Exclude the shaders when generating the resource pack
exclude-core-shaders: false
delivery:
# Send the resource pack on joining the server
send-on-join: true
kick-if-declined: true
kick-if-failed-to-apply: true
prompt: "<yellow>To fully experience our server,<newline>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://xiao-momi.github.io/craft-engine-wiki/getting_start/set_up_host
hosting:
- type: "self"
ip: "localhost"
port: 8163
protocol: "http"
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:
# Make custom-model-data and item-model clientside by default
client-bound-model: false
# Add a <!i> tag on custom name and lore
non-italic-tag: false
# Determines when to trigger the item updater
# This feature may incur some performance overhead. Please do not enable it unless necessary.
# Correct use case: When you designed incorrect weapon attributes and need to update the values for items already held by players.
# Wrong use case: When you want to update an item's name and lore to a newer version (In this case you should use client-bound-data instead of the item updater)
update-triggers:
click-in-inventory: false # this option won't work for players in creative mode
drop: false
pick-up: false
equipment:
# The sacrificed-vanilla-armor argument determines which vanilla armor gets completely removed (loses all its trims)
# when you create new armor using trim types, freeing up a slot for your custom armor.
sacrificed-vanilla-armor:
type: chainmail
# CraftEngine repurposes a vanilla armor's texture slot for custom armor trims.
# To preserve the original look, it uses trim configurations to reconstruct the default appearance.
asset-id: minecraft:chainmail
humanoid: minecraft:trims/entity/humanoid/chainmail
humanoid-leggings: minecraft:trims/entity/humanoid_leggings/chainmail
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-data` to safely sync custom block data to clients.
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:
# 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:
# Contexts where emoji parsing is enabled
contexts:
chat: true
book: true
anvil: true
sign: true
# Prevent lag or oversized packet when processing emoji-heavy content
max-emojis-per-parse: 16
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 # Player 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
item: true
advancement: true
# 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: []
# You can use items from other plugins by adding the supported plugin names here
ingredient-sources: []
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>"
brewing:
title: "<white><shift:-11><image:internal:brewing_recipe>"
light-system:
# Required for custom light-emitting blocks
enable: true
# Async light update
async-update: true
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 (Use this if you have installed both FastAsyncWorldEdit and Axiom)
# 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: true
# 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
# This system processes any invalid block when a chunk is loaded.
process-invalid-blocks:
enable: false
remove: []
convert: {}
# This system processes any invalid furniture when a chunk is loaded.
process-invalid-furniture:
enable: false
remove: []
convert: {}
# Enables or disables debug mode
debug:
common: false
packet: false
furniture: false
item: false
resource-pack: false