| Infiniminer is Barth's game, released under his studio name, Zachtronics Industries. Chris Gengler helped with the art. | bin/README.txt L1–7 | Dev blog |
| Infiniminer v1.5 has two teams, Red and Blue, and four classes: Prospector, Miner, Engineer, and Sapper. | code/InfiniminerClient/PropertyBag.cs L18–40 | Code |
| 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–455 | Code |
| 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–591 | Code |
| 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–918 | Code |
| 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–912 | Code |
| 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–996 | Code |
| 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–411 | Code |
| 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–111 | Code |
| 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–434 | Code |
| 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–449 | Code |
| 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–1177 | Code |
| 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–735 | Code |
| 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–636 | Code |
| 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–196 | Code |
| 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–387 | Code |
| 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–918 | Wiki |