NovaFFA

Changelog

One block per release, newest first, naming what actually changed

2.13.0

Map rotation for one arena mode.

  • New map rotation. one_arena.rotation.enabled rotates the active arena through a pool you set, on a timer, instead of staying fixed on one. While it is on, one_arena.arena is ignored and the pool decides everything, starting from its first entry on every server start
  • A warning countdown runs before every switch: warning.chat_seconds picks which seconds-remaining get a chat line, warning.title_from is from how many seconds remaining every single second also gets a title, a subtitle and a sound
  • At zero, anybody still inside is sent to the lobby and told the arena is getting generated, and that arena is regenerated right away so it is clean for its next turn. The arena taking over is not re-pasted, it was already cleaned the last time it was left, so the switch is instant
  • The console warns on start and on reload if the pool is empty or names an arena that does not exist
  • Config moves to config-version: 6, language files to lang-version: 10. Your own values are kept and the new keys are added on the first start

2.12.0

One arena mode, kits sold through Vault, and rewards for kills.

  • New one arena mode. Turn on one_arena at the bottom of config.yml and every kit is fought in one arena instead of each kit having its own. Players pick any kit they own from the menu, and the kit links are ignored until the mode is turned off again
  • The menus are read from menus/one_arena/ while the mode is on, a full second set worded for it, so each mode keeps its own layout
  • Kits can be sold. /ffa kit edit <kit> price <amount> locks a kit until a player buys it through Vault and whatever economy plugin the server runs, in either mode. A locked kit shows its price in the fight menu and opens a confirm screen, and /ffa buy <kit> opens it from chat. See Kit Prices and Rewards
  • /ffa kit grant <kit> <player> and /ffa kit revoke <kit> <player> hand a priced kit over or take it back, from the console too, and novaffa.kit.<kit> unlocks one for a rank
  • Kills can pay. economy.kill_reward pays money through Vault, and on_kill.rewards runs commands for the killer, for the victim and on exact streaks, with a cooldown per victim and a same IP check so rewards cannot be farmed
  • The plugin remembers which kit each player joined with, so the refill after a kill, the kit handed back after a regeneration and %ffa_kit_name% follow the player's own pick
  • New placeholders %ffa_owns_<kit>%, %ffa_price_<kit>%, %ffa_kits_owned% and %ffa_one_arena%, and a new FFAKillRewardEvent in the API
  • A kit made with /ffa kit create or updated with inventory import kept a live link to the admin's inventory, so a later save wrote whatever the admin happened to be holding by then. A kit could come out empty after the admin cleared their inventory and the server restarted. The items are copied now. A kit that already came out empty needs one /ffa kit edit <kit> inventory import
  • Config moves to config-version: 5, menus/fight.yml to menus-version: 4, language files to lang-version: 9. Your own values are kept and the new keys are added on the first start

2.11.1

Arena block protection actually works now. On 2.11.0 and earlier it was very likely protecting nothing.

  • Arena corners are compared as whole blocks now instead of as the exact spot an admin's feet were standing in, which used to leave the bottom layer of an arena half outside its own region. An arena is every block from one corner to the other, all of each of them, whatever heights the two corners are at
  • The axe, shovel, hoe and flint and steel protections added in 2.11.0 were asking to be skipped for interactions other plugins had touched, so they never ran. They refuse the block and the item outright now, in either hand
  • Nothing to change in your files

2.11.0

