How to Make a Minecraft SMP Server in India (2026)

Published on

Set up a friends' Minecraft SMP for India: PC and phone players, RAM, the Mumbai node, a whitelist with real accounts, rules, and IST restarts and backups.

First-person view of a Minecraft jungle with tall trees, vines and a parrot, full health and hunger bars and an empty hotbar

You want a survival world for your friends, and the group is split. Two of you play Java on a laptop, the rest play on their phones, and one friend uses a launcher that never asked for a login. You all live in India, and a server in Europe is a long way from every one of you. This guide covers what is specific to an SMP for players in India. For the general setup (Paper, plugins, spawn and the rest of server.properties), start with our SMP setup guide; this post does not repeat it.

Quick answer: Run a Java server (Paper) in Mumbai, and add Geyser and Floodgate if anyone plays on a phone. Start with 3 GB of RAM for vanilla and 4 to 5 GB once you add plugins. Keep online-mode=true, turn on white-list and enforce-whitelist, then add Java friends with whitelist add and phone friends with fwhitelist add. Agree on rules and show them on join with Minecraft's code of conduct screen, which can have a Hindi version. Schedule restarts and backups for an hour when nobody plays, remembering that IST is UTC+5:30, and lock a backup before every event or update.

Step 1: Count Who Plays Java and Who Plays Bedrock

Ask everyone which edition they play before you order anything. On Android and iOS phones, tablets, Xbox, PlayStation, Switch and Minecraft for Windows, the game is Bedrock Edition. The launcher version on a PC or laptop is Java Edition. Mojang's Minecraft: Java & Bedrock Edition for PC now includes both, so a friend who bought Minecraft for PC may already own Java.

That count decides the server:

  • Everyone on Java: a normal Paper server.
  • A mix of PC and phone players: a Java server with Geyser, "a bridge between Minecraft: Bedrock Edition and Minecraft: Java Edition", plus Floodgate, which lets Bedrock players join "without needing a paid Minecraft: Java Edition account". Install both: Geyser on Paper switches to Floodgate authentication by itself when it finds Floodgate. Without Floodgate, Geyser's default auth-type, online, asks Bedrock players to sign in with a Java account. What phone players can and cannot do on such a server is in our Java or Bedrock guide for Indian friend groups.
  • Everyone on Bedrock and no plugins planned: Mojang's Bedrock Dedicated Server also works, but the Minecraft Wiki notes its poor support for community plugins compared with Paper, and a friend who later switches to Java cannot join it. Our Java or Bedrock comparison goes through that choice.

Two things are new for mixed groups. On 30 October 2026, Geyser's supported versions page lists Bedrock 26.40 to 26.60 and Java 26.3, so run the server on 26.3, the current Java release (Geyser's setup guide says to add ViaVersion otherwise), and have phone players update the game. And with Bedrock 26.60, which Mojang released on 27 October 2026, Bedrock clients stop connecting over RakNet, GeyserMC says. They now use NetherNet, which needs a Geyser port of its own, open for TCP and UDP. Our Geyser hosting guide shows the port setup and our NetherNet guide the config switch. Friends on Xbox, PlayStation or Switch cannot type in a server address at all; the console guide lists their options.

Step 2: Pick the RAM, With the Server in Mumbai

Put the server near most of the group. Our India plans run on our own node in Mumbai: a Ryzen 9 3900X-class CPU shared with other servers on the machine, DDR4 memory, NVMe storage and DDoS protection at the standard level. Premium is not sold in India yet. Ports for Geyser or voice chat cost nothing: a plan includes three port allocations, the Java port among them, and up to five on request. Monthly prices as of 30 October 2026:

Your SMPRAMPlan and storagePer month
Vanilla survival with a few friends3 GBMC Coal, 40 GB NVMe€2.70
Paper with a handful of plugins, counting Geyser and Floodgate4 or 5 GBMC Iron, 50 GB, or MC Gold, 60 GB€3.60 or €4.50
A bigger group, many plugins or a light modpack6 or 8 GBMC Lapis, 70 GB, or MC Diamond, 80 GB€5.40 or €7.20

You pay in euros. At the ECB reference rate of 29 October 2026 (€1 = ₹106.03), €2.70 is about ₹286 and €4.50 about ₹477; your bank converts at its own rate on the day you pay. Paying a quarter, half year or year ahead takes about 5%, 10% or 20% off, which helps when friends split one payment. If the group grows, you upgrade from the client area and keep the world. We do not quote a ping figure for Mumbai: once the server runs, its entry in your server list shows the ping on your own connection.

Step 3: Keep Real Accounts and Turn On the Whitelist

Three lines in server.properties keep strangers out. The server reads the file at startup, so restart after changing it:

online-mode=true
white-list=true
enforce-whitelist=true
  • online-mode=true checks every player against Minecraft's account database. Paper's documentation says it "makes it impossible for cracked players to connect", so a friend on a cracked launcher such as TLauncher cannot join; our TLauncher comparison covers safer launchers. With false, the server checks nobody, and anyone can join under any name, an operator's name included.
  • white-list=true lets in only the players on the list. The Minecraft Wiki notes that Java 26.3 made this the default for a newly generated file, but a file from an older version keeps its old value, so check the line.
  • enforce-whitelist=true kicks players who are online but no longer on the list, once the server reloads it.

Add the group from the server console (in game, start each command with /):

whitelist add Rahul_07
fwhitelist add PriyaPlays
whitelist list

