a hostd servers series

Will It Host?

Can a spreadsheet run a Minecraft server? A mail client? A video encoder? A notes app? We find the least appropriate software we can think of and make the process listening on port 25565 be that application. No server jar, and nothing proxying in front of it. Every attempt, ranked by how hard it was to make work, with the source for each.

minecraft 1.8.9 Β· a joinable server, or it does not count

18
things we have tried
18
that actually hosted
0
that did not
Outlook
hardest to make work

Every episode

Hardest first. All of them on the Hostd Servers channel.

#1Microsoft Outlook
It hosted

Yes. The process listening on port 25565 is OUTLOOK.EXE, and you start the server by emailing yourself the word START. A vanilla Minecraft client connects to it and plays on it. This was the hardest build in the series so far.

#2Microsoft Excel
It hosted

Yes. The process listening on port 25565 is EXCEL.EXE, and a vanilla Minecraft client connects to it and plays on it. This was the first build in the series, and the protocol code written for it went on to run three more.

#3Microsoft Word
It hosted

Yes. The process listening on port 25565 is WINWORD.EXE, and a vanilla Minecraft client connects to it and plays on it. The world is drawn on the page as an isometric render, and every block you place or break lands in the margin as a tracked change, so by the end the document is an edit history of a Minecraft session.

#4Microsoft PowerPoint
It hosted

Yes. The process listening on port 25565 is POWERPNT.EXE, and a vanilla Minecraft client connects to it and plays on it. Slide 2 is a live isometric render of the world built out of cube autoshapes, and the deck moves itself to that slide when you connect and back to the title when you leave.

#5iPhone
It hosted

Yes. The process listening on port 25565 is an app on the phone, with no Mac in the middle and no jailbreak. Press Start and the phone answers Minecraft. The server list entry reads the model, the iOS version and the battery level off the device, so from the multiplayer menu you can watch the phone's battery drop. Getting a client to reach it at all took far longer than the protocol did, and in the end the connection ran over a VPN.

#6FL Studio
It hosted

Yes. The process listening on port 25565 is FL Studio, and a vanilla Minecraft client connects to it and plays on it. The world is the sequencer: build a wall in Minecraft and FL Studio plays it, locked to the project tempo, so placing a block while the transport runs puts a new note in the next bar.

#7The Sims 4
It hosted

Yes. The process listening on port 25565 is The Sims 4, and a vanilla Minecraft client connects to it and plays on it. This is the first one that goes both ways: place a block in Minecraft and an object appears on the lot, move furniture in The Sims and the block moves in Minecraft.

#8Garry's Mod
It hosted

Yes. The process listening on port 25565 is Garry's Mod, and a vanilla Minecraft client connects to it and plays on it. This is the first host with physics: every block placed is a real prop, so you can physgun it, drop it, shoot it or blow it up, and the block does the same thing in Minecraft as it happens. The Minecraft player is a ragdoll you can pick up and carry.

#9Blender
It hosted

Yes. The process listening on port 25565 is Blender, and a vanilla Minecraft client connects to it and plays on it. This was the first one that renders the world instead of reporting on it: the terrain is real geometry, you are an object that moves, and the scene camera takes its yaw and pitch from your movement packets.

#10VLC media player
It hosted

Yes. The process listening on port 25565 is VLC, and a vanilla Minecraft client connects to it and plays on it. This is the one where the host reacts: play a video, connect, and turning your head rotates the hue, looking up and down changes the brightness, and walking away from spawn oversaturates the picture.

#11DaVinci Resolve
It hosted

Yes. The process listening on port 25565 is Resolve, and a vanilla Minecraft client connects to it and plays on it. No plugin, no compiler and no mod loader: Resolve ships a Python console running inside its own process, and that interpreter has sockets. The world becomes the edit, with a live top-down map in the Fusion viewer and a coloured timeline marker for every block placed.

#12Firefox
It hosted

Yes. The process listening on port 25565 is Firefox, with no extension, no mod and no recompile. A tab opens showing the world as a live web page, every player who joins gets their own tab, and every block placed becomes a bookmark on the toolbar pointing at that block's wiki page.

#13Terraria
It hosted

Yes. The process listening on port 25565 is Terraria, and a vanilla Minecraft client connects to it and plays on it. It runs both ways: place a block in Minecraft and a tile appears in Terraria at the matching spot, mine a tile in Terraria and the block disappears in Minecraft. Two worlds, one 3D and one 2D, editing each other in real time.

#14Unity Editor
It hosted

Yes. The process listening on port 25565 is the Unity Editor, and a vanilla Minecraft client connects to it and plays on it. The world is the scene: place a block and a cube appears in the Hierarchy, delete the cube or drag it with the move gizmo and the block follows, and Collapse World switches gravity on so the whole build falls down in both at once.

#15OBS Studio
It hosted

Yes. A Python script inside OBS speaks the Minecraft protocol over a socket, and a vanilla client connects to it and plays. The software recording the episode is also the server in it.

#16Visual Studio Code
It hosted

Yes. The process listening on port 25565 is Code, and a vanilla Minecraft client connects to it and plays on it. The world is a file. Place a block and a line writes itself, delete a line and the block vanishes, which turns every editor feature you already have into a world editing tool, because all of them are just text edits.

#17Obsidian
It hosted

Yes. A real TCP server runs inside Obsidian's own process and a vanilla Minecraft client connects to it and plays, while the notes app writes the server's own status into a note as you go.

#18Google Earth Pro
It hosted

