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, with no mods, no server jar and nothing proxying in front. 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
Every episode
Hardest first. All of them on the Hostd Servers channel.
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.
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.
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.
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.
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.
| # | What we ran it on | Built with | Verdict | What made it hard |
|---|---|---|---|---|
| 1 | VBA | Hosted | Outlook cannot survive a blocking loop. | |
| 2 | VBA | Hosted | There was nothing to build on. | |
| 3 | Python | Hosted | OBS itself, not the protocol. | |
| 4 | JavaScript | Hosted | Less than the others, and the runtime is the reason. |
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, and there is a reason
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 hard part is the host, not the protocol
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 rather than anything that needs a game engine. 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. There is no mod, no server jar and nothing proxying in front. In each episode the process listening on port 25565 is the application itself: Excel, Outlook, OBS or Obsidian, running protocol code written for that host.
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.