BlazeBans/Configuration

settings.yml

Every key in the main configuration file, in the order it appears. Reload with `/blazebans reload settings.yml`. The one exception is `commands:`, which needs a restart.

meta

yaml
meta:
  version: "1.0.7"
  lang: "en_us.yml"
KeyDefaultPurpose
versionshipped valueHow BlazeBans tracks which new settings you have been offered. Do not edit
langen_us.ymlWhich file in messages/ to load. Filename only, not a path

Shipped languages: en_us.yml, de_de.yml, es_es.yml, fr_fr.yml, ja_jp.yml, ru_ru.yml. Missing keys in any of them fall back to English.

hooks

yaml
hooks:
  api: true
  skript: true
KeyDefaultPurpose
apitrueExposes the Java API through BlazeBansProvider. Turning it off breaks addons and any plugin integrating with BlazeBans
skripttrueRegisters BlazeBans syntax with Skript. Ignored when Skript is not installed

placeholder-api

yaml
placeholder-api:
  values:
    "true": "true"
    "false": "false"
    none: ""
    permanent: "Permanent"

The text BlazeBans placeholders return for booleans, unavailable values, and permanent durations. Change these to match your scoreboard's style: "Yes" and "No" instead of true and false, for example. See PlaceholderAPI.

lockdown and chat-lockdown

yaml
lockdown:
  persist-through-restarts: true

chat-lockdown:
  persist-through-restarts: true

Whether the lockdown state survives a restart. On by default, so a server restarting during an incident comes back locked. See Lockdown.

punishments

yaml
punishments:
  notify-victim: true
  alert-staff-muted-chat: true
  default-reason: "No reason provided."
  default-revoke-reason: "Revoked"
  prevent-self-punishment: true
  appeal-url: "https://example.com/appeal"
KeyDefaultPurpose
notify-victimtrueTell the player directly when they are muted or warned
alert-staff-muted-chattrueShow staff when a muted player tries to chat
default-reasonNo reason provided.Used when staff give no reason
default-revoke-reasonRevokedUsed when staff give no unban or unmute reason
prevent-self-punishmenttrueStop staff punishing their own account
appeal-urlexample URLFills {appeal_url} on ban screens and mute messages

appeal-url is the one to change first. The default reads https://example.com/appeal, and a banned player looking at that has nowhere to go.

punishments.ban-evasion

yaml
punishments:
  ban-evasion:
    enabled: false
    duration: "permanent"
    reason: "Ban evasion"
    silent: false

Automatically ban a joining account when another account on its stored IP is banned. Needs privacy.store-ip-addresses: true. Off by default, and worth reading Ban evasion before turning on.

updates

yaml
updates:
  enabled: true
  notify-in-game: true
  interval-hours: 12
KeyDefaultPurpose
enabledtrueCheck for new releases on startup and periodically
notify-in-gametrueTell holders of blazebans.update.notify or blazebans.admin when they join
interval-hours12Hours between repeat checks. 0 checks only on startup

Only the plugin name and version are sent. No server or player data leaves the machine.

async-progress

yaml
async-progress:
  enabled: true
  interval-ticks: 4
  width: 12
  pulse-width: 3
  symbol: "■"

An animated action-bar indicator shown while a command waits on the database. enabled: false removes it entirely; the rest control the animation's speed, length, and character.

experimental.proof-requirements

yaml
experimental:
  proof-requirements:
    enabled: false

Master switch for template proof-required fields. Off by default because it can block a punishment during an urgent situation. See Proof.

muted-commands

yaml
muted-commands:
  enabled: true
  bypass-permission: "blazebans.mute.commands.bypass"
  alert-staff: true
  discord-webhook: true
  blocked:
    - "msg"
    - "tell"
    - "essentials:msg"

Stops muted players routing around a mute through private messages. The shipped blocked list covers vanilla and EssentialsX; anything else on your server needs adding. See Mute enforcement.

commands

yaml
commands:
  names:
    ban: "ban"
    mute: "mute"
    blazebans:
      command: "blazebans"
      reload: "reload"
      import:
        command: "import"
        advancedban: "advancedban"
  aliases:
    ban:
      - "tempban"
    blazebans:
      command:
        - "bbans"
        - "bb"

Rename any command or change its aliases. Subcommands nest under their parent, and aliases follows the same shape as names.

Use this when BlazeBans collides with another plugin, or when your server has its own naming convention.

exempt

yaml
exempt:
  players: []
  luckperms-groups: []
KeyPurpose
playersNames that cannot be punished by any command, including from console
luckperms-groupsLuckPerms groups whose members cannot be punished. Console bypasses this

exempt.players is the only exemption console respects. That is deliberate: it is the way to protect an account absolutely.

Leave luckperms-groups empty if you want higher-ranked staff to be able to punish lower-ranked staff, and use staff-hierarchy for that instead. See Hierarchy and exemptions.

staff-hierarchy

yaml
staff-hierarchy:
  group-weights:
    helper: 10
    moderator: 50
    admin: 100
    owner: 1000

Map LuckPerms groups to weights from 0 to 1000. A staff member can punish someone only when their own weight is at or above the target's.

BlazeBans reads primary and inherited groups from LuckPerms directly. blazebans.weight.<number> permissions also work, and the highest value found wins. Console ignores hierarchy entirely.

duration-limits

yaml
duration-limits:
  tiers:
    - permission: "blazebans.duration.junior"
      max: "7d"
    - permission: "blazebans.duration.moderator"
      max: "30d"
    - permission: "blazebans.duration.admin"
      max: "permanent"

Cap how long each rank can punish for. The highest matching tier wins, so holding several nodes gives you the longest of them. Use permanent or 0s for no cap.

Staff holding none of the nodes are unlimited, which is why these are worth setting before handing out punishment permissions. See Duration limits.

privacy

yaml
privacy:
  store-ip-addresses: false
  hash-ip-addresses: true
  show-ip-to-staff: false
  alts-blacklist: []
KeyDefaultPurpose
store-ip-addressesfalseMaster switch for IP storage. Alt lookups, IP punishments, and evasion detection all need it
hash-ip-addressestrueStore a scrambled form of the address instead of the address itself. Alt matching works identically; leave it on
show-ip-to-stafffalseWhether holders of blazebans.see.ips see real addresses
alts-blacklistemptyNames excluded from alt lookups in both directions

Holders of blazebans.alts.exempt are excluded automatically without a list entry. See Alts and IP tools.

server

yaml
server:
  id: "default"
  display-name: "This Server"
  scope: "server"
KeyPurpose
idUnique identifier stored on every punishment. Lowercased, with anything outside a-z 0-9 . - _ replaced by a dash
display-nameFriendly name shown in messages
scopeDefault scope for new punishments: server or global

Decide id before staff start punishing. Renaming it later orphans every record stored against the old value. See Servers and scope.