mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-27 02:49:15 +00:00
428 lines
15 KiB
YAML
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 |