Cite as
Infiniminer v1.5 source
Original
https://code.google.com/archive/p/infiniminer/
Pinned
gibbed/Infiniminer @ 639c16edcc640c8171f977e5463654cd41500195
Archived
https://archive.org/download/infiniminer/infiniminer-source-archive.zip
Accessed
2026-10-26
Licence
BSD, by the README at this commit ("This code is licensed under the BSD license"); Barth's next commit the same day (54a0ee63, "Updating README and adding LICENSE file") put it under the MIT License, "Copyright (c) 2009 Zach Barth"
Credit
Zach Barth (Zachtronics Industries); art by Chris Gengler. The pin is Barth's commit "Adding all initial v1.5 source and content to version control." (15 May 2009, 21:18 Pacific), the first after the repository's empty start, in Rick Gibbed's GitHub mirror of the official krispykrem/Infiniminer repository. The Internet Archive item preserves the Google Code project (infiniminer-source-archive.zip, SHA-256 d8175958ee1acff1ee273f8127886825dc73034aadf95cb0332b9f7287ddfc76).
Notes
Claims cite this commit as the v1.5 source. The mirror's later commits that week (to 18 May) change spawning, player names, and server stability, not the rules read here: mining, building, the bank, classes, and scoring. Rules are in code/InfiniminerServer/InfiniminerServer.cs (UseTool dispatch, UsePickaxe, UseConstructionGun, UseDeconstructionGun, DetonateAtPoint, DepositOre, DepositCash), code/InfiniminerClient/PropertyBag.cs (classes, teams, tools, each class's blocks) and code/InfiniminerClient/BlockInformation.cs (block costs). The in-game help and class screens are images in code/InfiniminerClient/Content/menus/, not read here. No decompiled code is used.

Cited on

Claims (17)