whitelist add takes a Java name, and according to the wiki the player does not need to be online. fwhitelist is Floodgate's command for Bedrock players: type their Xbox Gamertag without a prefix. In game, Bedrock players show up with a dot before their name, because Floodgate's default username-prefix is ".", and spaces in a Gamertag become underscores. Operators can always join a Java server, listed or not, so give op only to the one or two people who run it. Our whitelist guide has the remaining commands.

Step 4: Agree on Rules and Show Them on Join

Settle the rules before the first session: PvP or not (gamerule pvp false turns it off; pvp moved from server.properties to a game rule in 1.21.9), whether taking from someone's chest counts as stealing, how close you may build to someone else, who holds op, and what happens after griefing. The SMP setup guide has an example list and the claim and rollback plugins.

Java 1.21.9 also added a code of conduct screen, which suits a group that speaks more than one language. Set enable-code-of-conduct=true in server.properties, create a folder named codeofconduct next to that file, and add one text file per game language:

codeofconduct/en_us.txt
codeofconduct/hi_in.txt

Each player sees the file for their game language, or en_us if there is none, with two buttons: Acknowledge and Disconnect. Players who tick "Do not notify again for this Code of Conduct" see it again only after you change the text. Java offers Hindi (hi_in), Tamil (ta_in) and Kannada (kn_in) as game languages, while the wiki's language list shows none of the three for Bedrock, so phone players read your en_us.txt. Geyser turns the screen into a form for them, and closing the form disconnects them.

One catch: the wiki notes that Minecraft does not support combining characters, so Hindi and Tamil text can display improperly. Join and read your text on screen before you rely on it, or write Hindi in Latin letters. Share your Discord invite in the group chat too, not only in game: GeyserMC lists clickable links in chat among the limitations it cannot fix for Bedrock players.

Step 5: Time Restarts, Events and Backups in IST

IST is UTC+5:30 all year: the IANA time zone database has no daylight saving for Asia/Kolkata since 1945. Three things depend on it.

Panel schedules. In the Pterodactyl panel, a schedule's cron fields are read in the panel's own time zone, which is UTC unless the host set another one, and the schedule page shows "Next run at" in your browser's time. So save the schedule, then check that "Next run at" shows the IST time you meant. On a UTC panel, a daily restart at 05:00 IST is minute 30, hour 23, because 05:00 IST is 23:30 UTC on the previous day. A weekly task moves a day too: Sunday 05:00 IST is Saturday 23:30 UTC, so the day of week is SAT. A schedule runs its tasks in order (a command, a power action or a backup), each with a time offset in seconds, so a restart with a warning takes two tasks:

  1. Send command: say Restart in 5 minutes
  2. Send power action: Restart the server, time offset 300

Event announcements. In Discord, <t:1794065400:F> shows a date and time in each reader's own time zone and locale. That number is Saturday 7 November 2026, 21:00 IST, the evening before Diwali on Sunday 8 November: a good night for a lights build contest. Style R shows the time relative to now instead. To get the number for your own event, run this on Ubuntu, Debian or any machine with GNU date:

date -d '2026-11-07 21:00 +0530' +%s

Backups. Make a backup before every event, big build or Minecraft update, and lock it: in Pterodactyl's backup form, Locked "prevents this backup from being deleted" until you remove the lock. That matters because a scheduled backup task rotates: at the server's backup limit, the panel deletes the oldest backup that is not locked to make room. A nightly backup task therefore keeps your newest copies on its own, while locked ones stay. A backup you start by hand at the limit is refused instead, so delete an old one first. Our Pterodactyl backup guide shows the restore; before a season ends, download a copy to your own PC.

Space-Node's Minecraft servers run on Pterodactyl: you make backups yourself in the panel, and the checkout offers two paid add-ons, Automatic Off-Site Backups (daily, stored off-site, restored from the game panel) and Extra backup slots (five more). If a restore goes wrong during an evening session, our team answers live chat, Discord and email from 13:30 to 01:30 IST.

If a Friend Still Cannot Join

Ask for the exact message:

  • You are not white-listed on this server!: the name is missing or misspelled. Java names go in with whitelist add, Bedrock Gamertags with fwhitelist add.
  • Failed to verify username!: the server could not confirm the account. On a cracked launcher that is expected. If the official launcher shows Failed to log in: Invalid session (Try restarting your game and the launcher), do what it says.
  • Please log into Xbox to join this server.: a Bedrock player is not signed in, and Geyser refuses Bedrock logins it cannot verify.
  • Server requires accepting the Code of Conduct: they pressed Disconnect or closed the form. Rejoin and accept.
  • The server is missing from a phone's list, or the join times out: TCP or UDP does not reach the Geyser port. The NetherNet guide has the checks.
  • A phone on an older Bedrock version: Geyser's range starts at 26.40, so update the game.

FAQ

Do friends on phones need to buy Java Edition? No. With Floodgate installed next to Geyser, Bedrock players join with the Bedrock game they already have. They do need to be signed in to Xbox in Minecraft, because Geyser refuses Bedrock logins it cannot verify.

Can a friend on TLauncher join if we switch online mode off? Yes, and so can anyone else, under any name. With online-mode=false the server checks no accounts, so the whitelist can no longer tell your friend apart from someone who types your friend's name. Keep online mode on.

Can the rules be in Hindi? Yes, for Java players whose game is set to Hindi: put them in codeofconduct/hi_in.txt. Bedrock has no Hindi option, so keep an English en_us.txt too, and check on screen how the Devanagari looks, since Minecraft does not support combining characters.

How do I remove someone from the SMP? Run whitelist remove with their Java name or fwhitelist remove with their Gamertag, then whitelist reload; with enforce-whitelist=true, that kicks them if they are online. If they had op, run deop with their name first, because operators can join whether they are on the list or not.

Sources

All opened on 30 October 2026: