How do I set up a hardcore SMP server for an event with friends?
In this article
- What makes a hardcore SMP different from a regular SMP?
- Which server do you need?
- Step 1: install Paper
- Step 2: turn on hardcore and the basic settings
- Step 3: whitelist and admins
- Step 4: pick a spawn and set a world border
- Step 5: pre-generate the world with Chunky
- Step 6: decide what happens when someone dies
- Step 7: add voice chat
- Step 8: let friends on Bedrock join
- Step 9: pick a few extra plugins (optional)
- Step 10: make backups before everyone joins
- Launch checklist
- Need help?
One life, a fixed group, a shared start time and an end date: that's a hardcore SMP event, the kind you know from the big seasons on YouTube and Twitch. Die and you're out, watching as a spectator; whoever survives wins. An event like this doesn't run on a modpack but on regular Minecraft with a few well-chosen settings and plugins. In this guide you'll set up the server from start to finish in the MC-Node game panel: from the right package to a pre-generated world, voice chat, friends on Bedrock and a starting backup. How to keep the event running afterwards, with rules, a fair start and a finale, is covered in running a hardcore SMP event.
What makes a hardcore SMP different from a regular SMP?
- One life. The server runs with
hardcore=true: the difficulty is locked to hard and anyone who dies automatically becomes a spectator. - A closed group. Only players on the whitelist can get in, so no strangers wander through your season.
- A season with a start and an end. Everyone starts at the same moment and there's an end date, often with a shrinking world border as the finale.
- Made to be watched. Lots of groups record or stream their season. Proximity voice chat, death messages in Discord and a live map make it more fun for players and viewers alike.
Rather play without permadeath? Then a regular SMP server is a better fit. Everything below works there too, except the hardcore setting.
Which server do you need?
Hardcore isn't any heavier than regular survival. The difference comes down to how many players are online at the same time, your plugins and whether the world was generated in advance. Plan for your peak: on the first night, everyone is online.
| Players at once | Package | RAM | Good for |
|---|---|---|---|
| up to 10 | Redstone | 5 GB | A group of friends with a few plugins |
| up to 20 | Dirt | 8 GB | The sweet spot for most events |
| up to 25 | Clay | 10 GB | Extra plugins, a live map and Geyser |
| up to 40 | Gravel | 15 GB | Community events with lots of players at once |
- Recording and streaming happen on the player's own computer and don't cost the server anything extra.
- Bedrock players via Geyser, a 3D map and lots of plugins do need some extra memory. If in doubt, go one package higher; you can always upgrade later from the client area and your world stays right where it is.
- More background per server type: how much RAM does your Minecraft server need?
All packages are in the Minecraft store. On our start a hardcore SMP page you can see at a glance which packages we recommend for a hardcore season.
Step 1: install Paper
Paper is fully compatible with vanilla, runs noticeably smoother with lots of players and can load plugins. Exactly what you need for an event.
- Log in to the game panel and open your server.
- Choose Paper and the Minecraft version you want to play. How that works in the panel is explained in changing your version; why Paper is the best choice is covered in choosing server software.
- Pick a version that's been out for a few weeks. Plugins like Geyser, Simple Voice Chat and Chunky often need a little while to catch up after a new Minecraft release, and you don't want to be updating in the middle of a season.
- Start the server once so all the files get created, then stop it again from the Console tab.
Step 2: turn on hardcore and the basic settings
With the server stopped, open server.properties from the Files tab and set these lines:
hardcore=true
difficulty=hard
white-list=true
enforce-whitelist=true
online-mode=true
spawn-protection=0
max-players=25
view-distance=10
simulation-distance=6hardcore=trueis the heart of it all. Hardcore only works fully on a world that was created as hardcore. If there's already a world, delete theworldfolder while the server is stopped; on Paper 1.21.x and older, also deleteworld_netherandworld_the_end. Since Paper 26.1, the Nether and the End live inside theworldfolder itself. All the details are in enabling hardcore mode.enforce-whitelist=truemakes sure anyone you remove from the whitelist gets kicked off the server right away.online-mode=trueonly lets in real Minecraft accounts. Never turn this off; Bedrock players are handled with Floodgate (step 8).max-players: your group plus a few slots for admins. Also see changing the maximum number of players.view-distanceandsimulation-distanceare a good starting point for 10 to 25 players. How to fine-tune them during the event is covered in the article on running your event.- Want a specific seed? Enter it in
level-seedbefore the first start, see changing your world seed.
PvP is on by default and is part of most hardcore events. Since Java 1.21.9, pvp is a gamerule instead of a line in server.properties; to turn it off, see disabling PvP. Save the file and start the server: Minecraft now creates a fresh hardcore world. You'll recognize it by the hearts with the dark outline.
Step 3: whitelist and admins
Add everyone from the console. You don't need to be online yourself:
whitelist add Player1
whitelist add Player2
whitelist list
op YourName- Use the exact Minecraft names. More info in using a whitelist.
- Give OP to as few people as possible, ideally one or two admins who aren't playing themselves or whom the whole group trusts. An OP can revive anyone, fly and spawn items. How OP works is explained in making yourself OP.
- Bedrock players are added differently, see step 8.
Step 4: pick a spawn and set a world border
A world border keeps the group together, stops the world from growing endlessly and later forms the basis for a shrinking finale. First find a nice starting spot, then run this in the console:
setworldspawn 0 72 0
gamerule respawn_radius 0
worldborder center 0 0
worldborder set 6000- Replace
0 72 0with the coordinates of your starting spot and use the same x and z forworldborder center. In-game, as an OP you can also type/setworldspawnwhile standing on that spot. respawn_radius 0makes new players appear exactly at spawn instead of somewhere within ten blocks of it. You need this if you're building a waiting area for the start. On Java 1.21.10 and older this gamerule is calledspawnRadius; see setting gamerules.- The number after
worldborder setis the diameter: 6000 means 3000 blocks in every direction from the center.
As a rule of thumb for the size:
| Group | Diameter | Command |
|---|---|---|
| up to 10 players | 4000 blocks | worldborder set 4000 |
| 10 to 25 players | 6000 blocks | worldborder set 6000 |
| 25 to 40 players | 8000 blocks | worldborder set 8000 |
The Nether and the End have their own border: the command only applies to the world you run it in. How to set those and expand them later is covered in setting a world border.
Step 5: pre-generate the world with Chunky
Generating new chunks is the heaviest work a Minecraft server does. On the first night, twenty players run off in every direction at once, and without preparation your TPS drops at exactly the moment everyone's watching. With the Chunky plugin you generate everything inside the world border in advance, so exploring during the event costs next to nothing.
- Install Chunky via the Plugin installer in your panel and restart the server. See installing a plugin.
- Run the three commands below in the console.
chunky worldbordertakes over the center and size of your world border. - The console shows the progress. If the server needs to restart in between, pause with
chunky pauseand pick it up later withchunky continue. - Repeat it for the Nether after setting a border there too: select the Nether world with
chunky worldfollowed by its name (on Paper 1.21.x that'sworld_nether; in-game, type/chunky worldand press Tab to see the right name). You can usually skip the End.
chunky world world
chunky worldborder
chunky startWithout a world border, use chunky center 0 0 and chunky radius 3000; keep in mind that Chunky works with a radius, so half the diameter.
Plan this at least a day before the start, at a time when nobody's playing: pre-generating takes a lot of CPU and can take hours with a large border. A pre-generated world also takes up more disk space, easily several gigabytes with a 6000-block border. Why this makes such a difference for your TPS is explained in fixing server lag with the Spark profiler.
Step 6: decide what happens when someone dies
On a hardcore server you don't need to set anything up for this: anyone who dies gets a death screen without a respawn button and automatically becomes a spectator. Spectators fly around invisibly, pass through walls and can watch through other players' eyes. Decide beforehand which variant you want:
- Spectating (default). Eliminated players stay on the server as spectators. Great for the atmosphere and for viewers, as long as you agree that they don't pass any information to living players.
- Spectator area. Put an eliminated player in adventure mode in a closed-off area at spawn:
gamemode adventure Namefollowed bytp Name x y z. That way they can't fly past other people's bases anymore. - Dead means gone. Remove the player from the server with
whitelist remove Nameandkick Name Eliminated. The most intense option, but also the quickest to get boring for anyone who dies early.
Also turn off this gamerule so spectators flying around don't generate new chunks:
gamerule spectators_generate_chunks falseOn Java 1.21.10 and older it's called spectatorsGenerateChunks. On Paper, gamerules apply per world: also type it in-game while you're in the Nether and the End. Want players to be able to come back under certain conditions? Read reviving a dead player. How to handle revives fairly is covered in running a hardcore SMP event.
Step 7: add voice chat
Proximity voice chat, where you only hear the players close to you, makes hardcore twice as tense. Simple Voice Chat takes care of that:
- Install the Paper plugin on the server and add an extra port: the audio runs over UDP, port
24454by default. Without that port, it stays silent. - Every Java player installs the Simple Voice Chat mod in their own game (Fabric, NeoForge or Forge). Without the mod, someone can still play along, but they won't hear or say anything.
- Teams can create their own group, optionally with a password, so they can hear each other on the go without everyone else listening in.
The full installation is in installing Simple Voice Chat and adding an extra port. Bedrock players can't use the mod; set up a Discord channel for them, for example.
Step 8: let friends on Bedrock join
Got friends playing on a phone, tablet or console? With Geyser, Bedrock players can join your Java server, and with Floodgate they don't need a Java account to do it.
- Install Geyser following installing GeyserMC and add an extra port for Bedrock (UDP,
19132by default). - Install Floodgate and set
auth-type: floodgatein Geyser's config, see setting up Floodgate. - Bedrock names get a dot in front of them by default, for example
.Steve123. Because of that, a regularwhitelist addoften fails. Use the Floodgate commandfwhitelist addwith the player's gamertag, or turn off the whitelist for a moment, let the player join once and then add them. - Test beforehand with at least one Bedrock player. Not everything works exactly the same on Bedrock as on Java, and the voice chat mod doesn't work there.
Step 9: pick a few extra plugins (optional)
Keep it small: anything that makes the game easier takes the tension out of it. These plugins do make running and watching the event better:
- CoreProtect logs every block and every chest. Essential for settling arguments about a wrecked base with facts.
- DiscordSRV automatically posts death messages, joins and chat to your Discord, so even people who are offline don't miss a thing.
- BlueMap creates a live 3D map in the browser, perfect for spectators and viewers at home. Heads-up: by default the map shows where players are. In a PvP season you might want to share the link only with admins and spectators.
- LuckPerms is only needed if you want moderators with limited permissions.
The Spark profiler, for tracking down lag, is already built into Paper 1.21 and newer.
Step 10: make backups before everyone joins
- Stop the server once you're done setting up and pre-generating, and create a backup from the Backups tab with a clear name, for example starting world season 1. See creating a backup.
- Download that backup to your own computer, see downloading your backup. That way you can always go back to a clean start.
- Schedule an automatic daily backup via Schedules at a time when nobody's playing: choose a backup for the task instead of a command. How to create a scheduled task is explained in managing schedules.
Remember that restoring a backup rolls back the entire world, for everyone. In hardcore, that's an emergency measure for real disasters, like a corrupted world after a crash, not a way to bring back one dead player.
Launch checklist
- Paper is running a version that all your plugins have been updated for.
hardcore=truewas on before the world was created; you can see the hardcore hearts.- The whitelist is on and all players are on it, including the Bedrock players.
- Only the admins have OP.
- Spawn and world border are set and the world has been pre-generated with Chunky.
spectators_generate_chunksis off and you've agreed what happens after a death.- Simple Voice Chat works and the extra UDP port has been added.
- The starting backup has been created and downloaded, and the daily backup is scheduled.
- You've tested with a second account: joining, voice chat, dying and becoming a spectator.
- The rules and the start time have been shared with the group.
Test with admin accounts, not with the participants: anyone who walks around the final world before the start gets a head start. How to get everyone to start at exactly the same moment is covered in running a hardcore SMP event.
Need help?
Stuck somewhere? Ask Noddy, the AI assistant in the game panel. Noddy can help you out if, for example, a plugin won't load or you don't understand an error message in the console. If you can't figure it out together, open a ticket via our support page.
Launch your server in 60 seconds on our own hardware.