Frostyh Plugins

Plugins / Scripted SMP Essentials

Scripted SMP Essentials

Run scripted series and movie-style shoots: the crew holds every tool, the cast sees plain vanilla.

Get Scripted SMP Essentials

$15.99 on BuiltByBit, list price on 16 October 2026. BuiltByBit sales can lower it, the listing shows the current price.

Buy on BuiltByBit

Also in Complete Collection: Every Plugin.

Try it live

Scripted SMP Essentials runs on a public demo server, set up so you can use it yourself. Join, try it, then decide.

Address: try.zeropvp.xyz:25570 (Java Edition 1.21.11)

In Minecraft: Multiplayer, Add Server, paste the address, Join. Type /demo go scenesmp to land at its booth, or right-click the compass and pick it. The world resets every night.

Overview

Scripted Essential Series

The behind-the-scenes toolkit for scripted Minecraft series and movie-style videos

You are filming a scripted long-form series. Fifty viewers joined from your queue to act in it. On screen it has to look like a huge, ordinary survival world: no plugin menus, no chat spam, no titles, nobody teleporting themselves around. Behind the camera you need to let the right people in, split them into factions, hand each side its fight kit, put everybody on their marks, call action, and reset for the next take.

Scripted Essential Series is that second half. The crew (you, your director, your staff) gets every tool. The actors get plain vanilla Minecraft. They have no plugin commands at all, and nothing the crew does to them is announced.

Plugin name in /plugins
SceneSMP
Latest version
1.4.0
Server
Paper or Purpur, Java 21
BuiltByBit
Scripted SMP Essentials on BuiltByBit
What changed in 1.4.0

This plugin is for creators who film scripted series and movie-style videos with a big cast. 1.3.0 added survival-server conveniences that do not belong in that, so 1.4.0 takes them out and puts the work into the crew's tools instead. Actors now see plain vanilla Minecraft; the crew holds everything.

Removed (they let actors move themselves or showed them plugin screens)

If you used any of these, a dedicated plugin does them better. Their old data files stay in plugins/SceneSMP/data and nothing reads them; the console names them on the first start.

Actors see vanilla

New for the crew

Updating

  • Teleport requests: /tpa, /tpahere, /tpaccept, /tpdeny, /tpcancel
  • /back, homes (/sethome, /home, /delhome, /homes) and /rtp
  • Private messages (/msg, /reply, /msgtoggle, /socialspy). Minecraft's own /msg answers again.
  • The rules board, /rules and the /discord and /store link commands
  • The alt finder (/alts) and the season start (/season)
  • SceneSMP no longer takes Minecraft's /tp or /team. Use /tp as usual; groups are now /group.
  • Actors have no SceneSMP command at all. Every command needs the crew permission, so an actor gets Minecraft's own "Unknown or incomplete command" and sees nothing in tab completion. Operators and anybody with scenesmp.crew are crew.
  • Nothing the crew does to an actor is announced: kits, holds, teleports, heals, mutes and restores happen silently (actors.notify: true brings the lines back).
  • New defaults, all off or crew only: custom death messages, death lightning, elimination announcements, the REC title, half-heart sounds and messages, war title cards and chat lines, sky strike warnings, item-clear warnings, chat lock and server lock notices, dimension and area messages, group colours and tab prefixes.
  • Join and leave messages are Minecraft's own unless you write your own.
  • A blocked command answers like Minecraft does.
  • Scene (/scene): action with a countdown only the crew sees, actors held on their marks during the count, cut, hold and release any selection. Live scene rules for actors: PvP (on, off, only between groups), damage, hunger, building, keep inventory, death messages, what a death does (normal, spectator, out), respawn place and kit, chat that reaches only the crew, join messages, the locator bar, coordinates, advancement lines. Time and weather with locks. Crew chat with a # prefix.
  • Actor intake (/intake): while closed, everybody who tries to join gets Minecraft's own not-whitelisted screen and goes on a waiting list in order. Admit the next 10, a pasted list of names (straight from your Discord stage), or open the doors. A cap on actors online, and new actors can be put in a group on arrival.
  • Groups (/group): add a whole selection at once, split actors evenly into groups, PvP and friendly fire per group, a respawn kit and place per group. Invisible to actors by default.
  • Kits: saved slot for slot with armour, off hand and potion effects, handed to a group or the whole cast in one line. The actor's own things are kept aside and come back with /kit restore; /kit strip empties them for a scene.
  • Places: /warp <place> <who> spread <blocks> stands a group in a ring around a mark.
  • One way to say who: actors, g:red, r:20 (near you), random:10, unassigned or names, in every command that acts on players.
  • Crew notices can be switched off per person (/scene notices off), for the account that records.
  • Optional: vanish the crew from actors the moment they join.
  • New panel screens: Scene, Scene rules, Cast, Intake and Groups.
  • Your config.yml is updated on the first start: settings of the removed systems are taken out, settings still on their old default move to the new defaults, and every value you changed yourself is kept.
  • Presets are now shoot, story, fight and everything.
  • Permissions that were open to everybody (kit, warp, spawn, nick, hat) are crew only now.

Features

Why creators pick it

Getting the cast in

Groups, kits and marks

Calling the scene

Story tools

Works with

New in v1.6.0: refocused on filming

This update takes out what did not belong in a filming toolkit and builds the crew side out instead.

FAQ

What is this for?

Filming scripted series and movie-style videos with many actors, usually viewers who join for the shoot. It is not a survival server essentials plugin: there are no homes, teleport requests or player commands, on purpose.

Will my actors notice the plugin?

Not unless you want them to. They have no commands from it, and by default nothing it does is announced to them.

Which servers does it run on?

Paper or Purpur 1.21.11 or a newer 1.21.x, with Java 21.

Do I need other plugins?

No. Simple Voice Chat and PlaceholderAPI are optional.

Can it run next to another essentials plugin?

Yes. If both have a command with the same name, the Commands screen decides which plugin answers it.

Is there DRM or a licence key?

No. There is nothing to activate and no licence server to reach, and the code is not obfuscated.

Can I try it before I buy?

Yes. This page has a test server with the plugin installed.

Updates

Every update is free, new Minecraft versions included. The latest version is v1.6.0 (the plugin itself reports 1.4.0).

Also by Frostyh

If this plugin helps your shoots, a short review on this page would mean a lot. Thank you!

Installation

Requirements

Server software
Paper, or a Paper fork such as Purpur. Spigot and CraftBukkit are not supported: the plugin uses Paper-only APIs.
Minecraft version
plugin.yml api-version 1.21; built against Paper API 1.21.11
Java
21 or newer
Required plugins
none
Optional plugins
voicechat, PlaceholderAPI

Steps

  1. Download SceneSMP.jar from BuiltByBit. There is no licence key to enter.
  2. Stop the server and put the jar into the plugins folder.
  3. Start the server. The plugin creates plugins/SceneSMP/config.yml with the defaults shown under Configuration.
  4. Edit config.yml to suit your server.
  5. Apply the changes with /scenesmp reload, or restart the server.

Switching a system on or off under modules: in config.yml needs a restart, as the setup guide says.

Setup guide

  1. Drop the jar into /plugins and restart. Join as an operator: the setup screen offers the Shoot, Story series and Fight scenes presets.
  2. Stand on your marks and save them as places. Fill your inventory with each side's gear and save it as a kit.
  3. Create your groups and give each one a respawn kit and place if the fight needs it.
  4. Close intake and open your queue. Admit actors in batches; split them into groups as they arrive.
  5. Set the scene rules, send everybody to their places, and call action.

Commands

From plugin.yml. "Not set" in the permission column means plugin.yml attaches no permission to the command itself; the nodes the plugin checks are listed under Permissions.

CommandAliasesUsageDescriptionPermission
/scenesmp/ssmp/scenesmp [menu|setup|modules|module <name> [on|off]|preset <name>|commands|command <name> [scenesmp|other|auto]|reload]The crew panel, setup, module switches, command owners and reload.scenesmp.panel
/scenenone/scene [status|action [seconds] [name]|cut|hold [who]|release [who]|set <rule> <value>|reset|time <t> [lock]|weather <w> [lock]|notices|crew <text>]Scene cues and rules: action, cut, hold, release, set, time, weather, crew chat.scenesmp.scene
/intakenone/intake [status|open|close|cap <n|off>|next <n>|admit <names>|remove <names>|import [file]|list|admitted|clear|autogroup <group|off>]Actor intake: who gets onto the set.scenesmp.intake
/group/groups/group create|delete|add <group> <who>|remove <who>|split <a,b> <who>|clear|list|info|pvp|ff|kit|place|color|prefixGroups for scenes.scenesmp.team
/npcnone/npc create|remove|cmd|skin|rename|tphere|listCustom NPCs.scenesmp.npc
/kit/kits/kit <name> | create <name> | give <who> <name> | giveall <name> | strip <who> | restore <who>Kits for scenes.scenesmp.kit
/warp/place/warp <place> [who] [spread <blocks>]Send yourself or a selection to a place.scenesmp.warp
/setwarp/setplace/setwarp <name>Set a place where you stand.scenesmp.warp.admin
/delwarp/delplace/delwarp <name>Delete a place.scenesmp.warp.admin
/warps/places/warpsList places.scenesmp.warp
/spawnnone/spawn [who] [spread <blocks>]Send yourself or a selection to spawn.scenesmp.spawn
/setspawnnone/setspawnSet spawn.scenesmp.warp.admin
/nick/nickname/nick <name|off> [player] | random <player,player|*> | randomall | list | resetallNicknames and disguises.scenesmp.nick
/itemmaker/im, /customitem/itemmaker <sub>Edit and save custom items.scenesmp.itemmaker
/revivenone/revive <player>Bring an eliminated actor back.scenesmp.death.admin
/deathbannone/deathban on|off|list|addEliminations.scenesmp.death.admin
/rollbacknone/rollback <player> [n] | /rollback list|deaths <player>Restore an inventory snapshot.scenesmp.rollback
/halfheartnone/halfheart <player>|everyoneHalf-heart protection.scenesmp.halfheart
/invseenone/invsee <player>Open a player's inventory.scenesmp.invsee
/endersee/echest/endersee <player>Open a player's ender chest.scenesmp.invsee
/filternone/filter add|remove|list|modeChat and sign filter.scenesmp.filter
/mutenone/mute <player> [time] [reason]Mute a player.scenesmp.mute
/unmutenone/unmute <player>Unmute a player.scenesmp.mute
/mutechat/chatlock/mutechatLock or unlock chat.scenesmp.mute
/mutesnone/mutesList mutes.scenesmp.mute
/recording/rec/recording start|stop|statusRecording session.scenesmp.recording
/fakebordernone/fakeborder <player|all> <size|reset>Client-side world border.scenesmp.fakeborder
/lock/serverlock/lock [message]Lock the server.scenesmp.lock
/unlocknone/unlockUnlock the server.scenesmp.lock
/dimlocknone/dimlock nether|end [on|off]Lock a dimension.scenesmp.dimlock
/cmdblocknone/cmdblock add|remove|listBlock commands.scenesmp.cmdblock
/villagernone/villager create|trade|removeShop villagers.scenesmp.villager
/war/wars/war status | declare <a> <b> [kills] [hours] | accept | peace <a> <b> | surrender <group> | ban on|off | historyWars between groups.scenesmp.war
/orbitalnone/orbital <player|here> [type] [count] [radius]Sky strike.scenesmp.orbital
/vcmutenone/vcmute <player>Mute a player's voice chat.scenesmp.vcmute
/vcunmutenone/vcunmute <player>Unmute voice chat.scenesmp.vcmute
/vcmutesnone/vcmutesVoice mutes.scenesmp.vcmute
/vcmuteallnone/vcmuteallMute everyone's voice chat.scenesmp.vcmute
/perm/perms/perm user|group ...Permissions.scenesmp.perm
/areanone/area create|delete|flag|list|info|hereProtected areas.scenesmp.area
/clearitems/clearlag/clearitemsClear dropped items.scenesmp.clearitems
/joinmessagesnone/joinmessages [on|off]Show or hide join and leave messages.scenesmp.joinmessages
/healnone/heal [who]Heal.scenesmp.staff.heal
/feednone/feed [who]Feed.scenesmp.staff.feed
/flynone/fly [who]Toggle flight.scenesmp.staff.fly
/godnone/god [who]Toggle god mode.scenesmp.staff.god
/gm/gamemode2/gm c|s|a|sp [who]Game mode.scenesmp.staff.gm
/tpherenone/tphere <who>Bring a selection to you.scenesmp.staff.tphere
/tpallnone/tpallBring every actor to you.scenesmp.staff.tpall
/vanish/v/vanish [who]Vanish.scenesmp.staff.vanish
/freezenone/freeze <who> [on|off]Hold a selection in place.scenesmp.staff.freeze
/broadcast/bc/broadcast <message>A line to everybody, actors included.scenesmp.staff.broadcast
/clearchat/cc/clearchatClear chat.scenesmp.staff.clearchat
/headnone/head [player]Get a player head.scenesmp.staff.head
/hatnone/hatWear the item in your hand.scenesmp.staff.hat
/cmdfeedbacknone/cmdfeedback [on|off]Command feedback on or off.scenesmp.staff.cmdfeedback

Note from plugin.yml: otp, repair, gmc, gms, gma and gmsp are not declared here on purpose: a command in plugin.yml takes its name for as long as the plugin is installed, even while its module is off, and these short names are common in other plugins. The plugin registers them itself while the staff module is on (SceneSMPPlugin.RUNTIME), with the same crew-only permission.

Subcommands in detail

/scenesmp                          the crew panel · setup · modules · module <name> [on|off] · preset <name> · reload
/scene action [seconds] [name] · cut · hold [who] · release [who] · set <rule> <value> · reset
/scene time <day|noon|night|...> [lock] · weather <clear|rain|thunder> [lock] · notices [on|off] · crew <text>
/intake open · close · next <n> · admit <names> · cap <n|off> · list · import · autogroup <group>
/group create <name> · add <group> <who> · split <a,b> <who> · pvp · ff · kit · place · info · list
/kit create <name> · give <who> <kit> · strip <who> · restore <who> · <name>
/warp <place> [who] [spread <blocks>] · /setwarp · /delwarp · /warps · /spawn [who] · /setspawn
/heal /feed /fly /god /gm /vanish /freeze [who] · /tphere <who> · /tpall · /broadcast · /clearchat
/npc · /nick · /itemmaker · /revive · /deathban · /rollback · /halfheart · /invsee · /endersee
/recording · /fakeborder · /lock · /unlock · /dimlock · /cmdblock · /area · /war · /orbital
/mute · /unmute · /mutechat · /filter · /vcmute · /villager · /perm · /clearitems · /joinmessages

Who can be: actors, everyone, crew, g:<group>, r:<blocks>, random:<n>, unassigned, me, or names separated by commas.

Permissions

From plugin.yml.

NodeDefaultDescriptionChildren
scenesmp.crewoperatorsThe crew. Every SceneSMP tool, the panel and the crew notices. Everybody without it is an actor.scenesmp.*
scenesmp.*operatorsEvery SceneSMP tool.scenesmp.panel, scenesmp.admin, scenesmp.scene, scenesmp.intake, scenesmp.intake.bypass, scenesmp.team, scenesmp.npc, scenesmp.kit, scenesmp.kit.admin, scenesmp.kit.bypass, scenesmp.warp, scenesmp.warp.admin, scenesmp.spawn, scenesmp.nick, scenesmp.nick.color, scenesmp.nick.others, scenesmp.itemmaker, scenesmp.death.admin, scenesmp.rollback, scenesmp.halfheart, scenesmp.invsee, scenesmp.invsee.offline-edit, scenesmp.filter, scenesmp.filter.bypass, scenesmp.mute, scenesmp.mutechat.bypass, scenesmp.recording, scenesmp.fakeborder, scenesmp.lock, scenesmp.lock.bypass, scenesmp.dimlock, scenesmp.dimlock.bypass, scenesmp.cmdblock, scenesmp.cmdblock.bypass, scenesmp.villager, scenesmp.war, scenesmp.orbital, scenesmp.vcmute, scenesmp.perm, scenesmp.area, scenesmp.area.bypass, scenesmp.clearitems, scenesmp.joinmessages, scenesmp.vanish.see, scenesmp.clearchat.bypass, scenesmp.staff.others, scenesmp.staff.heal, scenesmp.staff.feed, scenesmp.staff.fly, scenesmp.staff.god, scenesmp.staff.gm, scenesmp.staff.tphere, scenesmp.staff.tpall, scenesmp.staff.vanish, scenesmp.staff.freeze, scenesmp.staff.broadcast, scenesmp.staff.clearchat, scenesmp.staff.head, scenesmp.staff.hat, scenesmp.staff.cmdfeedback, scenesmp.staff.otp, scenesmp.staff.repair
scenesmp.paneloperatorsno description in plugin.ymlnone
scenesmp.adminoperatorsModule switches, presets, command owners and reload.none
scenesmp.sceneoperatorsPermission for /scene.none
scenesmp.intakeoperatorsPermission for /intake.none
scenesmp.intake.bypassoperatorsAlways let in, whatever intake says. The crew always is.none
scenesmp.teamoperatorsno description in plugin.ymlnone
scenesmp.npcoperatorsPermission for /npc.none
scenesmp.kitoperatorsPermission for /kit.none
scenesmp.kit.adminoperatorsno description in plugin.ymlnone
scenesmp.kit.bypassoperatorsno description in plugin.ymlnone
scenesmp.warpoperatorsPermission for /warp.none
scenesmp.warp.adminoperatorsno description in plugin.ymlnone
scenesmp.spawnoperatorsPermission for /spawn.none
scenesmp.nickoperatorsPermission for /nick.none
scenesmp.nick.coloroperatorsno description in plugin.ymlnone
scenesmp.nick.othersoperatorsno description in plugin.ymlnone
scenesmp.itemmakeroperatorsPermission for /itemmaker.none
scenesmp.death.adminoperatorsno description in plugin.ymlnone
scenesmp.death.exemptnobody until grantednever eliminatednone
scenesmp.rollbackoperatorsPermission for /rollback.none
scenesmp.halfheartoperatorsPermission for /halfheart.none
scenesmp.halfheart.protectednobody until grantedcannot die (half-heart protection)none
scenesmp.invseeoperatorsPermission for /invsee.none
scenesmp.invsee.offline-editoperatorsChange an offline player's inventory or ender chest (needs invsee.offline-edit true).none
scenesmp.filteroperatorsPermission for /filter.none
scenesmp.filter.bypassoperatorsno description in plugin.ymlnone
scenesmp.muteoperatorsPermission for /mute.none
scenesmp.mutechat.bypassoperatorsno description in plugin.ymlnone
scenesmp.recordingoperatorsPermission for /recording.none
scenesmp.fakeborderoperatorsPermission for /fakeborder.none
scenesmp.lockoperatorsPermission for /lock.none
scenesmp.lock.bypassoperatorsno description in plugin.ymlnone
scenesmp.dimlockoperatorsPermission for /dimlock.none
scenesmp.dimlock.bypassoperatorsno description in plugin.ymlnone
scenesmp.cmdblockoperatorsPermission for /cmdblock.none
scenesmp.cmdblock.bypassoperatorsno description in plugin.ymlnone
scenesmp.villageroperatorsPermission for /villager.none
scenesmp.waroperatorsPermission for /war.none
scenesmp.orbitaloperatorsPermission for /orbital.none
scenesmp.vcmuteoperatorsPermission for /vcmute.none
scenesmp.permoperatorsPermission for /perm.none
scenesmp.areaoperatorsPermission for /area.none
scenesmp.area.bypassoperatorsno description in plugin.ymlnone
scenesmp.clearitemsoperatorsPermission for /clearitems.none
scenesmp.joinmessagesoperatorsPermission for /joinmessages.none
scenesmp.silentjoinnobody until grantedno description in plugin.ymlnone
scenesmp.vanish.seeoperatorsno description in plugin.ymlnone
scenesmp.clearchat.bypassoperatorsno description in plugin.ymlnone
scenesmp.staff.othersoperatorsno description in plugin.ymlnone
scenesmp.staff.healoperatorsPermission for /heal.none
scenesmp.staff.feedoperatorsPermission for /feed.none
scenesmp.staff.flyoperatorsPermission for /fly.none
scenesmp.staff.godoperatorsPermission for /god.none
scenesmp.staff.gmoperatorsPermission for /gm.none
scenesmp.staff.tphereoperatorsPermission for /tphere.none
scenesmp.staff.tpalloperatorsPermission for /tpall.none
scenesmp.staff.vanishoperatorsPermission for /vanish.none
scenesmp.staff.freezeoperatorsPermission for /freeze.none
scenesmp.staff.broadcastoperatorsPermission for /broadcast.none
scenesmp.staff.clearchatoperatorsPermission for /clearchat.none
scenesmp.staff.headoperatorsPermission for /head.none
scenesmp.staff.hatoperatorsPermission for /hat.none
scenesmp.staff.cmdfeedbackoperatorsPermission for /cmdfeedback.none
scenesmp.staff.otpoperatorsno description in plugin.ymlnone
scenesmp.staff.repairoperatorsno description in plugin.ymlnone

The store page also describes these groups and patterns:

The full list is in plugin.yml and in the documentation.

Placeholders

Registered with PlaceholderAPI under the identifier scenesmp (SceneSMPPlaceholders.java). PlaceholderAPI must be installed for these to work.

PlaceholderReturns
%scenesmp_nick%nickname without colours, or the real name
%scenesmp_nick_formatted%nickname with its colours, as section-sign codes
%scenesmp_real%the real name
%scenesmp_team%team name, empty without one
%scenesmp_team_color%the team's colour name, e.g. red
%scenesmp_team_prefix%the team's tab prefix, with colours
%scenesmp_war%"a vs b" while the player's team is at war, else empty
%scenesmp_war_enemy%the team they are fighting
%scenesmp_war_score%"3 - 1", own team first
%scenesmp_muted%yes or no
%scenesmp_mute_left%time left on the mute, "permanent", or empty
%scenesmp_eliminated%yes or no (death ban)
%scenesmp_eliminated_count%how many players are out
%scenesmp_recording%yes or no
%scenesmp_recording_name%the running session's name
%scenesmp_vanished%yes or no
%scenesmp_frozen%yes or no
%scenesmp_halfheart%yes or no (protected by half-heart mode)
%scenesmp_modules_on%how many systems are switched on
%scenesmp_crew%yes or no: crew rather than an actor
%scenesmp_held%yes or no: held on their mark
%scenesmp_admitted%yes or no: admitted by actor intake
%scenesmp_scene_rolling%yes or no: between action and cut
%scenesmp_scene_name%the scene's name
%scenesmp_actors_online%actors online (crew not counted)
%scenesmp_waiting%names on the intake waiting list

