Factions Servers: Setup and Best Practices

Run a Factions server from scratch: choosing FactionsUUID or SaberFactions, power and claims, safezones and warzones, a pre-generated map, TNT cannon performance, economy, outposts, raid rules, anti-cheat, CoreProtect investigations and seasons

Minecraft Game Modes

20 min readAdvancedLast updated Oct 31, 2026

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.
1

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.

2

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

  1. Build spawn near 0,0 with WorldEdit (//wand, //set, //paste for schematics).
  2. Stand on the spawn point and run /setspawn.
  3. Add a WorldGuard region as a second layer of protection: select it with //wand, then rg define spawn, rg flag spawn pvp deny, rg flag spawn tnt deny.
3

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.

4

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:

  1. Stand in the middle of spawn.
  2. Type /f claim --faction and press Tab. The autocomplete shows the exact names of the SafeZone and WarZone factions.
  3. Claim spawn as SafeZone with a radius, for example /f claim --faction <SafeZone name> --radius 3.
  4. 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.
  5. Run /f map to 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.

5

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).

6

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

  1. Make a test world or a far corner of the map.
  2. Build or paste two or three popular cannon designs (your community will have favourites; ask in your Discord).
  3. Start a profile: spark profiler start.
  4. Fire each cannon for 2–3 minutes. Watch spark tps in another window.
  5. spark profiler stop and open the link. If explosions or entity ticking take most of the tick, tighten the limits above.
  6. 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

7

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

  1. EssentialsX provides the currency. Set a starting balance in plugins/Essentials/config.yml (starting-balance).
  2. Set item sell prices in plugins/Essentials/worth.yml (or use a GUI shop plugin). Players sell with /sell hand or /sell all.
  3. 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.
8

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 3d turns it on for three days, /fa set grace off ends 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.
9

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".
10

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.

11

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

12

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

13

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

  1. Announce the end date at least two weeks ahead. The last week is often "raid week" with no grace or shields.
  2. 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

  1. Lock a final backup and Download a copy.
  2. Stop the server.
  3. In Files, rename world, world_nether and world_the_end (for example world_s1), or delete them once the backup is safe.
  4. 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.
  5. Reset the economy: eco reset ** in EssentialsX after the server starts, or remove plugins/Essentials/userdata/ while stopped.
  6. Reset or keep LuckPerms ranks (donor ranks usually carry over).
  7. If you used a different seed, change level-seed in server.properties.
  8. Start the server, then pre-generate the new map (step 2) before opening.
  9. 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 map checked.
  • [ ] optimize-explosions on, 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.fullplayer on default; 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 i and 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.