Minecraft · Guide

How to Enable Offline Mode on a Minecraft Server (Non-Premium / Cracked Players)

Updated August 2, 2026 14 min read

On this page
  1. The short answer: three steps to offline mode
  2. What offline mode actually does
  3. Turning it on in the HytHost panel, step by step
  4. Security: in offline mode, anyone can be anyone
  5. What your players notice: new UUIDs and missing skins
  6. Proxy networks: BungeeCord and Velocity
  7. Testing it, and fixing what breaks
  8. FAQ

A friend buys nothing, launches Minecraft, types your address — and gets kicked. That is not a bug in your server. By default a Minecraft server checks every login against Mojang's account servers, and a player without a bought account fails that check.

Offline mode is the official server setting that turns the check off. It ships with vanilla Minecraft, it is one line in a config file, and it is the same setting used for LAN parties, networks with no internet access, and servers sitting behind a proxy. This guide shows you exactly how to enable it, what changes for your players, and — the part most guides skip — how to keep the server from being taken over once you do.

The short answer: three steps to offline mode

Your friends without a Minecraft account can join as soon as the server stops checking logins with Mojang. Three steps, about a minute:

  1. Stop the server. Fully stopped, not restarted — a running server writes its own copy of the settings back over yours when it shuts down.
  2. Open server.properties and set two lines. The file sits in your server's root folder, the same place as the server jar:
    online-mode=false
    enforce-secure-profile=false
    Both matter. On Minecraft 1.19 and newer, changing only the first one is not enough.
  3. Save, then start the server. Non-premium players now connect on the same address as everyone else.
Two things to sort out before you open it up. Offline mode means anyone can join under any username, including yours, so you need an auth plugin first. And every player gets a new UUID — inventories, ranks and claims from online mode will not carry over, so take a backup before you switch.

What offline mode actually does

When a player joins a normal server, the server asks Mojang's session servers: "is this really the account behind this username?" Mojang answers, the login is accepted, and the player's identity is proven. That is online mode, and it is the default.

Offline mode removes that question. The server accepts whatever username the client sends and never contacts Mojang at all. Nothing is patched, cracked or modified — you are flipping a switch that Mojang put in the vanilla server on purpose, because plenty of legitimate setups need it:

  • LAN and event servers that run with no internet connection at all, where the Mojang check would fail for everyone.
  • Networks behind a proxy, where BungeeCord or Velocity does the authentication once at the front door and the servers behind it must not repeat it.
  • Isolated or firewalled environments — test servers, school and office networks, air-gapped machines.
  • Playing with friends who have not bought the game yet, which is what most people are here for.

What it does not do is make the setting free of consequences. Verified logins are the thing standing between your server and someone typing your admin's username, so the default is online-mode=true for a good reason and that remains the right call for a normal public server — see why the default exists. This guide is for the case where you have decided you need it off, and the rest of it is about doing that without handing your server away.

Is your friend on Xbox, PlayStation, Switch or a phone? Then this is the wrong setting — console and mobile players run Bedrock Edition, and no server.properties change lets them into a Java server. What you need is a Bedrock bridge instead: see Java and Bedrock crossplay with Geyser.

Turning it on in the HytHost panel, step by step

There is no toggle for this in the panel's Startup tab — offline mode lives in the server's own config file, so you edit it directly. The whole job takes a minute:

  1. Stop the server. Use Stop, not Restart. A running Minecraft server holds its settings in memory and writes them back to disk on shutdown, so an edit made while it is running gets silently overwritten. This is the single most common reason people think the change "did not save".
  2. Open the Files tab. Your server's root folder is what you land on — the same place as server.properties, the plugins folder and the world folder.
  3. Click server.properties to edit it. It opens in the panel's built-in text editor — a plain list of settings, one per line, in alphabetical order.
  4. Find online-mode and set it to false. Change online-mode=true to online-mode=false. Do not add quotes, spaces around the equals sign, or a second copy of the line.
  5. Find enforce-secure-profile and set it to false too. If the line is not in your file at all — common on older worlds created before Minecraft 1.19 — just add enforce-secure-profile=false on its own line at the end.
  6. Save, then start the server. Watch the console as it boots. A line reading that the server is running in offline mode is your confirmation it took effect.
Do not skip enforce-secure-profile. Minecraft 1.19 added chat signing, and this setting controls whether the server demands a Mojang-signed profile from every player. It defaults to true, and it is checked separately from online-mode — so a server with online-mode=false and secure profiles still enforced will boot perfectly, look correct, and then reject every non-premium player at login. It is by far the most common reason offline mode "does not work".
Self-hosting instead? Exactly the same two lines. server.properties sits next to your server.jar — stop the server, edit it in any text editor, save, start it again.