Configuration reference

The default files as they ship in the jar, with their comments. The plugin writes them to plugins/SceneSMP/ on first start.

config.yml

Top-level keys:

KeyDefaultComment above it
config-version2Written by the plugin. Leave it alone: it tells the next version how to update this file.
paneltrueBare /scenesmp opens the crew panel.
setup-screentrueThe setup screen: the first operator who joins a server where every system is still off sees it once, with a preset per kind of shoot. /scenesmp setup opens it any time. false never shows it.
actorssection, 1 keyActors and what they are told.
modulessection, 28 keysnone
presetssection, 4 keysPresets: /scenesmp preset <name>, or one click on the setup screen. A preset makes the running set exactly its list: those systems on, every other one off. Edit the lists or add your own.
commandssection, 2 keysWho answers each command, for servers that also run EssentialsX or another plugin with the same command names (/kit, /warp, /spawn, /heal...). Put a command under release and SceneSMP gives the name up, so the other plugin answers it; under take and...
scenesection, 10 keysnone
intakesection, 5 keysnone
npcsection, 1 keynone
kitssection, 4 keysnone
warpssection, 2 keysnone
teamssection, 2 keysnone
nicknamessection, 8 keysnone
deathsection, 8 keysnone
rollbacksection, 7 keysnone
halfheartsection, 6 keysnone
invseesection, 2 keysnone
filtersection, 4 keysnone
mutessection, 4 keysnone
recordingsection, 7 keysnone
fakebordersection, 1 keynone
serverlocksection, 2 keysnone
dimlocksection, 2 keysnone
cmdblocksection, 2 keysnone
villagerssection, 2 keysnone
warssection, 9 keysWars between groups, on the director's cue. A war starts when you say and ends when you say.
orbitalsection, 14 keysnone
permissionssection, 1 keynone
autoclearsection, 4 keysnone
joinquitsection, 7 keysnone
staffsection, 2 keysnone
themesection, 11 keysnone
messagessection, 717 keysnone
review-remindertrueOne thank-you line with the BuiltByBit review link: once in the console after install and once in chat for the first operator who joins. It never repeats and sends nothing anywhere. false turns it off.
plugins/SceneSMP/config.yml
# SceneSMP (Scripted Essential Series): the behind-the-scenes toolkit for filming scripted series.
#
# Two kinds of people are on your server:
#   crew    operators, or anybody with scenesmp.crew. They hold every tool, see the panel and hear
#           the plugin's notices.
#   actors  everybody else, usually viewers you let in for the shoot. They have no SceneSMP command
#           at all and see plain vanilla Minecraft: no announcements, no titles, no extra HUD, unless
#           you decide otherwise for a scene.
#
# Every system ships switched off. Turn on what the shoot needs on the Modules screen of /scenesmp,
# with /scenesmp module <name> on, or with a preset. Switches apply at once, no restart.
# Data each system keeps (kits, places, groups...) lives in plugins/SceneSMP/data/<system>.yml.
# All text is MiniMessage: <red>, <bold>, <#ff9900>...
#
# Wherever a setting takes an audience, the choices are:
#   crew      the crew only (the default for anything an actor should not see)
#   everyone  actors too
#   none      nobody (only the console log)

# Written by the plugin. Leave it alone: it tells the next version how to update this file.
config-version: 2

# Bare /scenesmp opens the crew panel.
panel: true

# The setup screen: the first operator who joins a server where every system is still off sees it
# once, with a preset per kind of shoot. /scenesmp setup opens it any time. false never shows it.
setup-screen: true

# Actors and what they are told.
actors:
  # Something the crew does to an actor (a kit, a hold, a teleport, a heal, a mute) happens without a
  # word to them, the way a vanilla world run by command blocks would do it. true tells them in chat.
  notify: false

modules:
  scene: false         # /scene          cues (action, cut, hold), scene rules, time and weather, crew chat
  intake: false        # /intake         who gets onto the set: waiting list, admit in batches, cap
  teams: false         # /group          groups for scenes: bulk assign, split, PvP, respawn kit and place
  kits: false          # /kit            fight kits from your inventory, give to a group, strip and restore
  warps: false         # /warp           places on the set; send a selection there, spread in a ring
  staff: false         # /heal /freeze   crew basics: heal, feed, fly, god, game modes, bring, vanish, freeze
  recording: false     # /recording      recording mode: a quiet server while the cameras roll
  death: false         # /revive         eliminations (out until revived), optional death effects
  halfheart: false     # /halfheart      chosen actors cannot die: a fatal hit leaves half a heart
  rollback: false      # /rollback       inventory snapshots on death, quit and a timer
  npc: false           # /npc            NPCs (player model, any skin, commands or lines on click)
  nicknames: false     # /nick           names and faces for characters, random disguises
  itemmaker: false     # /itemmaker      props: edit the item in your hand, save it, give it out
  invsee: false        # /invsee         open anybody's inventory or ender chest
  filter: false        # /filter         blocked words in chat and on signs
  mutes: false         # /mute           chat mutes, chat lock
  fakeborder: false    # /fakeborder     a world border only chosen players see
  serverlock: false    # /lock           lock the server to the crew and an allow list
  dimlock: false       # /dimlock        close the Nether or the End
  cmdblock: false      # /cmdblock       commands actors may not run
  villagers: false     # /villager       shop villagers with your own trades
  wars: false          # /war            wars between groups on your cue
  orbital: false       # /orbital        a strike from the sky
  voice: false         # /vcmute         Simple Voice Chat mutes (needs the voicechat plugin)
  permissions: false   # /perm           tiny permission system; leave off if you run LuckPerms
  areas: false         # /area           protected boxes: build, pvp, enter, mobs flags
  autoclear: false     # /clearitems     dropped-item clear on a timer
  joinquit: false      # /joinmessages   your own join and leave messages, or none

# Presets: /scenesmp preset <name>, or one click on the setup screen. A preset makes the running
# set exactly its list: those systems on, every other one off. Edit the lists or add your own.
presets:
  shoot: [scene, intake, teams, kits, warps, staff, recording, death, rollback, invsee, mutes, serverlock, cmdblock]
  story: [scene, intake, teams, kits, warps, staff, recording, death, halfheart, rollback, npc, nicknames, itemmaker, invsee, mutes, fakeborder, serverlock, dimlock, cmdblock, wars, orbital, areas]
  fight: [scene, intake, teams, kits, warps, staff, recording, death, rollback, invsee, mutes, wars, areas]
  everything: [scene, intake, teams, kits, warps, staff, recording, death, halfheart, rollback, npc, nicknames, itemmaker, invsee, filter, mutes, fakeborder, serverlock, dimlock, cmdblock, villagers, wars, orbital, voice, areas, autoclear, joinquit]

# Who answers each command, for servers that also run EssentialsX or another plugin with the same
# command names (/kit, /warp, /spawn, /heal...). Put a command under release and SceneSMP gives the
# name up, so the other plugin answers it; under take and SceneSMP answers it even when another
# plugin has it. The Commands screen of /scenesmp does the same with a click. Minecraft's own /tp,
# /team and /msg are never taken over.
commands:
  release: []
  take: []

# ------------------------------------------------------------------------------------------------
# SCENE: cues and the rules of the scene being filmed. Every rule starts at plain vanilla.
# Change them live with /scene set <rule> <value> or on the panel; these are the values after
# /scene reset.
# ------------------------------------------------------------------------------------------------
scene:
  countdown-seconds: 3               # /scene action counts this long before "action"
  hold-during-countdown: true        # actors cannot walk off their marks during the count
  countdown-to-actors: false         # true: actors see the numbers as a title too. Crew see it on the action bar.
  hold-on-cut: false                 # /scene cut holds every actor where they stand
  sounds: true                       # a tick and a ping for the crew on each cue (never for actors)
  spread-radius: 5                   # the ring the panel's Spread buttons use, in blocks
  crew-chat-prefix: "#"              # a crew line starting with this goes to the crew only. "" turns it off.
  commands-at-action: []             # console commands on "action", e.g. "fakeborder all 200"; {scene} is the name
  commands-at-cut: []
  rules:
    pvp: "on"                        # on | off | groups (only between different groups)
    damage: "on"                     # off: actors take no damage (the void and /kill still work)
    hunger: "on"                     # off: actors never get hungry
    build: "on"                      # off: actors cannot break or place blocks
    keep-inventory: "off"            # on: actors keep everything when they die
    death-messages: shown            # shown | crew | hidden
    on-death: normal                 # normal | spectator (respawn as a spectator where they died) | out (eliminated, needs the death system)
    chat: open                       # open | crew (an actor's chat reaches the crew and themself only; nothing tells them)
    join-messages: shown             # shown | crew | hidden: "joined the game" lines of actors
    respawn-place: ""                # a place actors respawn at, unless their group has its own
    respawn-kit: ""                  # a kit actors respawn with, unless their group has its own

# ------------------------------------------------------------------------------------------------
# INTAKE: who gets onto the set. Typical shoot: open a Discord stage, tell viewers to join. While
# intake is closed, everybody who tries is turned away with Minecraft's own "not whitelisted" screen
# and goes on the waiting list in the order they tried. Admit the next 20, a pasted list of names,
# or open the doors, and they join again. The crew is never turned away and never counted.
# ------------------------------------------------------------------------------------------------
intake:
  cap: 0                             # most actors online at once, 0 = no limit. /intake cap changes it live.
  remember-attempts: true            # a refused join puts the name on the waiting list
  auto-group: ""                     # admitted actors join this group on arrival; "red,blue" fills the smallest
  refuse-message: vanilla            # vanilla = Minecraft's own not-whitelisted screen, or your own text
  full-message: vanilla              # vanilla = Minecraft's own server-full screen, or your own text

npc:
  left-click-runs: true

kits:
  # replace: the kit is all the actor carries, slot for slot, so a fight hotbar arrives laid out.
  #          What they had before is kept aside once and comes back with /kit restore.
  # add:     the kit goes on top of what they carry.
  give-mode: replace
  save-effects: true                 # /kit create also saves your potion effects into the kit
  equip-armor: true                  # add mode only: put the armour on
  # /kit give hands the kit over even when the actor lacks its permission node: the crew already
  # chose who gets it. Turn this off to make the node apply to them too.
  give-ignores-permission: true

warps:
  spawn-on-respawn: true
  spawn-on-join: false

teams:
  # Show groups on the vanilla scoreboard: a coloured name and a [GROUP] prefix in tab. Off by default
  # because that reads as a plugin on camera; groups still work for every command and rule.
  scoreboard: false
  friendly-fire-message: false       # tell an actor "that is your teammate" when a hit is stopped

nicknames:
  max-length: 24
  prefix: false
  prefix-text: "<gray>~</gray>"
  above-head: false
  # Nicking as a real player's name also borrows their skin, so the face matches the name. The
  # lookup goes to Mojang off the main thread; an unknown name keeps the nickname and says so.
  take-skin: true

  # /nick random <player|*> and /nick randomall: a disguise, name and face together. Write an entry
  # as "Shown:SkinOwner" to use a display name that is not an account and borrow somebody else's
  # face. Leave the list empty and the disguises come from people who have already played here.
  random-names: []
  random-prefix: false
  random-skips-staff: false

death:
  # Minecraft's own death messages unless you switch these on.
  custom-message: false
  broadcast: true                    # with custom-message on: show the custom message (false hides it)
  message: "<red>{player} died.</red>"
  message-killed: "<red>{player} was killed by {killer}.</red>"
  lightning: false                   # a lightning effect where somebody dies
  drop-head: false
  commands: []                       # console commands on a death, e.g. ["give {killer} diamond 1"]
  ban:
    enabled: false                   # eliminations: a death puts the actor out until /revive. /deathban on|off.
    kick-delay-ticks: 60
    message: "<red>You died.</red>\n<gray>You are out until you are brought back.</gray>"
    announce: crew                   # who hears "X has been eliminated": crew | everyone | none
    broadcast-message: "<dark_red><bold>{player}</bold> has been eliminated.</dark_red>"
    revive-message: "<green><bold>{player}</bold> has been revived.</green>"

rollback:
  on-death: true
  on-quit: true
  snapshot-every-minutes: 10
  keep: 10                           # timer and quit snapshots kept per player
  keep-deaths: 10                    # deaths kept per player, on their own quota
  restore-ender-chest: true
  restore-xp: true

halfheart:
  everyone: false                    # true = protect everybody (except /halfheart <player> exclusions)
  protect-from-void: true            # false = the void is the one thing that still kills
  guard: true                        # also put back health taken without a damage event
  save-message-seconds: 3            # at most one save effect per player per this many seconds
  effects: false                     # a totem sound and hearts on a save. Off: it just looks lucky.
  message-on-save: false             # "Half a heart. That was close." to the saved player

invsee:
  offline: true                      # /invsee and /endersee also open an offline player's saved inventory
  # Crew with scenesmp.invsee.offline-edit may change an offline player's items; the save is written
  # when the window closes, only while the player is still offline. Off: offline windows are read only.
  offline-edit: false

filter:
  chat: true
  signs: true
  block: false                       # false = censor with ***, true = block the message
  spam:
    enabled: false                   # the spam limiter. Crew are never limited.
    messages: 4                      # at most this many chat messages...
    per-seconds: 5                   # ...in this many seconds (the same window counts commands)
    commands: 6                      # at most this many commands in that window, 0 = no limit
    block-repeats: true              # the same message twice in a row is blocked...
    repeat-seconds: 30               # ...within this many seconds
    max-caps-percent: 70             # a message shouted in capitals is lower-cased, 0 = leave it alone
    caps-min-length: 8               # only messages with at least this many letters count as shouting
    mute-after-strikes: 5            # blocked messages within one minute before a short mute, 0 = never
    mute-minutes: 5                  # needs the mutes system

mutes:
  default-reason: "Muted by staff"
  broadcast: false
  blocked-commands: [msg, tell, w, r, me, say]
  # One mute for both: /mute also silences the microphone in Simple Voice Chat for as long as the
  # chat mute lasts, and /unmute lifts both. Needs the voice system on.
  include-voice: false

recording:
  default-name: "Episode"
  announce: crew                     # the REC title on /recording start: crew | everyone | none
  hide-join-leave: true
  hide-death-messages: false
  hide-advancements: true
  command-feedback-off: true
  staff-only-chat: false             # actor chat reaches only the crew while recording

fakeborder:
  warning-distance: 5

serverlock:
  message: "<bad>The server is locked right now.</bad>"
  kick-on-lock: true

dimlock:
  tell-player: false                 # tell an actor "the Nether is closed" at the portal. Off: the portal just does not take them.
  announce: crew                     # who hears that a dimension opened or closed

cmdblock:
  hide-from-tab: true
  look-vanilla: true                 # a blocked command answers with Minecraft's own "Unknown or incomplete command"

villagers:
  silent: false
  offhand-is-second-cost: true

# Wars between groups, on the director's cue. A war starts when you say and ends when you say.
wars:
  require-accept: false              # true: a declared war waits for /war accept
  death-ban-during-war: false        # dying in a war puts the actor out (same list as eliminations)
  count-all-deaths-in-war: false     # any death while at war counts, not only enemy kills
  force-pvp-between-belligerents: true
  default-target: 0                  # kills to win, 0 = no limit
  default-hours: 0                   # hours until it ends on its own, 0 = no limit
  sidebar: false                     # a kill count on the right of the screen. Game UI in shot: off.
  announce: crew                     # the war's chat lines: crew | everyone | none
  # Title cards for every beat, on everybody's screen. Off by default: most editors add their own.
  cinematic:
    titles: false
    countdown-seconds: 5
    fade-in: 10
    stay: 50
    fade-out: 20
    elimination-title: false
    sound: false

orbital:
  default-type: lightning            # lightning, tnt, fireball
  default-count: 8
  default-radius: 5.0
  countdown-seconds: 5
  warning: crew                      # the countdown title and warning sounds: crew | everyone | none
  warning-radius: 60.0
  spread-ticks: 4
  break-blocks: false                # true = real explosions and fire
  drop-height: 30
  tnt-fuse-ticks: 45
  tnt-yield: 4.0
  fireball-yield: 2.0
  fireball-fire: false
  lightning-damage: 6.0

permissions:
  default-group: default

autoclear:
  every-minutes: 15
  warnings-seconds: ["60", "30", "10", "5"]
  announce: crew                     # the warnings and the "cleared" line: crew | everyone | none
  keep-materials: [NETHER_STAR, DRAGON_EGG, ELYTRA]

joinquit:
  # Empty keeps Minecraft's own "joined the game" line. Write your own text to replace it.
  join: ""
  leave: ""
  first-join: ""
  welcome-title: ""
  welcome-subtitle: ""
  welcome-chat: []
  silent-for-permission: true        # players with scenesmp.silentjoin join and leave silently

staff:
  vanish-crew-on-join: false         # every crew member is vanished from actors the moment they join
  hide-vanished-joins: true          # no "joined the game" line for a vanished crew member

# ------------------------------------------------------------------------------------------------
# THEME: the crew panel's colours. Actors never see a SceneSMP screen.
# ------------------------------------------------------------------------------------------------
theme:
  accent: "#ffd166"     # headings and anything meant to be clicked
  accent2: "#ffe6ab"    # a lighter accent, for a second level of emphasis
  title: "#f4f7ff"      # screen titles
  text: "#c2ccdd"       # ordinary prose
  muted: "#6b7a94"      # hints, separators, anything the eye should skip
  value: "#ffffff"      # the numbers and names a screen is opened to read
  good: "#57e08a"
  warn: "#ffc857"
  bad: "#ff6b6b"
  small-caps: false
  # Real Minecraft item pictures beside the buttons. Drawn from the client's own textures, so there
  # is nothing to install: it needs a 1.21.9 or newer client, older ones see the buttons as words.
  item-icons: true

