Configuration
The general, plugin-wide config.yml settings. Arena/kits/shop/kill-rewards/chat-color-specific config lives in their own files — see PvP & Arena for those.
File layout
lang/
messages.yml # every regular player-facing message
deathmessages.yml # death message pools, by killer/cause
menus/
players/warps.yml # /warp GUI layout
staff/inventory.yml, enderchest.yml, confirm.yml # /invsee, /invedit GUIs
config.yml # main config — theme, features, every subsystem's settings, permission remaps
arena.yml # WorldGuard region assignment + arena regen settings
kits.yml # random kit pools + enchant balance
custom-items.yml # the ten arena-only special items
shop.yml # the 7-category ruby token shop
kill-rewards.yml # lifetime-kill milestone tiers
chatcolors.yml # /chatcolor gradient presets
scoreboard.yml # sidebar scoreboard layout
punishments.yml # ban/mute/warn/jail message templates + kick screens
economy.yml # currency settings + economy messages
announcements.yml # auto-broadcast message pool + interval
maintenance-state.yml # runtime — on/off + whitelist
socialspy-state.yml # runtime — per-player toggle overrides
alphawildsystem.db # sqlite database file (if database.type: sqlite)
config.yml layers the jar's bundled defaults underneath what's on disk. Every other file (lang/messages.yml, punishments.yml, economy.yml, arena.yml, kits.yml, shop.yml, etc.) has no such layering — every key you want changed must actually exist in the on-disk file, and nested config.yml sections (like warn.escalation.rules) need to be written out in full on disk too.Theme the whole plugin's accent color
Every message/menu/config file supports full MiniMessage directly — but on top of that, theme.accent-hex is a shortcut: any text colored with it is automatically upgraded into a real two-stop gradient everywhere in the plugin.
theme:
accent-hex: "#2E9BFF"
gradient-start: "#0B3D91"
gradient-end: "#4FC3F7"
Change these three values to re-theme the entire plugin — scoreboard, chat, menus, everything — without touching a single message file. Requires /awild reload or a restart. Authors only ever write the flat E9BFF in a message; it renders as a real <gradient:#0B3D91:#4FC3F7> at runtime.
Features
Set any entry to false to fully disable that subsystem (command included).
features:
chat: true
flyspeed: true
gamemode: true
heal: true
feed: true
god: true
fly: true
kill: true
ping: true
vanish: true
invsee: true
invedit: true
enderchest: true
tphere: true
skull: true
punish: true
warps: true
announcements: true
chat-filter: true
economy: true
time: true
alts: true
tpsbar: true
nv: true
freeze: true
weather: true
fixitem: true
death-messages: true
no-crafting: true # off by default — gear comes from kits/shop on a kit-driven server
anvil-no-damage: true # anvils don't take normal wear-and-degrade damage
Chat
chat:
format-normal: true
join-quit-messages: true
delete-button:
enabled: true
icon: "FF0000[x] "
hover: "ᴄʟɪᴄᴋ ᴛᴏ ᴅᴇʟᴇᴛᴇ ᴛʜɪꜱ ᴍᴇꜱꜱᴀɢᴇ"
remembered-messages: 200
fallback-clear-lines: 100
See Integrations → Chat deletion for what the delete button actually does with/without PacketEvents.
Chat filter
chat-filter:
words: ["badword1", "badword2"]
warn-reason: "Used a prohibited word in chat"
staff-alert: "{prefix}FF0000{player} ᴜꜱᴇᴅ ᴀ ꜰɪʟᴛᴇʀᴇᴅ ᴡᴏʀᴅ ᴀɴᴅ ᴡᴀꜱ ᴀᴜᴛᴏ-ᴡᴀʀɴᴇᴅ. (E9BFF{server})"
Case-insensitive substring match. A match deletes the message before it reaches chat, auto-issues a /warn (which can trigger warn escalation), and alerts staff — network-wide if database.type: mysql.
Database & Network
database:
type: sqlite # sqlite | h2 | mysql
sqlite-file: alphawildsystem.db
mysql:
host: localhost
port: 3306
database: alphawildsystem
username: root
password: ""
network:
broadcast-scope: global # global = every server sees alerts | local = only where it happened
poll-interval-seconds: 3
overrides:
ban: global
mute: global
warn: global
jail: global
chat-filter: global
| Type | When to use it |
|---|---|
| sqlite | Default. Zero-config, local file, single server. |
| h2 | Embedded, pure-Java — a SQLite alternative on hosts that block native code. |
| mysql | Required for cross-server punishment sync and network-wide maintenance mode. |
Jail
jail:
world: ""
x: 0.0
y: 0.0
z: 0.0
notify-style: bossbar # bossbar | actionbar | title | none
bossbar:
text: "B3D91ᴊᴀɪʟᴇᴅ — E9BFF{remaining} ʀᴇᴍᴀɪɴɪɴɢ"
color: RED
Set the location with /setjail. No movement radius is enforced automatically — build a physical containment area yourself.
Restart
restart:
style: bossbar
duration-seconds: 60
relaunch-process: true
storm-effect:
enabled: true
interval-ticks: 60
strikes-per-player: 1
chance: 0.5
relaunch-process: true reconstructs the original java launch command and spawns a fresh process before this one shuts down, so /restart actually restarts. The storm-effect is purely cosmetic (rain, fog, distant fake lightning) — set enabled: false for a plain countdown.
Maintenance
maintenance:
kick-message: "FF0000ꜱᴇʀᴠᴇʀ ɪꜱ ɴᴏᴡ ɪɴ ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ. ᴡᴇ'ʟʟ ʙᴇ ʀɪɢʜᴛ ʙᴀᴄᴋ!"
join-deny-message: "FF0000ꜱᴇʀᴠᴇʀ ɪꜱ ᴄᴜʀʀᴇɴᴛʟʏ ᴜɴᴅᴇʀ ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ. ᴄʜᴇᴄᴋ ʙᴀᴄᴋ ꜱᴏᴏɴ!"
motd: "FF0000ꜱᴇʀᴠᴇʀ ᴜɴᴅᴇʀ ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ"
On/off state and the bypass whitelist live in maintenance-state.yml, managed through /maintenance. Leave motd blank to keep the normal server-list MOTD.
Warps & Spawn
warps:
countdown-seconds: 3
countdown-style: actionbar
spawn:
warmup-seconds: 3
warmup-style: actionbar
void-safety-net: true # falling off a floating arena teleports back to spawn instead of killing you
spawnpoint: # first-join-only location, separate from /setspawn
world: ""
The warp menu layout lives in menus/players/warps.yml — action types [warp], [player], [console], [message], [sound], [close].
TPS bar
tpsbar:
text: "B3D91ᴛᴘꜱ: FFFFFF{1m} | B3D91ᴍꜱᴘᴛ: FFFFFF{mspt} | B3D91ᴘɪɴɢ: FFFFFF{ping}ᴍꜱ"
{1m}/{5m}/{15m} are the 1/5/15-minute TPS averages (auto-colored green/yellow/red), {mspt} is the current average tick time, and {ping} is the viewing player's own connection ping — fully admin-composable.
Weather
weather:
extra-lightning:
enabled: true
interval-seconds: 4
chance: 0.6
max-distance: 40
real: true # true = actual lightning (can hurt mobs/start fires) | false = visual+sound only
/weather snow just sets rain like /weather rain does — vanilla itself only ever renders that as snow in cold-enough biomes, no server-side biome forcing.
bStats & update checker
bstats:
enabled: true
plugin-id: 0 # 0 = disabled until you set a real id, see bstats.org/what-is-my-plugin-id
update-checker:
enabled: true
repo: "alpha-m19/alphacore-plugin"
notify-ops-on-join: true
Reload vs. restart
/awild reload re-reads config.yml, the theme, every lang/message file, and every PvP-layer manager (region, custom items, kill rewards, chat color, clearlag, kits, shop, scoreboard). It does not reload compiled Java — anything changed by updating the plugin jar itself needs a full server restart.
