EasyFFA - Fast, polished, fully configurable FFA for modern servers βοΈ
Bring high-energy PvP to your server with clean admin tools, smart automation, and a player-friendly flow. π
Β
ββββββββββββββββββββββββββββββββββββββββ
What is FFA in Minecraft?
In a Free-For-All (FFA), every player fights for themselves - no teams, no alliances, just pure PvP. Players instantly respawn, jump back into action, and compete for kills, points, rank-ups, and bragging rights. A great FFA feels smooth, fair, and snappy. That's exactly what EasyFFA is built for.
ββββββββββββββββββββββββββββββββββββββββ
Why EasyFFA? π―
EasyFFA focuses on admin productivity and player flow:
- β
Zero-friction admin tools: one-command safe-zone editor, per-world spawn control, map rotation with countdowns, and map-specific kits.
- π₯ Deep progression loop: points, experience, configurable ranks, killstreak broadcasts, and an optional multi-level bounty system that fuels rivalries.
- β‘ Modern & lightweight: no NMS, up-to-date Spigot API support, optimized performance, simple config.
ββββββββββββββββββββββββββββββββββββββββ
Feature Highlights
- Safe Zones β Protect spawn/areas with a simple two-point selection flow.
- Map Rotation β Automated rotation with messages, countdowns, and teleports.
- Kits & Map Kits β Create kits from inventory and assign per-world; kits are reapplied after respawn and map changes.
- Stats & Ranks β Track kills, deaths, points, exp; configurable rank ladder.
- Killstreaks β Broadcast milestones (3, 5, 7, 10, 15, 20, 25 by default) and persist each player's maximum streak.
- Bounties β Players spend points to place bounties; killers earn rewards.
- Combat Logging β Tag timer + optional punishments/commands.
- Scoreboard & Tablist β Show player stats/rank; configurable formatting.
- Join Flow & Spawn β Spawn countdown, world-specific spawns, optional force-adventure-mode, and QoL rules (prevent drops/breaking/durability).
- Build Mode β Admins can toggle build mode for editing during FFA.
- Chat Control β Quick clear your own chat or global chat via admin commands.
- Game Rule Loader β Automatically loads and reapplies gamerules from gamerules.yml on startup.
- Runtime World Loading β Load or create worlds when using world teleport and active-map management.
- Config-First β Main settings are configurable, with separate generated files for maps, gamerules, progression, kits, bounties, and combat-log data.
- Public Event API β Integrate with kill, death, bounty, killstreak, and rank-up events.
ββββββββββββββββββββββββββββββββββββββββ
Requirements & Compatibility
- Spigot/Paper 1.21+ up to 26+
- Java 21+ recommended (built for modern runtimes)
- Optional: MySQL/MariaDB if you enable database storage (driver included)
Note: EasyFFA is designed for network setups. The scoreboard, join/leave handling, and related messages/mechanics are always active by design. βΉοΈ
ββββββββββββββββββββββββββββββββββββββββ
Installation
[list=1]Place the EasyFFA jar into your server's plugins folder.Start the server once to generate config files.Open plugins/EasyFFA/config.yml and adjust settings (messages, points/exp, ranks, killstreaks, chat format, combat tag, etc.).(Optional) Enable MySQL in the config and set credentials (details below).Create kits, set map spawns, and (optional) define safe zones.
[/list]
ββββββββββββββββββββββββββββββββββββββββ
Quick Start β‘
- Set spawn for your current world: /ffa setspawn
- Create a kit from your inventory: /ffa kit create
- Assign that kit to the current world: /ffa kit setmap
- (Optional) Define a safe zone: /ffa zone set (twice to complete the two corners)
- (Optional) Choose default active world (when map rotation is off): /ffa activemap
- (Optional) Start map rotation: /ffa mapchange start
ββββββββββββββββββββββββββββββββββββββββ
Maps & Safe Zones
- Spawn Per World
/ffa setspawn sets the FFA spawn point for the current world. Players can use /spawn; a configurable countdown prevents abuse. - Safe Zone Setup
β’ Stand at corner 1 and run: /ffa zone set
β’ Stand at the opposite corner and run: /ffa zone set again
β’ Done β the region is protected, with clear titles on enter/leave
If you make a mistake: /ffa zone del cancels the setup.
Zones are saved per-world and automatically loaded on server start. - Active Map (Join Behavior, No Rotation)
If automatic map rotation is not used, the world configured under ActiveWorldName in config.yml is treated as the active FFA world. All players are teleported to this world on join. For the best FFA experience, make sure this world has a properly defined safe zone and spawn.
Use /ffa activemap to update the default active world. This command immediately updates the config value and teleports all online players to the newly set world.
If you do not enable map rotation and also leave ActiveWorldName unset/unused, players will join in a random/default world as defined by the server. This behavior is not controlled by EasyFFA. - Map Rotation
Use /ffa mapchange start to begin rotation across your configured worlds, with broadcasted countdowns and automatic teleports. Stop anytime with /ffa mapchange stop. If enabled in config and at least two maps are available, rotation can auto-start on server boot.
When map rotation is enabled, ActiveWorldName is ignored and players will always join the current rotating map.
ββββββββββββββββββββββββββββββββββββββββ
Kits
- Create from Inventory: Equip items/armor, then run /ffa kit create .
- List Kits: /ffa kit list
- Delete Kit: /ffa kit delete
- Assign Kit to World: /ffa kit setmap (applies to your current world)
- Players receive assigned map kits automatically on join, after respawn, and when the map changes.
ββββββββββββββββββββββββββββββββββββββββ
Stats, Points, EXP, Ranks & Killstreaks
- Stats GUI: /stats to view personal stats (kills, deaths, points, K/D, rank, exp); authorized admins can inspect another online player's stats with /stats .
- Points: Gain on kills, lose on death β fully configurable.
- Experience: Award EXP per kill; define rank thresholds in config.
- Ranks: Displayed in tablist/scoreboard; define names and thresholds in FFA.Ranks.
- Killstreaks: Broadcast messages at configured thresholds and track the player's maximum streak separately from the current streak.
ββββββββββββββββββββββββββββββββββββββββ
Bounties (Optional PvP Economy Twist)
Players can spend points to place bounties on others; rewards are paid out to the killer.
- /bounty β Help and subcommands
- /bounty add β Place a bounty (costs points, configurable per level)
- /bounty level β View bounty tiers and their costs/rewards
- /bounty list β List all active bounties on the server
- Important: Adding a bounty to a player who already has one will overwrite the previous bounty level. The levels do not stack - the new bounty completely replaces the old one.
ββββββββββββββββββββββββββββββββββββββββ
Combat Logging Control
Tag players in combat for a set duration. Optionally execute server commands, deduct points, or reset stats if they log out.
Configure under FFA.CombatLogging in config.yml.
Common options:
β’ TagDurationSeconds: how long a player stays in combat after the last hit.
β’ Punishments.CommandsEnabled + Punishments.Commands: run console commands (e.g., warn/kick).
β’ Punishments.ResetAllStatsEnabled: reset the offender's stats.
β’ Punishments.DeductPointsEnable + DeductPointsValue: remove points on combat logout.
ββββββββββββββββββββββββββββββββββββββββ
Scoreboard and Tablist
- Scoreboard: Toggle and customize the display name and lines in FFA.Scoreboard.
- Tablist: Independently configure rank/name formatting plus a tablist header and footer (e.g., Format: '&f[%RANK%&r&f] %NAME%').
ββββββββββββββββββββββββββββββββββββββββ
Storage Options
- Flatfile (Default) β Simple YAML storage; no setup required. Generated files include kits.yml, stats.yml, points.yml, exp.yml, ranks.yml, killstreaks.yml, bounties.yml, maps.yml, gamerules.yml, and combatloggers.yml.
- MySQL/MariaDB (Optional) β Enable in config.yml under FFA.MySQL. The MariaDB JDBC driver is bundled, and database storage covers stats, points, experience, ranks, maximum killstreaks, bounties, and combat-logger records.
Β
FFA:
MySQL:
Enabled: true
Host: 'localhost'
Port: 3306
Username: 'minecraft'
Password: 'password'
Β
ββββββββββββββββββββββββββββββββββββββββ
Optional Chat Styling
You can optionally enable EasyFFA's chat formatting and styling in config.yml:
β’ Path: FFA.Chat
β’ Enabled: true/false
β’ Format: e.g. "%PREFIX% %RANK% >> %PLAYER%&7: %MESSAGE%"
β’ DefaultPrefix: e.g. "&7"
When enabled, EasyFFA will format player chat according to your Format. You can include rank/prefix placeholders.
ββββββββββββββββββββββββββββββββββββββββ
Commands & Usage
- /stats β View your FFA stats
- /stats β View another online player's stats (permission required)
- /spawn β Teleport to the map spawn with a configurable countdown and a fixed 10-second cooldown
- /points
β’ /points β Help
β’ /points add
β’ /points set
β’ /points remove - /bounty
β’ /bounty β Help
β’ /bounty level β View bounty levels
β’ /bounty add β Place a bounty
β’ /bounty list β List all active bounties
β’ /bounty remove β Remove a bounty (if enabled/authorized) - /ffa
β’ /ffa β Info & help
β’ /ffa tp β Teleport to a world
β’ /ffa activemap β Set the default active world (updates ActiveWorldName) and teleport all players there
β’ /ffa zone set β Start/complete a safe-zone selection
β’ /ffa zone del β Cancel a safe-zone selection
β’ /ffa setspawn β Set/update spawn for current world (admin)
β’ /ffa build β Toggle build mode (admin)
β’ /ffa mapchange β Control map rotation
β’ /ffa kit list β List kits and map assignments
β’ /ffa kit create β Create a kit from your inventory (admin)
β’ /ffa kit delete β Delete a kit (admin)
β’ /ffa kit setmap β Assign kit to current world (admin)
β’ /ffa resetstats β Reset stats (admin)
β’ /ffa cc β Clear your own chat (admin)
β’ /ffa ccg β Clear global chat (admin)
Note: /ffa resetstats lets you target a specific category (e.g., points only) or all.
ββββββββββββββββββββββββββββββββββββββββ
API Documentation
You can find detailed API documentation in the documentation, including event subscription examples and integration tips. Available Bukkit events include EasyFFAKillEvent, EasyFFADeathEvent, BountySetEvent, BountyResolvedEvent, KillstreakStartEvent, KillstreakChangeEvent, KillstreakEndEvent, and PlayerRankUpEvent.
ββββββββββββββββββββββββββββββββββββββββ
Permissions Overview
- easyffa.* β Full access
- easyffa.ffa β Use /ffa (default: true)
- easyffa.world.tp β World teleport (default: op)
- easyffa.kit β Use kits (default: true)
- easyffa.points β Manage points (default: op)
- easyffa.bounty β Manage bounties (default: op)
- easyffa.removebounty β Remove bounties (default: op)
- easyffa.stats.others β View other players' stats (default: op)
- easyffa.admin β Access admin commands (default: op)
- easyffa.admin.kit β Manage kits (default: op)
- easyffa.admin.setspawn β Set spawn (default: op)
- easyffa.admin.cc β Clear chat (default: op)
- easyffa.admin.zone β Manage safe zones (default: op)
- easyffa.admin.resetstats β Reset player statistics (default: op)
- easyffa.admin.build β Toggle build mode (default: op)
- easyffa.admin.mapchange β Control map rotation (default: op)
- easyffa.admin.activemap β Change the active map (default: op)
- easyffa.admin.chatclear β Clear chat with /ffa cc and /ffa ccg (default: op)
ββββββββββββββββββββββββββββββββββββββββ
Configuration Tips
- Tweak points/exp gain under FFA.Points and FFA.Exp.
- Define rank thresholds and names under FFA.Ranks.
- Adjust killstreak broadcasts under FFA.Killstreaks.
- Customize scoreboard and tablist in their respective sections.
- Use the action bar kill messages to keep feedback snappy and non-intrusive.
ββββββββββββββββββββββββββββββββββββββββ
Performance & Quality
- Optimized for modern Spigot APIs; no NMS.
- Asynchronous operations where appropriate.
- Lightweight runtime footprint and clean config defaults.
ββββββββββββββββββββββββββββββββββββββββ
Support & Updates
- Regular updates to track new Spigot versions.
- Clear, commented config with sensible defaults.
- Priority support for bug reports and compatibility issues via Spigot messages. π¨
Ready to host a smooth, modern FFA?
Install EasyFFA and let your players jump straight into the action. β