messages:
  prefix: "<accent><bold>Scene</bold></accent> <muted>»</muted> "
  no-permission: "<bad>You cannot do that.</bad>"
  unknown-player: "<bad>Unknown player: </bad><value>{name}</value>"
  module-off: "<text>The </text><value>{module}</value><text> system is off. Switch it on with /scenesmp module {module} on.</text>"
  reloaded: "<value>Config reloaded.</value>"
  about: "<value>SceneSMP {version}</value><text> by Frostyh. /scenesmp reload</text>"

  # Selectors: who a crew command is about.
  cast-missing: "<warn>Not online: </warn><value>{names}</value>"
  cast-nobody: "<text>Nobody matches </text><value>{who}</value><text>.</text>"
  cast-count: "{count} players"

  # The crew panel: /scenesmp with nothing after it.
  panel-title: "<value>SceneSMP</value>"
  panel-close: "<text>Close</text>"
  panel-back: "<white><icon:back></white><text>Back</text>"
  panel-back-tip: "<text>Back to the screen before.</text>"
  panel-empty: "<text>Fill the field in first.</text>"
  word-on: "on"
  word-off: "off"
  state-on: "  <good><bold>ON</bold></good>"
  state-off: "  <bad><bold>OFF</bold></bad>"
  panel-version: "<text>SceneSMP </text><value>{version}</value>"
  panel-modules-line: "<text>Systems running: </text><value>{on} of {all}</value>"
  panel-online: "<text>Players online: </text><value>{count}</value>"
  panel-needs-title: "<value>Switched off</value>"
  panel-needs-module: "<text>This screen needs the </text><value>{module}</value><text> system ({about}), which is off.</text>"
  panel-needs-switch: "<white><icon:yes></white><good>Switch {module} on</good>"
  panel-players: "<white><icon:players></white><accent>Players</accent>"
  panel-players-tip: "<text>Everyone online, and the crew tools for one of them.</text>"
  panel-players-title: "<value>Players</value>"
  panel-nobody: "<text>Nobody is online.</text>"
  panel-player-line: "<value>{player}</value><text> · {world} · {health} hearts · {ping}ms</text>"
  panel-player-open: "<white><icon:players></white><value>{player}</value>"
  panel-player-open-tip: "<text>Crew tools for {player}.</text>"
  panel-player-title: "<value>{player}</value>"
  panel-player-head: "<text>{player} in {world}, {gamemode}</text>"
  panel-player-stats: "<text>{health} hearts · {food} food · {ping}ms</text>"
  panel-field-reason: "<text>Reason, for the mute</text>"
  panel-heal: "<white><icon:heal></white><value>Heal</value>"
  panel-heal-tip: "<text>Full health, food and no harmful effects.</text>"
  panel-feed: "<white><icon:feed></white><value>Feed</value>"
  panel-feed-tip: "<text>Fill the food bar.</text>"
  panel-fly: "<white><icon:fly></white><value>Flight</value>"
  panel-fly-tip: "<text>Turn flight on or off.</text>"
  panel-god: "<white><icon:god></white><value>God mode</value>"
  panel-god-tip: "<text>Turn damage off or on.</text>"
  panel-vanish: "<white><icon:vanish></white><value>Vanish</value>"
  panel-vanish-tip: "<text>Hide them from everyone without the see permission.</text>"
  panel-freeze: "<white><icon:freeze></white><value>Hold</value>"
  panel-freeze-tip: "<text>Hold them on their mark. They can still look around.</text>"
  panel-survival: "<white><icon:survival></white><value>Survival</value>"
  panel-survival-tip: "<text>Put them in survival.</text>"
  panel-creative: "<white><icon:creative></white><value>Creative</value>"
  panel-creative-tip: "<text>Put them in creative.</text>"
  panel-spectator: "<white><icon:spectator></white><value>Spectator</value>"
  panel-spectator-tip: "<text>Put them in spectator.</text>"
  panel-invsee: "<white><icon:inventory></white><value>Open inventory</value>"
  panel-invsee-tip: "<text>Their inventory, hotbar, armour and off hand, live: take things out, put things in.</text>"
  panel-bring: "<white><icon:teleport></white><value>Bring here</value>"
  panel-bring-tip: "<text>Teleport them to you.</text>"
  panel-goto: "<white><icon:teleport></white><value>Go to them</value>"
  panel-goto-tip: "<text>Teleport yourself to them.</text>"
  panel-mute: "<white><icon:mute></white><bad>Mute for an hour</bad>"
  panel-mute-tip: "<text>Uses the reason field above.</text>"
  panel-unmute: "<white><icon:unmute></white><value>Unmute</value>"
  panel-unmute-tip: "<text>Let them talk again.</text>"
  panel-revive: "<white><icon:revive></white><value>Revive</value>"
  panel-revive-tip: "<text>Bring an eliminated actor back.</text>"
  panel-rollback: "<white><icon:rollback></white><value>Restore inventory</value>"
  panel-rollback-tip: "<text>Put back the last snapshot.</text>"
  panel-restore-tip: "<text>Pick which of their stored inventories to put back.</text>"
  panel-restore-title: "<value>Restore</value><text> · {player}</text>"
  panel-restore-intro: "<text>{count} stored inventories for </text><value>{player}</value><text>. Newest first.</text>"
  panel-restore-none: "<text>Nothing stored yet. Snapshots are taken on death, on quit and on a timer.</text>"
  panel-restore-death: "<white><icon:grave></white><bad>{when}</bad><text> · {detail}</text>"
  panel-restore-entry: "<white><icon:clock></white><value>{when}</value><text> · {reason}</text>"
  panel-restore-entry-tip: "<text>Put this back onto </text><value>{player}</value><text>. Their current things are stored first.</text>"
  panel-restore-deaths: "<white><icon:grave></white><value>Deaths only</value>"
  panel-restore-all: "<white><icon:clock></white><value>Show everything</value>"
  panel-restore-filter-tip: "<text>Switch between every snapshot and deaths only.</text>"
  panel-nick-random: "<white><icon:nick></white><value>Random disguise</value>"
  panel-nick-random-tip: "<text>A random name and the face that goes with it.</text>"
  panel-nick-off: "<white><icon:nick></white><value>Clear nickname</value>"
  panel-nick-off-tip: "<text>Back to their own name and face.</text>"
  panel-nick-random-all: "<white><icon:nick></white><value>Disguise everyone</value>"
  panel-nick-random-all-tip: "<text>Every player online gets a random name and face.</text>"
  panel-nick-reset-all: "<white><icon:nick></white><value>Clear all nicknames</value>"
  panel-nick-reset-all-tip: "<text>Everybody back to their own name and face.</text>"
  panel-server: "<white><icon:server></white><accent>Server</accent>"
  panel-server-tip: "<text>Lock, chat, dimensions and the broadcast.</text>"
  panel-server-title: "<value>Server</value>"
  panel-server-intro: "<text>These hit everybody on the server.</text>"
  panel-field-message: "<text>Message, for the lock and the broadcast</text>"
  panel-lock: "<white><icon:lock></white><bad>Lock the server</bad>"
  panel-lock-tip: "<text>Only the crew and the allow list get in. Uses the message above.</text>"
  panel-unlock: "<white><icon:unlock></white><good>Unlock the server</good>"
  panel-unlock-tip: "<text>Let everybody in again.</text>"
  panel-mutechat: "<white><icon:mute></white><value>Lock or unlock chat</value>"
  panel-mutechat-tip: "<text>Nobody but the crew can talk while chat is locked.</text>"
  panel-clearchat: "<white><icon:clear></white><value>Clear chat</value>"
  panel-clearchat-tip: "<text>Push the chat off everybody's screen.</text>"
  panel-clearitems: "<white><icon:clear></white><value>Clear dropped items</value>"
  panel-clearitems-tip: "<text>Remove the items lying on the ground.</text>"
  panel-dimlock-nether: "<white><icon:nether></white><value>Nether lock</value>"
  panel-dimlock-nether-tip: "<text>Close or open the Nether for actors.</text>"
  panel-dimlock-end: "<white><icon:end></white><value>End lock</value>"
  panel-dimlock-end-tip: "<text>Close or open the End for actors.</text>"
  panel-joinmessages: "<white><icon:join></white><value>Join and leave messages</value>"
  panel-joinmessages-tip: "<text>Show or hide them.</text>"
  panel-broadcast: "<white><icon:broadcast></white><value>Broadcast the message</value>"
  panel-broadcast-tip: "<text>Send the message above to everybody, actors included.</text>"
  panel-recording: "<white><icon:record></white><value>Recording state</value>"
  panel-recording-tip: "<text>Is a recording session running?</text>"
  panel-warps: "<white><icon:warp></white><accent>Places</accent>"
  panel-warps-tip: "<text>Go to a place, set one, delete one.</text>"
  panel-warps-title: "<value>Places</value>"
  panel-warps-empty: "<text>No places yet. Stand on a mark and set one below.</text>"
  panel-warp-line: "<text> - </text><value>{warp}</value>"
  panel-warp-go: "<white><icon:teleport></white><value>Go to {warp}</value>"
  panel-warp-go-tip: "<text>Teleport yourself to {warp}. Send actors there from the Cast screen.</text>"
  panel-field-warp: "<text>Place name</text>"
  panel-warp-set: "<white><icon:yes></white><good>Set a place here</good>"
  panel-warp-set-tip: "<text>Save where you stand, and the way you face, under the name above.</text>"
  panel-warp-delete: "<white><icon:delete></white><bad>Delete that place</bad>"
  panel-warp-delete-tip: "<text>Delete the place named above.</text>"
  panel-kits: "<white><icon:kit></white><accent>Kits</accent>"
  panel-kits-tip: "<text>Take a kit, or hand one out.</text>"
  panel-kits-title: "<value>Kits</value>"
  panel-kits-empty: "<text>No kits yet. Fill your inventory and run /kit create <name>.</text>"
  panel-kit-line: "<text> - </text><value>{kit}</value>"
  panel-kit-take: "<white><icon:kit></white><value>Take {kit}</value>"
  panel-kit-take-tip: "<text>Give yourself {kit}.</text>"
  panel-kit-give-open: "<white><icon:kit></white><value>Give a kit out</value>"
  panel-kit-give-open-tip: "<text>Hand a kit to a group, a list, or every actor at once.</text>"
  panel-kit-give-title: "<value>Give a kit out</value>"
  panel-kit-give-help: "<text>Who: names separated by commas, g:group, r:20 for actors near you, or leave it empty for every actor online ({count}).</text>"
  panel-field-players: "<text>Who</text>"
  panel-kit-give: "<white><icon:kit></white><value>Give {kit}</value>"
  panel-kit-give-tip: "<text>Give {kit} to everybody the box names, or every actor if it is empty.</text>"
  panel-modules: "<white><icon:modules></white><accent>Systems</accent>"
  panel-modules-tip: "<text>Which systems of the plugin run.</text>"
  panel-modules-title: "<value>Systems</value>"
  panel-reload: "<white><icon:reload></white><text>Reload config</text>"
  panel-reload-tip: "<text>Read config.yml again.</text>"
  switch-on: "<white><icon:yes></white><good><bold>ON</bold></good>  <value>{title}</value>"
  switch-off: "<white><icon:no></white><bad><bold>OFF</bold></bad> <text>{title}</text>"

  # Switching systems while the server runs (Systems screen, /scenesmp module, presets, reload).
  panel-modules-intro-live: "<text>Click a system to switch it on or off. It applies at once and is saved to config.yml.</text>"
  panel-module-tip-live: "<value>{module}</value><text>: {about}</text>\n<muted>Click to switch it. No restart needed.</muted>"
  module-now-on: "<value>{module}</value><text> is </text><good>on</good><text>. Saved to config.yml.</text>"
  module-now-off: "<value>{module}</value><text> is </text><bad>off</bad><text>. Saved to config.yml.</text>"
  module-failed: "<bad>{module} could not start.</bad><text> The console says why.</text>"
  module-unchanged: "<value>{module}</value><text> is already {state}.</text>"
  module-unknown: "<bad>No system called </bad><value>{module}</value><text>. Systems: {list}</text>"
  module-help: "<text>/scenesmp module <name> [on|off] · /scenesmp modules · /scenesmp preset <name> · /scenesmp setup</text>"
  modules-list: "<text>{count} of {all} systems on: </text><value>{on}</value><text>. Off: </text><muted>{off}</muted>"
  modules-synced: "<text>Systems switched to match config.yml: </text><value>{list}</value>"

  # The setup screen and the presets.
  panel-setup: "<white><icon:settings></white><accent>Quick setup</accent>"
  panel-setup-tip: "<text>Switch on a ready-made set of systems for your kind of shoot.</text>"
  setup-title: "<value>SceneSMP setup</value>"
  setup-intro: "<text>Pick what you are filming. That set of systems switches on right away, and you can change any single one afterwards. Actors see plain vanilla either way.</text>"
  setup-none-on: "<text>Every system is off right now, so the plugin does nothing yet.</text>"
  setup-some-on: "<value>{count}</value><text> systems are on now. A preset switches off the ones it does not list.</text>"
  setup-own: "<white><icon:modules></white><value>Choose myself</value>"
  setup-own-tip: "<text>Open the switches and turn on what you need one by one.</text>"
  setup-chat-hint: "<text>Welcome to SceneSMP. This screen shows once; open it again with </text><value>/scenesmp setup</value><text>.</text>"
  preset-tip: "<text>{about}</text>\n<text>{count} systems: </text><muted>{list}</muted>"
  preset-shoot: "<white><icon:record></white><accent>Shoot</accent>"
  preset-shoot-tip: "The core of a filming day: scene cues and rules, actor intake, groups, kits, places, holds, recording mode and eliminations."
  preset-story: "<white><icon:book></white><accent>Story series</accent>"
  preset-story-tip: "A whole scripted series: everything in Shoot plus NPCs, disguises, props, half-heart protection, private borders, dimension locks, wars and sky strikes."
  preset-fight: "<white><icon:arena></white><accent>Fight scenes</accent>"
  preset-fight-tip: "Big group fights: groups, kits, places, scene rules, eliminations, wars and areas."
  preset-everything: "<white><icon:top></white><accent>Everything</accent>"
  preset-everything-tip: "Every system except the permission system, which you only want without LuckPerms."
  preset-custom: "<accent>{preset}</accent>"
  preset-applied: "<text>Preset </text><value>{preset}</value><text>: </text><value>{count} of {all}</value><text> systems on, no restart needed. On: </text><muted>{list}</muted>"
  preset-unknown: "<bad>No preset called </bad><value>{preset}</value><text>. Presets: {list}</text>"
  preset-help: "<text>/scenesmp preset <name>. Presets: </text><value>{list}</value><text>. Edit them under presets: in config.yml.</text>"

  # One line per system, shown when hovering its switch.
  module-about-scene: "cues (action, cut, hold), scene rules, time and weather, crew chat"
  module-about-intake: "who gets onto the set: waiting list, admit in batches, a cap"
  module-about-teams: "groups for scenes: bulk assign, split, PvP, respawn kit and place"
  module-about-kits: "fight kits from your inventory, given to a group, stripped and restored"
  module-about-warps: "places on the set; send a selection there, spread in a ring"
  module-about-staff: "heal, feed, fly, god, game modes, bring, vanish and hold, for any selection"
  module-about-recording: "recording mode: a quiet server while the cameras roll"
  module-about-death: "eliminations until revived, optional death messages and effects"
  module-about-halfheart: "chosen actors cannot die: a fatal hit leaves half a heart"
  module-about-rollback: "inventory snapshots on death, quit and a timer, restore any of them"
  module-about-npc: "NPCs with any skin that run commands or say lines when clicked"
  module-about-nicknames: "names and faces for characters, random disguises"
  module-about-itemmaker: "props: edit the item in your hand, save it, give it out"
  module-about-invsee: "open anybody's inventory or ender chest, live"
  module-about-filter: "blocked words in chat and on signs"
  module-about-mutes: "timed mutes with reasons, chat lock"
  module-about-fakeborder: "a world border only chosen players see"
  module-about-serverlock: "lock the server to the crew and an allow list"
  module-about-dimlock: "close the Nether or the End"
  module-about-cmdblock: "commands actors may not run or see"
  module-about-villagers: "shop villagers with your own trades"
  module-about-wars: "wars between groups on your cue"
  module-about-orbital: "a strike from the sky"
  module-about-voice: "Simple Voice Chat mutes"
  module-about-permissions: "a small permission system; leave it off with LuckPerms"
  module-about-areas: "protected boxes with build, pvp, enter and mob flags"
  module-about-autoclear: "dropped items cleared on a timer"
  module-about-joinquit: "your own join and leave messages, or none"

  # What yes/no placeholders (%scenesmp_muted% and friends) return.
  placeholder-yes: "yes"
  placeholder-no: "no"

  # Who answers a command (Commands screen, /scenesmp command, commands: in this file).
  owner-auto: "auto"
  owner-scenesmp: "SceneSMP"
  owner-other: "other plugin"
  owner-auto-about: "SceneSMP answers it unless another plugin had the name first."
  owner-scenesmp-about: "SceneSMP answers it, even when another plugin has the same command."
  owner-other-about: "SceneSMP leaves it to another plugin. Panel buttons still use SceneSMP's own."
  commands-holder-nobody: "nobody"
  commands-holder-vanilla: "Minecraft"
  commands-list: "<text>Left to other plugins: </text><value>{release}</value><text>. Taken by SceneSMP: </text><value>{take}</value><text>. Answered by another plugin right now: </text><muted>{elsewhere}</muted>"
  command-help: "<text>/scenesmp command <name> [scenesmp|other|auto] · /scenesmp commands</text>"
  command-unknown: "<bad>SceneSMP has no command called </bad><value>{command}</value>"
  command-state: "<value>/{command}</value><text>: {mode}. Answered now by </text><value>{holder}</value><text>.</text>"
  panel-commands: "<white><icon:settings></white><accent>Commands</accent>"
  panel-commands-tip: "<text>Choose per command whether SceneSMP or another plugin answers it.</text>"
  panel-commands-title: "<value>Commands</value>"
  panel-commands-intro: "<text>Running next to EssentialsX or another plugin? Hand any command to it here. Each click moves a command on: auto, SceneSMP, other plugin.</text>"
  panel-commands-module: "<white><icon:modules></white><value>{module}</value><text> · {count}</text>{changed}"
  panel-commands-changed: "<warn> · {count} set</warn>"
  panel-commands-module-tip: "<text>{list}</text>"
  panel-commands-of: "<text>Commands of </text><value>{module}</value><text> (the system is {state}).</text>"
  panel-command-line: "<value>/{command}</value><text>  {mode}</text>"
  panel-command-tip: "<text>Now: </text><value>{mode}</value><text>. {about}</text>\n<text>Answered right now by </text><value>{holder}</value><text>.</text>\n<muted>Click to switch to: {next}</muted>"
  panel-field-command: "<text>Find a command</text>"

  # Search and quick switches on the panel.
  panel-field-search: "<text>Find a system: a name, a word or a command</text>"
  panel-search: "<white><icon:search></white><value>Search</value>"
  panel-search-tip: "<text>Show only what matches the box above.</text>"
  panel-search-results: "<value>{count}</value><text> match(es) for </text><value>{query}</value><text>.</text>"
  panel-search-none: "<text>Nothing matches </text><value>{query}</value><text>.</text>"
  panel-search-clear: "<white><icon:back></white><text>Show all</text>"
  panel-search-clear-tip: "<text>Clear the search.</text>"
  panel-pins: "<white><icon:top></white><accent>Quick switches</accent>"
  panel-pins-tip: "<text>Pin up to six systems as switches at the top of this screen.</text>"
  panel-pins-title: "<value>Quick switches</value>"
  panel-pins-intro: "<text>Pinned systems show as switches at the top of your home screen ({count} of {max}). Pins are yours alone.</text>"
  panel-pin-on: "<white><icon:yes></white><good>Pinned</good>  <value>{module}</value>"
  panel-pin-off: "<white><icon:no></white><muted>Pin</muted>  <text>{module}</text>"
  panel-pin-tip: "<value>{module}</value><text>: {about}</text>\n<muted>Click to pin or unpin.</muted>"
  panel-pins-full: "<bad>You can pin up to {max} systems.</bad><text> Unpin one first.</text>"

  # ---- the scene screen ----
  panel-scene: "<white><icon:record></white><accent>Scene</accent>"
  panel-scene-tip: "<text>Action, cut, hold the actors, scene rules, time and weather.</text>"
  panel-scene-title: "<value>Scene</value>"
  panel-field-seconds: "<text>Countdown seconds</text>"
  panel-field-scene: "<text>Scene name</text>"
  panel-scene-action: "<white><icon:yes></white><good>Action</good>"
  panel-scene-action-tip: "<text>Count down (on the crew's screens), holding the actors on their marks, then let them go.</text>"
  panel-scene-cut: "<white><icon:no></white><bad>Cut</bad>"
  panel-scene-cut-tip: "<text>End the take.</text>"
  panel-scene-hold: "<white><icon:freeze></white><value>Hold every actor</value>"
  panel-scene-hold-tip: "<text>Nobody walks off their mark. They can still look around.</text>"
  panel-scene-release: "<white><icon:unlock></white><value>Release every actor</value>"
  panel-scene-release-tip: "<text>Let everybody move again.</text>"
  panel-scene-rules: "<white><icon:settings></white><accent>Scene rules</accent>"
  panel-scene-rules-tip: "<text>PvP, damage, hunger, building, deaths, respawns, chat.</text>"
  panel-scene-day: "<white><icon:sun></white><value>Day</value>"
  panel-scene-day-tip: "<text>Set the time to morning.</text>"
  panel-scene-night: "<white><icon:moon></white><value>Night</value>"
  panel-scene-night-tip: "<text>Set the time to night.</text>"
  panel-scene-clear: "<white><icon:sun></white><value>Clear sky</value>"
  panel-scene-clear-tip: "<text>Stop rain and thunder.</text>"
  panel-scene-rain: "<white><icon:rain></white><value>Rain</value>"
  panel-scene-rain-tip: "<text>Start rain.</text>"
  panel-scene-lock-time: "<white><icon:clock></white><value>Time locked</value>"
  panel-scene-lock-time-tip: "<text>Stop or start the day and night cycle, so a scene does not drift into dusk between takes.</text>"
  panel-scene-lock-weather: "<white><icon:rain></white><value>Weather locked</value>"
  panel-scene-lock-weather-tip: "<text>Stop or start the weather changing on its own.</text>"
  panel-scene-notices: "<white><icon:chat></white><value>My crew notices</value>"
  panel-scene-notices-tip: "<text>Switch them off on the account that records, so no crew line or countdown ends up in the footage.</text>"
  panel-scene-rules-title: "<value>Scene rules</value>"
  panel-scene-rules-intro: "<text>These apply to actors only and change live. Click a rule to move it to its next value.</text>"
  panel-field-respawn: "<text>Place or kit name, empty for none</text>"
  panel-rule: "<value>{rule}</value><text>: </text><accent>{value}</accent>"
  panel-rule-tip: "<text>{about}</text>\n<muted>Click for: {next}</muted>"
  panel-rule-respawn-place: "<white><icon:warp></white><value>respawn-place</value><text>: </text><accent>{value}</accent>"
  panel-rule-respawn-place-tip: "<text>Actors respawn at the place typed above, unless their group has its own. Empty for none.</text>"
  panel-rule-respawn-kit: "<white><icon:kit></white><value>respawn-kit</value><text>: </text><accent>{value}</accent>"
  panel-rule-respawn-kit-tip: "<text>Actors respawn with the kit typed above, unless their group has its own. Empty for none.</text>"
  panel-scene-reset: "<white><icon:reload></white><text>Reset to vanilla</text>"
  panel-scene-reset-tip: "<text>Every scene rule back to the values in config.yml.</text>"

  # ---- the cast screen ----
  panel-cast: "<white><icon:players></white><accent>Cast</accent>"
  panel-cast-tip: "<text>Move, equip, hold and group many actors at once.</text>"
  panel-cast-title: "<value>Cast</value>"
  panel-cast-intro: "<value>{actors}</value><text> actors online · </text><value>{held}</value><text> held · </text><value>{groups}</value><text> groups</text>"
  panel-cast-help: "<text>Who: actors, g:group, r:20 (near you), random:10, unassigned, or names with commas. What: the place, kit or group the button needs.</text>"
  panel-cast-need-what: "<bad>Type the place, kit or group in the What box first.</bad>"
  panel-field-who: "<text>Who</text>"
  panel-field-what: "<text>What (place, kit or group)</text>"
  panel-cast-bring: "<white><icon:teleport></white><value>Bring to me</value>"
  panel-cast-bring-tip: "<text>Teleport them to where you stand.</text>"
  panel-cast-send: "<white><icon:warp></white><value>Send to place</value>"
  panel-cast-send-tip: "<text>Teleport them to the place in What.</text>"
  panel-cast-spread: "<white><icon:warp></white><value>Spread at place</value>"
  panel-cast-spread-tip: "<text>Stand them in a ring around the place in What, facing the way the place faces.</text>"
  panel-cast-kit: "<white><icon:kit></white><value>Give kit</value>"
  panel-cast-kit-tip: "<text>Give them the kit in What. Their own things are kept aside for Restore.</text>"
  panel-cast-strip: "<white><icon:clear></white><value>Strip</value>"
  panel-cast-strip-tip: "<text>Empty inventory, armour and effects. Their things are kept aside for Restore.</text>"
  panel-cast-restore: "<white><icon:rollback></white><value>Restore</value>"
  panel-cast-restore-tip: "<text>Give back what they carried before the first kit or strip.</text>"
  panel-cast-heal: "<white><icon:heal></white><value>Heal</value>"
  panel-cast-heal-tip: "<text>Full health and food, harmful effects gone.</text>"
  panel-cast-hold: "<white><icon:freeze></white><value>Hold</value>"
  panel-cast-hold-tip: "<text>Hold them on their marks.</text>"
  panel-cast-release: "<white><icon:unlock></white><value>Release</value>"
  panel-cast-release-tip: "<text>Let them move again.</text>"
  panel-cast-survival: "<white><icon:survival></white><value>Survival</value>"
  panel-cast-survival-tip: "<text>Put them in survival.</text>"
  panel-cast-adventure: "<white><icon:survival></white><value>Adventure</value>"
  panel-cast-adventure-tip: "<text>Put them in adventure: they can fight but not break the set.</text>"
  panel-cast-spectator: "<white><icon:spectator></white><value>Spectator</value>"
  panel-cast-spectator-tip: "<text>Put them in spectator.</text>"
  panel-cast-group: "<white><icon:players></white><value>Add to group</value>"
  panel-cast-group-tip: "<text>Put them in the group in What.</text>"
  panel-cast-split: "<white><icon:players></white><value>Split into groups</value>"
  panel-cast-split-tip: "<text>Shuffle them evenly into the groups in What, separated by commas (red,blue).</text>"

  # ---- the intake screen ----
  panel-intake: "<white><icon:join></white><accent>Intake</accent>"
  panel-intake-tip: "<text>Who gets onto the set: the waiting list, admitting in batches, the cap.</text>"
  panel-intake-title: "<value>Actor intake</value>"
  panel-intake-state: "<text>Intake is </text><value>{mode}</value><text> · </text><value>{online}</value><text> actors online, cap </text><value>{cap}</value>"
  panel-intake-counts: "<value>{waiting}</value><text> waiting · </text><value>{admitted}</value><text> admitted · new actors join group </text><value>{group}</value>"
  panel-intake-next: "<text>Next in line: </text><muted>{list}</muted>"
  panel-field-names: "<text>Names: paste a list (commas, spaces or new lines), or a group for Auto group</text>"
  panel-field-number: "<text>Number</text>"
  panel-intake-open: "<white><icon:unlock></white><value>Doors open</value>"
  panel-intake-open-tip: "<text>Open: anybody gets in, up to the cap. Closed: only admitted actors; everybody else lands on the waiting list.</text>"
  panel-intake-admit-next: "<white><icon:yes></white><good>Admit next {count}</good>"
  panel-intake-admit-next-tip: "<text>Let the next {count} on the waiting list in. They join again and get in.</text>"
  panel-intake-admit-number: "<white><icon:yes></white><value>Admit next (Number)</value>"
  panel-intake-admit-number-tip: "<text>Admit as many from the waiting list as the Number box says.</text>"
  panel-intake-admit-names: "<white><icon:yes></white><good>Admit the names</good>"
  panel-intake-admit-names-tip: "<text>Admit every name pasted in the box, for example a list from your Discord stage.</text>"
  panel-intake-cap: "<white><icon:players></white><value>Set the cap (Number)</value>"
  panel-intake-cap-tip: "<text>Most actors online at once. 0 or empty: no limit. The crew never counts.</text>"
  panel-intake-autogroup: "<white><icon:players></white><value>Auto group (Names box)</value>"
  panel-intake-autogroup-tip: "<text>Arriving actors join the group typed in the Names box; red,blue fills the smaller one. Empty: off.</text>"
  panel-intake-clear: "<white><icon:delete></white><bad>Clear the waiting list</bad>"
  panel-intake-clear-tip: "<text>Forget everybody who is waiting. Admitted actors stay admitted.</text>"

  # ---- the groups screens ----
  panel-groups: "<white><icon:arena></white><accent>Groups</accent>"
  panel-groups-tip: "<text>Groups for scenes: who is in them, PvP, respawn kit and place.</text>"
  panel-groups-title: "<value>Groups</value>"
  panel-groups-empty: "<text>No groups yet. Type a name below and create one.</text>"
  panel-group-line: "<value>{group}</value><text> · {members} members ({online} online) · PvP {pvp}</text>"
  panel-group-open: "<white><icon:players></white><value>{group}</value>"
  panel-group-open-tip: "<text>Open {group}.</text>"
  panel-field-group: "<text>New group name</text>"
  panel-group-create: "<white><icon:yes></white><good>Create group</good>"
  panel-group-create-tip: "<text>A new empty group with the name above.</text>"
  panel-group-title: "<value>Group</value><text> · {group}</text>"
  panel-group-members: "<value>{count}</value><text> members: </text><muted>{list}</muted>"
  panel-group-settings: "<text>Respawn kit </text><value>{kit}</value><text> · respawn place </text><value>{place}</value>"
  panel-field-group-value: "<text>Who to add, or the kit or place name</text>"
  panel-group-pvp: "<white><icon:arena></white><value>PvP</value>"
  panel-group-pvp-tip: "<text>Off: members neither deal nor take player damage.</text>"
  panel-group-ff: "<white><icon:arena></white><value>Friendly fire</value>"
  panel-group-ff-tip: "<text>Whether members can hurt each other.</text>"
  panel-group-add: "<white><icon:yes></white><value>Add (box)</value>"
  panel-group-add-tip: "<text>Add everybody the box names: names, r:20, random:10, unassigned, actors.</text>"
  panel-group-kit: "<white><icon:kit></white><value>Respawn kit (box)</value>"
  panel-group-kit-tip: "<text>Members respawn with the kit named in the box. none: no kit.</text>"
  panel-group-place: "<white><icon:warp></white><value>Respawn place (box)</value>"
  panel-group-place-tip: "<text>Members respawn at the place named in the box. none: normal respawn.</text>"
  panel-group-give: "<white><icon:kit></white><value>Give kit (box)</value>"
  panel-group-give-tip: "<text>Give every online member the kit named in the box.</text>"
  panel-group-send: "<white><icon:warp></white><value>Send to place (box)</value>"
  panel-group-send-tip: "<text>Stand every online member in a ring at the place named in the box.</text>"
  panel-group-bring: "<white><icon:teleport></white><value>Bring here</value>"
  panel-group-bring-tip: "<text>Teleport every online member to you.</text>"
  panel-group-hold: "<white><icon:freeze></white><value>Hold</value>"
  panel-group-hold-tip: "<text>Hold every online member on their mark.</text>"
  panel-group-release: "<white><icon:unlock></white><value>Release</value>"
  panel-group-release-tip: "<text>Let them move again.</text>"
  panel-group-clear: "<white><icon:clear></white><value>Empty the group</value>"
  panel-group-clear-tip: "<text>Take everybody out. The group and its settings stay.</text>"
  panel-group-delete: "<white><icon:delete></white><bad>Delete group</bad>"
  panel-group-delete-tip: "<text>Delete the group and its settings.</text>"

  # ---- scene ----
  scene-help: "<text>/scene status · action [seconds] [name] · cut · hold [who] · release [who] · set <rule> <value> · reset · time <day|night|...> [lock] · weather <clear|rain|thunder> [lock] · notices [on|off] · crew <text></text>"
  scene-count-bar: "<accent><bold>{n}</bold></accent><text>  {name}</text>"
  scene-count-title: "<white><bold>{n}</bold></white>"
  scene-action-bar: "<good><bold>ACTION</bold></good><text>  {name}</text>"
  scene-cut-bar: "<bad><bold>CUT</bold></bad>"
  scene-action-started: "<value>{staff}</value><text> called action on </text><value>{name}</value><text> in {seconds}s.</text>"
  scene-cut: "<value>{staff}</value><text> called cut.</text>"
  scene-crew-chat: "<accent>[crew]</accent> <value>{player}</value><muted>:</muted> <text>{message}</text>"
  scene-state-rolling: "<good><bold>Rolling</bold></good><text>  scene </text><value>{name}</value>"
  scene-state-counting: "<warn><bold>Counting down</bold></warn><text>  scene </text><value>{name}</value>"
  scene-state-idle: "<text>Not rolling.</text><text>  scene </text><value>{name}</value>"
  scene-rule-pair: "<muted>{rule}</muted> <value>{value}</value>"
  scene-respawn-line: "<muted>respawn-place</muted> <value>{place}</value>  <muted>respawn-kit</muted> <value>{kit}</value>"
  scene-holds-line: "<value>{count}</value><text> held on their marks.</text>"
  scene-named: "<text>Scene name: </text><value>{name}</value>"
  scene-held: "<text>Holding </text><value>{count}</value><text> on their marks.</text>"
  scene-released: "<text>Released </text><value>{count}</value><text>.</text>"
  scene-rule-set: "<value>{rule}</value><text> is now </text><accent>{value}</accent><text>.</text>"
  scene-rule-values: "<bad>{rule} takes: </bad><value>{values}</value>"
  scene-rule-unknown: "<bad>No rule called </bad><value>{rule}</value><text>. Rules: {list}</text>"
  scene-reset: "<text>Every scene rule is back to config.yml (plain vanilla unless you changed it there).</text>"
  scene-time: "<text>Time: </text><value>{time}</value>"
  scene-time-locked: "<text>Time is locked.</text>"
  scene-time-unlocked: "<text>Time runs again.</text>"
  scene-weather: "<text>Weather: </text><value>{weather}</value>"
  scene-weather-locked: "<text>Weather is locked.</text>"
  scene-weather-unlocked: "<text>Weather changes again.</text>"
  scene-notices-on: "<text>Crew notices on for you.</text>"
  scene-notices-off: "<text>Crew notices off for you: no crew lines, REC titles or countdowns on your screen.</text>"
  scene-about-pvp: "on: as vanilla. off: actors cannot hurt players. groups: only between different groups."
  scene-about-damage: "off: actors take no damage (the void and /kill still work)."
  scene-about-hunger: "off: actors never get hungry."
  scene-about-build: "off: actors cannot break or place blocks or use buckets."
  scene-about-keep-inventory: "on: actors keep their items and levels when they die."
  scene-about-death-messages: "shown: as vanilla. crew: only the crew sees them. hidden: nobody does."
  scene-about-on-death: "normal: as vanilla. spectator: they come back as a spectator where they died. out: eliminated until /revive."
  scene-about-chat: "open: as vanilla. crew: an actor's chat reaches the crew and themself only, without a word about it."
  scene-about-join-messages: "shown: as vanilla. crew: only the crew sees them. hidden: nobody does. Useful while a big cast arrives."
  scene-about-locator-bar: "Minecraft's locator bar, which shows where other players are."
  scene-about-coordinates: "hidden: the F3 screen leaves out coordinates (reduced debug info)."
  scene-about-advancements: "hidden: no advancement lines in chat."

  # ---- intake ----
  intake-help: "<text>/intake status · open · close · cap <n|off> · next <n> · admit <names> · remove <names> · import [file] · list · admitted · clear [waiting|admitted|all] · autogroup <group|off></text>"
  intake-status: "<text>Intake </text><value>{mode}</value><text>. Waiting </text><value>{waiting}</value><text>, admitted </text><value>{admitted}</value><text>, actors online </text><value>{online}</value><text> (cap {cap}). Auto group: </text><value>{group}</value>"
  intake-mode-open: "open"
  intake-mode-closed: "closed"
  intake-no-cap: "none"
  intake-opened: "<text>Intake is </text><good>open</good><text>: anybody gets in, up to the cap.</text>"
  intake-closed: "<text>Intake is </text><bad>closed</bad><text>: only admitted actors get in. Everybody else goes on the waiting list.</text>"
  intake-cap: "<text>Cap: </text><value>{cap}</value><text> actors.</text>"
  intake-waiting-empty: "<text>Nobody is waiting.</text>"
  intake-admitted-next: "<text>Admitted the next </text><value>{count}</value><text>: </text><muted>{list}</muted><text>. They can join now.</text>"
  intake-admitted: "<text>Admitted </text><value>{count}</value><text> new of </text><value>{total}</value><text> name(s).</text>"
  intake-removed: "<text>Took </text><value>{count}</value><text> name(s) off the admitted list.</text>"
  intake-import-missing: "<bad>No file </bad><value>plugins/SceneSMP/{file}</value><text>. Put one name per line in it.</text>"
  intake-waiting: "<value>{count}</value><text> waiting, oldest first: </text><muted>{list}</muted>"
  intake-admitted-list: "<value>{count}</value><text> admitted: </text><muted>{list}</muted>"
  intake-cleared: "<text>Cleared: </text><value>{what}</value>"
  intake-autogroup: "<text>Arriving actors join group </text><value>{group}</value><text>.</text>"

  npc-help: "<text>/npc create <id> [skin] · remove <id> · cmd <id> <command> · clearcmds <id> · skin <id> <name> · rename <id> <name> · tphere <id> · list · respawn</text>"
  npc-created: "<text>NPC </text><value>{npc}</value><text> created. Add actions with /npc cmd {npc} <command>.</text>"
  npc-unknown: "<bad>No NPC called </bad><value>{npc}</value>"
  npc-removed: "<text>NPC </text><value>{npc}</value><text> removed.</text>"
  npc-list: "<text>NPCs: </text><value>{list}</value>"
  npc-cmd-added: "<text>Action added to </text><value>{npc}</value><text> ({count} total). Prefix with console: or message: if you like.</text>"
  npc-cmds-cleared: "<text>Actions of </text><value>{npc}</value><text> cleared.</text>"
  npc-skin: "<text>Skin of </text><value>{npc}</value><text>: </text><value>{skin}</value>"
  npc-renamed: "<text>NPC </text><value>{npc}</value><text> renamed.</text>"
  npc-moved: "<text>NPC </text><value>{npc}</value><text> moved here.</text>"
  npc-respawned: "<text>{count} NPC(s) respawned.</text>"
  npc-no-actions: "<text>This NPC has nothing to say yet.</text>"

  kit-unknown: "<bad>No kit called </bad><value>{kit}</value>"
  kit-locked: "<bad>You do not have access to </bad><value>{kit}</value><bad>.</bad>"
  kit-cooldown: "<text>You can take </text><value>{kit}</value><text> again in </text><value>{seconds}s</value><text>.</text>"
  kit-given: "<text>Kit </text><value>{kit}</value><text> received.</text>"
  kit-list: "<text>Kits: </text><value>{list}</value>"
  kit-given-many: "<text>Gave </text><value>{kit}</value><text> to </text><value>{count}</value><text> of </text><value>{total}</value><text> player(s).</text>"
  kit-give-none: "<bad>Nobody online to give it to.</bad>"
  kit-give-missing: "<bad>Not online: </bad><value>{names}</value>"
  kit-help: "<text>/kit <name> · create <name> · delete <name> · give <who> <name> · giveall <name> · strip <who> · restore <who> · cooldown <name> <seconds> · permission <name> <node|none></text>"
  kit-saved: "<text>Kit </text><value>{kit}</value><text> saved from your inventory, slot for slot, with {effects} effect(s).</text>"
  kit-deleted: "<text>Kit </text><value>{kit}</value><text> deleted.</text>"
  kit-updated: "<text>Kit </text><value>{kit}</value><text> updated.</text>"
  kit-stripped: "<text>Stripped </text><value>{count}</value><text>. Their things are kept aside for /kit restore.</text>"
  kit-stripped-you: "<text>Your inventory was taken for the scene. You get it back afterwards.</text>"
  kit-restored: "<text>Gave </text><value>{count}</value><text> of </text><value>{total}</value><text> their things back.</text>"
  kit-restored-you: "<text>Your own inventory is back.</text>"

  warp-help: "<text>/warp <place> [who] [spread <blocks>] · /warps · /setwarp <name> · /delwarp <name> · /spawn [who] · /setspawn</text>"
  warp-set: "<text>Place </text><value>{warp}</value><text> set where you stand, facing your way.</text>"
  warp-deleted: "<text>Place </text><value>{warp}</value><text> deleted.</text>"
  warp-list: "<text>Places: </text><value>{list}</value>"
  warp-unknown: "<bad>No place called </bad><value>{warp}</value>"
  warp-teleported: "<text>Moved to </text><value>{warp}</value><text>.</text>"
  warp-sent: "<text>Sent </text><value>{count}</value><text> to </text><value>{warp}</value><text>.</text>"
  spawn-set: "<text>Spawn set here.</text>"

  nick-help: "<text>/nick <name|off> · /nick <player> <name|off> · /nick random <player,player|*> · /nick randomall · /nick list · /nick resetall</text>"
  nick-random-done: "<text>Disguised </text><value>{count}</value><text> player(s), picked from </text><value>{pool}</value><text> name(s).</text>"
  nick-random-you: "<text>You are now </text><value>{nick}</value><text>. Your face changed too.</text>"
  nick-random-empty: "<bad>No names to pick from.</bad><text> Add some to nicknames.random-names, or wait until more players have joined this server.</text>"
  nick-random-nobody: "<bad>Nobody to disguise.</bad>"
  nick-random-missing: "<bad>Not online: </bad><value>{names}</value>"
  nick-reset-all: "<text>Cleared </text><value>{count}</value><text> nickname(s) across the server.</text>"
  nick-list-head: "<accent><bold>{count} nicknamed</bold></accent>"
  nick-list-row: "<muted>·</muted> <value>{player}</value><text> as </text>{nick}<muted>  skin: {skin}</muted>"
  nick-list-empty: "<text>Nobody is nicknamed right now.</text>"
  nick-own-skin: "their own"
  nick-skin-set: "<text>Wearing </text><value>{name}</value><text>'s skin.</text>"
  nick-skin-unknown: "<warn>No skin found for </warn><value>{name}</value><warn>. The nickname is set anyway.</warn>"
  nick-reset: "<text>Nickname of </text><value>{player}</value><text> removed.</text>"
  nick-too-long: "<bad>Nicknames are up to {max} characters.</bad>"
  nick-set: "<text>{player} is now known as </text>{nick}"

  im-help: "<text>/itemmaker name <text> · lore add <text> · lore clear · enchant <name> [level] · glow · unbreakable · model <n> · hideflags · type <material> · save <id> · give <id> [player] [amount] · delete <id> · list</text>"
  im-list: "<text>Saved items: </text><value>{list}</value>"
  im-unknown: "<bad>No saved item called </bad><value>{id}</value>"
  im-given: "<text>Gave </text><value>{id}</value><text> to </text><value>{player}</value><text>.</text>"
  im-deleted: "<text>Item </text><value>{id}</value><text> deleted.</text>"
  im-hold: "<text>Hold the item you want to edit.</text>"
  im-done: "<text>Done.</text>"
  im-unknown-enchant: "<bad>Unknown enchantment: </bad><value>{name}</value>"
  im-saved: "<text>Saved as </text><value>{id}</value><text>. /itemmaker give {id}</text>"

  revive-help: "<text>/revive <player></text>"
  revived: "<text>{player} revived.</text>"
  not-banned: "<text>{player} is not eliminated.</text>"
  deathban-list: "<text>Eliminated: </text><value>{list}</value>"
  deathban-added: "<text>{player} is now eliminated.</text>"
  deathban-toggled: "<text>Eliminations are now </text><value>{state}</value><text>.</text>"
  deathban-help: "<text>/deathban on|off · list · add <player> · /revive <player></text>"

  rollback-help: "<text>/rollback <player> [number] · /rollback list|deaths <player></text>"
  rollback-none: "<text>No snapshots for </text><value>{player}</value><text>.</text>"
  rollback-list: "<text>Snapshots of </text><value>{player}</value><text>: {list}</text>"
  rollback-offline: "<bad>{player} must be online to restore.</bad>"
  rollback-done: "<text>Restored </text><value>{player}</value><text>'s inventory from </text><value>{when}</value><text>.</text>"
  rollback-received: "<text>Your inventory was restored by staff.</text>"
  rollback-deaths: "<text>Deaths of </text><value>{player}</value><text>: {list}</text>"

  halfheart-saved: "<text>Half a heart. That was close.</text>"
  halfheart-help: "<text>/halfheart <player> · /halfheart everyone [on|off]</text>"
  halfheart-everyone: "<text>Half-heart protection for everyone: </text><value>{state}</value>"
  halfheart-on: "<value>{player}</value><text> can no longer die.</text>"
  halfheart-off: "<value>{player}</value><text> can die again.</text>"

  invsee-help: "<text>/invsee <player> · /endersee <player></text>"
  invsee-self: "<text>Press E.</text>"
  invsee-title: "<muted>{player}'s inventory</muted>"
  invsee-legend: "<text>Above: inventory and hotbar. Below: helmet, chest, legs, boots, off hand.</text>"
  invsee-left: "<text>{player} left, the window closed.</text>"
  invsee-offline-title: "<muted>{player}'s inventory (offline)</muted>"
  invsee-offline-ender-title: "<muted>{player}'s ender chest (offline)</muted>"
  invsee-offline-read: "<value>{player}</value><text> is offline: this is their saved inventory, read only.</text>"
  invsee-offline-edit: "<value>{player}</value><text> is offline. Your changes are saved to their file when you close the window.</text>"
  invsee-offline-saved: "<good>Saved.</good><text> {player} has the changed items on their next join.</text>"
  invsee-offline-joined: "<bad>{player} joined before the window closed, so nothing was changed.</bad>"
  invsee-offline-none: "<bad>No saved data for </bad><value>{player}</value><bad>. Have they played here?</bad>"
  invsee-offline-error: "<bad>Could not read the save of {player}.</bad><text> The console says why.</text>"
  invsee-offline-old: "<warn>{player}'s save is from an older Minecraft version, so it opens read only until they have joined once.</warn>"

  filter-blocked: "<bad>That message contains a blocked word.</bad>"
  filter-help: "<text>/filter add <word> · remove <word> · list · mode censor|block</text>"
  filter-added: "<text>Blocked: </text><value>{word}</value>"
  filter-removed: "<text>Unblocked: </text><value>{word}</value>"
  filter-list: "<text>{count} blocked word(s): </text><value>{list}</value>"
  filter-mode: "<text>Filter mode: </text><value>{mode}</value>"

  chat-locked: "<bad>Chat is locked right now.</bad>"
  you-are-muted: "<bad>You are muted ({time}). </bad><text>{reason}</text>"
  chat-lock-on: "<bad>Chat has been locked by {staff}.</bad>"
  chat-lock-off: "<good>Chat has been unlocked by {staff}.</good>"
  mute-list: "<text>Muted: </text><value>{list}</value>"
  mute-help: "<text>/mute <player> [10m|2h|1d|permanent] [reason] · /unmute <player> · /mutes · /mutechat</text>"
  unmuted: "<text>{player} unmuted.</text>"
  not-muted: "<text>{player} is not muted.</text>"
  you-were-unmuted: "<good>You have been unmuted.</good>"
  muted: "<text>{player} muted for </text><value>{time}</value><text>: {reason}</text>"
  mute-broadcast: "<text>{player} was muted for {time}: {reason}</text>"
  muted-voice-too: "<text>Their voice chat is muted for the same time.</text>"
  spam-slow-down: "<bad>Slow down.</bad><text> You are sending messages too fast.</text>"
  spam-repeat: "<bad>You just said that.</bad>"
  spam-mute-reason: "Spamming"

  rec-title: "<bad>● REC</bad>"
  rec-subtitle: "<text>{name}</text>"
  rec-started: "<bad>● Recording started: </bad><value>{name}</value><text> ({staff})</text>"
  rec-stopped: "<text>Recording stopped: </text><value>{name}</value><text> ({staff})</text>"
  rec-already: "<text>A recording is already running. /recording stop first.</text>"
  rec-not-active: "<text>No recording is running.</text>"
  rec-status-on: "<bad>● Recording: </bad><value>{name}</value>"
  rec-status-off: "<text>Not recording. /recording start [name]</text>"

  fakeborder-help: "<text>/fakeborder <player|all> <size> [centerX centerZ] [shrinkTo] [seconds] · /fakeborder <player|all> reset</text>"
  fakeborder-reset: "<text>Border reset for {count} player(s).</text>"
  fakeborder-set: "<text>Fake border of </text><value>{size}</value><text> shown to {count} player(s).</text>"

  server-unlocked: "<good>The server has been unlocked by {staff}.</good>"
  lock-help: "<text>/lock [message] · /lock allow <player> · /lock status · /unlock</text>"
  lock-allow-removed: "<text>{player} removed from the allow list.</text>"
  lock-allow-added: "<text>{player} may join while locked.</text>"
  lock-status-on: "<bad>Locked.</bad> <text>Allowed: {allow}</text>"
  lock-status-off: "<good>Unlocked.</good> <text>Allowed while locked: {allow}</text>"
  server-locked: "<bad>The server has been locked by {staff}.</bad>"

  dim-locked: "<bad>The {dimension} is closed right now.</bad>"
  dimlock-status: "<text>Nether: </text><value>{nether}</value><text> · End: </text><value>{end}</value>"
  dimlock-help: "<text>/dimlock nether|end [on|off]</text>"
  dim-now-locked: "<bad>The {dimension} has been closed.</bad>"
  dim-now-open: "<good>The {dimension} is open.</good>"

  cmd-blocked: "<bad>You cannot use /{command} here.</bad>"
  cmdblock-help: "<text>/cmdblock add <command> · remove <command> · list</text>"
  cmdblock-added: "<text>Blocked </text><value>/{command}</value>"
  cmdblock-removed: "<text>Unblocked </text><value>/{command}</value>"
  cmdblock-list: "<text>Blocked commands: </text><value>{list}</value>"

  villager-help: "<text>/villager create [profession] [name] · trade <costAmount> [costItem] [uses]  (held item = result, offhand = second cost) · removetrade · cleartrades · name <name> · profession <name> · remove  (look at the villager)</text>"
  villager-created: "<text>Villager created. Look at it and add trades with /villager trade.</text>"
  villager-look: "<text>Look at a villager first.</text>"
  villager-hold: "<text>Hold the item the villager should sell.</text>"
  villager-trade-added: "<text>Trade added ({count} total).</text>"
  villager-trades-cleared: "<text>Trades cleared.</text>"
  villager-trade-removed: "<text>Last trade removed ({count} left).</text>"
  villager-updated: "<text>Villager updated.</text>"
  villager-removed: "<text>Villager removed.</text>"

  # ---- wars ----
  war-declared-title: "<bad><bold>WAR DECLARED</bold></bad>"
  war-declared-sub: "<value>{a}</value><text> against </text><value>{b}</value>"
  war-countdown-title: "<bad><bold>{n}</bold></bad>"
  war-countdown-sub: "<text>the war begins</text>"
  war-begun-title: "<bad><bold>WAR</bold></bad>"
  war-begun-sub: "<value>{a}</value><text>  vs  </text><value>{b}</value>"
  war-eliminated-title: "<dark_red><bold>{player} IS OUT</bold></dark_red>"
  war-eliminated-sub: "<text>fighting for </text><value>{team}</value>"
  war-won-title: "<accent><bold>{winner}</bold></accent>"
  war-over-title: "<accent><bold>THE WAR IS OVER</bold></accent>"
  war-over-sub: "<value>{a}</value><text> {score-a} - {score-b} </text><value>{b}</value>"
  war-help: "<text>/war status · declare <a> <b> [kills] [hours] · accept · peace <a> <b> · surrender <group> · ban on|off · history</text>"
  war-none: "<text>Nobody is at war.</text>"
  war-status-head: "<accent><bold>Wars</bold></accent><text>  eliminations while at war: </text><value>{ban}</value>"
  war-status-row: "<muted>·</muted> <value>{a}</value> <bad>{score-a}</bad> <muted>vs</muted> <bad>{score-b}</bad> <value>{b}</value><text>  to {target}, {left} left</text>"
  war-status-pending: "<muted>·</muted> <value>{a}</value><text> has declared on </text><value>{b}</value><text>, waiting for /war accept</text>"
  war-declared-pending: "<bad><bold>{a} has declared war on {b}.</bold></bad><text> {by} is waiting on /war accept.</text>"
  war-started: "<bad><bold>WAR</bold></bad><text>  </text><value>{a}</value><text> against </text><value>{b}</value><text>. First to {target}. Eliminations: </text><value>{ban}</value>"
  war-kill: "<bad>[war]</bad> <value>{killer}</value><text> killed </text><value>{victim}</value><text>  </text><muted>{a} {score-a} - {score-b} {b}</muted>"
  war-eliminated-reason: "<bad>You fell in the war between {war}. You are out.</bad>"
  war-won-target: "<accent><bold>{winner} has won the war.</bold></accent><text> {a} {score-a} - {score-b} {b}</text>"
  war-won-time: "<accent><bold>The war is over on time: {winner}.</bold></accent><text> {a} {score-a} - {score-b} {b}</text>"
  war-peace: "<accent><bold>Peace.</bold></accent><text> {a} and {b} are no longer at war. {score-a} - {score-b}</text>"
  war-surrender: "<accent><bold>{winner} takes it.</bold></accent><text> The other side surrendered. {a} {score-a} - {score-b} {b}</text>"
  war-ban-toggled: "<text>Eliminations during wars are now </text><value>{state}</value><text>.</text>"
  war-already: "<bad>{a} and {b} are already at war.</bad>"
  war-same-team: "<bad>A group cannot fight itself.</bad>"
  war-not-at-war: "<bad>{a} and {b} are not at war.</bad>"
  war-not-fighting: "<bad>{team} is not in a war.</bad>"
  war-none-pending: "<bad>Nothing has been declared.</bad>"
  war-needs-teams: "<bad>The groups system (teams) is off, so there is nobody to go to war.</bad>"
  war-no-history: "<text>No wars have been fought yet.</text>"
  war-history-head: "<accent><bold>Wars fought</bold></accent>"
  war-history-row: "<muted>·</muted> <value>{a}</value> <text>{score-a} - {score-b}</text> <value>{b}</value><text>  won by </text><value>{winner}</value>"
  war-the-world: "the world"
  war-nobody: "nobody"
  war-no-target: "no limit"
  war-sidebar-title: "<bad><bold>WAR</bold></bad>"
  war-sidebar-a: "<value>{team}</value> <white>{score}</white>"
  war-sidebar-b: "<value>{team}</value> <white>{score}</white>"
  war-sidebar-gap: "<muted>first to {target}</muted>"

  # ---- groups (/group) ----
  team-help: "<text>/group create <name> [colour] · delete <name> · add <group> <who> · remove <who> · split <a,b> <who> · clear <group> · list · info <group> · pvp <group> [on|off] · ff <group> [on|off] · kit <group> <kit|none> · place <group> <place|none> · color · prefix</text>"
  team-list: "<text>Groups: </text>{list}"
  team-none: "none yet"
  team-unknown: "<bad>No group called </bad><value>{team}</value>"
  team-info: "<value>{team}</value><text>: {members} · PvP {pvp} · friendly fire {ff} · respawn kit {kit} · respawn place {place}</text>"
  team-created: "<text>Group </text><value>{team}</value><text> created.</text>"
  team-deleted: "<text>Group </text><value>{team}</value><text> deleted.</text>"
  team-added: "<text>Added </text><value>{count}</value><text> to </text><value>{team}</value><text>.</text>"
  team-you-joined: "<text>You are now in group </text><value>{team}</value><text>.</text>"
  team-removed: "<text>Took </text><value>{count}</value><text> out of their group.</text>"
  team-split: "<text>Split </text><value>{count}</value><text> evenly into </text><value>{groups}</value><text>.</text>"
  team-split-needs-two: "<bad>Name at least two groups, separated by commas: red,blue</bad>"
  team-cleared: "<text>Group </text><value>{team}</value><text> is empty now.</text>"
  team-updated: "<text>Group </text><value>{team}</value><text> updated.</text>"
  team-ff: "<text>Friendly fire for </text><value>{team}</value><text>: {state}</text>"
  team-pvp: "<text>PvP for </text><value>{team}</value><text>: {state}</text>"
  team-kit: "<text>Respawn kit for </text><value>{team}</value><text>: </text><value>{kit}</value>"
  team-place: "<text>Respawn place for </text><value>{team}</value><text>: </text><value>{warp}</value>"
  team-friendly-fire: "<text>That is your teammate.</text>"

  orbital-help: "<text>/orbital <player|here> [lightning|tnt|fireball] [count] [radius]</text>"
  orbital-launched: "<text>Sky strike on </text><value>{player}</value><text>: {count} x {type}.</text>"
  orbital-title: "<bad><bold>{seconds}</bold></bad>"
  orbital-subtitle: "<text>STRIKE INCOMING</text>"

  vc-all-muted: "<bad>Voice chat has been muted for everyone by {staff}.</bad>"
  vc-all-unmuted: "<good>Voice chat is back, thanks to {staff}.</good>"
  vc-list: "<text>Voice muted: </text><value>{list}</value><text> · everyone muted: {all} · hooked: {hooked}</text>"
  vc-help: "<text>/vcmute <player> · /vcunmute <player> · /vcmutes · /vcmuteall</text>"
  vc-muted: "<text>{player}'s microphone is muted.</text>"
  vc-you-muted: "<bad>Your voice chat has been muted by staff.</bad>"
  vc-unmuted: "<text>{player}'s microphone is back.</text>"
  vc-not-muted: "<text>{player} is not voice muted.</text>"
  vc-you-unmuted: "<good>Your voice chat is back.</good>"

  perm-help: "<text>/perm user <player> group <group> · add <node> · remove <node> · info  ·  /perm group <name> create · delete · add <node> · remove <node> · list · info</text>"
  perm-group-created: "<text>Group </text><value>{group}</value><text> created.</text>"
  perm-group-deleted: "<text>Group </text><value>{group}</value><text> deleted.</text>"
  perm-updated: "<text>Permissions of </text><value>{target}</value><text> updated.</text>"
  perm-groups: "<text>Groups: </text><value>{list}</value>"
  perm-group-info: "<value>{group}</value><text>: {nodes}</text>"
  perm-unknown-group: "<bad>No group called </bad><value>{group}</value>"
  perm-user-info: "<value>{player}</value><text>: group {group} · own nodes: {nodes}</text>"

  area-no-build: "<bad>You cannot build here.</bad>"
  area-no-pvp: "<bad>No PvP here.</bad>"
  area-no-enter: "<bad>You cannot enter {area}.</bad>"
  area-help: "<text>/area create <name> <radius> [full] · delete <name> · flag <name> build|pvp|enter|mobs on|off · list · info <name> · here</text>"
  area-created: "<text>Area </text><value>{area}</value><text> created (radius {radius}). Set flags with /area flag.</text>"
  area-deleted: "<text>Area </text><value>{area}</value><text> deleted.</text>"
  area-unknown: "<bad>No area called </bad><value>{area}</value>"
  area-flag: "<text>{area}: {flag} is now </text><value>{state}</value><text>.</text>"
  area-list: "<text>Areas: </text><value>{list}</value>"
  area-info: "<value>{area}</value><text> in {world}, {from} to {to}: {flags}</text>"
  area-here: "<text>Areas here: </text><value>{list}</value>"

  autoclear-warning: "<text>Dropped items are cleared in </text><value>{seconds}s</value><text>.</text>"
  autoclear-done: "<text>Cleared </text><value>{count}</value><text> dropped item(s).</text>"

  joinmessages-off: "<text>Join and leave messages are hidden.</text>"
  joinmessages-on: "<text>Join and leave messages are shown.</text>"

  healed: "<text>Healed.</text>"
  healed-other: "<text>Healed {player}.</text>"
  fed: "<text>Fed.</text>"
  fly-on: "<text>Flight on.</text>"
  fly-off: "<text>Flight off.</text>"
  toggled-other: "<text>{what} for {player}: </text><value>{state}</value>"
  god-on: "<text>God mode on.</text>"
  god-off: "<text>God mode off.</text>"
  gm-help: "<text>/gm c|s|a|sp [who]</text>"
  gm-set: "<text>Game mode: </text><value>{mode}</value>"
  tp-help: "<text>/tphere <who> · /tpall · for yourself, Minecraft's own /tp</text>"
  tp-done: "<text>Teleported </text><value>{player}</value><text> to </text><value>{target}</value><text>.</text>"
  tpall-done: "<text>Brought {count} actor(s) to you.</text>"
  vanish-on: "<text>You are now invisible to actors.</text>"
  vanish-off: "<text>You are visible again.</text>"
  freeze-help: "<text>/freeze <who> [on|off]</text>"
  you-are-frozen: "<bad>You are being held in place.</bad>"
  you-are-unfrozen: "<good>You can move again.</good>"
  frozen: "<text>Holding </text><value>{player}</value><text> in place.</text>"
  unfrozen: "<text>Released </text><value>{player}</value><text>.</text>"
  broadcast-help: "<text>/broadcast <message></text>"
  broadcast-format: "<accent><bold>!</bold></accent> <value>{message}</value>"
  chat-cleared: "<text>Chat cleared by {staff}.</text>"
  head-given: "<text>Here is {player}'s head.</text>"
  hat-hold: "<text>Hold something first.</text>"
  hat-done: "<text>Nice hat.</text>"
  cmdfeedback: "<text>Command feedback: </text><value>{state}</value>"
  otp-help: "<text>/otp <player>: to an online player, or to where an offline player logged out.</text>"
  otp-done: "<text>Teleported to where </text><value>{player}</value><text> logged out: {world} {x} {y} {z}.</text>"
  repair-done: "<text>Repaired </text><value>{count}</value><text> item(s).</text>"
  repair-done-other: "<text>Repaired </text><value>{count}</value><text> item(s) of {player}.</text>"
  repair-nothing: "<text>Nothing to repair.</text>"

