Civilization SMP from scratch: building an EarthMC-style nations server

Civilization SMP from scratch: building an EarthMC-style nations server

Civilization SMP isn't survival with friends and isn't classic PvP. It's a server where players build cities on a real Earth map, form nations, sign alliances and run sieges. Below I'll walk through building one from scratch: where to get the map, what plugins to install, how to balance the economy and wars, and why without a proper anti-cheat the whole thing falls apart in week one.

The concept: real map, nations, diplomacy

The civilization SMP genre grew out of EarthMC, which launched in 2018 and still pulls 200-400 online during prime time. The idea is simple: instead of a random world, you have a real Earth map at 1:500 scale (43200 by 21600 blocks) or 1:1000 (21600 by 10800). Players spawn in real geography, the Sahara is desert, Siberia is taiga, the Amazon is jungle. That alone gives you lore without any RP channel.

On top of the map you stack Towny: players found towns, merge them into nations, taxes get collected automatically, borders are drawn chunk by chunk. After that comes diplomacy: alliances, trade deals, wars through SiegeWar. On the live map via the BlueMap-Towny addon you see colored polygons, capital flags and borders.

The main difference between civ SMP and a regular Towny server: the map isn't random. The player knows where they are, and that matters for the roleplay layer. A Brit builds in the British Isles, a Chinese player takes Beijing, someone declares the Roman Empire and grabs Italy.

The Earth map: where to get it

Three options, in increasing effort.

Pre-built TerraMap. The easiest path. There are several GitHub projects under BukkitGen that generate Earth at the right scale. You get real elevation data through Digital Elevation Models (DEM) and biome distribution via the Köppen climate map. The downside: you'll need the Terra mod or the TerraformGenerator plugin and decent RAM for pre-generation.