Infiniminer is Barth's game, released under his studio name, Zachtronics Industries. Chris Gengler helped with the art.bin/README.txt L1–7Dev blog
Infiniminer v1.5 has two teams, Red and Blue, and four classes: Prospector, Miner, Engineer, and Sapper.code/InfiniminerClient/PropertyBag.cs L18–40Code
In Infiniminer v1.5's client, which sets each class's kit, every class carries a pickaxe and a construction gun. The Prospector adds a prospecting radar, the Engineer a deconstruction gun, and the Sapper a detonator; the Miner has only the two. The Miner can build its team's solid and translucent blocks and ladders; the Prospector adds its team's beacon, and the Sapper explosives. The Engineer builds its team's solid block, both teams' translucent blocks, road, ladder, jump and shock blocks, and its team's beacon and bank. The server never reads the class when a tool is used (see build-no-class-check), so these lists hold only in the client.code/InfiniminerServer/InfiniminerServer.cs L542–567code/InfiniminerClient/PropertyBag.cs L411–455Code
In Infiniminer v1.5 the Engineer carries up to 350 ore and the other three classes up to 200. The Miner carries up to 8 units of loot (gold and diamonds) and the others up to 4.code/InfiniminerServer/InfiniminerServer.cs L573–591Code
In Infiniminer v1.5 the pickaxe reaches 2 blocks along the player's view and removes dirt, ore, gold, and diamond blocks. It doesn't remove rock, lava, or built blocks. A gold or diamond block stays put while the player's loot is full; an ore block is dug even when the player's ore is full, and its ore is lost.code/InfiniminerServer/InfiniminerServer.cs L851–852code/InfiniminerServer/InfiniminerServer.cs L864–891code/InfiniminerServer/InfiniminerServer.cs L893–918Code
In Infiniminer v1.5 an ore block gives the player 20 ore, up to the class's limit. A gold block gives one unit of loot worth $100, and a diamond one unit worth $1,000.code/InfiniminerServer/InfiniminerServer.cs L872–890code/InfiniminerServer/InfiniminerServer.cs L893–912Code
In Infiniminer v1.5 the construction gun reaches 6 blocks along the player's view and puts the block in the last empty cell before the first solid one it meets. It fails when nothing is in reach, when the player carries less ore than the block costs, when a player stands in the cell (at feet or head height), at the map's edge, or when the surface aimed at is lava. On success it takes the whole cost from the player's ore; a sandbox server charges nothing.code/InfiniminerServer/InfiniminerServer.cs L825–842code/InfiniminerServer/InfiniminerServer.cs L935–996Code
Infiniminer v1.5's server takes the block type from the client's message and checks a placement's cost and space, not the player's class: the lists of blocks each class may build are kept in the client.code/InfiniminerServer/InfiniminerServer.cs L542–555code/InfiniminerServer/InfiniminerServer.cs L935–972code/InfiniminerClient/PropertyBag.cs L396–411Code
In Infiniminer v1.5 a solid block or a road costs 10 ore; a translucent block, a jump block, or a ladder 25; a bank, a beacon, or a shock block 50; and an explosive 100.code/InfiniminerClient/BlockInformation.cs L80–111Code
In Infiniminer v1.5 the deconstruction gun, which the client offers only in the Engineer's kit, reaches 6 blocks and removes a block the user's own team built: a solid, translucent, road, ladder, jump, shock, beacon, or bank block. It refunds no ore, and it can't remove explosives or the other team's blocks. The server runs it for any client that sends the tool, checking only the block's builder team and type.code/InfiniminerServer/InfiniminerServer.cs L998–1044code/InfiniminerServer/InfiniminerServer.cs L556–557code/InfiniminerClient/PropertyBag.cs L431–434Code
In Infiniminer v1.5 the detonator, which the client offers only in the Sapper's kit, sets off every explosive that player placed. Each clears the 5 × 5 × 5 cube around it of rock, dirt, ore, solid and translucent blocks, ladders, shock and jump blocks, road, and lava, and sets off any explosive inside it. Gold, diamonds, banks, and beacons survive, and so does the map's outermost layer of blocks, which the blast skips.code/InfiniminerServer/InfiniminerServer.cs L993–994code/InfiniminerServer/InfiniminerServer.cs L1081–1126code/InfiniminerServer/InfiniminerServer.cs L1137–1151code/InfiniminerClient/PropertyBag.cs L446–449Code
In Infiniminer v1.5 a player looking at their own team's bank from within 2.5 blocks presses 1 to deposit up to 50 ore into the team's shared store, which holds at most 9,999 (ore deposited past that is lost), and 2 to withdraw up to 50, as much as the player has room for. The distance and team check run in the client; the server moves the ore without checking where the player is.code/InfiniminerClient/States/MainGameState.cs L418–430code/InfiniminerClient/PropertyBag.cs L577–592code/InfiniminerServer/InfiniminerServer.cs L1153–1177Code
In Infiniminer v1.5 a player's loot is banked on its own once the player is within 8 blocks of the top of the 64-block map: its cash goes to the team and the player's loot empties. The first team to bank the server's winning amount, $10,000 unless the server's config sets another, wins (Blue, if both teams reach it in the same pass), and the server restarts on a new map 10 seconds later. On a sandbox server team cash doesn't count and nobody wins, but banking still adds to the player's own score and empties the player's cash and loot.code/InfiniminerServer/InfiniminerServer.cs L26code/InfiniminerServer/InfiniminerServer.cs L49code/InfiniminerClient/InfiniminerGame.cs L35code/InfiniminerServer/InfiniminerServer.cs L746–760code/InfiniminerServer/InfiniminerServer.cs L1179–1199code/InfiniminerServer/InfiniminerServer.cs L722–735Code
In Infiniminer v1.5 a player who dies, or respawns, drops to no ore, no cash, and no loot.code/InfiniminerServer/InfiniminerServer.cs L606–612code/InfiniminerServer/InfiniminerServer.cs L630–636Code
An Infiniminer v1.5 map is a grid 64 blocks on a side that the server generates in order: dirt throughout; ore laid in random walks (10 by default); 16 veins of gold and 16 single diamonds; the layers above ground level cleared except for random mounds of dirt; caves carved by random walks, and more walks steered by a radial gradient (the code's comment: "Carve the map into a sphere"); then rock and, by default, lava. The later steps can carve away or cover some of the gold and diamonds placed earlier.code/InfiniminerServer/CaveGenerator.cs L24–37code/InfiniminerServer/CaveGenerator.cs L39–56code/InfiniminerServer/CaveGenerator.cs L58–71code/InfiniminerServer/CaveGenerator.cs L73–78code/InfiniminerServer/InfiniminerServer.cs L29–34code/InfiniminerServer/CaveGenerator.cs L168–173code/InfiniminerServer/CaveGenerator.cs L190–196Code
In Infiniminer v1.5 the client only asks: a dig or a build is a message with the player's position, view, tool, and block type, and the server traces the view, changes its copy of the map, and sends the change to every connected player.code/InfiniminerServer/InfiniminerServer.cs L542–555code/InfiniminerServer/InfiniminerServer.cs L348–387Code
Infiniminer v1.5's pickaxe takes out a dirt, ore, gold, or diamond block with each successful use and can't dig rock at all. In Minecraft today, by the Minecraft Wiki's account, breaking a block takes time set by its hardness and the tool held, stone and metal blocks yield nothing without a pickaxe, and a few blocks such as bedrock can't be broken in Survival.code/InfiniminerServer/InfiniminerServer.cs L864–891code/InfiniminerServer/InfiniminerServer.cs L914–918Wiki