# One thank-you line with the BuiltByBit review link: once in the console after install and once
# in chat for the first operator who joins. It never repeats and sends nothing anywhere. false turns it off.
review-reminder: true

migrate/config-1.3.0.yml

Top-level keys:

KeyDefaultComment above it
paneltrueBare /scenesmp opens the control panel for staff.
setup-screentrueThe setup screen: the first operator who joins a server where every system is still off sees it once, with a preset per kind of server. /scenesmp setup opens it any time. false never shows it.
modulessection, 31 keysEvery system ships switched off: turn on the ones your season needs on the Modules screen of /scenesmp, with /scenesmp module <name> on, or with a preset. Switches apply at once, no restart. Edited this file by hand? /scenesmp reload switches the modules...
presetssection, 4 keysPresets: /scenesmp preset <name>, or one click on the setup screen. A preset makes the running set exactly its list: those modules on, every other one off. Edit the lists or add your own. permissions is in none of them on purpose: most servers already run...
commandssection, 2 keysWho answers each command, for servers that also run EssentialsX, CMI or an RTP plugin. By default SceneSMP answers its commands unless another plugin registered the same name first, and it always takes the name from vanilla while the module is on. Put a...
npcsection, 1 keynone
kitssection, 3 keysnone
warpssection, 2 keysnone
nicknamessection, 8 keysnone
deathsection, 8 keysnone
rollbacksection, 7 keysnone
halfheartsection, 6 keysnone
invseesection, 2 keysnone
filtersection, 4 keysnone
mutessection, 4 keysnone
recordingsection, 7 keysnone
fakebordersection, 1 keynone
serverlocksection, 2 keysnone
cmdblocksection, 1 keynone
villagerssection, 2 keysnone
teamssection, 1 keynone
warssection, 8 keysWars between teams. This is a scripted-content plugin, so the defaults here are built for a director, not for a leaderboard. A war starts when you say, ends when you say, and its job is to put a moment on screen that the episode can be cut around. The kill...
orbitalsection, 13 keysnone
permissionssection, 1 keynone
autoclearsection, 4 keysnone
joinquitsection, 7 keysnone
teleportssection, 11 keysTeleports: /tpa /tpahere /tpaccept /tpdeny /tpcancel, /back, /home /sethome /delhome /homes, /rtp.
whisperssection, 2 keysPrivate messages: /msg (also /tell /w /whisper /pm), /reply (/r), /msgtoggle, /socialspy. A muted player cannot whisper and the chat filter applies to whispers too.
rulessection, 4 keysThe rules board: /rules opens a screen with these lines, then what is switched on that players should know about (a death ban, a closed Nether, a running recording...).
altssection, 2 keysThe alt finder: /alts <player> lists other accounts that joined from the same connection. What is stored: on join the address is mixed with a random secret of this server and hashed (SHA-256); only that hash, the account and the time are kept, in...
seasonsection, 10 keysThe season start: /season start [seconds]. A countdown on everybody's screen, then every player in survival or adventure is launched into the air and glides down (the plugin lends an elytra for the flight and takes it back on landing; the chest slot is...
themesection, 11 keysEvery message below is written against these names, not against hex codes: <accent>Open</accent> rather than <accent>Open</accent>. Change a colour here and it changes on every screen at once. Ordinary MiniMessage still works, so <gradient:#a:#b> and...
messagessection, 620 keysnone
review-remindertrueOne thank-you line with the BuiltByBit review link: once in the console after install and once in chat for the first operator who joins. It never repeats and sends nothing anywhere. false turns it off.
plugins/SceneSMP/migrate/config-1.3.0.yml
# SceneSMP - everything a scripted SMP needs, every system a switch.
#
# Turn a module off here and its commands answer "that module is off"; nothing else of it runs.
# Data each module keeps (kits, warps, npcs, mutes...) lives in plugins/SceneSMP/data/<module>.yml.
# All text is MiniMessage: <red>, <bold>, <#ff9900>, <gradient:#a:#b>...