Bukkit world generator plugins. A plugin like Terra (https://modrinth.com/plugin/terra) handles custom landscapes and there are Earth configs for it. Alternative is TerraformGenerator (https://www.spigotmc.org/resources/terraformgenerator.20505/) with the Earth pack.

Importing an existing world. EarthMC-style servers often grab someone's world file (legal grey area, better make your own). On SpigotMC and Modrinth you'll find free 1:1000 Earth world files.

For 1:500 you need heavy pre-generation through Chunky, otherwise the first player who walks into unexplored territory will lag the whole server:

/chunky world world
/chunky center 0 0
/chunky radius 21600
/chunky shape rectangle
/chunky start

On SSD with 16 threads that takes 12 to 36 hours. Do it before launch, not after.

The base plugin stack

The civ SMP stack is well-tested, there's not much point straying from it.

Core: Paper 1.21+ (https://papermc.io/). Spigot can't handle the load of Towny + BlueMap + 100 online.

Towns and nations: Towny Advanced (https://townyadvanced.github.io/). The de facto standard for civ SMP. Lands (https://www.spigotmc.org/resources/lands.53313/) also works and looks prettier visually, but Towny is easier to integrate with SiegeWar and BlueMap addons.

Wars: SiegeWar (https://github.com/TownyAdvanced/SiegeWar) - a Towny addon adding city sieges with banners, capture points and timers. The FlagWar alternative (same stack) is a simpler system using flags in claim chunks.

Map: BlueMap (https://bluemap.bluecolored.de/) with the BlueMap-Towny addon (https://www.spigotmc.org/resources/bluemap-towny.87788/) for showing Towny borders as colored polygons on a 3D map.

Basic commands and spawn: EssentialsX (https://essentialsx.net/) - no real alternative.

Permissions: LuckPerms (https://luckperms.net/) - for splitting admin/mayor/nation roles.

Economy: Vault plus a backend, usually EssentialsX Economy.

Anti-cheat: GrimAC (https://grim.ac/) or Vulcan. Without anti-cheat wars are pointless, the first killaura kills the motivation of legit players. For civ SMP I'd tune anti-cheat medium-strict from day one because fly/speed break siege balance first.

DDoS protection: civ SMP with decent online numbers attracts attacks from salty players and rival nations. You need a filtering proxy from the start, not after the first attack.

Towny setup: taxes, chunks, nations

A baseline towny.yml for civ SMP looks roughly like this:

new_world_settings:
  using_towny: true
  pvp: true
  forcepvp: false
  explosions: false
  firespread: false

economy:
  enabled: true
  daily_taxes:
    new_town_min_distance_from_town_plots: 5
    town_upkeep: 25.0
    nation_upkeep: 100.0
  prices:
    price_new_town: 250.0
    price_new_nation: 1000.0
    price_claim_townblock: 25.0

town:
  max_townblocks: 16
  max_residents: 0
  max_townblocks_per_resident: 8
  min_distance_between_homeblocks: 8

nation:
  max_towns_per_nation: 100
  capital_must_be_largest_town: false

Key points where new admins trip up:

Taxes too aggressive. If town_upkeep is 25 with a starting balance of 100, a new town goes bankrupt in 4 days. Give newcomers a starter bonus through /eco give, or drop upkeep to 10-15.

Too few chunks per resident. On civ SMP people want to build castles and farms, 8 chunks per resident is a reasonable minimum. EarthMC currently runs 16.

Distance between towns. min_distance_between_homeblocks at 8 chunks prevents towns sitting on top of each other. On a big Earth you can push it to 16.

Spawn at a neutral location

You can't put spawn in Europe or North America, that's an instant geopolitical fight. EarthMC put spawn in Madagascar because few players actually claim it. Other servers put spawn in Antarctica or on a separate floating island.

The idea: spawn is neutral, from there players teleport to any town through /t spawn <town> (usually for money so there's no cheap travel). Spawn itself is set via EssentialsX:

/setspawn
/setwarp safespawn

And protected with a WorldGuard region (https://dev.bukkit.org/projects/worldguard) with flags pvp deny, build deny, mob-spawning deny.

Wars through SiegeWar

SiegeWar is the most nuanced piece. It adds sieges: an attacker places a banner near a town, a 3-7 day real-time timer starts, attackers and defenders score points on a special control point. Whoever scores more takes the town.

A baseline SiegeWar/config.yml needs tuning:

war:
  siege:
    enabled: true
    minimum_townships_for_siege: 0
    max_active_sieges_per_town: 1
    siege_duration_days: 3
    siege_camp_duration_minutes: 30
    banner_to_town_max_height_deviation: 60
  battle:
    points_for_kill: 100
    points_for_banner_control_per_minute: 50

What usually breaks sieges:

Timer too short. 1 day is unfair to defenders in other timezones. 7 days is too long and dull. 3 days is the sweet spot.

No rules around cannons. TNT cannons demolish defensive walls. If you want classic sieges without TNT, disable explosions through Towny explosions: false or WorldGuard.

Allies climbing the point. By default in SiegeWar only conflict participants can capture the point. Allied nations join through /n ally add and only then can defend.

BlueMap and nation visualization

Without BlueMap a civ SMP loses half its appeal. Players visit the website, see nation borders as colored polygons, click on a town and read its description. It's marketing and a diplomacy tool at the same time.

Installing the BlueMap-Towny addon:

# in plugins/
wget https://github.com/TownyAdvanced/BlueMap-Towny/releases/download/2.6/BlueMap-Towny-2.6.jar

In plugins/BlueMapTowny/config.yml you set the default polygon color, border thickness, town name display and hover tooltips. Each nation can pick a color via /n set mapcolor <hex>.

BlueMap needs a web server (nginx) and a port open externally. On a large world the map render takes hours and beats the disk hard, put it on a dedicated drive or schedule nightly regenerations.

Diplomacy: alliances, trade, embassies

Towny gives you /n ally add <nation> and /n enemy add <nation> out of the box. That's not enough for proper diplomacy. What people usually add:

Trade agreements. Through Quickshop-Hikari (https://www.spigotmc.org/resources/quickshop-hikari.100748/) players place shop blocks in any town. Foreign trade tax is configured via Towny town_tax_rate.

Embassy chunks. In Towny that's /plot set embassy. Any player can buy an embassy chunk in another town and put a teleport there. It's basic travel diplomacy.

Discord integration. DiscordSRV (https://www.spigotmc.org/resources/discordsrv.18494/) bridges in-game chat with Discord. Private channels per nation come through the DiscordSRV-Towny addon.

Anti-grief and Wild rules

Inside claimed town chunks Towny protects everything. An enemy can't break blocks in another town's land without a siege. But outside claim zones (in "Wild") griefing is allowed by default.

That's normal for civ SMP: wild lands are a grey zone where you can build traps and raider bases. But spawn and neutral regions need separate WorldGuard protection.

In paper-world-defaults.yml at minimum enable:

anticheat:
  anti-xray:
    enabled: true
    engine-mode: 2
    chunk-edge-mode: true
chunks:
  prevent-moving-into-unloaded-chunks: true

Anti-xray in engine-mode 2 is mandatory. On civ SMP people hunt diamonds and netherite, x-ray cheat breaks the economy faster than anything else.

Hardware and online numbers

Civ SMP on average holds 50-200 online with 10-16 GB RAM. The bottleneck isn't CPU, it's the number of loaded chunks. On a 1:500 Earth players spread across the whole planet and the server has to keep tens of thousands of chunks in memory at once.

A baseline config for 100 online:

  • CPU: Ryzen 7 7700X or Intel i7-13700 (single-core performance is critical)
  • RAM: 16 GB DDR5, of which 12 GB JVM heap
  • SSD: NVMe at least 500 GB (BlueMap eats 50-150 GB for a full map)
  • Network: anti-DDoS proxy is mandatory

Aikar's flags with G1GC work fine up to 100 online. For 200+ switch to ZGC or Folia.

FAQ

Where do I get an Earth map for Minecraft

Bukkit-side Terra or TerraformGenerator can generate Earth at the scale you want. There are also pre-built BlueMap world files on SpigotMC and GitHub. EarthMC uses a custom generator based on DEM elevation data and a Köppen biome map.

Can I run an EarthMC server in cracked mode

Technically yes, through online-mode=false plus AuthMe for registration. In practice cracked civ SMP gets a flood of alts and cheaters. If you go cracked, run GrimAC at maximum strictness, IP connection limits and 2FA through a Discord bot.

How do I configure a city siege

In SiegeWar an attacker plants a banner within 7 chunks of a town, a 3-7 day timer starts. Both sides score points through kills and point control. Config is in plugins/SiegeWar/config.yml. The main thing is to balance duration so defenders from every timezone can play their part.

Towny or Lands for civ SMP

Towny is the genre standard, with SiegeWar, BlueMap-Towny and dozens of other addons written for it. Lands looks nicer and is simpler for the player, but its addon ecosystem is smaller. If you want classic EarthMC-style with sieges and nations, pick Towny. If you're making a lighter survival with a claim system, Lands works better.

How much RAM for civ SMP at 100 online

Minimum 12 GB JVM heap, I recommend 16 GB. At 200 online you're at 24-32 GB. Towny chunks load and stay in memory for a long time, plus BlueMap render. Run it on hardware with DDR5 and a fast NVMe.

How do I protect civ SMP from DDoS

A civ SMP with a public map and nations becomes a target fast. Proxy filtering plus Cloudflare Spectrum or a dedicated Minecraft anti-DDoS handle L4 attacks. For L7 (fake connections) you need a filter with behavioral analysis that separates bots from legits before they bury the server in handshakes.

What's next

If you're just starting, my advice: build the server at 1:1000 (smaller map, faster render), start with 20-30 online from your own community, base Towny + BlueMap without SiegeWar. Once people settle in and start fighting over borders, then turn on sieges.

From experience: civ SMP lives on the roleplay layer. Technically you can spin up the server in a weekend, but without an active community manager, Discord server and regular events it dies in a month. Plan time for player diplomacy, not just config code.


Protect Your Server from DDoS Attacks

Free protection with 5-minute setup. 1 TB bandwidth included.

Try for Free


Related Articles