The stable one. Arena data cannot be lost on a restart, a reload or an update any more, and the rest of the plugin has been through the same check.

  • /ffa <kit>, the way a player joins a fight, answered "Incorrect argument for command" on every server and always had. Paper drops an argument written directly under a command's own name, so the kit name never reached the tree. It works now, and /ffa play <kit> is the same thing with tab completion
  • An arena in a world that a world manager loads after the plugins reported its corners and spawn as N/A, and setting one corner from there wrote both corners to where the admin was standing. /ffa arena edit <arena> corners 1 now sets one corner and leaves the other exactly as it is, and /ffa arena info shows where the arena is whether or not its world is loaded
  • An arena and the lobby now keep their places as a world name and plain numbers, which is what a save writes, so nothing can be written out as less than the file already says
  • Every arena, kit, layout, player and lobby file is written to a temporary file that is then moved into place, under a lock held per file. There is no longer a moment where a file on disk is empty, and two saves cannot overwrite each other
  • Each step of the shutdown runs on its own, so one arena in an unloaded world cannot stop every other save from happening
  • The kit layout editor no longer lets a player carry the kit's items out of it, which with the Reset button was a way to make as many as they liked. Decorations on a grid square are no longer saved into a player's kit either
  • /lobby only empties the inventory of a player who is actually leaving an arena. It used to clear anybody's, and /spawn ships as an alias of it
  • A kit whose items cannot be read on this server version is left exactly as it is rather than being written back empty, which used to destroy it on the next shutdown
  • Deleting an arena deletes its schematic too, so an arena made later under the same name no longer inherits the old one's blocks
  • A combat tagged player cannot escape a blocked command by stepping outside the arena, and plugin:command no longer walks past the block lists
  • With building turned off, axes, shovels, hoes, flint and steel and armour stands are held back too
  • Leaderboard and arena placeholders answer for the console and for offline players instead of returning nothing
  • /ffa reload puts the regeneration timers on the new interval, and a typo in one menu file no longer leaves the server with no menus until a restart
  • Kit and arena names are limited to letters, numbers, - and _, and a name that already exists is refused whatever case it is typed in
  • Language files move to lang-version: 8

2.10.0

An arena can protect its own blocks, so a sword arena no longer needs a region plugin drawn around it.

  • New /ffa arena edit <arena> build <on | off>, which decides whether players can place and break blocks in that arena. true and false work in place of on and off
  • The flag covers every way a player has of changing an arena by hand, not only break and place: beds and doors, buckets emptied and filled, item frames and paintings, and armor stands, boats, minecarts and end crystals. A painting shot off a wall is followed back to whoever fired
  • Explosions, fire spread, liquid flow and pistons are deliberately left alone, since an arena can want its blocks standing while explosions still do their damage
  • New novaffa.arena.build.bypass, op by default, so an admin can still build the arena they are standing in
  • New arenas.build in config.yml, the value a newly created arena starts with. An arena made before this release has no setting of its own and falls back to it, so nothing changes for an existing server
  • /ffa arena info now shows whether building is on
  • config.yml moves to config-version: 4 and language files to lang-version: 7

2.9.0

Player heads showing a player now actually wear their skin, arenas can rebuild without killing anyone, menu items you write yourself can join a fight, and there is a command for joining one arena by name.

  • A head written as skull: viewer, player: or uuid: is filled in with the player's real skin, read from the player when they are online, from SkinsRestorer when it is installed, and from Mojang otherwise. It was drawn with the default face before, on every server rather than only a cracked one
  • Optional SkinsRestorer hook, found at start with nothing to configure, which is what makes heads work on a cracked server
  • New arenas.regeneration.protect_players, on by default: while an arena rebuilds, the world cannot hurt anybody inside it, and anybody sealed inside the new blocks is lifted to open air. Damage from another player is untouched, so a fight carries on through a rebuild
  • New arenas.regeneration.layers, off by default: the arena goes back a row at a time from the bottom up, so the floor returns under a player before the roof returns over them
  • custom_items in any menu file can now do something when clicked. join: <kit or arena> drops the player into a fight, commands: runs command lines as the player or the console, close: decides whether the menu closes first
  • New /ffa join <arena> joins one arena by name with the kit it is linked to, for an NPC or a sign that should send players to a particular arena
  • A player's saved layout that is empty while the kit itself has contents is read as the kit's own layout, so a kit that looked empty in the editor and handed out nothing now works
  • /ffa kit create says so when it captured nothing, and /ffa kit edit <kit> inventory import refuses an empty inventory rather than wiping the kit
  • config.yml moves to config-version: 3, language files to lang-version: 6, menu files to menus-version: 3

2.8.0

Player heads work on any item in any menu, the statistics menu takes a border, and the fight menu's lobby button closes the menu behind the player.

  • Any item in any menu file can be a player head. skull: viewer is the face of whoever is looking, and a head from minecraft-heads.com or any other head site is read as texture:, url: or hash:, with the prefix optional
  • New {viewer} and {viewer_uuid} placeholders, usable in the name and lore of every item in every menu
  • statistics.yml gains an items.border section, the one menu file that had none. A border written into it by hand was kept but never drawn
  • Decoration on the statistics menu is drawn before the statistics, so a pane sharing a square with a number loses that square instead of covering it
  • The fight menu's lobby button now closes the menu as it sends the player, new items.lobby_button_toolbar.close_menu in fight.yml turns that off
  • Every menu file moves to menus-version: 2
  • New Borders, Fillers and Heads page covering items.border, custom_items, filler and player heads, which menus take which, and what happens when decoration and content claim the same square