# Bare /scenesmp opens the control panel for staff.
panel: true

# The setup screen: the first operator who joins a server where every system is still off sees it
# once, with a preset per kind of server. /scenesmp setup opens it any time. false never shows it.
setup-screen: true

# Every system ships switched off: turn on the ones your season needs on the Modules screen of
# /scenesmp, with /scenesmp module <name> on, or with a preset. Switches apply at once, no restart.
# Edited this file by hand? /scenesmp reload switches the modules to match it.
# /tp and /team stay vanilla until staff or teams is on, and go back to vanilla when it is off again.
modules:
  npc: false           # /npc            custom NPCs (player model, any skin, commands on click)
  kits: false          # /kit            kits saved from an inventory, cooldowns, permissions
  warps: false         # /warp /spawn    warps and spawn
  nicknames: false     # /nick           nicknames in chat and tab
  itemmaker: false     # /itemmaker      edit the item in your hand, save it, give it out
  death: false         # /revive         death messages, lightning, heads, commands, death ban
  rollback: false      # /rollback       inventory snapshots on death / quit / timer
  halfheart: false     # /halfheart      nobody dies: fatal hits leave half a heart
  invsee: false        # /invsee         open somebody's inventory or ender chest
  filter: false        # /filter         blocked words in chat and on signs
  mutes: false         # /mute           chat mutes, chat lock
  recording: false     # /recording      recording session: quiet server, hidden messages
  fakeborder: false    # /fakeborder     a world border only chosen players see
  serverlock: false    # /lock           lock the server to staff and an allow list
  dimlock: false       # /dimlock        close the Nether or the End
  cmdblock: false      # /cmdblock       commands players may not run
  villagers: false     # /villager       shop villagers with your own trades
  teams: false         # /team           coloured teams, prefixes, friendly fire (takes /team from vanilla)
  wars: false          # /war            wars between teams on your cue, title cards, death ban while at war
  orbital: false       # /orbital        countdown and a strike from the sky
  voice: false         # /vcmute         Simple Voice Chat mutes (needs the voicechat plugin)
  permissions: false   # /perm           tiny permission system; leave off if you run LuckPerms
  areas: false         # /area           protected boxes: build, pvp, enter, mobs flags
  autoclear: false     # /clearitems     dropped-item clear on a timer
  joinquit: false      # /joinmessages   custom join / leave messages
  staff: false         # /heal /fly ...  staff basics (takes /tp from vanilla for player names)
  teleports: false     # /tpa /home      teleport requests, /back, homes, safe random teleport
  whispers: false      # /msg /r         private messages, /msgtoggle, social spy for staff
  rules: false         # /rules          a rules board for players, plus /discord-style link commands
  alts: false          # /alts           alt finder for staff (stores a salted hash, never an address)
  season: false        # /season         season start: countdown, launch and glide

# Presets: /scenesmp preset <name>, or one click on the setup screen. A preset makes the running
# set exactly its list: those modules on, every other one off. Edit the lists or add your own.
# permissions is in none of them on purpose: most servers already run LuckPerms. alts is in none
# of them either: it stores data about connections, so it is a choice you make yourself.
presets:
  story: [npc, kits, warps, nicknames, itemmaker, death, rollback, halfheart, invsee, mutes, recording, fakeborder, serverlock, dimlock, teams, wars, orbital, areas, joinquit, staff, rules, season]
  essentials: [kits, warps, nicknames, rollback, invsee, filter, mutes, areas, autoclear, joinquit, staff, teleports, whispers, rules]
  event: [kits, warps, invsee, mutes, fakeborder, serverlock, dimlock, cmdblock, teams, areas, joinquit, staff, rules, season]
  everything: [npc, kits, warps, nicknames, itemmaker, death, rollback, halfheart, invsee, filter, mutes, recording, fakeborder, serverlock, dimlock, cmdblock, villagers, teams, wars, orbital, voice, areas, autoclear, joinquit, staff, teleports, whispers, rules, season]

# Who answers each command, for servers that also run EssentialsX, CMI or an RTP plugin.
#
# By default SceneSMP answers its commands unless another plugin registered the same name first,
# and it always takes the name from vanilla while the module is on. Put a command under release
# and SceneSMP gives the name up completely, so the other plugin (or vanilla) answers it. Put it
# under take and SceneSMP answers it even when another plugin has the same command.
# Use the main name (home, msg, tp, heal); the aliases (tell, w, r, wild...) follow it.
# The Commands screen of /scenesmp does the same with a click, live, and /scenesmp command <name>
# scenesmp|other|auto does it from the console. The panel's own buttons keep working either way.
# Example next to EssentialsX: release: [home, sethome, delhome, homes, tpa, tpahere, tpaccept, tpdeny, back, msg, reply]
commands:
  release: []
  take: []

npc:
  left-click-runs: true

kits:
  clear-inventory: false
  equip-armor: true
  # /kit give and /kit giveall hand the kit over even when the player lacks its permission node:
  # staff have already chosen who gets it. Turn this off to make the node apply to them too.
  give-ignores-permission: true