Edit any setting you like: a HytHost Minecraft server gives you the full file manager, a live console and one-click backups to undo it.

See Minecraft plans

Security: in offline mode, anyone can be anyone

This is the section to read twice. Everything else in this guide is a config change; this is the part that decides whether your server survives being public.

What actually changes

With verification switched off, a username is no longer proof of anything — it is just a string the client sends. Anyone who knows your address can connect claiming to be you, or your co-owner, or your head moderator. And because most permission setups grant rights by name, an impersonator does not need to break in: the server hands them the rights on arrival. If you opped yourself by username, someone else typing that username arrives opped.

That is not a hypothetical. A public offline-mode address with no auth plugin is one of the easiest servers on the internet to take over, and the usual result is a wiped world and every rank reassigned. The fix is not complicated, but it is not optional either.

Install AuthMe Reloaded

An authentication plugin puts a password in front of every username. Players register once, log in each session, and the name becomes theirs — impersonation stops working because knowing the name is no longer enough. AuthMe Reloaded is the long-standing standard for this and works on Paper and Spigot.

  1. Download the JAR from the official listing and drop it into your server's plugins folder — the same process as any other plugin, covered step by step in how to install Minecraft plugins.
  2. Restart the server so the plugin loads and writes its default config.
  3. Open plugins/AuthMe/config.yml and tighten the defaults. These four are the ones that matter most:
    settings:
      restrictions:
        timeout: 30
        maxRegPerIp: 2
        allowChat: false
      security:
        minPasswordLength: 8
    That gives players 30 seconds to log in before they are kicked, caps how many accounts one address can create, keeps unauthenticated players from talking in chat, and refuses trivially short passwords.
  4. Tell your players the two commands. First join: /register with their chosen password twice. Every join after that: /login with that password. Until they do, they cannot move, build or chat.

Grant permissions by group, not by name

Op is an all-or-nothing switch tied to a username, which is exactly the wrong shape for an offline-mode server. Use a permissions plugin and give ranks to groups instead, so that even a successful impersonation does not come with console-level power attached. Our guide on real staff ranks beyond op walks through setting that up.

The whitelist alone does not cover you here. A whitelist checks usernames — and in offline mode the username is the very thing that is no longer verified. It still keeps random strangers out, which is worth having, but it does not stop someone who knows the name of a whitelisted player from joining as them. Whitelist plus an auth plugin is the combination that works; whitelist by itself is not.

What your players notice: new UUIDs and missing skins

Two things change for everyone on the server the moment you switch, and both are much easier to handle before you flip the setting than after.

Every player gets a new identity

Minecraft identifies players by a UUID, not by their name. In online mode that UUID is issued by Mojang and belongs to the account. In offline mode there is no account to ask, so the server generates one from the username instead — which means the same player gets a completely different UUID depending on which mode the server is in.

To your server that is not the same person. Everything keyed to the old UUID is orphaned: inventories, ender chests, advancements, spawn points, plugin balances, homes, land claims and permission group assignments. The world itself is fine and nothing is deleted — the data is simply attached to an identity nobody logs in as any more.

Decide before you launch, and back up first. Switching a server that people have already played on will cost them their progress, and switching back does not merge the two sets of data. Take a backup before you change the setting so you have a way out.

There is a second consequence worth understanding: because the UUID is derived from the name, whoever types the name owns the data attached to it. That is the same impersonation problem from the section above, seen from the other side, and it is the other reason an auth plugin is not optional.

Skins stop loading

Skins come from Mojang's servers, tied to the verified account. No verification means no skin, so everyone appears as the default Steve or Alex. SkinsRestorer fixes it: install it like any other plugin, restart, and players set their own with /skin set followed by a username. On a proxy network install it on the proxy rather than on each server behind it.

Proxy networks: BungeeCord and Velocity

If you run a network — a lobby plus a survival server plus a minigame server, all behind one address — the picture changes, and it is worth being precise because this is where offline mode is most often configured badly.

On a network, the servers behind the proxy normally run with online-mode=false even when the network as a whole is fully premium-only. That is by design: the proxy performs the Mojang check once at the front door and then forwards the already-verified player onward. Repeating the check on each backend would fail. So a backend sitting at online-mode=false is not an offline-mode network — it is a normal, correctly configured one.

Whether your network is premium-only or open to non-premium players is decided at the proxy, in the proxy's own config file: config.yml for BungeeCord, velocity.toml for Velocity. On HytHost, proxies installed from the panel's Version tab are written with online mode enabled at the proxy, so that file is the one to edit — not the backends.

The real risk is a backend anyone can connect to directly. A backend at online-mode=false trusts whatever identity reaches it, so if a player can reach that server without going through the proxy, they arrive as whoever they like. The protection is not obscurity — it is the forwarding secret. Velocity's modern forwarding signs the player data the proxy sends, and the backend rejects anything that is not signed; set the same secret on both sides and direct connections stop working. BungeeCord's legacy forwarding has no such signature, which is why networks running it add a plugin like BungeeGuard to get the equivalent.

One more Velocity detail if you are running a non-premium network: enforce-secure-profile has a proxy-side twin called force-key-authentication in velocity.toml. Turning off the backend setting while leaving the proxy one on produces exactly the same symptom — players rejected at login for a reason the server logs describe as a profile problem.

Testing it, and fixing what breaks

The only test that counts is a real one: have a friend without a bought account connect to your address. If the console prints a line naming them as they join, it works. Everything below is what to check when it does not.

What the player seesWhat it meansFix
Failed to verify usernameThe server is still checking with Mojangonline-mode is still true, or the edit did not save — check the file again with the server stopped
A message about a missing or invalid profile key, or a server requiring secure profilesOffline mode is on, but chat signing is still enforcedSet enforce-secure-profile=false — add the line if your file does not have it
The server does not appear or times outNothing to do with offline modeA connection or address problem — the server is not reachable at all
Everyone is Steve or AlexExpected in offline modeInstall SkinsRestorer
Old items and ranks are goneUUIDs changed with the modeRestore your pre-switch backup, or reassign ranks and accept the reset

The change will not stick

Almost always one of three things. You edited the file while the server was running, and it overwrote your change on shutdown — stop it first, then edit. Or a reinstall, a version change or a modpack install laid down a fresh server.properties, in which case simply set the two lines again. Or you edited a different copy of the file than the one the server actually reads, which happens on setups with more than one server folder. For what it is worth, the panel itself does not rewrite these two lines at boot: it manages only the server's IP and port entries, so a saved change on a stopped server stays saved.

A plugin refuses to enable

A handful of plugins — mostly ones dealing with accounts, ranks or economies — check the server's mode on startup and refuse to load in offline mode, or warn loudly about it. Read the console message rather than guessing: some simply need a config option acknowledging offline mode, others genuinely depend on Mojang UUIDs and have an offline-friendly alternative. Anything that stores per-player data will want your auth plugin loaded first, so keep AuthMe near the top of your setup rather than adding it last.

Offline mode is a supported setting on a HytHost Minecraft server, and the panel gives you the file manager, console and one-click backups to change it safely and roll back if you do not like the result. If Minecraft is a game you keep coming back to, buying it is what keeps it being made — but that is your call to make, not ours to lecture about.

FAQ

Frequently asked questions

Stop the server, open server.properties in your server's root folder, set online-mode=false and enforce-secure-profile=false, save, then start it again. Players without a bought Minecraft account can then join on your normal address. Before you make it public, install an authentication plugin — in offline mode usernames are not verified, so anyone can connect as anyone.

Nearly always because enforce-secure-profile is still set to true. Minecraft 1.19 added chat signing, and that setting is checked separately from online-mode — so the server boots and looks correct but still rejects players who have no Mojang-signed profile. Set it to false as well, adding the line yourself if your file does not have it. The other common cause is editing the file while the server was running, which overwrites your change when it shuts down.

AuthMe Reloaded adds a password to each username: players /register once and /login each session, and cannot move, build or chat until they do. On an offline-mode server it is not optional. Without it a username is just text the client sends, so anyone who knows your address can join as you or as a moderator — and if ranks are granted by name, they arrive with those rights already. Install it before you give the address out.

Yes, on a server people have already played on. Minecraft tracks players by UUID, and an offline-mode UUID is generated from the username instead of issued by Mojang, so every player effectively becomes a new person. Inventories, ender chests, advancements, homes, balances, claims and permission groups all stay in the world but attached to an identity nobody logs in as. Nothing is deleted, and switching back restores the old data — but take a backup before you change the setting.

Yes. online-mode is an ordinary line in your server.properties, and you have full file-manager and console access to your server, so the setting is yours to change like any other. The panel does not overwrite it — it manages only the server's IP and port entries — and one-click backups let you roll the change back if it does not suit you.

Skins are stored by Mojang and served against a verified account. With verification off the server has no account to look up, so everyone appears as the default Steve or Alex. Installing SkinsRestorer fixes it — players then set their own with /skin set and a username. On a proxy network, install it on the proxy rather than on each backend server.

Your server, your settings

A Minecraft server with full file access, a live console and one-click backups — so a change like this takes a minute and is always reversible. Voxility DDoS protection and daily backups included, with a target of 99.9% uptime.

Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hours