2.7.0

Kits can be pinned to a square of the fight menu, and the plugin reloads without a restart.

  • New /ffa reload re-reads config.yml, the language file and the menu files; kits, arenas, layouts and player files are left alone, and command aliases still need a restart
  • New /ffa kit edit <kit> slot <slot | auto> pins a kit to one square of the fight menu, or unpins it
  • New /ffa kit slots opens the fight menu as an editor: click a kit, click a square, right click to unpin
  • A pinned kit sits on its square on every page, unpinned kits flow into what is left
  • Kit files gain menu_slot, -1 for a kit that is not pinned
  • Fixed the kit display name being ignored on potion, tipped arrow and other icons that work their name out for themselves
  • kit_button.use_item_amount_to_display_playing now shows the count on icons that do not stack in game, such as a sword or an axe
  • Fixed the help footer throwing NoSuchMethodError on a 26.x server, an Adventure 4 to 5 difference the jar was carrying since 2.2.0
  • New language messages for the reload and the slot commands, plus the editor's own text, language files move to lang-version: 5

2.6.0

Kit icons can be any item.

  • /ffa kit edit <kit> icon hand saves the item in your main hand as the icon, so a splash potion of instant health shows as one rather than an uncraftable potion
  • The full item is stored as icon_item in the kit file only when the material alone would lose something
  • New language message kit.icon_hand_empty, language files move to lang-version: 4

2.5.0

Kit creation now starts with the loadout you are carrying.

  • /ffa kit create <name> captures the admin's storage, armour and off-hand slots when run in game
  • The clearer follow-up command is /ffa kit edit <kit> inventory import; the old import contents spelling remains accepted for existing command blocks

2.4.0

Leaderboard placeholders.

  • Added %ffa_statistics_top_kills_<1-10>%, %ffa_statistics_top_kills_name_<1-10>%, %ffa_statistics_top_deaths_<1-10>% and %ffa_statistics_top_deaths_name_<1-10>%
  • Ranking is kept in memory and refreshed once a minute, safe to poll heavily from a scoreboard or hologram

2.3.0

Combat tag now blocks walking or flying into the lobby, not just the /lobby command.

  • Added combat_tag.block.lobby_region, on by default
  • Shown with the same action bar countdown as the rest of combat tag

2.2.0

Support for Minecraft's new version scheme.

  • Runs on 26.1 and 26.2 as well as 1.21.1 through 1.21.11, from the same jar
  • No config, kit, arena, layout or player file changes, nothing to migrate

2.1.0

Combat tagging arrives.

  • A hit starts a timer, held in the fight until it runs out, five seconds by default under combat_tag.time
  • combat_tag.block.commands, .leave, .lobby and .kit_switch each their own switch
  • Quitting mid fight kills you where you stood and credits the player you were fighting
  • Command aliases became configurable under commands.aliases, including /spawn as an alias of /lobby
  • Added %ffa_combat_tagged% and %ffa_combat_time%
  • Added FFACombatTagEvent for developers

2.0.1

Bug fix release, no file format changes.

  • Fixed a kit or layout saved in the editor sometimes coming back completely empty
  • Fixed a failed kit or layout read being dropped silently with nothing logged
  • Fixed clearing player layouts after importing kit contents checking the wrong key

2.0.0

ContinuumFFA becomes NovaFFA, a full rebuild on Paper's current API.

  • /ffakit and /ffaarena became /ffa kit and /ffa arena
  • Permissions moved from ffa. and continuum.ffa. to novaffa.
  • Now runs on 1.21.1 through 1.21.11
  • Colours moved from MiniMessage to Prism
  • Messages moved from one messages.yml to a lang/ folder, five languages shipped
  • Config, kit and layout files now auto-update without resetting your edits
  • Kits and layouts now use Paper's native item format, custom items and data components survive a restart
  • Help became paginated with clickable navigation
  • Fixed several missing confirmation messages, a broken kill/death ratio for players with no deaths, and the public API never actually running a registered listener

Nothing carries over automatically from an old ContinuumFFA folder, see Storage. Arenas, kits and player stats needed setting up again on this upgrade.

On this page