TL;DR Open a LAN game with a demo account, kick yourself out, join a self-hosted minecraft server. Spoof your player name to join with multiple demo accounts.
Update Unfortunately, this “Bug” got fixed in the latest versions of Minecraft. You can still use version 1.20.2 as Server and Client.
After seeing my kids watching YouTube Let’s Plays of Minecraft, I couldn’t help myself and purchased the game. It remind me a lot of playing with LEGO’s, so I needed to try it out by myself. Of course, it didn’t take long time till my kids found out that I have installed Minecraft, too.
Digital dilemma
Pirating the game is out of question. Using shady hacking clients that might be backdoored is also not an option. So how do I get hands on to five more Minecraft accounts for my kids?
Luckly, I found a solution to join a Minecraft server with a demo account. Usually demo accounts don’t have the multiplayer button in the main menu, but there is a nice trick to get into the multiplayer menu and join theoretically any Minecraft server.
This works only when the server parameter offline-mode are set to true
. In offline-mode Minecraft skips authentifications by Mojang. Unfortunately, that also means you can’t join mainstream Minecraft servers.
But hey, at least it doesn’t bring the risk of getting hacked or getting into trouble with the law. Primarly I am not interested to play online anyway. I just needed a solution to enjoy a nice LAN session of Minecraft with my kids without purchasing five new accounts.
Requirements
- You need a Microsoft (or Mojang) account
- Minecraft server (ideally self-hosted. Tutorial coming soon)
netsed
command line tool
Register with your Microsoft account on Minecraft.com. Download the latest Minecraft demo and login via your Microsoft account.
All we need to do after loading a demo game is, to open the Game Menu and click on Open to LAN
, active Allow Cheates: ON
and click Start LAN World
. By doing so we can use now server admin commands in the chat.
Open the chat with the t key and type /kick Player
or /kick @a
. You should be now kicked out from your own LAN session and be in the Multiplayer menu of Minecraft.
You can search the network for a local Minecraft server of an user who has a valid account or connect to a standalone Minecraft server that has offline-mode enabled.
Multiple Demo accounts on same server
The demo version of Minecraft is not just limiting the time and mainscreen options, it also prevents the player from changing the username and skin.
To spoof our username, we just need to find the right network packets that are send between us and the Minecraft server and manipulate the packet on-the-fly to change our username.
We can do it the fancy way like LifeOverflow did in his video1 or we follow the lazy method and replace every TCP packet that contains the word Player
with something else containing excatly six characters.
Fortunately the ASCII string Player
appears only once in the network stream.2 We can easly replace it with another unique six character string like Hrobrn
by using the command line tool netsed
.
You can install netsed
via APT or your favorite package manager.
1
sudo apt install netsed -y
To start the spoofing process, open a terminal and type:
1
netsed tcp 12345 192.168.0.20 25565 s/Player/Hrobrn
After the netsed
command we specify the Minecraft protocol with tcp
followed by the 12345
as our local port. You can choose any port number as long you connect with your Minecraft client to the same port.
Next, we define the Minecraft server IP address to which we want to forward the packets. In our case the Minecraft server is running on the machine with the IP 192.168.0.20
and the port 25565
.
With the last part of the command s/Player/Hrobrn
, we apply the search and replace rule for netsed.
Now, if we try to connect to the Minecraft server with the ip 127.0.0.1
and port 12345
, netsed should forward all our packets to the target ip 192.168.0.20
and replace the demo username with Hrobrn
.
Pros
- no need to buy additional accounts
- not illegal, as long as you do not manipulate the binaries of mojang
- you are not limited to the demo world seed
- more than one demo account can join a minecraft server as long as everyone has unique (spoofed) usernames
Cons
- takes time to join the server and start playing
- skins are random (maybe workaround with datapacks)
- only works if server properties are set to offline-mode
- demo account might log you out after 90 min playtime (workaround with manipulating NBT file)
Honorable mention
Minetest and the add-on MineClone2 are great open source and free alternatives. Meanwhile Mojang is trying hard to make version parity between the Java and Bedrock edition, Minetest natively supports crossplatform gaming and works even on Android phones.
No matter which platform you use, everyone can join the same server with his favorite operating system.
Sources
Shout out to LifeOverflow, his pwn adventure3 and Minecraft hacking series4 were a big inspiration to look closer into the Minecraft protocol.2 Check out his channel and leave him a like and a sub.