FFA (Free For All) is an infinite PvP minigame where you join the arena, you are given your kit, and your goal is simply to kill other players. Think of it as KitPvP with only one kit.

Required installation steps:
- Use Multiverse or another world management plugin to create your FFA arena world.
- Build your FFA map (don't worry, you can always edit it later).
- Drop CitrusFFA.jar into your server's plugins directory.
- (Re)Start your server. Navigate to
/plugins/CitrusFFA/config.yml
- Change the "world" field to the name of your FFA arena world.
- Under spawnpoints edit the spawns to work with your map (see here).
Recommended next steps:
- Modify other settings (such as armour, rewards, and sounds).
- Enable the recommended world gamerules as shown here.
Commands:
/command - Description - permission.node
/ffa - Join FFA - citrusffa.play
Extra features:
- Vault economy rewards
- Golden apple on kill
- Sound effects
- Fully customizable
- Discord support server
- Statistics (kills and deaths)
- PlaceholderAPI support for stats
Configuration
Configuration
# CitrusFFA Configuration
# Plugin by ninjadev64
world: "FFA"
vault money for kill: 0
gapple on kill: true
sounds:
# Use Bukkit sound enums
kill:
enabled: true
name: ORB_PICKUP
volume: 1
pitch: 1
death:
enabled: false
name: ENDERDRAGON_GROWL
volume: 1
pitch: 1
spawnpoints:
one:
x: 0
y: 90
z: 0
pitch: 0
yaw: 0
two:
x: -34
y: 100
z: 12
pitch: 180
yaw: 0
three:
x: -34
y: 102
z: -6
pitch: 270
yaw: 0
four:
x: -10
y: 101
z: -7
pitch: 90
yaw: 0
five:
x: -17
y: 88
z: -44
pitch: 0
yaw: 0
six:
x: 5
y: 92
z: -45
pitch: 360
yaw: 0
seven:
x: 3
y: 89
z: -27
pitch: 180
yaw: 0
eight:
x: 13
y: 82
z: -15
pitch: 180
yaw: 0
items:
# Example:
# ==: org.bukkit.inventory.ItemStack (to let Bukkit/Spigot/Paper know it's an item stack)
# type: DIAMOND_SWORD (the item ID)
# damage: 100 (how many times the item has been used)
# amount: 1 (how many of the item)
# meta: (the item meta, look below)
# ==: ItemMeta (to let Bukkit/Spigot/Paper know it's the item meta)
# meta-type: UNSPECIFIC (Google this)
# display-name: §6Sample Item (what the item should be called (as if it was named in an anvil)
# lore: (the item lore)
# - First line of lore
# - Second line of lore
# - §1Color §2support
# enchants: (the item enchantments)
# DAMAGE_ALL: 2 (sharpness, level 2)
# KNOCKBACK: 7 (knockback, level 7)
# FIRE_ASPECT: 1 (fire aspect, level 1)
one:
==: org.bukkit.inventory.ItemStack
type: IRON_SWORD
amount: 1
two:
==: org.bukkit.inventory.ItemStack
type: BOW
amount: 1
three:
==: org.bukkit.inventory.ItemStack
type: ARROW
amount: 32
four:
#==: org.bukkit.inventory.ItemStack
five:
#==: org.bukkit.inventory.ItemStack
six:
#==: org.bukkit.inventory.ItemStack
seven:
#==: org.bukkit.inventory.ItemStack
eight:
#==: org.bukkit.inventory.ItemStack
nine:
#==: org.bukkit.inventory.ItemStack
armour:
# Look above for an example of an itemstack (it has to be valid armour, except for the helmet)
helmet:
==: org.bukkit.inventory.ItemStack
type: IRON_HELMET
amount: 1
chestplate:
==: org.bukkit.inventory.ItemStack
type: IRON_CHESTPLATE
amount: 1
leggings:
==: org.bukkit.inventory.ItemStack
type: IRON_LEGGINGS
amount: 1
boots:
==: org.bukkit.inventory.ItemStack
type: IRON_BOOTS
amount: 1
messages:
death:
# Use %s for player names.
# The player death messages requires two %s
# The natural death messages requires one %s
player:
melee: "§a%s §cwas slain by §a%s §cin §9FFA"
projectile: "§a%s §cwas sniped by §a%s §cin §9FFA"
fall: "§a%s §cwas knocked off by §a%s §cin §9FFA"
fire: "§a%s §cwas burnt by §a%s §cin §9FFA"
void: "§a%s §cwas knocked into the abyss by §a%s §cin §9FFA"
other: "§a%s §cdied with help from §a%s §cin §9FFA"
natural:
fall: "§a%s §cbecame one with the ground in §9FFA"
fire: "§a%s §ctried to play with fire in §9FFA"
void: "§a%s §cplummeted into the abyss in §9FFA"
default: "§a%s §cwas confused as to how they died in §9FFA"PlaceholderAPI placeholders:
Kills: %citrusffa_kills%
Deaths: %citrusffa_deaths%
KDR : %citrusffa_kdr%
Leaderboard placeholders :
- %citrusffa_leaderboard_amount_<place>% - gets the amount of kills for the player in place'st/nd/rd/th place for kills
- %citrusffa_leaderboard_player_<place>% - gets the name of the player in place'st/nd/rd/th place for kills
Further information on spawn points:
There are 8 spawn points by default.
If you only want 1 spawn point, set all 8 to the same location.
If you only want 2 spawn points, set 4 to one location and the other 4 to the other location.
If you only want 4 spawn points, set 2 to one location, 2 to another location, 2 to another location, and 2 to the last location.
You get the idea.
Extra information regarding world settings and gamerules:
Here are some recommended settings for your FFA world. If you use Multiverse, this means /mvm set and /mvrule.
None of these settings are required, and you can change them to your liking if you want different gameplay.
- Gamemode: Adventure
- Difficulty: Peaceful
- Natural regeneration: False
- Daylight cycle: False
- Keep inventory: True
- Tile drops: False
- Do mob spawning: False
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta