Minecraft Game Modes
Factions is survival with teams. Players form a faction, claim land to protect it, build a base, and grind money from farms and spawners. Other factions raid them with TNT cannons to break through walls and steal their loot. It's one of the most exciting game modes to play and one of the hardest to host: a single large cannon can fire hundreds of TNT and falling blocks per shot.
What you'll build: a Paper server with a maintained Factions plugin, a balanced power and claim system, a protected spawn and warzone, a pre-generated map inside a world border, Paper settings tuned for cannons, an economy, raid rules your staff can enforce, anti-cheat, investigation tools, backups, and a plan for seasons.
Time: about a day for the setup, plus at least one evening of cannon testing with friends before launch.
Before you start:
- A Minecraft server on the panel running Paper, with a pinned Minecraft version on Startup. New to Paper? Read Paper and Purpur servers first.
- Memory: 6 GB for up to ~30 players, 8–10 GB for 30–80. Factions worlds are large and raids are CPU-heavy, so CPU matters more than extra memory.
- You can use Console and Files, and install plugins.
Choose a Factions plugin
| Plugin | Cost | Status (late 2026) | Notes |
|---|---|---|---|
| FactionsUUID (drtshock) | About $15 on SpigotMC | Actively updated (the 4.x series) | The long-standing standard. The 4.0 rewrite added tab completion everywhere, admin commands under /fa, grace periods, shields, upgrades and a TNT bank. The author asks servers that make money to buy it; the older source is open (GPL). Docs at factions.support. |
| SaberFactions (SaberLLC) | Free, GPL | Actively updated (release 4.2.5 in October 2026 added Folia, MySQL and custom roles) | Built for competitive factions: grace periods, alt accounts in factions, F upgrades, faction points and shop, missions, wall/buffer checks, audit logs. Download from its GitHub releases. |
| Medieval Factions (Dans Plugins) | Free | Active | Roleplay-style nations with wars and alliances. Good for a medieval SMP, not a cannon server. |
This guide uses FactionsUUID 4.x commands. SaberFactions commands are similar (it started as a FactionsUUID fork) but not identical; type /f help to see them.
Whichever you choose, check the download page lists your Minecraft version before you start.
You'll also need:
| Plugin | Why |
|---|---|
| Vault + EssentialsX | Economy (/balance, /pay, faction banks), /spawn, homes, kits. |
| LuckPerms | Ranks and permissions. |
| WorldEdit (or FastAsyncWorldEdit) + WorldGuard | Building spawn and protecting it beyond what Factions does. |
| CoreProtect | Logs every block change: the core of raid investigations. |
| Chunky | Pre-generates the map. |
| Grim | Free anti-cheat. |
| PvPManager or CombatLogX | Combat tagging so players can't log out mid-fight. |
| RoseStacker (free) or a paid stacker | Stacks mobs, items and spawners. Factions economies usually run on spawners. |
| LibertyBans | Bans, mutes and alt detection. |
Install the Modrinth ones from Minecraft Plugins; upload SpigotMC or GitHub jars through Files → plugins → Upload. Restart, then run plugins in the console: everything should be green.
Build the map
Decide the size
Factions need room to hide bases, but too much room means nobody ever finds anyone to raid.
| Expected players | Border radius | Notes |
|---|---|---|
| Up to 30 | 3,000–5,000 | Bases are close enough that raiding happens. |
| 30–100 | 5,000–7,500 | The common choice. |
| 100+ | 7,500–10,000 | Big servers; expect 10–25 GB of world. |
Set the border and pre-generate
Pre-generating stops the server generating new chunks during play, which is one of the biggest causes of lag. In the console:
worldborder center 0 0
worldborder set 10000
chunky world world
chunky worldborder
chunky start
worldborder set 10000 is the width, so this is 5,000 blocks each way. Run it overnight; Chunky's progress survives restarts. Then do the Nether with a smaller border (one-eighth of the Overworld is the vanilla ratio). The full walkthrough is in Pre-generate your world.
Check it worked: chunky reports the task complete, and Files shows the world/region folder has grown.
Build spawn
- Build spawn near 0,0 with WorldEdit (
//wand,//set,//pastefor schematics). - Stand on the spawn point and run
/setspawn. - Add a WorldGuard region as a second layer of protection: select it with
//wand, thenrg define spawn,rg flag spawn pvp deny,rg flag spawn tnt deny.
Configure the Factions plugin
Stop the server before editing configs. FactionsUUID 4.x keeps its files in plugins/FactionsUUID/; the main settings are in main.conf (HOCON format: key = value, sections in { }). SaberFactions uses YAML in plugins/Factions/.
Power or DTR
FactionsUUID can control land and raiding in one of two ways, set by system in the land/raid control section:
power(default, classic Factions): every player has power; a faction's power is the sum of its members'. A faction can claim one chunk per point of power. Dying loses power. When a faction has more land than power, others can overclaim its land.dtr("deaths till raidable", HCF style): a faction has a DTR number. Each death lowers it; at zero or below the faction is raidable. Land is a fixed allowance per player.
Classic Factions servers use power. HCF-style servers use dtr.
Power settings
Option (in the power section) |
Default | Suggested | Why |
|---|---|---|---|
playerMax |
10 | 10–20 | Maximum power per player. Higher means more land and safer bases. |
playerMin |
-10 | -10 | How low power can go. Negative power drags the faction down. |
playerStarting |
0 | 5–10 | Lets new players claim right away instead of waiting. |
powerPerMinute |
0.2 | 0.2 | One power every 5 minutes online. |
lossPerDeath |
4 | 2–4 | How much power a death costs. |
regenOffline |
false | false | Power only comes back while you play. |
raidability |
false | true on raid servers | Makes territory lose protection when land is greater than or equal to power. |
powerFreeze |
0 | 300–900 | Seconds after a death before the faction can regain power, so they can't just wait out a fight. |
vampirism |
0 | 0 | Fraction of the victim's lost power the killer gains. Leave it off unless you want snowballing. |
Claim settings
Option (in claims) |
Default | Suggested | Why |
|---|---|---|---|
mustBeConnected |
false | true | Claims must touch, so factions can't claim scattered chunks across the map. |
canBeUnconnectedIfOwnedByOtherFaction |
true | true | Lets factions overclaim a raidable neighbour even if it's not connected. |
bufferZone |
0 | 0–3 | Chunks of gap required between factions' claims. Keep it low: large values are costly to check. |
allowOverClaim |
true | true | The classic way to take land from raidable factions. |
landsMax |
0 | 0 or a cap | 0 = no cap beyond power. |
worldsNoClaiming |
example | world_the_end |
Stop claims in worlds that reset or that you want contested. |
Explosion protection
In the protection section, FactionsUUID decides where TNT can break blocks:
| Option | Default | For a raiding server |
|---|---|---|
territoryBlockTNT |
false | false (raids need it) |
territoryBlockTNTWhenOffline |
false | false, or true if you want "offline protection" |
safeZoneBlockTNT |
true | true |
warZoneBlockTNT |
true | true |
wildernessBlockTNT |
false | false |
Offline protection (territoryBlockTNTWhenOffline: true) makes raids impossible while the defenders are offline. It's friendlier for casual servers and kills competitive raiding. Pick one and put it in your rules.
Save, then start the server. Config changes load at start-up, so restart after every edit.
Claim the safezone and warzone
Two special factions exist on every server:
- SafeZone: no PvP, no building, no TNT damage. Use it for spawn.
- WarZone: PvP is on, building and claiming are off. Use it around spawn, for outposts and for events. Players can lose power here by default.
To claim land for them, an admin claims on behalf of that faction. In FactionsUUID 4.x, claiming for another faction uses the --faction option, and radius claims use --radius:
- Stand in the middle of spawn.
- Type
/f claim --factionand press Tab. The autocomplete shows the exact names of the SafeZone and WarZone factions. - Claim spawn as SafeZone with a radius, for example
/f claim --faction <SafeZone name> --radius 3. - Walk to the edge and claim a ring of WarZone around it the same way, so players can't build a base right outside spawn.
- Run
/f mapto check: spawn should show as SafeZone and the ring as WarZone.
Older and forked Factions plugins use /f claim safezone or /f safe instead. If --faction isn't recognised, run /f help and look for the claim command.
Admins need bypass mode to edit inside claimed or protected land: /fa bypass toggles it. Turn it off again when you're done.
Permissions with LuckPerms
FactionsUUID ships permission kits that bundle the right nodes:
| Node | Who gets it |
|---|---|
factions.kit.halfplayer |
Granted by default: the basics. |
factions.kit.fullplayer |
All normal player commands. Give to default. |
factions.kit.halfmod |
The minimum for staff. |
factions.kit.mod |
Moderators. |
factions.kit.admin |
Admins. |
factions.bypass |
Lets /fa bypass work. Admins only. |
factions.chatspy |
Read faction chat. Senior staff only. |
Set them up in the console:
lp group default permission set factions.kit.fullplayer true
lp creategroup helper
lp creategroup mod
lp creategroup admin
lp group helper permission set factions.kit.halfmod true
lp group mod parent add helper
lp group mod permission set factions.kit.mod true
lp group admin parent add mod
lp group admin permission set factions.kit.admin true
lp group admin permission set factions.bypass true
lp createtrack staff
lp track staff append helper
lp track staff append mod
lp track staff append admin
Promote staff with lp user <name> promote staff. Check what someone has with lp user <name> permission check factions.bypass.
The full list is in the FactionsUUID docs (Permission Nodes). Add donor perks the same way, for example lp group vip permission set essentials.fly true (and decide whether flight is allowed in enemy territory; FactionsUUID's /f fly handles that).
Make cannons safe for the server
Raids are the biggest performance risk on any Factions server. Each primed TNT and each falling block (sand, gravel, concrete powder) is an entity the server must move every tick and check for collisions. A big cannon can create hundreds per shot, and a raid fires for hours.
Paper world settings
Edit config/paper-world-defaults.yml with the server stopped. Only change the keys you need:
environment:
optimize-explosions: true
chunks:
entity-per-chunk-save-limit:
tnt: 64
falling_block: 64
item: 128
experience_orb: 16
arrow: 16
collisions:
max-entity-collisions: 2
| Setting | Default | Value | Why |
|---|---|---|---|
environment.optimize-explosions |
false | true | Caches lookups during explosions; Paper's docs say it speeds them up significantly. The single most important setting on a Factions server. |
chunks.entity-per-chunk-save-limit.tnt |
-1 (no limit) | 64 | When a chunk saves or unloads, extra TNT entities beyond this aren't saved. Stops "TNT stuck in an unloaded chunk" from exploding the moment someone returns. |
chunks.entity-per-chunk-save-limit.falling_block |
-1 | 64 | Same for sand and gravel. |
collisions.max-entity-collisions |
8 | 2 | Collision checks stop after this many entities. Huge savings on piled-up sand. Test cannons: some designs rely on collisions. |
fixes.tnt-entity-height-nerf |
disabled | e.g. 300 | Removes primed TNT above this height. Stops TNT flying off into the sky forever. |
fixes.falling-block-height-nerf |
disabled | e.g. 300 | Same for falling blocks. |
fixes.prevent-tnt-from-moving-in-water |
false | false | Leave it off: water-based cannons depend on TNT moving in water. |
environment.disable-explosion-knockback |
false | false | Turning it on breaks most cannon designs. |
Spigot setting
In spigot.yml, under world-settings → default:
| Setting | Default | Notes |
|---|---|---|
max-tnt-per-tick |
100 | How many TNT are processed per tick; the rest wait for the next tick. Lowering it spreads load but changes cannon timing: shots that should fire together arrive over several ticks. Most factions servers keep 100 or raise it slightly and rely on the limits above. |
Settings to leave alone
unsupported-settings in config/paper-global.yml contains options that re-enable vanilla exploits. Factions communities sometimes ask for them:
| Setting | What it enables | Advice |
|---|---|---|
allow-piston-duplication |
TNT, carpet and rail duplication | Unlimited TNT makes raids cost nothing. Some cannon servers enable it deliberately; if you do, raids will be much bigger and more frequent. |
allow-unsafe-end-portal-teleportation |
End portal exploits including sand duplication | Paper says it's not recommended. |
allow-headless-pistons, allow-permanent-block-break-exploits |
Breaking bedrock and other permanent blocks | Keep false unless your rules allow it. |
Paper doesn't support these, and they may be removed. Never enable them "just to see".
Server and Spigot activation
| File | Setting | Value |
|---|---|---|
server.properties |
view-distance |
8 (raiders need to see bases) |
server.properties |
simulation-distance |
6 |
spigot.yml |
entity-activation-range.misc |
16 (default; don't raise) |
bukkit.yml |
spawn-limits.monsters |
40–50 |
Test cannons before launch
- Make a test world or a far corner of the map.
- Build or paste two or three popular cannon designs (your community will have favourites; ask in your Discord).
- Start a profile:
spark profiler start. - Fire each cannon for 2–3 minutes. Watch
spark tpsin another window. spark profiler stopand open the link. If explosions or entity ticking take most of the tick, tighten the limits above.- Make sure every design still fires correctly. Publish the limits so players know.
Healthy: TPS stays at 20 and MSPT under 50 while a cannon fires. Under 15 TPS during a raid means tighten something. Fix lag
Spawners and the economy
Most Factions economies run on mob spawners: players buy spawners, stack them in a base, sell the drops, and use the money for more spawners and for TNT. It's also why raids matter: a base full of stacked spawners is worth millions.
Set up the money
- EssentialsX provides the currency. Set a starting balance in
plugins/Essentials/config.yml(starting-balance). - Set item sell prices in
plugins/Essentials/worth.yml(or use a GUI shop plugin). Players sell with/sell handor/sell all. - Factions have their own bank:
/f money balance,/f money deposit <amount>,/f money withdraw <amount>.
Stack spawners
A stacker (RoseStacker is free) merges spawners into one block with a count, merges mobs into one entity with a count, and stacks dropped items. A base with 500 spawners becomes a handful of blocks and a few mob entities instead of thousands. Without a stacker, spawner farms will lag the server.
Settings to check in your stacker's config:
- Maximum spawner stack size (for example 100 or 1,000).
- Mob stack size and the radius for merging.
- Silk touch spawner pickup: decide whether raiders can mine spawners (most servers say yes, at a chance).
Price it
The same method as any game economy: decide what a good day's play earns, then price spawners and TNT from that. Start conservative; you can add income later, but removing money from an inflated economy is nearly impossible without a reset.
TNT
TNT is the raid currency. FactionsUUID 4.x has a faction TNT bank:
| Command | What it does |
|---|---|
/f tnt |
Shows the bank. |
/f tnt deposit <amount> |
Moves TNT from your inventory to the bank. |
/f tnt withdraw <amount> |
Takes it out. |
/f tnt fill <radius> <amount> |
Fills nearby dispensers from the bank (cannon loading). |
/f tnt siphon <radius> <amount> |
Pulls TNT back out of nearby dispensers. |
Outposts, KOTH and events
Events give factions a reason to fight beyond raiding.
- KOTH (King of the Hill): a WarZone area; the faction that holds it for a set time wins loot or keys. Several KOTH plugins exist on SpigotMC and Modrinth; check version support. Schedule events with the panel's Schedules (a Send Command task that starts the KOTH, at a fixed time in UTC).
- Outposts: permanent capture points that give the holding faction a bonus (money per minute, a sell multiplier). Usually a paid plugin or a custom build. Claim the area as WarZone so it can't be claimed.
- Grace period: FactionsUUID can block raiding at the start of a season so factions can build:
/fa set grace on 3dturns it on for three days,/fa set grace offends it, and players check with/f grace. - Shields: FactionsUUID 4.x lets factions activate a shield (
/f shield activate) for a protected window each day. Check its docs for how the window is configured.
Write raid rules (and enforce them)
Disputes are inevitable. Clear rules that staff can check with logs keep the server fair.
Put these in /rules and on your Discord:
- What's allowed: cannoning, overclaiming raidable factions, and whether "insiding" (a member betraying their own faction) is allowed. Servers differ on insiding: decide and write it down.
- Banned exploits: duplication glitches you haven't enabled, chunk-loading tricks, client mods beyond the allowed list.
- Alt accounts: whether alts are allowed, and whether they can join factions (SaberFactions has a built-in alt system).
- Cannon limits: your TNT and falling-block limits from step 6.
- Offline raiding: allowed or not.
- Refunds: only for server bugs proven by logs, never for "we got raided".
Anti-cheat and combat logging
Grim
Grim is a free, open-source anti-cheat for Paper. Install it from Minecraft Plugins, restart, and leave its defaults for the first week while you watch the alerts in console.
- Bedrock players (through Geyser) are exempt; Floodgate must be on the same server as Grim.
- ViaVersion must be on the same server too.
- Test with your PvP style. Old-style combat plugins can cause false flags.
Combat logging
Without combat tagging, players log out to escape fights and raids. PvPManager (free, very actively updated) tags players in combat, punishes combat logging, stops tagged players running into safe zones, and protects new players for a while (/newbie). CombatLogX is another free option (it needs its BlueSlimeCore dependency). Pick one, not both.
Bans and alts
LibertyBans handles bans and mutes, and /alts <player> shows suspected alts. With IP bans, a banned player's alts are blocked from joining. Use /ban <player> 7d <reason> for timed bans.
Investigate with CoreProtect
When a faction says "we got raided illegally" or "someone stole from our chest", CoreProtect has the answer.
| Task | Command |
|---|---|
| See who changed a block | /co inspect (or /co i), then click the block. Run it again to turn off. |
| Everything a player did in the last day | /co lookup u:<player> t:1d |
| Who took items from chests near you | /co lookup r:10 t:12h a:-container |
| What TNT and explosions broke | /co lookup u:#tnt,#explosion t:2h r:50 |
| Logins and logouts (combat logging claims) | /co lookup u:<player> t:1d a:session |
| Preview a rollback | /co rollback u:<player> t:3h r:30 #preview |
| Undo a player's damage | /co rollback u:<player> t:3h r:30 |
| Undo a rollback | /co restore u:<player> t:3h r:30 |
Always use a radius (r:) on rollbacks during a live season, or you'll undo legitimate play elsewhere. On a busy Factions server CoreProtect writes millions of rows a week; move it to MySQL and purge old data monthly (/co purge t:30d from the console). Databases
Backups and restarts
A raid can wipe a base in minutes, and a bad config change can wipe a season. Back up often.
Backup every 6 hours in Schedules (times are UTC):
| Field | Value |
|---|---|
| Cron | Minute 0, Hour */6, others * |
| Only when server is online | Off |
| Task 1 | Send Command: save-all |
| Task 2 | Create Backup, Time Offset 10, ignored files logs |
Daily restart at your quietest time with warnings at 5 minutes and 1 minute (Send Command say ..., then Send Power Action: Restart). A restart is also the safest time for TNT stuck in unloaded chunks to clear.
Check Backups the next day. Lock a backup before every config change and at the start of each season. Weekly, Download one to keep off the server. Backup schedules
Seasons and map resets
Most Factions servers run in seasons of 1–3 months. A reset gives new factions a chance and stops the richest faction owning everything.
Plan the season
- Announce the end date at least two weeks ahead. The last week is often "raid week" with no grace or shields.
- Pick winners: a faction top list (by value of spawners and blocks, or points), KOTH wins, or both. Paid prizes must follow the Minecraft usage guidelines on what servers may sell or give.
Reset
- Lock a final backup and Download a copy.
- Stop the server.
- In Files, rename
world,world_netherandworld_the_end(for exampleworld_s1), or delete them once the backup is safe. - Reset faction data: rename the plugin's data folder inside
plugins/FactionsUUID/(factions, players and board/claims files). Check the folder contents first and keep the config files. - Reset the economy:
eco reset **in EssentialsX after the server starts, or removeplugins/Essentials/userdata/while stopped. - Reset or keep LuckPerms ranks (donor ranks usually carry over).
- If you used a different seed, change
level-seedinserver.properties. - Start the server, then pre-generate the new map (step 2) before opening.
- Turn on a grace period for the first days:
/fa set grace on 3d.
Launch checklist
- [ ] Paper with a pinned version; every plugin green in
plugins. - [ ] Factions plugin chosen,
main.conf(or SaberFactions config) reviewed: power or DTR, claims, explosion protection. - [ ] World border set and the Overworld and Nether pre-generated.
- [ ] Spawn built, claimed as SafeZone, ringed with WarZone;
/f mapchecked. - [ ]
optimize-explosionson, TNT and falling-block save limits set, collisions lowered. - [ ] Cannons tested with spark; limits published.
- [ ] Stacker installed and configured; spawner economy priced.
- [ ] LuckPerms:
factions.kit.fullplayerondefault; staff track with mod/admin kits; few ops. - [ ] Grim and a combat-log plugin running; LibertyBans for bans.
- [ ] CoreProtect running (on MySQL for busy servers); staff know
/co iand lookups. - [ ] Raid rules posted in game and on Discord.
- [ ] Backups every 6 hours and a daily restart, tested with Run now; a locked launch backup.
- [ ] Grace period set for opening day.
Common problems
| Problem | Likely cause | Fix |
|---|---|---|
| TPS drops during raids | Too many TNT and falling-block entities | Enable optimize-explosions, lower max-entity-collisions, set height nerfs; profile with spark. |
| Explosion lag after a player returns to an area | TNT saved in unloaded chunks | Set entity-per-chunk-save-limit for tnt and falling_block. |
| Cannons don't fire properly | TNT limits, collisions or redstone implementation changed timing | Test designs; keep VANILLA redstone; adjust collisions to 4 if needed. |
| Players can claim right next to spawn | No WarZone buffer | Claim a WarZone ring around the SafeZone. |
| TNT damages spawn | SafeZone not claimed, or WorldGuard missing | Claim spawn as SafeZone; add rg flag spawn tnt deny. |
| Nobody can be raided | Raidability off or offline protection on | Set raidability = true; decide on territoryBlockTNTWhenOffline. |
| Factions claim the whole map | playerMax too high or claims not required to connect |
Lower power, set mustBeConnected = true. |
| Plugin won't load | Doesn't support your Minecraft version | Check the download page; use the build for your version. |
| Players log out to escape raids | No combat tagging | Install PvPManager or CombatLogX. |
| Spawner farms lag | No stacker, or stack limits too low | Install RoseStacker; raise stack sizes; lower mob spawn rates. |
| Chests emptied, nobody knows who | Need logs | /co lookup r:10 t:1d a:-container. |
| Economy is out of control | Generous sell prices or a duplication exploit | Check unsupported-settings are off; lower prices; plan a season reset. |
| Staff can't edit protected areas | Bypass off or missing permission | /fa bypass with factions.bypass. |
Going further
- HCF style: switch to
system = "dtr", add deathbans and a smaller map. - Faction top: a value-based leaderboard plugin (spawners and blocks counted per claim). Several paid options exist.
- Discord: SaberFactions can give each faction a Discord channel; FactionsUUID integrates with chat plugins.
- A network: split Factions from the lobby with Velocity. Velocity networks
- FactionsUUID's full docs are at factions.support (commands, permission nodes, placeholders, upgrades); SaberFactions documents its features on its GitHub.