Not inside it. Google Earth cannot run code, so this is the one episode where the application is not the process on port 25565. The server is a standalone Go binary and Google Earth is its second client: every block you place lands on the real planet at the coordinates you are standing on, and Earth draws it within two seconds.

The board

Ranked by how much work it took to get a Minecraft client connected, hardest at the top. A verdict only counts as a host if a vanilla client joined and stayed joined.

will it host Β· every attempt, hardest first
#What we ran it onBuilt withVerdictWhat made it hard
1Microsoft Outlookread the run β†’VBAHostedOutlook cannot survive a blocking loop.
2Microsoft Excelread the run β†’VBAHostedThere was nothing to build on.
3Microsoft Wordread the run β†’VBAHostedThe display surface and the document are the same object.
4Microsoft PowerPointread the run β†’VBAHostedThe render layer and the control layer are the same layer.
5iPhoneread the run β†’SwiftHostedThe first connection.
6FL Studioread the run β†’C++HostedThe voice.
7The Sims 4read the run β†’PythonHostedThe Sims 4 ignores .py source in a .ts4script and says nothing about it.
8Garry's Modread the run β†’LuaHostedGarry's Mod stops caring when its window loses focus, and you spend the whole session in Minecraft.
9Blenderread the run β†’PythonHostedScript re-runs wipe your state.
10VLC media playerread the run β†’LuaHostedMaking it interesting.
11DaVinci Resolveread the run β†’PythonHostedGetting the map into the viewer at all.
12Firefoxread the run β†’JavaScriptHostedThe buttons on the map page.
13Terrariaread the run β†’C#HostedDeciding which dimension to throw away.
14Unity Editorread the run β†’C#HostedPlay mode.
15OBS Studioread the run β†’PythonHostedOBS itself.
16Visual Studio Coderead the run β†’JavaScriptHostedThe echo.
17Obsidianread the run β†’JavaScriptHostedLess than the others.
18Google Earth Proread the run β†’GoHostedThere was no host to get inside.

Why this works at all

A Minecraft server is a socket, a packet codec and a game loop. We keep finding out how little of that a program needs before it can hold up one end of the conversation.

A server is a socket, a codec and a game loop

The Minecraft Java protocol is a stream of length-prefixed packets over one TCP connection. A client opens the socket, sends a handshake naming its protocol version and what it wants, then moves through login into the play state. None of that requires a game engine. It requires something that can hold a socket open and put the right bytes on it in the right order, which is a much shorter list of programs than you would think.

Every one of these speaks 1.8.9

In Minecraft 1.8 a chunk is a flat byte array you can send uncompressed. From 1.9 onward it is palette-encoded, bit-packed longs, and the connection expects zlib. VBA has no zlib, so the first two builds would have stopped there. Picking the last version with a simple chunk format is what makes hand-writing the protocol possible at all.

The host is the hard part

Once the packet code exists it moves between hosts almost unchanged. What changes is whether the application will let a server live inside it. Outlook locks up if you hold it in a loop. OBS is built for scene automation, not long-running listeners. The protocol stopped being the interesting problem after the first build.

None of this makes it a good idea

These are stunts, and we say so. The point is the same one the Killd Board makes from the other direction: once you know what a server is actually doing, you stop guessing about why yours is slow, and you stop buying upgrades that were never going to help.

If you want the full version of that, we have written both halves up properly: how the Minecraft server protocol works and what a Minecraft server actually needs to run.

Questions

Can you really run a Minecraft server in Excel?

Yes. The process listening on port 25565 is EXCEL.EXE, a vanilla client connects to it, and the source is on GitHub. It works because the Minecraft Java protocol is a documented stream of packets over one TCP connection. No game engine is involved. Anything that can hold a socket open and encode bytes correctly can answer a client.

Why are these all on Minecraft 1.8.9?

Because of how chunks are encoded. In 1.8 a chunk is a flat byte array that can be sent uncompressed. From 1.9 onward chunk data is palette-encoded into bit-packed longs and the connection expects zlib compression. VBA has no zlib at all, so the Excel and Outlook builds could not have reached the play state on a modern version. 1.8.9 is the last release where you can hand-write the whole thing.

Are these servers modded, or is it a proxy?

Neither. In each episode the process listening on port 25565 is the application itself: Excel, Outlook, Word, PowerPoint, FL Studio, The Sims 4, Garry's Mod, Blender, VLC, DaVinci Resolve, Firefox, Terraria, Unity, OBS, VS Code, an iPhone app or Obsidian, running protocol code written for that host. No server jar, and nothing proxying in front of it. Google Earth is the exception: it cannot run code, so a standalone server holds the port and Earth polls it.

Are these servers usable for actual play?

No, and that is not the point. They are demonstrations of how small the protocol is. If you want a server people can play on properly you want the ordinary thing: a real server implementation on hardware with the single-core speed to hold 20 ticks per second.

Is the code available?

All of it. Every episode has its own public repository, linked from that episode's page and from the video description.

What should I host a Minecraft server on next?

Suggestions go in our Discord. The rule we work to is that it has to be something nobody would ever choose, and it has to end with a real Minecraft client connecting to it. If it only manages a server list entry, it goes on the board as a failure.

Keep reading

Or just host it properly

None of these are servers you would actually play on. Ours are: AMD Ryzen 9700X, hard-reserved RAM, NVMe, online in under a minute with a free address, DDoS protection and a 7-day money-back guarantee. No spreadsheets involved.