warps:
  spawn-on-respawn: true
  spawn-on-join: false

nicknames:
  max-length: 24
  prefix: false
  prefix-text: "<gray>~</gray>"
  above-head: false
  # Nicking as a real player's name also borrows their skin, so the face matches the name. The
  # lookup goes to Mojang off the main thread; an unknown name keeps the nickname and says so.
  take-skin: true

  # /nick random <player|*> and /nick randomall: a disguise, name and face together.
  #
  # A made-up name has no account behind it, so it would leave the player wearing Steve. The names
  # below are therefore names a skin can be fetched for. Write an entry as "Shown:SkinOwner" to use
  # a display name that is not an account and borrow somebody else's face for it.
  #
  # Leave the list empty and the disguises are taken from the people who have already played on
  # this server instead, whose skins the server already knows. On a server with a few regulars that
  # is usually the better game: everybody turns up as somebody else who belongs here.
  random-names: []
  # Off by default. A "~" in front of the name would give the disguise away immediately.
  random-prefix: false
  # Whether /nick randomall leaves staff as themselves.
  random-skips-staff: false

death:
  custom-message: true
  broadcast: true
  message: "<red>{player} died.</red>"
  message-killed: "<red>{player} was killed by {killer}.</red>"
  lightning: true
  drop-head: false
  commands: []                       # e.g. ["say {player} is out", "give {killer} diamond 1"]
  ban:
    enabled: false                   # the death ban. /deathban on|off switches this too.
    kick-delay-ticks: 60
    message: "<red>You died.</red>\n<gray>You are out of the SMP until you are revived.</gray>"
    broadcast: true
    broadcast-message: "<dark_red><bold>{player}</bold> has been eliminated.</dark_red>"
    revive-message: "<green><bold>{player}</bold> has been revived.</green>"

rollback:
  on-death: true
  on-quit: true
  snapshot-every-minutes: 10
  keep: 10                           # timer and quit snapshots kept per player
  keep-deaths: 10                    # deaths kept per player, on their own quota, so a timer
                                     # snapshot can never push a death out of the list
  restore-ender-chest: true
  restore-xp: true

halfheart:
  everyone: false                    # true = protect everybody (except /halfheart <player> exclusions)
  protect-from-void: true            # false = the void is the one thing that still kills
  guard: true                        # also put back health taken without a damage event
  save-message-seconds: 3            # at most one "that was close" per player per this many seconds
  effects: true
  message-on-save: true

invsee:
  # /invsee and /endersee also open the saved inventory of a player who is offline.
  offline: true
  # Staff with scenesmp.invsee.offline-edit may change an offline player's items. The save is
  # written when the window closes, and only while the player is still offline; if they join
  # while the window is open, it closes and saves first. Off: offline windows are read only.
  offline-edit: false

filter:
  chat: true
  signs: true
  block: false                       # false = censor with ***, true = block the message
  spam:
    enabled: false                   # the spam limiter. Staff with scenesmp.filter.bypass are never limited.
    messages: 4                      # at most this many chat messages...
    per-seconds: 5                   # ...in this many seconds (the same window counts commands)
    commands: 6                      # at most this many commands in that window, 0 = no limit
    block-repeats: true              # the same message twice in a row is blocked...
    repeat-seconds: 30               # ...within this many seconds
    max-caps-percent: 70             # a message shouted in capitals is lower-cased, 0 = leave it alone
    caps-min-length: 8               # only messages with at least this many letters count as shouting
    mute-after-strikes: 5            # blocked messages within one minute before a short mute, 0 = never
    mute-minutes: 5                  # needs the mutes module

mutes:
  default-reason: "Muted by staff"
  broadcast: false
  blocked-commands: [msg, tell, w, r, me, say]
  # One mute for both: /mute also silences the player's microphone in Simple Voice Chat for as
  # long as the chat mute lasts, and /unmute lifts both. Needs the voice module on.
  include-voice: false

recording:
  default-name: "Episode"
  announce: true
  hide-join-leave: true
  hide-death-messages: false
  hide-advancements: true
  command-feedback-off: true
  staff-only-chat: false

fakeborder:
  warning-distance: 5

serverlock:
  message: "<bad>The server is locked right now.</bad>"
  kick-on-lock: true

cmdblock:
  hide-from-tab: true

villagers:
  silent: false
  offhand-is-second-cost: true

teams:
  friendly-fire-message: true

# Wars between teams.
#
# This is a scripted-content plugin, so the defaults here are built for a director, not for a
# leaderboard. A war starts when you say, ends when you say, and its job is to put a moment on
# screen that the episode can be cut around. The kill target and the sidebar are off by default
# because a race to a number resolves the story without you, which is the opposite of the point.
wars:
  # Off: /war declare starts it immediately, on your cue.
  # On:  it waits for /war accept, which is for servers where the players run the politics.
  require-accept: false

  # THE ONE THAT MATTERS.
  #
  # Off: a war is fought over a kill score and nobody leaves for good.
  # On:  dying during a war puts you out of the SMP, same list as the death module, so /revive
  #      still brings people back.
  #
  # Tying elimination to the war rather than to the whole season is the point: a server where every
  # death is permanent is one everybody plays scared, and a server where it is permanent only while
  # your team is at war is one where declaring is a real decision and peace means something.
  death-ban-during-war: false

  # Off: only deaths caused by the enemy count toward the score and the ban.
  # On:  any death while your team is at war counts, lava and all.
  count-all-deaths-in-war: false

  # Belligerents can always hit each other, whatever else is switched on.
  force-pvp-between-belligerents: true

  # Kills to win, and hours until a war ends on its own. 0 for either means no limit, and no limit
  # is the default: a war that ends itself at 25 kills has written your ending for you. End it with
  # /war peace or /war surrender when the scene is done.
  default-target: 0
  default-hours: 0

  # The war scoreboard on the right of the screen. Off by default: it is game UI in shot, and a
  # kill count on screen turns a story into a match. Turn it on for a public server.
  sidebar: false

  # What the camera sees.
  #
  # A war that only appears in chat is a war the episode cannot show. These put the moment on
  # everybody's screen as a title card instead, which is the thing you actually cut around.
  cinematic:
    titles: true
    # Seconds of countdown before a declared war begins, with a tick under each number. 0 skips it.
    countdown-seconds: 5
    # Fade in, hold, fade out, in ticks.
    fade-in: 10
    stay: 50
    fade-out: 20
    # A title card when somebody is eliminated, so a death that ends a run lands like one.
    elimination-title: true
    sound: true

orbital:
  default-type: lightning            # lightning, tnt, fireball
  default-count: 8
  default-radius: 5.0
  countdown-seconds: 5
  warning-radius: 60.0
  spread-ticks: 4
  break-blocks: false                # true = real explosions and fire
  drop-height: 30
  tnt-fuse-ticks: 45
  tnt-yield: 4.0
  fireball-yield: 2.0
  fireball-fire: false
  lightning-damage: 6.0

permissions:
  default-group: default

autoclear:
  every-minutes: 15
  warnings-seconds: ["60", "30", "10", "5"]
  announce: true
  keep-materials: [NETHER_STAR, DRAGON_EGG, ELYTRA]

joinquit:
  join: "<good>+</good> <value>{player}</value>"
  leave: "<bad>-</bad> <value>{player}</value>"
  first-join: "<warn>+</warn> <value>{player}</value> <text>joined for the first time</text>"
  welcome-title: ""
  welcome-subtitle: ""
  welcome-chat: []
  silent-for-permission: true        # players with scenesmp.silentjoin join and leave silently

# Teleports: /tpa /tpahere /tpaccept /tpdeny /tpcancel, /back, /home /sethome /delhome /homes, /rtp.
teleports:
  warmup-seconds: 3                  # stand still this long first; a step or a hit cancels. 0 = at once
  cancel-on-move: true
  cancel-on-damage: true
  request-seconds: 60                # a /tpa request runs out after this long
  cooldowns:                         # seconds before the same player can use it again
    tpa: 10
    tpahere: 10
    home: 5
    back: 10
    rtp: 300
  back:
    on-teleport: true                # /back goes to where you stood before a teleport
    on-death: true                   # ...or where you died (players with scenesmp.back.ondeath)
  homes:
    # Homes per player. More by permission: scenesmp.homes.5 allows 5, scenesmp.homes.unlimited any number.
    default-limit: 3
    default-name: home
    blocked-worlds: []               # worlds where /sethome is refused, e.g. [world_the_end]
  rtp:
    worlds: []                       # worlds /rtp works in, empty = the main world. From any other world it goes to the first one.
    center: spawn                    # spawn, or "x,z"
    min-radius: 300
    max-radius: 3000
    tries: 12                        # spots tried before it gives up; the world border is respected
    blocked-biomes: [ocean, river]   # a biome whose name contains one of these words is skipped
    blocked-blocks: [LAVA, WATER, MAGMA_BLOCK, CACTUS, FIRE, SOUL_FIRE, CAMPFIRE, SOUL_CAMPFIRE, SWEET_BERRY_BUSH, POWDER_SNOW, POINTED_DRIPSTONE, WITHER_ROSE, BEDROCK]
  respect-dimlock: true              # no teleport into a dimension /dimlock has closed
  respect-areas: true                # no teleport into an area whose enter flag is off
  block-while-recording: false       # players cannot teleport while a recording runs (staff can)

# Private messages: /msg (also /tell /w /whisper /pm), /reply (/r), /msgtoggle, /socialspy.
# A muted player cannot whisper and the chat filter applies to whispers too.
whispers:
  log-to-console: true
  block-during-recording: false      # players cannot whisper while a recording runs (staff can)

# The rules board: /rules opens a screen with these lines, then what is switched on that players
# should know about (a death ban, a closed Nether, a running recording...).
rules:
  lines:
    - "<value>1.</value> <text>Be kind. No slurs, no harassment, no threats.</text>"
    - "<value>2.</value> <text>No cheats, hacked clients, x-ray or duping.</text>"
    - "<value>3.</value> <text>No griefing or stealing outside agreed wars.</text>"
    - "<value>4.</value> <text>Staff have the final word. Ask in chat if unsure.</text>"
  show-systems: true
  show-on-first-join: false
  # Link commands: each name with an address becomes a command (/discord, /store...) and a button
  # on the rules board. Leave the address empty to switch one off. Names of SceneSMP's own commands are skipped.
  links:
    discord: ""
    store: ""

# The alt finder: /alts <player> lists other accounts that joined from the same connection.
# What is stored: on join the address is mixed with a random secret of this server and hashed
# (SHA-256); only that hash, the account and the time are kept, in plugins/SceneSMP/data/alts.yml.
# The address itself is never written, nothing is sent anywhere, and entries are deleted after
# keep-days. Mention it in your server's privacy notice if you switch it on.
alts:
  keep-days: 30
  alert: banned                      # tell staff (scenesmp.alts.alert) when a player joins from the
                                     # connection of an eliminated or banned account: banned, any, off

# The season start: /season start [seconds]. A countdown on everybody's screen, then every player
# in survival or adventure is launched into the air and glides down (the plugin lends an elytra for
# the flight and takes it back on landing; the chest slot is restored).
season:
  countdown-seconds: 10
  gather: false                      # teleport everybody to spawn before the countdown
  freeze: true                       # nobody walks off during the countdown
  launch-strength: 2.5               # upward speed at zero, 0 = no launch (about 40 blocks at 2.5)
  spread-strength: 0.6               # push in a random direction, 0 = straight up
  glide: true
  landing-protection-seconds: 10     # no fall damage this long after landing
  kit: ""                            # a kit everybody gets at zero (kits module)
  commands-at-zero: []               # console commands at zero, e.g. "fakeborder all 2000 0 0 200 3600"
  sounds: true

# ------------------------------------------------------------------------------------------------
# THEME
# ------------------------------------------------------------------------------------------------
# Every message below is written against these names, not against hex codes: <accent>Open</accent>
# rather than <accent>Open</accent>. Change a colour here and it changes on every screen at
# once. Ordinary MiniMessage still works, so <gradient:#a:#b> and <#ff0000> are fine anywhere.
theme:
  accent: "#ffd166"     # your colour: headings and anything the player is meant to click
  accent2: "#ffe6ab"    # a lighter accent, for a second level of emphasis
  title: "#f4f7ff"      # screen titles
  text: "#c2ccdd"       # ordinary prose
  muted: "#6b7a94"      # hints, separators, anything the eye should skip
  value: "#ffffff"      # the numbers and names the player opened the screen to read
  good: "#57e08a"
  warn: "#ffc857"
  bad: "#ff6b6b"
  small-caps: false     # ᴇхᴀᴍᴘʟᴇ - a garnish; whole menus in it read badly
  # Real Minecraft item pictures beside the buttons and in the chest screens. Drawn from the
  # client's own textures, so there is nothing to install and no resource pack: it needs a
  # 1.21.9 or newer client, and older ones simply see the buttons as words.
  item-icons: true

