Spoiler: CONFIG.YML
Code (Text):
# LeafWE Plugin Settings v4.0.3[/SIZE][/B][/LEFT][/SIZE][/B][/LEFT][/SIZE][/B][/LEFT][/SIZE][/B][/LEFT][/SIZE][/B][/LEFT][/SIZE][/B][/LEFT]
[B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT]# ===========================================
# LeafWE Database Configuration
# ===========================================
database:
# Database type: "sqlite" or "mysql"
type: "sqlite"
# Enable automatic migrations on startup
auto-migrate: true
# Production mode (affects default database recommendations)
production-mode: false
# SQLite Configuration
sqlite:
# Database file path (relative to plugin folder)
file: "data/leafwe.db"
# SQLite optimization settings
journal-mode: "WAL" # WAL, DELETE, TRUNCATE, MEMORY, OFF
synchronous: "NORMAL" # OFF, NORMAL, FULL, EXTRA
cache-size: 2000 # Number of pages to cache
temp-store: "MEMORY" # FILE, MEMORY
# MySQL Configuration
mysql:
host: "localhost"
port: 3306
database: "leafwe"
username: "leafwe_user"
password: "your_secure_password"
# SSL Configuration
use-ssl: false
verify-server-certificate: false
character-encoding: "utf8mb4"
# MySQL optimization properties
properties:
cachePrepStmts: true
prepStmtCacheSize: 250
prepStmtCacheSqlLimit: 2048
useServerPrepStmts: true
useLocalSessionState: true
rewriteBatchedStatements: true
cacheResultSetMetadata: true
cacheServerConfiguration: true
elideSetAutoCommits: true
maintainTimeStats: false
# Connection Pool Settings
connection-pool:
maximum-pool-size: 10
minimum-idle: 2
connection-timeout: 30000 # 30 seconds
idle-timeout: 600000 # 10 minutes
max-lifetime: 1800000 # 30 minutes
leak-detection-threshold: 60000 # 1 minute
# Async Operations Configuration
async:
# Thread pool sizes
read-threads: 4
write-threads: 2
batch-threads: 1
# Connection management
max-connections: 20
connection-timeout: 10000 # 10 seconds
shutdown-timeout: 30 # 30 seconds
# Retry configuration
write-retries: 3
# Batch processing
batch-size: 100
batch-flush-interval: 5000 # 5 seconds
queue-size: 1000
# Circuit breaker
circuit-breaker-threshold: 10
circuit-breaker-timeout: 30000 # 30 seconds
# Performance Monitoring
performance:
# Log slow queries (in milliseconds)
slow-query-threshold: 1000
log-slow-queries: true
log-queries: false # Enable for debugging only
# Database Monitoring
monitoring:
# Health check interval (in seconds)
health-check-interval: 300 # 5 minutes
# Enable periodic reports
enable-periodic-reports: false
report-interval: 3600 # 1 hour
# Log healthy checks (disable for production)
log-healthy-checks: false
# Generate final report on shutdown
final-report-on-shutdown: true
# Maximum health history to keep
max-health-history: 100
# Data Retention
data-retention:
# Enable automatic cleanup
auto-cleanup: true
# Days to keep data
daily-usage-days: 30
session-days: 7
# Cleanup interval (in hours)
cleanup-interval: 24
# ===========================================
# Enhanced Daily Limits Configuration
# ===========================================
daily-limits:
enabled: false
# Time when limits reset (24-hour format)
reset-time: "00:00"
# Permission groups with different limits
groups:
default:
max-blocks-per-day: 1000
max-operations-per-day: 10
vip:
max-blocks-per-day: 5000
max-operations-per-day: 25
premium:
max-blocks-per-day: 15000
max-operations-per-day: 50
admin:
max-blocks-per-day: -1 # -1 = unlimited
max-operations-per-day: -1
# ===========================================
# System Settings
# ===========================================
settings:
# Basic settings
speed: 2 # 1-20 (blocks per tick)
language: "en"
max-volume: 50000
confirmation-limit: 5000
max-undo: 10
# Selection visualizer
selection-visualizer: true
selection-timeout: 300 # 5 minutes
# Effects and sounds
placement-particle: "WAX_ON"
success-effect:
enabled: true
sound: "ENTITY_PLAYER_LEVELUP"
# Pipette tool (copy block data)
pipette-tool:
enabled: true
copy-sound: "ENTITY_ITEM_PICKUP"
paste-sound: "BLOCK_NOTE_BLOCK_PLING"
# Worker animation
worker-animation:
enabled: true
show-name: true
name-template: "&a[Worker] %player%"
y-offset: 0.5
armor-color: "0,255,255" # RGB format
# Disabled worlds (world names, case sensitive)
disabled-worlds:
- "world_nether"
- "world_the_end"
# Blocked materials (materials that cannot be used)
blocked-materials:
- "BEDROCK"
- "BARRIER"
- "COMMAND_BLOCK"
- "CHAIN_COMMAND_BLOCK"
- "REPEATING_COMMAND_BLOCK"
- "STRUCTURE_BLOCK"
# ===========================================
# Wand Tool Configuration
# ===========================================
wand-tool:
material: "BLAZE_ROD"
name: "&6Construction Rod"
lore:
- "&7Left click: Set position 1"
- "&7Right click: Set position 2"
- "&7Shift + Right click: Copy block data"
- ""
- "&eLeafWE Construction Tool"
# ===========================================
# GUI Configuration
# ===========================================
block-selector-gui:
title: "&1Select a Block"
replace-gui:
title: "&1Block Replace Menu"
confirm-button-name: "&a&lCONFIRM & REPLACE"
confirm-button-lore:
- "&7Click to start the replacement"
- "&7operation with selected blocks."
- ""
- "&c⚠ This action cannot be undone!"
[LEFT]
[B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT]# ===========================================
# LeafWE Database Configuration
# ===========================================
database:
# Database type: "sqlite" or "mysql"
type: "sqlite"
# Enable automatic migrations on startup
auto-migrate: true
# Production mode (affects default database recommendations)
production-mode: false
# SQLite Configuration
sqlite:
# Database file path (relative to plugin folder)
file: "data/leafwe.db"
# SQLite optimization settings
journal-mode: "WAL" # WAL, DELETE, TRUNCATE, MEMORY, OFF
synchronous: "NORMAL" # OFF, NORMAL, FULL, EXTRA
cache-size: 2000 # Number of pages to cache
temp-store: "MEMORY" # FILE, MEMORY
# MySQL Configuration
mysql:
host: "localhost"
port: 3306
database: "leafwe"
username: "leafwe_user"
password: "your_secure_password"
# SSL Configuration
use-ssl: false
verify-server-certificate: false
character-encoding: "utf8mb4"
# MySQL optimization properties
properties:
cachePrepStmts: true
prepStmtCacheSize: 250
prepStmtCacheSqlLimit: 2048
useServerPrepStmts: true
useLocalSessionState: true
rewriteBatchedStatements: true
cacheResultSetMetadata: true
cacheServerConfiguration: true
elideSetAutoCommits: true
maintainTimeStats: false
# Connection Pool Settings
connection-pool:
maximum-pool-size: 10
minimum-idle: 2
connection-timeout: 30000 # 30 seconds
idle-timeout: 600000 # 10 minutes
max-lifetime: 1800000 # 30 minutes
leak-detection-threshold: 60000 # 1 minute
# Async Operations Configuration
async:
# Thread pool sizes
read-threads: 4
write-threads: 2
batch-threads: 1
# Connection management
max-connections: 20
connection-timeout: 10000 # 10 seconds
shutdown-timeout: 30 # 30 seconds
# Retry configuration
write-retries: 3
# Batch processing
batch-size: 100
batch-flush-interval: 5000 # 5 seconds
queue-size: 1000
# Circuit breaker
circuit-breaker-threshold: 10
circuit-breaker-timeout: 30000 # 30 seconds
# Performance Monitoring
performance:
# Log slow queries (in milliseconds)
slow-query-threshold: 1000
log-slow-queries: true
log-queries: false # Enable for debugging only
# Database Monitoring
monitoring:
# Health check interval (in seconds)
health-check-interval: 300 # 5 minutes
# Enable periodic reports
enable-periodic-reports: false
report-interval: 3600 # 1 hour
# Log healthy checks (disable for production)
log-healthy-checks: false
# Generate final report on shutdown
final-report-on-shutdown: true
# Maximum health history to keep
max-health-history: 100
# Data Retention
data-retention:
# Enable automatic cleanup
auto-cleanup: true
# Days to keep data
daily-usage-days: 30
session-days: 7
# Cleanup interval (in hours)
cleanup-interval: 24
# ===========================================
# Enhanced Daily Limits Configuration
# ===========================================
daily-limits:
enabled: false
# Time when limits reset (24-hour format)
reset-time: "00:00"
# Permission groups with different limits
groups:
default:
max-blocks-per-day: 1000
max-operations-per-day: 10
vip:
max-blocks-per-day: 5000
max-operations-per-day: 25
premium:
max-blocks-per-day: 15000
max-operations-per-day: 50
admin:
max-blocks-per-day: -1 # -1 = unlimited
max-operations-per-day: -1
# ===========================================
# System Settings
# ===========================================
settings:
# Basic settings
speed: 2 # 1-20 (blocks per tick)
language: "en"
max-volume: 50000
confirmation-limit: 5000
max-undo: 10
# Selection visualizer
selection-visualizer: true
selection-timeout: 300 # 5 minutes
# Effects and sounds
placement-particle: "WAX_ON"
success-effect:
enabled: true
sound: "ENTITY_PLAYER_LEVELUP"
# Pipette tool (copy block data)
pipette-tool:
enabled: true
copy-sound: "ENTITY_ITEM_PICKUP"
paste-sound: "BLOCK_NOTE_BLOCK_PLING"
# Worker animation
worker-animation:
enabled: true
show-name: true
name-template: "&a[Worker] %player%"
y-offset: 0.5
armor-color: "0,255,255" # RGB format
# Disabled worlds (world names, case sensitive)
disabled-worlds:
- "world_nether"
- "world_the_end"
# Blocked materials (materials that cannot be used)
blocked-materials:
- "BEDROCK"
- "BARRIER"
- "COMMAND_BLOCK"
- "CHAIN_COMMAND_BLOCK"
- "REPEATING_COMMAND_BLOCK"
- "STRUCTURE_BLOCK"
# ===========================================
# Wand Tool Configuration
# ===========================================
wand-tool:
material: "BLAZE_ROD"
name: "&6Construction Rod"
lore:
- "&7Left click: Set position 1"
- "&7Right click: Set position 2"
- "&7Shift + Right click: Copy block data"
- ""
- "&eLeafWE Construction Tool"
# ===========================================
# GUI Configuration
# ===========================================
block-selector-gui:
title: "&1Select a Block"
replace-gui:
title: "&1Block Replace Menu"
confirm-button-name: "&a&lCONFIRM & REPLACE"
confirm-button-lore:
- "&7Click to start the replacement"
- "&7operation with selected blocks."
- ""
- "&c⚠ This action cannot be undone!"
[LEFT]
Spoiler: MESSAGES_EN.YML
Code (Text):
# LeafWE English Messages (Default)[/SIZE][/B][/LEFT][/SIZE][/B][/LEFT][/SIZE][/B][/LEFT][/SIZE][/B][/LEFT][/SIZE][/B][/LEFT][/SIZE][/B][/LEFT][/SIZE][/B][/LEFT]
[B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT]messages:
# General Messages
reload-successful: '&aLeafWE settings have been successfully reloaded!'
no-permission: '&cYou do not have permission to use this command.'
players-only: '&cThis command can only be used by a player.'
help-message: '&aLeafWE Commands: &7/lwe <reload|give|undo|confirm|help>'
# Command Usage & Errors
invalid-usage-give: '&cUsage: /lwe give <player_name>'
player-not-found: '&cPlayer not found: %player%'
invalid-usage-set: '&cUsage: /set <block_name>'
invalid-usage-wall: '&cUsage: /wall <block_name>'
invalid-usage-replace: '&cUsage: /replace <from_block> <to_block>'
# Guided Command Messages
wall-block-specify: '&ePlease also specify the block name for the wall. &7Example: /wall stone'
replace-first-block-specify: '&eNow, specify the name of the block you want to replace. &7Example: /replace dirt'
replace-second-block-specify: '&aGreat! &eNow specify what block to replace ''%old_block%'' with. &7Example: /replace %old_block% stone'
# Selection & Pipette Messages
select-pos1: '&cYou must select position 1 first! (Left-click with the construction rod)'
select-pos2: '&cPosition 1 is set. Now select position 2! (Right-click with the construction rod)'
pos1-set: '&aPosition 1 has been set!'
pos2-set: '&aPosition 2 has been set!'
blockstate-copied: '&aCopied block state of: &e%block%'
blockstate-cleared: '&7Copied block state has been cleared.'
# Block & Inventory Checks
invalid-block: '&cInvalid block name: %block%'
blacklisted-block: '&cYou cannot place this block! (Blocked for security reasons)'
inventory-empty: '&cYou do not have any ''%block%'' in your inventory!'
# Operation Feedback
process-starting: '&aBlock operation starting...'
inventory-ran-out: '&cYou ran out of %block% blocks in your inventory!'
process-complete: '&aOperation complete! A total of %placed% blocks were affected.'
process-incomplete: '&eCould not affect %remaining% blocks.'
# Safety & Confirmation
volume-limit-exceeded: '&cThe area you selected is too large! (Max: %limit% blocks). You do not have permission for this.'
confirmation-required: '&eThis operation will affect %total% blocks. Type &a/lwe confirm &eto proceed. (Expires in 30 seconds)'
confirmation-pending: '&cYou already have an operation pending confirmation.'
no-pending-confirmation: '&cYou do not have a pending operation to confirm.'
confirmation-successful: '&aOperation confirmed and started.'
world-disabled: '&cLeafWE commands cannot be used in this world.'
task-already-running: '&cYou already have an active operation. Please wait for it to finish.'
protection-no-permission: '&cYou cannot select a position in this protected area.'
# GUI Messages
gui-opened: '&ePlease select a block from the menu.'
replace-gui-opened: '&ePlease place the blocks to be replaced in the designated slots.'
replace-gui-missing-blocks: '&cPlease place both the old and new blocks in the slots.'
# Wand & Undo
wand-given-receiver: '&aYou have been given a Construction Rod!'
wand-given-sender: '&aA Construction Rod has been given to %player%.'
undo-successful: '&aYour last operation has been undone. (No items were refunded)'
undo-successful-with-refund: '&aOperation undone! &e%count% &ablocks have been returned to your inventory.'
no-undo: '&cThere are no operations to undo.'
# Progress Bar Messages (NEW)
progress-operation-placing: "Placing"
progress-operation-replacing: "Replacing with"
progress-operation-block-placement: "Block placement"
progress-operation-block-replacement: "Block replacement"
progress-error-inventory: "Inventory ran out"
progress-completed: "completed!"
progress-cancelled: "cancelled"
# Daily Limits Messages (NEW)
daily-limits-disabled: "&7Daily limits are disabled on this server."
daily-limits-header: "&6=== Daily Limits ==="
daily-limits-group: "&eYour group: &a%group%"
daily-limits-blocks: "&7Blocks: &a%used%&7/&e%max% &7(Remaining: &b%remaining%&7)"
daily-limits-operations: "&7Operations: &a%used%&7/&e%max% &7(Remaining: &b%remaining%&7)"
daily-limits-blocks-unlimited: "&7Blocks: &aUnlimited"
daily-limits-operations-unlimited: "&7Operations: &aUnlimited"
daily-limit-blocks-exceeded: "&cDaily block limit exceeded! (&a%used%&c/&e%max%&c) Group: &7%group%"
daily-limit-operations-exceeded: "&cDaily operation limit exceeded! (&a%used%&c/&e%max%&c) Group: &7%group%"
[B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT][B][SIZE=3]
[LEFT]messages:
# General Messages
reload-successful: '&aLeafWE settings have been successfully reloaded!'
no-permission: '&cYou do not have permission to use this command.'
players-only: '&cThis command can only be used by a player.'
help-message: '&aLeafWE Commands: &7/lwe <reload|give|undo|confirm|help>'
# Command Usage & Errors
invalid-usage-give: '&cUsage: /lwe give <player_name>'
player-not-found: '&cPlayer not found: %player%'
invalid-usage-set: '&cUsage: /set <block_name>'
invalid-usage-wall: '&cUsage: /wall <block_name>'
invalid-usage-replace: '&cUsage: /replace <from_block> <to_block>'
# Guided Command Messages
wall-block-specify: '&ePlease also specify the block name for the wall. &7Example: /wall stone'
replace-first-block-specify: '&eNow, specify the name of the block you want to replace. &7Example: /replace dirt'
replace-second-block-specify: '&aGreat! &eNow specify what block to replace ''%old_block%'' with. &7Example: /replace %old_block% stone'
# Selection & Pipette Messages
select-pos1: '&cYou must select position 1 first! (Left-click with the construction rod)'
select-pos2: '&cPosition 1 is set. Now select position 2! (Right-click with the construction rod)'
pos1-set: '&aPosition 1 has been set!'
pos2-set: '&aPosition 2 has been set!'
blockstate-copied: '&aCopied block state of: &e%block%'
blockstate-cleared: '&7Copied block state has been cleared.'
# Block & Inventory Checks
invalid-block: '&cInvalid block name: %block%'
blacklisted-block: '&cYou cannot place this block! (Blocked for security reasons)'
inventory-empty: '&cYou do not have any ''%block%'' in your inventory!'
# Operation Feedback
process-starting: '&aBlock operation starting...'
inventory-ran-out: '&cYou ran out of %block% blocks in your inventory!'
process-complete: '&aOperation complete! A total of %placed% blocks were affected.'
process-incomplete: '&eCould not affect %remaining% blocks.'
# Safety & Confirmation
volume-limit-exceeded: '&cThe area you selected is too large! (Max: %limit% blocks). You do not have permission for this.'
confirmation-required: '&eThis operation will affect %total% blocks. Type &a/lwe confirm &eto proceed. (Expires in 30 seconds)'
confirmation-pending: '&cYou already have an operation pending confirmation.'
no-pending-confirmation: '&cYou do not have a pending operation to confirm.'
confirmation-successful: '&aOperation confirmed and started.'
world-disabled: '&cLeafWE commands cannot be used in this world.'
task-already-running: '&cYou already have an active operation. Please wait for it to finish.'
protection-no-permission: '&cYou cannot select a position in this protected area.'
# GUI Messages
gui-opened: '&ePlease select a block from the menu.'
replace-gui-opened: '&ePlease place the blocks to be replaced in the designated slots.'
replace-gui-missing-blocks: '&cPlease place both the old and new blocks in the slots.'
# Wand & Undo
wand-given-receiver: '&aYou have been given a Construction Rod!'
wand-given-sender: '&aA Construction Rod has been given to %player%.'
undo-successful: '&aYour last operation has been undone. (No items were refunded)'
undo-successful-with-refund: '&aOperation undone! &e%count% &ablocks have been returned to your inventory.'
no-undo: '&cThere are no operations to undo.'
# Progress Bar Messages (NEW)
progress-operation-placing: "Placing"
progress-operation-replacing: "Replacing with"
progress-operation-block-placement: "Block placement"
progress-operation-block-replacement: "Block replacement"
progress-error-inventory: "Inventory ran out"
progress-completed: "completed!"
progress-cancelled: "cancelled"
# Daily Limits Messages (NEW)
daily-limits-disabled: "&7Daily limits are disabled on this server."
daily-limits-header: "&6=== Daily Limits ==="
daily-limits-group: "&eYour group: &a%group%"
daily-limits-blocks: "&7Blocks: &a%used%&7/&e%max% &7(Remaining: &b%remaining%&7)"
daily-limits-operations: "&7Operations: &a%used%&7/&e%max% &7(Remaining: &b%remaining%&7)"
daily-limits-blocks-unlimited: "&7Blocks: &aUnlimited"
daily-limits-operations-unlimited: "&7Operations: &aUnlimited"
daily-limit-blocks-exceeded: "&cDaily block limit exceeded! (&a%used%&c/&e%max%&c) Group: &7%group%"
daily-limit-operations-exceeded: "&cDaily operation limit exceeded! (&a%used%&c/&e%max%&c) Group: &7%group%"
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.19, 1.20, 1.21
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
LeafWE ➜ Survival World Edit is a free Minecraft Java mod. Compatible with Minecraft 1.19, 1.20, 1.21. Downloaded 435 times (via Spigot). Download it and open it directly in the game.