messages:
  prefix: "<accent><bold>Scene</bold></accent> <muted>»</muted> "
  no-permission: "<bad>You cannot do that.</bad>"
  unknown-player: "<bad>Unknown player: </bad><value>{name}</value>"
  module-off: "<text>The </text><value>{module}</value><text> module is off in config.yml.</text>"
  reloaded: "<value>Config reloaded.</value>"
  about: "<value>SceneSMP {version}</value><text> by Frostyh. /scenesmp reload</text>"

  # The control panel: /scenesmp with nothing after it, for staff. Screen titles, buttons, tooltips.
  panel-title: "<value>SceneSMP</value>"
  panel-close: "<text>Close</text>"
  panel-back: "<white><icon:back></white><text>Back</text>"
  panel-back-tip: "<text>Back to the screen before.</text>"
  panel-empty: "<text>Fill the field in first.</text>"
  word-on: "on"
  word-off: "off"
  # Appended to a button that toggles something, so it says which way it currently is.
  state-on: "  <good><bold>ON</bold></good>"
  state-off: "  <bad><bold>OFF</bold></bad>"
  panel-version: "<text>SceneSMP </text><value>{version}</value>"
  panel-modules-line: "<text>Modules running: </text><value>{on} of {all}</value>"
  panel-online: "<text>Players online: </text><value>{count}</value>"
  panel-players: "<white><icon:players></white><accent>Players</accent>"
  panel-players-tip: "<text>Everyone online, and the staff tools for them.</text>"
  panel-players-title: "<value>Players</value>"
  panel-nobody: "<text>Nobody is online.</text>"
  panel-player-line: "<value>{player}</value><text> · {world} · {health} hearts · {ping}ms</text>"
  panel-player-open: "<white><icon:players></white><value>{player}</value>"
  panel-player-open-tip: "<text>Staff tools for {player}.</text>"
  panel-player-title: "<value>{player}</value>"
  panel-player-head: "<text>{player} in {world}, {gamemode}</text>"
  panel-player-stats: "<text>{health} health · {food} food · {ping}ms</text>"
  panel-field-reason: "<text>Reason, for the mute</text>"
  panel-heal: "<white><icon:heal></white><value>Heal</value>"
  panel-heal-tip: "<text>Full health, food and no effects.</text>"
  panel-feed: "<white><icon:feed></white><value>Feed</value>"
  panel-feed-tip: "<text>Fill the food bar.</text>"
  panel-fly: "<white><icon:fly></white><value>Flight</value>"
  panel-fly-tip: "<text>Turn flight on or off.</text>"
  panel-god: "<white><icon:god></white><value>God mode</value>"
  panel-god-tip: "<text>Turn damage off or on.</text>"
  panel-vanish: "<white><icon:vanish></white><value>Vanish</value>"
  panel-vanish-tip: "<text>Hide them from everyone without the see permission.</text>"
  panel-freeze: "<white><icon:freeze></white><value>Freeze</value>"
  panel-freeze-tip: "<text>Hold them where they stand.</text>"
  panel-survival: "<white><icon:survival></white><value>Survival</value>"
  panel-survival-tip: "<text>Put them in survival.</text>"
  panel-creative: "<white><icon:creative></white><value>Creative</value>"
  panel-creative-tip: "<text>Put them in creative.</text>"
  panel-spectator: "<white><icon:spectator></white><value>Spectator</value>"
  panel-spectator-tip: "<text>Put them in spectator.</text>"
  panel-invsee: "<white><icon:inventory></white><value>Open inventory</value>"
  panel-invsee-tip: "<text>Their inventory, hotbar, armour and off hand, live: take things out, put things in.</text>"
  panel-bring: "<white><icon:teleport></white><value>Bring here</value>"
  panel-bring-tip: "<text>Teleport them to you.</text>"
  panel-goto: "<white><icon:teleport></white><value>Go to them</value>"
  panel-goto-tip: "<text>Teleport yourself to them.</text>"
  panel-mute: "<white><icon:mute></white><bad>Mute for an hour</bad>"
  panel-mute-tip: "<text>Uses the reason field above.</text>"
  panel-unmute: "<white><icon:unmute></white><value>Unmute</value>"
  panel-unmute-tip: "<text>Let them talk again.</text>"
  panel-revive: "<white><icon:revive></white><value>Revive</value>"
  panel-revive-tip: "<text>Lift a death ban.</text>"
  panel-rollback: "<white><icon:rollback></white><value>Restore inventory</value>"
  panel-rollback-tip: "<text>Put back the last snapshot.</text>"
  panel-restore-tip: "<text>Pick which of their stored inventories to put back.</text>"
  panel-restore-title: "<value>Restore</value><text> · {player}</text>"
  panel-restore-intro: "<text>{count} stored inventories for </text><value>{player}</value><text>. Newest first.</text>"
  panel-restore-none: "<text>Nothing stored yet. Snapshots are taken on death, on quit and on a timer.</text>"
  panel-restore-death: "<white><icon:grave></white><bad>{when}</bad><text> · {detail}</text>"
  panel-restore-entry: "<white><icon:clock></white><value>{when}</value><text> · {reason}</text>"
  panel-restore-entry-tip: "<text>Put this back onto </text><value>{player}</value><text>. Their current things are stored first.</text>"
  panel-restore-deaths: "<white><icon:grave></white><value>Deaths only</value>"
  panel-restore-all: "<white><icon:clock></white><value>Show everything</value>"
  panel-restore-filter-tip: "<text>Switch between every snapshot and deaths only.</text>"
  panel-nick-random: "<white><icon:nick></white><value>Random disguise</value>"
  panel-nick-random-tip: "<text>A random name and the face that goes with it.</text>"
  panel-nick-off: "<white><icon:nick></white><value>Clear nickname</value>"
  panel-nick-off-tip: "<text>Back to their own name and face.</text>"
  panel-nick-random-all: "<white><icon:nick></white><value>Disguise everyone</value>"
  panel-nick-random-all-tip: "<text>Every player online gets a random name and face.</text>"
  panel-nick-reset-all: "<white><icon:nick></white><value>Clear all nicknames</value>"
  panel-nick-reset-all-tip: "<text>Everybody back to their own name and face.</text>"
  panel-server: "<white><icon:server></white><accent>Server</accent>"
  panel-server-tip: "<text>Lock, chat, dimensions and the broadcast.</text>"
  panel-server-title: "<value>Server</value>"
  panel-server-intro: "<text>These hit everybody on the server.</text>"
  panel-field-message: "<text>Message, for the lock and the broadcast</text>"
  panel-lock: "<white><icon:lock></white><bad>Lock the server</bad>"
  panel-lock-tip: "<text>Only staff get in. Uses the message above.</text>"
  panel-unlock: "<white><icon:unlock></white><good>Unlock the server</good>"
  panel-unlock-tip: "<text>Let everybody in again.</text>"
  panel-mutechat: "<white><icon:mute></white><value>Lock or unlock chat</value>"
  panel-mutechat-tip: "<text>Nobody but staff can talk while chat is locked.</text>"
  panel-clearchat: "<white><icon:clear></white><value>Clear chat</value>"
  panel-clearchat-tip: "<text>Push the chat off everybody's screen.</text>"
  panel-clearitems: "<white><icon:clear></white><value>Clear dropped items</value>"
  panel-clearitems-tip: "<text>Remove the items lying on the ground.</text>"
  panel-dimlock-nether: "<white><icon:nether></white><value>Nether lock</value>"
  panel-dimlock-nether-tip: "<text>Turn the nether on or off for players.</text>"
  panel-dimlock-end: "<white><icon:end></white><value>End lock</value>"
  panel-dimlock-end-tip: "<text>Turn the end on or off for players.</text>"
  panel-joinmessages: "<white><icon:join></white><value>Join and leave messages</value>"
  panel-joinmessages-tip: "<text>Show or hide them.</text>"
  panel-broadcast: "<white><icon:broadcast></white><value>Broadcast the message</value>"
  panel-broadcast-tip: "<text>Send the message above to everybody.</text>"
  panel-recording: "<white><icon:record></white><value>Recording state</value>"
  panel-recording-tip: "<text>Is a recording session running?</text>"
  panel-warps: "<white><icon:warp></white><accent>Warps</accent>"
  panel-warps-tip: "<text>Go to a warp, set one, delete one.</text>"
  panel-warps-title: "<value>Warps</value>"
  panel-warps-empty: "<text>No warps yet.</text>"
  panel-warp-line: "<text> - </text><value>{warp}</value>"
  panel-warp-go: "<white><icon:teleport></white><value>Go to {warp}</value>"
  panel-warp-go-tip: "<text>Teleport to {warp}.</text>"
  panel-field-warp: "<text>Warp name</text>"
  panel-warp-set: "<white><icon:yes></white><good>Set a warp here</good>"
  panel-warp-set-tip: "<text>Save where you stand under the name above.</text>"
  panel-warp-delete: "<white><icon:delete></white><bad>Delete that warp</bad>"
  panel-warp-delete-tip: "<text>Delete the warp named above.</text>"
  panel-kits: "<white><icon:kit></white><accent>Kits</accent>"
  panel-kits-tip: "<text>Take one of the kits.</text>"
  panel-kits-title: "<value>Kits</value>"
  panel-kits-empty: "<text>No kits yet.</text>"
  panel-kit-line: "<text> - </text><value>{kit}</value>"
  panel-kit-take: "<white><icon:kit></white><value>Take {kit}</value>"
  panel-kit-take-tip: "<text>Give yourself {kit}.</text>"
  panel-kit-give-open: "<white><icon:kit></white><value>Give a kit out</value>"
  panel-kit-give-open-tip: "<text>Hand a kit to several players at once, or to everyone online.</text>"
  panel-kit-give-title: "<value>Give a kit out</value>"
  panel-kit-give-help: "<text>Type names separated by commas, or leave the box empty to give it to everyone online ({count}).</text>"
  panel-field-players: "<text>Players</text>"
  panel-kit-give: "<white><icon:kit></white><value>Give {kit}</value>"
  panel-kit-give-tip: "<text>Give {kit} to the players in the box, or to everyone online if it is empty.</text>"
  panel-modules: "<white><icon:modules></white><accent>Modules</accent>"
  panel-modules-tip: "<text>Which systems of the plugin run.</text>"
  panel-modules-title: "<value>Modules</value>"
  panel-modules-intro: "<text>A switch here is written to config.yml and takes effect on the next server start.</text>"
  panel-module-tip: "<text>Click to switch. It applies on the next start.</text>"
  panel-module-changed: "<value>{module}</value><text> is now {state} in config.yml. Restart to apply.</text>"
  panel-reload: "<white><icon:reload></white><text>Reload config</text>"
  panel-reload-tip: "<text>Read config.yml again.</text>"
  switch-on: "<white><icon:yes></white><good><bold>ON</bold></good>  <value>{title}</value>"
  switch-off: "<white><icon:no></white><bad><bold>OFF</bold></bad> <text>{title}</text>"

  # Switching modules while the server runs (Modules screen, /scenesmp module, presets, reload).
  panel-modules-intro-live: "<text>Click a system to switch it on or off. It applies at once and is saved to config.yml.</text>"
  panel-module-tip-live: "<value>{module}</value><text>: {about}</text>\n<muted>Click to switch it. No restart needed.</muted>"
  module-now-on: "<value>{module}</value><text> is </text><good>on</good><text>. Saved to config.yml.</text>"
  module-now-off: "<value>{module}</value><text> is </text><bad>off</bad><text>. Saved to config.yml.</text>"
  module-failed: "<bad>{module} could not start.</bad><text> The console says why.</text>"
  module-unchanged: "<value>{module}</value><text> is already {state}.</text>"
  module-unknown: "<bad>No module called </bad><value>{module}</value><text>. Modules: {list}</text>"
  module-help: "<text>/scenesmp module <name> [on|off] · /scenesmp modules · /scenesmp preset <name> · /scenesmp setup</text>"
  module-prefixed: "<warn>/{command} is held by another command until the next restart.</warn><text> Until then use </text><value>/scenesmp:{command}</value><text>.</text>"
  modules-list: "<text>{count} of {all} systems on: </text><value>{on}</value><text>. Off: </text><muted>{off}</muted>"
  modules-synced: "<text>Modules switched to match config.yml: </text><value>{list}</value>"

  # The setup screen and the presets.
  panel-setup: "<white><icon:settings></white><accent>Quick setup</accent>"
  panel-setup-tip: "<text>Switch on a ready-made set of systems for your kind of server.</text>"
  setup-title: "<value>SceneSMP setup</value>"
  setup-intro: "<text>Pick what kind of server this is. That set of systems switches on right away, and you can change any single one afterwards.</text>"
  setup-none-on: "<text>Every system is off right now, so the plugin does nothing yet.</text>"
  setup-some-on: "<value>{count}</value><text> systems are on now. A preset switches off the ones it does not list.</text>"
  setup-own: "<white><icon:modules></white><value>Choose myself</value>"
  setup-own-tip: "<text>Open the switches and turn on what you need one by one.</text>"
  setup-chat-hint: "<text>Welcome to SceneSMP. This screen shows once; open it again with </text><value>/scenesmp setup</value><text>.</text>"
  preset-tip: "<text>{about}</text>\n<text>{count} systems: </text><muted>{list}</muted>"
  preset-story: "<white><icon:record></white><accent>Story SMP</accent>"
  preset-story-tip: "For a filmed, scripted season: NPCs, death ban, half-heart, recording mode, fake border, wars, orbital strikes."
  preset-essentials: "<white><icon:home></white><accent>Essentials SMP</accent>"
  preset-essentials-tip: "A normal SMP: kits, warps, nicknames, rollback, chat filter, mutes, areas, auto clear and staff tools."
  preset-event: "<white><icon:arena></white><accent>Event server</accent>"
  preset-event-tip: "Keeps players where the event wants them: server and dimension locks, command blocker, areas, teams."
  preset-everything: "<white><icon:top></white><accent>Everything</accent>"
  preset-everything-tip: "Every system except the permission system, which you only want without LuckPerms."
  preset-custom: "<accent>{preset}</accent>"
  preset-applied: "<text>Preset </text><value>{preset}</value><text>: </text><value>{count} of {all}</value><text> systems on, no restart needed. On: </text><muted>{list}</muted>"
  preset-unknown: "<bad>No preset called </bad><value>{preset}</value><text>. Presets: {list}</text>"
  preset-help: "<text>/scenesmp preset <name>. Presets: </text><value>{list}</value><text>. Edit them under presets: in config.yml.</text>"

  # One line per system, shown when hovering its switch on the Modules screen.
  module-about-npc: "custom NPCs with any skin that run commands when clicked"
  module-about-kits: "kits saved from an inventory, with cooldowns and permissions"
  module-about-warps: "warps, spawn and respawn at spawn"
  module-about-nicknames: "nicknames in chat and tab, random disguises"
  module-about-itemmaker: "edit the item in your hand, save it, give it out"
  module-about-death: "death messages, lightning, heads, commands and the death ban"
  module-about-rollback: "inventory snapshots on death, quit and a timer, restore any of them"
  module-about-halfheart: "nobody dies: a fatal hit leaves half a heart"
  module-about-invsee: "open anybody's inventory or ender chest, live"
  module-about-filter: "blocked words in chat and on signs"
  module-about-mutes: "timed mutes with reasons, chat lock"
  module-about-recording: "recording mode: a quiet server and a REC title"
  module-about-fakeborder: "a world border only chosen players see"
  module-about-serverlock: "lock the server to staff and an allow list"
  module-about-dimlock: "close the Nether or the End"
  module-about-cmdblock: "commands players may not run or see"
  module-about-villagers: "shop villagers with your own trades"
  module-about-teams: "coloured teams with prefixes and friendly fire"
  module-about-wars: "wars between teams on your cue, with title cards"
  module-about-orbital: "a countdown and a strike from the sky"
  module-about-voice: "Simple Voice Chat mutes"
  module-about-permissions: "a small permission system; leave it off with LuckPerms"
  module-about-areas: "protected boxes with build, pvp, enter and mob flags"
  module-about-autoclear: "dropped items cleared on a timer"
  module-about-joinquit: "your own join and leave messages"
  module-about-staff: "heal, fly, god, vanish, freeze, teleports and more"
  module-about-teleports: "tpa, back, homes and a safe random teleport, with warm-ups and cooldowns"
  module-about-whispers: "private messages, reply, msgtoggle and social spy"
  module-about-rules: "a rules board for players and link commands like /discord"
  module-about-alts: "alt finder for staff; stores a salted hash, never an address"
  module-about-season: "season start: countdown, launch and glide"

  # What yes/no placeholders (%scenesmp_muted% and friends) return.
  placeholder-yes: "yes"
  placeholder-no: "no"
  placeholder-unlimited: "unlimited"

  # Who answers a command (Commands screen, /scenesmp command, commands: in this file).
  owner-auto: "auto"
  owner-scenesmp: "SceneSMP"
  owner-other: "other plugin"
  owner-auto-about: "SceneSMP answers it unless another plugin had the name first."
  owner-scenesmp-about: "SceneSMP answers it, even when another plugin has the same command."
  owner-other-about: "SceneSMP leaves it to another plugin or to vanilla. Panel buttons still use SceneSMP's own."
  commands-holder-nobody: "nobody"
  commands-holder-vanilla: "Minecraft"
  commands-list: "<text>Left to other plugins: </text><value>{release}</value><text>. Taken by SceneSMP: </text><value>{take}</value><text>. Answered by another plugin right now: </text><muted>{elsewhere}</muted>"
  command-help: "<text>/scenesmp command <name> [scenesmp|other|auto] · /scenesmp commands</text>"
  command-unknown: "<bad>SceneSMP has no command called </bad><value>{command}</value>"
  command-state: "<value>/{command}</value><text>: {mode}. Answered now by </text><value>{holder}</value><text>.</text>"
  panel-commands: "<white><icon:settings></white><accent>Commands</accent>"
  panel-commands-tip: "<text>Choose per command whether SceneSMP or another plugin answers it.</text>"
  panel-commands-title: "<value>Commands</value>"
  panel-commands-intro: "<text>Running next to EssentialsX or another plugin? Hand any command to it here. Each click moves a command on: auto, SceneSMP, other plugin.</text>"
  panel-commands-module: "<white><icon:modules></white><value>{module}</value><text> · {count}</text>{changed}"
  panel-commands-changed: "<warn> · {count} set</warn>"
  panel-commands-module-tip: "<text>{list}</text>"
  panel-commands-of: "<text>Commands of </text><value>{module}</value><text> (the module is {state}).</text>"
  panel-command-line: "<value>/{command}</value><text>  {mode}</text>"
  panel-command-tip: "<text>Now: </text><value>{mode}</value><text>. {about}</text>\n<text>Answered right now by </text><value>{holder}</value><text>.</text>\n<muted>Click to switch to: {next}</muted>"
  panel-field-command: "<text>Find a command</text>"

  # Search and quick switches on the panel.
  panel-field-search: "<text>Find a system: a name, a word or a command</text>"
  panel-search: "<white><icon:search></white><value>Search</value>"
  panel-search-tip: "<text>Show only what matches the box above.</text>"
  panel-search-results: "<value>{count}</value><text> match(es) for </text><value>{query}</value><text>.</text>"
  panel-search-none: "<text>Nothing matches </text><value>{query}</value><text>.</text>"
  panel-search-clear: "<white><icon:back></white><text>Show all</text>"
  panel-search-clear-tip: "<text>Clear the search.</text>"
  panel-pins: "<white><icon:top></white><accent>Quick switches</accent>"
  panel-pins-tip: "<text>Pin up to six systems as switches at the top of this screen.</text>"
  panel-pins-title: "<value>Quick switches</value>"
  panel-pins-intro: "<text>Pinned systems show as switches at the top of your home screen ({count} of {max}). Pins are yours alone.</text>"
  panel-pin-on: "<white><icon:yes></white><good>Pinned</good>  <value>{module}</value>"
  panel-pin-off: "<white><icon:no></white><muted>Pin</muted>  <text>{module}</text>"
  panel-pin-tip: "<value>{module}</value><text>: {about}</text>\n<muted>Click to pin or unpin.</muted>"
  panel-pins-full: "<bad>You can pin up to {max} systems.</bad><text> Unpin one first.</text>"
  panel-tp-homes: "<white><icon:home></white><value>Their homes</value>"
  panel-tp-homes-tip: "<text>{player}'s homes. Click one to go there.</text>"
  panel-tp-back: "<white><icon:teleport></white><value>Send back</value>"
  panel-tp-back-tip: "<text>Send them to where they stood before their last teleport or death.</text>"

  npc-help: "<text>/npc create <id> [skin] · remove <id> · cmd <id> <command> · clearcmds <id> · skin <id> <name> · rename <id> <name> · tphere <id> · list · respawn</text>"
  npc-created: "<text>NPC </text><value>{npc}</value><text> created. Add actions with /npc cmd {npc} <command>.</text>"
  npc-unknown: "<bad>No NPC called </bad><value>{npc}</value>"
  npc-removed: "<text>NPC </text><value>{npc}</value><text> removed.</text>"
  npc-list: "<text>NPCs: </text><value>{list}</value>"
  npc-cmd-added: "<text>Action added to </text><value>{npc}</value><text> ({count} total). Prefix with console: or message: if you like.</text>"
  npc-cmds-cleared: "<text>Actions of </text><value>{npc}</value><text> cleared.</text>"
  npc-skin: "<text>Skin of </text><value>{npc}</value><text>: </text><value>{skin}</value>"
  npc-renamed: "<text>NPC </text><value>{npc}</value><text> renamed.</text>"
  npc-moved: "<text>NPC </text><value>{npc}</value><text> moved here.</text>"
  npc-respawned: "<text>{count} NPC(s) respawned.</text>"
  npc-no-actions: "<text>This NPC has nothing to say yet.</text>"

  kit-unknown: "<bad>No kit called </bad><value>{kit}</value>"
  kit-locked: "<bad>You do not have access to </bad><value>{kit}</value><bad>.</bad>"
  kit-cooldown: "<text>You can take </text><value>{kit}</value><text> again in </text><value>{seconds}s</value><text>.</text>"
  kit-given: "<text>Kit </text><value>{kit}</value><text> received.</text>"
  kit-list: "<text>Kits: </text><value>{list}</value>"
  kit-given-many: "<text>Gave </text><value>{kit}</value><text> to </text><value>{count}</value><text> of </text><value>{total}</value><text> player(s).</text>"
  kit-give-none: "<bad>Nobody online to give it to.</bad>"
  kit-give-missing: "<bad>Not online: </bad><value>{names}</value>"
  kit-help: "<text>/kit <name> · create <name> · delete <name> · cooldown <name> <seconds> · permission <name> <node|none> · give <player,player,*> <name> · giveall <name></text>"
  kit-saved: "<text>Kit </text><value>{kit}</value><text> saved from your inventory.</text>"
  kit-deleted: "<text>Kit </text><value>{kit}</value><text> deleted.</text>"
  kit-updated: "<text>Kit </text><value>{kit}</value><text> updated.</text>"

  warp-help: "<text>/warp <name> · /warps · /setwarp <name> · /delwarp <name> · /spawn · /setspawn</text>"
  warp-set: "<text>Warp </text><value>{warp}</value><text> set.</text>"
  warp-deleted: "<text>Warp </text><value>{warp}</value><text> deleted.</text>"
  warp-list: "<text>Warps: </text><value>{list}</value>"
  warp-unknown: "<bad>No warp called </bad><value>{warp}</value>"
  warp-teleported: "<text>Warped to </text><value>{warp}</value><text>.</text>"
  spawn-set: "<text>Spawn set here.</text>"
  spawn-teleported: "<text>Teleported to spawn.</text>"

  nick-help: "<text>/nick <name|off> · /nick <player> <name|off> · /nick random <player,player|*> · /nick randomall · /nick list · /nick resetall</text>"
  nick-random-done: "<text>Disguised </text><value>{count}</value><text> player(s), picked from </text><value>{pool}</value><text> name(s).</text>"
  nick-random-you: "<text>You are now </text><value>{nick}</value><text>. Your face changed too.</text>"
  nick-random-empty: "<bad>No names to pick from.</bad><text> Add some to nicknames.random-names, or wait until more players have joined this server.</text>"
  nick-random-nobody: "<bad>Nobody to disguise.</bad>"
  nick-random-missing: "<bad>Not online: </bad><value>{names}</value>"
  nick-reset-all: "<text>Cleared </text><value>{count}</value><text> nickname(s) across the server.</text>"
  nick-list-head: "<accent><bold>{count} nicknamed</bold></accent>"
  nick-list-row: "<muted>·</muted> <value>{player}</value><text> as </text>{nick}<muted>  skin: {skin}</muted>"
  nick-list-empty: "<text>Nobody is nicknamed right now.</text>"
  nick-own-skin: "their own"
  nick-skin-set: "<text>Wearing </text><value>{name}</value><text>'s skin.</text>"
  nick-skin-unknown: "<warn>No skin found for </warn><value>{name}</value><warn>. The nickname is set anyway.</warn>"
  nick-reset: "<text>Nickname of </text><value>{player}</value><text> removed.</text>"
  nick-too-long: "<bad>Nicknames are up to {max} characters.</bad>"
  nick-set: "<text>{player} is now known as </text>{nick}"

  im-help: "<text>/itemmaker name <text> · lore add <text> · lore clear · enchant <name> [level] · glow · unbreakable · model <n> · hideflags · type <material> · save <id> · give <id> [player] [amount] · delete <id> · list</text>"
  im-list: "<text>Saved items: </text><value>{list}</value>"
  im-unknown: "<bad>No saved item called </bad><value>{id}</value>"
  im-given: "<text>Gave </text><value>{id}</value><text> to </text><value>{player}</value><text>.</text>"
  im-deleted: "<text>Item </text><value>{id}</value><text> deleted.</text>"
  im-hold: "<text>Hold the item you want to edit.</text>"
  im-done: "<text>Done.</text>"
  im-unknown-enchant: "<bad>Unknown enchantment: </bad><value>{name}</value>"
  im-saved: "<text>Saved as </text><value>{id}</value><text>. /itemmaker give {id}</text>"

  revive-help: "<text>/revive <player></text>"
  revived: "<text>{player} revived.</text>"
  not-banned: "<text>{player} is not death-banned.</text>"
  deathban-list: "<text>Eliminated: </text><value>{list}</value>"
  deathban-added: "<text>{player} is now eliminated.</text>"
  deathban-toggled: "<text>Death ban is now </text><value>{state}</value><text>.</text>"
  deathban-help: "<text>/deathban on|off · list · add <player> · /revive <player></text>"

  rollback-help: "<text>/rollback <player> [number] · /rollback list|deaths <player></text>"
  rollback-none: "<text>No snapshots for </text><value>{player}</value><text>.</text>"
  rollback-list: "<text>Snapshots of </text><value>{player}</value><text>: {list}</text>"
  rollback-offline: "<bad>{player} must be online to restore.</bad>"
  rollback-done: "<text>Restored </text><value>{player}</value><text>'s inventory from </text><value>{when}</value><text>.</text>"
  rollback-received: "<text>Your inventory was restored by staff.</text>"
  rollback-deaths: "<text>Deaths of </text><value>{player}</value><text>: {list}</text>"

  halfheart-saved: "<text>Half a heart. That was close.</text>"
  halfheart-help: "<text>/halfheart <player> · /halfheart everyone [on|off]</text>"
  halfheart-everyone: "<text>Half-heart protection for everyone: </text><value>{state}</value>"
  halfheart-on: "<value>{player}</value><text> can no longer die.</text>"
  halfheart-off: "<value>{player}</value><text> can die again.</text>"

  invsee-help: "<text>/invsee <player> · /endersee <player></text>"
  invsee-self: "<text>Press E.</text>"
  # The window: three rows of inventory, the hotbar, a divider, then helmet, chest, legs, boots, off hand.
  invsee-title: "<muted>{player}'s inventory</muted>"
  invsee-legend: "<text>Above: inventory and hotbar. Below: helmet, chest, legs, boots, off hand.</text>"
  invsee-left: "<text>{player} left, the window closed.</text>"
  invsee-offline-title: "<muted>{player}'s inventory (offline)</muted>"
  invsee-offline-ender-title: "<muted>{player}'s ender chest (offline)</muted>"
  invsee-offline-read: "<value>{player}</value><text> is offline: this is their saved inventory, read only.</text>"
  invsee-offline-edit: "<value>{player}</value><text> is offline. Your changes are saved to their file when you close the window.</text>"
  invsee-offline-saved: "<good>Saved.</good><text> {player} has the changed items on their next join.</text>"
  invsee-offline-joined: "<bad>{player} joined before the window closed, so nothing was changed.</bad>"
  invsee-offline-none: "<bad>No saved data for </bad><value>{player}</value><bad>. Have they played here?</bad>"
  invsee-offline-error: "<bad>Could not read the save of {player}.</bad><text> The console says why.</text>"
  invsee-offline-old: "<warn>{player}'s save is from an older Minecraft version, so it opens read only until they have joined once.</warn>"

  filter-blocked: "<bad>That message contains a blocked word.</bad>"
  filter-help: "<text>/filter add <word> · remove <word> · list · mode censor|block</text>"
  filter-added: "<text>Blocked: </text><value>{word}</value>"
  filter-removed: "<text>Unblocked: </text><value>{word}</value>"
  filter-list: "<text>{count} blocked word(s): </text><value>{list}</value>"
  filter-mode: "<text>Filter mode: </text><value>{mode}</value>"

  chat-locked: "<bad>Chat is locked right now.</bad>"
  you-are-muted: "<bad>You are muted ({time}). </bad><text>{reason}</text>"
  chat-lock-on: "<bad>Chat has been locked by {staff}.</bad>"
  chat-lock-off: "<good>Chat has been unlocked by {staff}.</good>"
  mute-list: "<text>Muted: </text><value>{list}</value>"
  mute-help: "<text>/mute <player> [10m|2h|1d|permanent] [reason] · /unmute <player> · /mutes · /mutechat</text>"
  unmuted: "<text>{player} unmuted.</text>"
  not-muted: "<text>{player} is not muted.</text>"
  you-were-unmuted: "<good>You have been unmuted.</good>"
  muted: "<text>{player} muted for </text><value>{time}</value><text>: {reason}</text>"
  mute-broadcast: "<text>{player} was muted for {time}: {reason}</text>"
  muted-voice-too: "<text>Their voice chat is muted for the same time.</text>"
  spam-slow-down: "<bad>Slow down.</bad><text> You are sending messages too fast.</text>"
  spam-repeat: "<bad>You just said that.</bad>"
  spam-mute-reason: "Spamming"

  rec-title: "<bad>● REC</bad>"
  rec-subtitle: "<text>{name}</text>"
  rec-started: "<bad>● Recording started: </bad><value>{name}</value><text> ({staff})</text>"
  rec-stopped: "<text>Recording stopped: </text><value>{name}</value><text> ({staff})</text>"
  rec-chat-blocked: "<text>Chat is staff-only while recording.</text>"
  rec-already: "<text>A recording is already running. /recording stop first.</text>"
  rec-not-active: "<text>No recording is running.</text>"
  rec-status-on: "<bad>● Recording: </bad><value>{name}</value>"
  rec-status-off: "<text>Not recording. /recording start [name]</text>"

  fakeborder-help: "<text>/fakeborder <player|all> <size> [centerX centerZ] [shrinkTo] [seconds] · /fakeborder <player|all> reset</text>"
  fakeborder-reset: "<text>Border reset for {count} player(s).</text>"
  fakeborder-set: "<text>Fake border of </text><value>{size}</value><text> shown to {count} player(s).</text>"

  server-unlocked: "<good>The server has been unlocked by {staff}.</good>"
  lock-help: "<text>/lock [message] · /lock allow <player> · /lock status · /unlock</text>"
  lock-allow-removed: "<text>{player} removed from the allow list.</text>"
  lock-allow-added: "<text>{player} may join while locked.</text>"
  lock-status-on: "<bad>Locked.</bad> <text>Allowed: {allow}</text>"
  lock-status-off: "<good>Unlocked.</good> <text>Allowed while locked: {allow}</text>"
  server-locked: "<bad>The server has been locked by {staff}.</bad>"

  dim-locked: "<bad>The {dimension} is closed right now.</bad>"
  dimlock-status: "<text>Nether: </text><value>{nether}</value><text> · End: </text><value>{end}</value>"
  dimlock-help: "<text>/dimlock nether|end [on|off]</text>"
  dim-now-locked: "<bad>The {dimension} has been closed.</bad>"
  dim-now-open: "<good>The {dimension} is open.</good>"

  cmd-blocked: "<bad>You cannot use /{command} here.</bad>"
  cmdblock-help: "<text>/cmdblock add <command> · remove <command> · list</text>"
  cmdblock-added: "<text>Blocked </text><value>/{command}</value>"
  cmdblock-removed: "<text>Unblocked </text><value>/{command}</value>"
  cmdblock-list: "<text>Blocked commands: </text><value>{list}</value>"

  villager-help: "<text>/villager create [profession] [name] · trade <costAmount> [costItem] [uses]  (held item = result, offhand = second cost) · removetrade · cleartrades · name <name> · profession <name> · remove  (look at the villager)</text>"
  villager-created: "<text>Villager created. Look at it and add trades with /villager trade.</text>"
  villager-look: "<text>Look at a villager first.</text>"
  villager-hold: "<text>Hold the item the villager should sell.</text>"
  villager-trade-added: "<text>Trade added ({count} total).</text>"
  villager-trades-cleared: "<text>Trades cleared.</text>"
  villager-trade-removed: "<text>Last trade removed ({count} left).</text>"
  villager-updated: "<text>Villager updated.</text>"
  villager-removed: "<text>Villager removed.</text>"

  # ---- wars ----
  # Title cards. These are what the episode shows; the chat lines above are the log.
  war-declared-title: "<bad><bold>WAR DECLARED</bold></bad>"
  war-declared-sub: "<value>{a}</value><text> against </text><value>{b}</value>"
  war-countdown-title: "<bad><bold>{n}</bold></bad>"
  war-countdown-sub: "<text>the war begins</text>"
  war-begun-title: "<bad><bold>WAR</bold></bad>"
  war-begun-sub: "<value>{a}</value><text>  vs  </text><value>{b}</value>"
  war-eliminated-title: "<dark_red><bold>{player} IS OUT</bold></dark_red>"
  war-eliminated-sub: "<text>fighting for </text><value>{team}</value>"
  war-won-title: "<accent><bold>{winner}</bold></accent>"
  war-over-title: "<accent><bold>THE WAR IS OVER</bold></accent>"
  war-over-sub: "<value>{a}</value><text> {score-a} - {score-b} </text><value>{b}</value>"
  war-help: "<text>/war status · declare <a> <b> [kills] [hours] · accept · peace <a> <b> · surrender <team> · ban on|off · history</text>"
  war-none: "<text>Nobody is at war.</text>"
  war-status-head: "<accent><bold>Wars</bold></accent><text>  death ban while at war: </text><value>{ban}</value>"
  war-status-row: "<muted>·</muted> <value>{a}</value> <bad>{score-a}</bad> <muted>vs</muted> <bad>{score-b}</bad> <value>{b}</value><text>  to {target}, {left} left</text>"
  war-status-pending: "<muted>·</muted> <value>{a}</value><text> has declared on </text><value>{b}</value><text>, waiting for /war accept</text>"
  war-declared-pending: "<bad><bold>{a} has declared war on {b}.</bold></bad><text> {by} is waiting on /war accept.</text>"
  war-started: "<bad><bold>WAR</bold></bad><text>  </text><value>{a}</value><text> against </text><value>{b}</value><text>. First to {target}. Death ban: </text><value>{ban}</value>"
  war-kill: "<bad>[war]</bad> <value>{killer}</value><text> killed </text><value>{victim}</value><text>  </text><muted>{a} {score-a} - {score-b} {b}</muted>"
  war-eliminated-reason: "<bad>You fell in the war between {war}. You are out.</bad>"
  war-won-target: "<accent><bold>{winner} has won the war.</bold></accent><text> {a} {score-a} - {score-b} {b}</text>"
  war-won-time: "<accent><bold>The war is over on time: {winner}.</bold></accent><text> {a} {score-a} - {score-b} {b}</text>"
  war-peace: "<accent><bold>Peace.</bold></accent><text> {a} and {b} are no longer at war. {score-a} - {score-b}</text>"
  war-surrender: "<accent><bold>{winner} takes it.</bold></accent><text> The other side surrendered. {a} {score-a} - {score-b} {b}</text>"
  war-ban-toggled: "<text>Death ban during wars is now </text><value>{state}</value><text>.</text>"
  war-already: "<bad>{a} and {b} are already at war.</bad>"
  war-same-team: "<bad>A team cannot fight itself.</bad>"
  war-not-at-war: "<bad>{a} and {b} are not at war.</bad>"
  war-not-fighting: "<bad>{team} is not in a war.</bad>"
  war-none-pending: "<bad>Nothing has been declared.</bad>"
  war-needs-teams: "<bad>The teams module is off, so there is nobody to go to war.</bad>"
  war-no-history: "<text>No wars have been fought yet.</text>"
  war-history-head: "<accent><bold>Wars fought</bold></accent>"
  war-history-row: "<muted>·</muted> <value>{a}</value> <text>{score-a} - {score-b}</text> <value>{b}</value><text>  won by </text><value>{winner}</value>"
  war-the-world: "the world"
  war-nobody: "nobody"
  war-no-target: "no limit"
  war-sidebar-title: "<bad><bold>WAR</bold></bad>"
  war-sidebar-a: "<value>{team}</value> <white>{score}</white>"
  war-sidebar-b: "<value>{team}</value> <white>{score}</white>"
  war-sidebar-gap: "<muted>first to {target}</muted>"
  team-help: "<text>/team create <name> [color] · delete <name> · add <player> <team> · remove <player> · color <team> <color> · prefix <team> <text> · ff <team> [on|off] · list · info <team></text>"
  team-list: "<text>Teams: </text>{list}"
  team-unknown: "<bad>No team called </bad><value>{team}</value>"
  team-info: "<value>{team}</value><text>: {members} · friendly fire {ff}</text>"
  team-created: "<text>Team </text><value>{team}</value><text> created.</text>"
  team-deleted: "<text>Team </text><value>{team}</value><text> deleted.</text>"
  team-added: "<value>{player}</value><text> joined team </text><value>{team}</value><text>.</text>"
  team-you-joined: "<text>You are now on team </text><value>{team}</value><text>.</text>"
  team-not-member: "<text>{player} is not on a team.</text>"
  team-removed: "<value>{player}</value><text> left team </text><value>{team}</value><text>.</text>"
  team-updated: "<text>Team </text><value>{team}</value><text> updated.</text>"
  team-ff: "<text>Friendly fire for </text><value>{team}</value><text>: {state}</text>"
  team-friendly-fire: "<text>That is your teammate.</text>"

  orbital-help: "<text>/orbital <player|here> [lightning|tnt|fireball] [count] [radius]</text>"
  orbital-launched: "<text>Orbital strike on </text><value>{player}</value><text>: {count} x {type}.</text>"
  orbital-title: "<bad><bold>{seconds}</bold></bad>"
  orbital-subtitle: "<text>ORBITAL STRIKE INCOMING</text>"

  vc-all-muted: "<bad>Voice chat has been muted for everyone by {staff}.</bad>"
  vc-all-unmuted: "<good>Voice chat is back, thanks to {staff}.</good>"
  vc-list: "<text>Voice muted: </text><value>{list}</value><text> · everyone muted: {all} · hooked: {hooked}</text>"
  vc-help: "<text>/vcmute <player> · /vcunmute <player> · /vcmutes · /vcmuteall</text>"
  vc-muted: "<text>{player}'s microphone is muted.</text>"
  vc-you-muted: "<bad>Your voice chat has been muted by staff.</bad>"
  vc-unmuted: "<text>{player}'s microphone is back.</text>"
  vc-not-muted: "<text>{player} is not voice muted.</text>"
  vc-you-unmuted: "<good>Your voice chat is back.</good>"

  perm-help: "<text>/perm user <player> group <group> · add <node> · remove <node> · info  ·  /perm group <name> create · delete · add <node> · remove <node> · list · info</text>"
  perm-group-created: "<text>Group </text><value>{group}</value><text> created.</text>"
  perm-group-deleted: "<text>Group </text><value>{group}</value><text> deleted.</text>"
  perm-updated: "<text>Permissions of </text><value>{target}</value><text> updated.</text>"
  perm-groups: "<text>Groups: </text><value>{list}</value>"
  perm-group-info: "<value>{group}</value><text>: {nodes}</text>"
  perm-unknown-group: "<bad>No group called </bad><value>{group}</value>"
  perm-user-info: "<value>{player}</value><text>: group {group} · own nodes: {nodes}</text>"

  area-no-build: "<bad>You cannot build here.</bad>"
  area-no-pvp: "<bad>No PvP here.</bad>"
  area-no-enter: "<bad>You cannot enter {area}.</bad>"
  area-help: "<text>/area create <name> <radius> [full] · delete <name> · flag <name> build|pvp|enter|mobs on|off · list · info <name> · here</text>"
  area-created: "<text>Area </text><value>{area}</value><text> created (radius {radius}). Set flags with /area flag.</text>"
  area-deleted: "<text>Area </text><value>{area}</value><text> deleted.</text>"
  area-unknown: "<bad>No area called </bad><value>{area}</value>"
  area-flag: "<text>{area}: {flag} is now </text><value>{state}</value><text>.</text>"
  area-list: "<text>Areas: </text><value>{list}</value>"
  area-info: "<value>{area}</value><text> in {world}, {from} to {to}: {flags}</text>"
  area-here: "<text>Areas here: </text><value>{list}</value>"

  autoclear-warning: "<text>Dropped items are cleared in </text><value>{seconds}s</value><text>.</text>"
  autoclear-done: "<text>Cleared </text><value>{count}</value><text> dropped item(s).</text>"

  joinmessages-off: "<text>Join and leave messages are hidden.</text>"
  joinmessages-on: "<text>Join and leave messages are shown.</text>"

  healed: "<text>Healed.</text>"
  healed-other: "<text>Healed {player}.</text>"
  fed: "<text>Fed.</text>"
  fly-on: "<text>Flight on.</text>"
  fly-off: "<text>Flight off.</text>"
  toggled-other: "<text>{what} for {player}: </text><value>{state}</value>"
  god-on: "<text>God mode on.</text>"
  god-off: "<text>God mode off.</text>"
  gm-help: "<text>/gm c|s|a|sp [player]</text>"
  gm-set: "<text>Game mode: </text><value>{mode}</value>"
  tp-help: "<text>/tp <player> [target] · /tphere <player> · /tpall</text>"
  tp-done: "<text>Teleported </text><value>{player}</value><text> to </text><value>{target}</value><text>.</text>"
  tpall-done: "<text>Teleported {count} player(s) to you.</text>"
  vanish-on: "<text>You are now invisible to players.</text>"
  vanish-off: "<text>You are visible again.</text>"
  freeze-help: "<text>/freeze <player></text>"
  you-are-frozen: "<bad>You have been frozen by staff.</bad>"
  you-are-unfrozen: "<good>You can move again.</good>"
  frozen: "<text>{player} frozen.</text>"
  unfrozen: "<text>{player} unfrozen.</text>"
  broadcast-help: "<text>/broadcast <message></text>"
  broadcast-format: "<accent><bold>!</bold></accent> <value>{message}</value>"
  chat-cleared: "<text>Chat cleared by {staff}.</text>"
  head-given: "<text>Here is {player}'s head.</text>"
  hat-hold: "<text>Hold something first.</text>"
  hat-done: "<text>Nice hat.</text>"
  cmdfeedback: "<text>Command feedback: </text><value>{state}</value>"
  otp-help: "<text>/otp <player>: to an online player, or to where an offline player logged out.</text>"
  otp-done: "<text>Teleported to where </text><value>{player}</value><text> logged out: {world} {x} {y} {z}.</text>"
  repair-done: "<text>Repaired </text><value>{count}</value><text> item(s).</text>"
  repair-done-other: "<text>Repaired </text><value>{count}</value><text> item(s) of {player}.</text>"
  repair-nothing: "<text>Nothing to repair.</text>"

  # ---- teleports ----
  tp-warmup: "<text>Teleporting in </text><value>{seconds}s</value><text>. Stand still.</text>"
  tp-warmup-bar: "<accent>Teleporting in {seconds}...</accent>"
  tp-warmup-moved: "<bad>Teleport cancelled: you moved.</bad>"
  tp-warmup-hurt: "<bad>Teleport cancelled: you were hit.</bad>"
  tp-cooldown: "<text>You can use </text><value>/{command}</value><text> again in </text><value>{time}</value><text>.</text>"
  tp-no-world: "<bad>That world is not loaded.</bad>"
  tp-recording: "<bad>Teleports are paused while a recording runs.</bad>"
  tp-done-to: "<text>Teleported to </text><value>{player}</value><text>.</text>"
  tpa-help: "<text>/tpa <player> · /tpahere <player> · /tpaccept · /tpdeny · /tpcancel</text>"
  tpa-self: "<bad>That is you.</bad>"
  tpa-sent: "<text>Request sent to </text><value>{player}</value><text>. It runs out in {seconds}s. </text><click:run_command:'/tpcancel {player}'><muted>[cancel]</muted></click>"
  tpa-received: "<value>{player}</value><text> wants to teleport to you. </text><click:run_command:'/tpaccept {player}'><good><bold>[Accept]</bold></good></click> <click:run_command:'/tpdeny {player}'><bad><bold>[Deny]</bold></bad></click>"
  tpahere-received: "<value>{player}</value><text> wants you to teleport to them. </text><click:run_command:'/tpaccept {player}'><good><bold>[Accept]</bold></good></click> <click:run_command:'/tpdeny {player}'><bad><bold>[Deny]</bold></bad></click>"
  tpa-none: "<text>No teleport request to answer.</text>"
  tpa-gone: "<bad>That player is not online any more.</bad>"
  tpa-accepted: "<text>Accepted </text><value>{player}</value><text>'s request.</text>"
  tpa-accepted-by: "<value>{player}</value><text> accepted your request.</text>"
  tpa-denied: "<text>Denied </text><value>{player}</value><text>'s request.</text>"
  tpa-denied-by: "<value>{player}</value><bad> denied your request.</bad>"
  tpa-expired: "<text>Your request to </text><value>{player}</value><text> ran out.</text>"
  tpa-cancelled: "<text>Cancelled </text><value>{count}</value><text> request(s).</text>"
  back-none: "<text>No place to go back to for </text><value>{player}</value><text> yet.</text>"
  back-done: "<text>Back where you were.</text>"
  back-sent: "<text>Sent </text><value>{player}</value><text> back.</text>"
  home-help: "<text>/home [name] · /sethome [name] · /delhome <name> · /homes</text>"
  home-invalid: "<bad>Home names use letters, numbers, - and _.</bad>"
  home-world: "<bad>You cannot set a home in this world.</bad>"
  home-limit: "<bad>You have all {max} of your homes.</bad><text> Delete one with /delhome first.</text>"
  home-set: "<text>Home </text><value>{home}</value><text> set ({count} of {max}).</text>"
  home-deleted: "<text>Home </text><value>{home}</value><text> deleted.</text>"
  home-unknown: "<bad>No home called </bad><value>{home}</value>"
  home-none: "<text>You have no home yet. </text><value>/sethome</value><text> sets one where you stand.</text>"
  home-done: "<text>Welcome home: </text><value>{home}</value><text>.</text>"
  homes-list: "<value>{player}</value><text>'s homes: </text><value>{list}</value>"
  homes-title: "<value>Homes</value><text> · {player}</text>"
  homes-intro: "<text>You have </text><value>{count}</value><text> of </text><value>{max}</value><text> homes. Click one to go there.</text>"
  homes-intro-other: "<value>{player}</value><text> has </text><value>{count}</value><text> home(s).</text>"
  homes-empty: "<text>No homes yet. /sethome sets one where you stand.</text>"
  homes-go: "<white><icon:home></white><value>{home}</value>"
  homes-go-tip: "<text>Go to {home}: {where}</text>"
  rtp-world: "<bad>Random teleport does not work in this world.</bad>"
  rtp-searching: "<text>Looking for a safe spot...</text>"
  rtp-failed: "<bad>No safe spot found this time.</bad><text> Try again.</text>"
  rtp-done: "<text>Landed at </text><value>{x} {y} {z}</value><text>.</text>"

  # ---- private messages ----
  msg-help: "<text>/msg <player> <message> · /r <message> · /msgtoggle</text>"
  msg-format-to: "<muted>[</muted><accent>me</accent><muted> to </muted><value>{player}</value><muted>]</muted> <text>{message}</text>"
  msg-format-from: "<muted>[</muted><value>{player}</value><muted> to </muted><accent>me</accent><muted>]</muted> <text>{message}</text>"
  msg-format-spy: "<muted>[spy] {from} to {to}: {message}</muted>"
  msg-self: "<text>Talking to yourself?</text>"
  msg-no-reply: "<text>Nobody to reply to.</text>"
  msg-closed: "<value>{player}</value><text> is not taking private messages.</text>"
  msg-recording: "<text>Private messages are paused while a recording runs.</text>"
  msg-toggle-on: "<text>You take private messages again.</text>"
  msg-toggle-off: "<text>Private messages are off. </text><muted>Staff can still reach you.</muted>"
  socialspy-on: "<text>Social spy on: you see every private message.</text>"
  socialspy-off: "<text>Social spy off.</text>"

  # ---- rules board and links ----
  rules-title: "<value>Server rules</value>"
  rules-empty: "<text>No rules written yet. Staff: add them under rules.lines in config.yml.</text>"
  rules-systems-head: "<accent>Switched on right now</accent>"
  rules-sys-deathban: "<bad>Death ban:</bad><text> if you die, you are out until staff revive you.</text>"
  rules-sys-halfheart: "<good>Half-heart protection:</good><text> a fatal hit leaves you on half a heart.</text>"
  rules-sys-warban: "<bad>Wars:</bad><text> dying while your team is at war puts you out.</text>"
  rules-sys-nether: "<warn>The Nether is closed.</warn>"
  rules-sys-end: "<warn>The End is closed.</warn>"
  rules-sys-areas: "<text>Some areas have their own rules: no building, no PvP or no entry.</text>"
  rules-sys-teams: "<text>Teams are on. Friendly fire depends on your team.</text>"
  rules-sys-chatlock: "<warn>Chat is locked right now.</warn>"
  rules-sys-filter: "<text>Chat is filtered.</text>"
  rules-sys-filter-spam: "<text>Chat is filtered, and very fast or repeated messages are blocked.</text>"
  rules-sys-recording: "<bad>A recording is running: {name}.</bad><text> Keep it clean on camera.</text>"
  rules-sys-teleports: "<text>Teleports: /tpa, /back, /rtp, and {homes} homes with /sethome.</text>"
  rules-sys-messages: "<text>Private messages: /msg and /r. /msgtoggle turns them off.</text>"
  rules-sys-kits: "<text>Kits: /kit.</text>"
  rules-sys-locked: "<warn>The server is locked to staff right now.</warn>"
  rules-homes-unlimited: "unlimited"
  rules-shown: "<text>Showed the rules to {player}.</text>"
  link-line: "<value>{name}</value><text>: </text><click:open_url:'{url}'><accent><u>{url}</u></accent></click>"
  link-button: "<white><icon:link></white><value>{name}</value>"
  link-button-tip: "<text>Opens {url}</text>"
  link-discord: "<white><icon:chat></white><value>Discord</value>"
  link-store: "<white><icon:money></white><value>Store</value>"

  # ---- alt finder ----
  alts-help: "<text>/alts <player></text>"
  alts-none: "<text>No other accounts seen on </text><value>{player}</value><text>'s connection in the last {days} days.</text>"
  alts-head: "<value>{player}</value><text> shares a connection with </text><value>{count}</value><text> account(s):</text>"
  alts-row: "<muted>·</muted> <value>{player}</value><text> last seen {seen}</text>{flag}"
  alts-flag-wrap: " <bad>({flag})</bad>"
  alts-flag-eliminated: "eliminated"
  alts-flag-banned: "banned"
  alts-alert: "<warn>{player}</warn><text> joined from the same connection as </text><value>{list}</value><text>.</text>"

  # ---- season start ----
  season-help: "<text>/season start [seconds] · /season cancel · /season land</text>"
  season-running: "<bad>A season start is already counting down.</bad>"
  season-not-running: "<text>Nothing is counting down.</text>"
  season-cancelled: "<text>The season start was cancelled by {staff}.</text>"
  season-landed: "<text>Everybody in the air has their chest slot back.</text>"
  season-starting: "<accent><bold>The season starts in {seconds} seconds.</bold></accent>"
  season-count-title: "<accent><bold>{n}</bold></accent>"
  season-count-sub: "<text>the season begins</text>"
  season-go-title: "<accent><bold>GO</bold></accent>"
  season-go-sub: "<text>steer to where you want to land</text>"
  season-glider-name: "<accent>Season glider</accent>"

# One thank-you line with the BuiltByBit review link: once in the console after install and once
# in chat for the first operator who joins. It never repeats and sends nothing anywhere. false turns it off.
review-reminder: true

FAQ

Which servers and versions does it run on?

It needs Paper or a Paper fork such as Purpur, because it uses Paper-only APIs (the dialog API for its menus, Adventure text components, Paper player profiles). Spigot and CraftBukkit are not supported. plugin.yml declares api-version 1.21, the jar is built against Paper API 1.21.11, and it needs Java 21 or newer.

Does it need other plugins?

No other plugin is required (plugin.yml has no hard dependencies). Optional: voicechat, PlaceholderAPI (plugin.yml softdepend), used when present.

How do I apply config changes?

Edit plugins/SceneSMP/config.yml and run /scenesmp reload. A restart works too. Switching a system on or off under modules: in config.yml needs a restart, as the setup guide says.

Does it run on Folia, or for Bedrock players?

Not tested on Folia, and plugin.yml does not declare folia-supported. Bedrock players (through Geyser) have not been tested either.

What licence do I get?

The licence terms are the BuiltByBit EULA shown on the listing. There is no licence key to enter, and the plugin never contacts a licence server.