8/6/2021 - DO NOT USE THESE INSTRUCTIONS. They are from 2015 when Ethereum was command-line only and not yet sold out.
If you'd like to acquire an Etheria tile in the modern era, go to the Exchange page. To manage tiles you already own, use the Tile Manager.
How to play
Prerequisites:
- Install an Ethereum command line interface.
- Create an Ethereum account.
- Get some Ether.
Set up your interface to Ξtheria
Inside geth:
var abi = [{"constant":false,"inputs":[],"name":"setLocked","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"getWhatHappened","outputs":[{"name":"","type":"string"}],"type":"function"},{"constant":true,"inputs":[],"name":"getLocked","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"col","type":"uint8"},{"name":"row","type":"uint8"}],"name":"buyTile","outputs":[],"type":"function"},{"constant":false,"inputs":[],"name":"kill","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"col","type":"uint8"},{"name":"row","type":"uint8"},{"name":"_s","type":"string"}],"name":"setStatus","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"col","type":"uint8"},{"name":"row","type":"uint8"},{"name":"newowner","type":"address"}],"name":"setOwner","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"col","type":"uint8"},{"name":"row","type":"uint8"}],"name":"getLastFarm","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"col","type":"uint8"},{"name":"row","type":"uint8"},{"name":"index","type":"uint256"},{"name":"_block","type":"int8[5]"}],"name":"editBlock","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"col","type":"uint8"},{"name":"row","type":"uint8"},{"name":"blocktype","type":"int8"}],"name":"farmTile","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"col","type":"uint8"},{"name":"row","type":"uint8"},{"name":"_n","type":"string"}],"name":"setName","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"col","type":"uint8"},{"name":"row","type":"uint8"}],"name":"getName","outputs":[{"name":"","type":"string"}],"type":"function"},{"constant":true,"inputs":[{"name":"col","type":"uint8"},{"name":"row","type":"uint8"}],"name":"getStatus","outputs":[{"name":"","type":"string"}],"type":"function"},{"constant":true,"inputs":[{"name":"col","type":"uint8"},{"name":"row","type":"uint8"}],"name":"getOwner","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[],"name":"empty","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"col","type":"uint8"},{"name":"row","type":"uint8"}],"name":"getBlocks","outputs":[{"name":"","type":"int8[5][]"}],"type":"function"},{"inputs":[],"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"col","type":"uint8"},{"indexed":false,"name":"row","type":"uint8"}],"name":"TileChanged","type":"event"}]; var etheria = web3.eth.contract(abi).at('0xb21f8684f23dbb1008508b4de91a0aaedebdb7e4');
Buy an unowned tile
Take a look at the Ξtheria map and decide which tile you want to buy. If it's unowned, then obtaining it is easy. Just pay 1 ETH for it.
etheria.buyTile(col,row,{from:eth.coinbase,gas:1000000,value:web3.toWei(1,'ether')});Notes:
- Money is automatically refunded if the purchase fails.
- You can't buy water tiles.
- Excluding water, there is no practical difference in land types or elevation.
Farm your tile for blocks
Now that you have a tile, you'll want to get some blocks for it so you can build that dream home you always wanted. Or a giant penis. Either way:
etheria.farmTile(col,row,blocktype,{from:eth.coinbase,gas:1200000,value:web3.toWei(1,'ether')});Notes:
- Farming gives you 10 blocks of the specified type.
- Blocks are hidden to begin with. You must edit/move them to get them to appear.
- Farming a tile can only be performed once every 2500 Ethereum blocks (roughly once every 12 hours).
- You can farm more often for 1 ETH per farm. If you're not sure if your cooldown has expired, you can send 1 ETH regardless and it'll get refunded if your free farm is ready.
- Avg gas used: 75,000
- WARNING: It appears that each time you farm, your "editBlock" requests will increase in gas use (because the block array gets bigger). Farming more than 260 total blocks (13 farmTile actions) could put your "editBlock" requests above the current 3.14 million gas unit limit, essentially "bricking" your tile.
etheria.getBlocks(col,row);
Edit a block
Blocks have simple x,y,z coordinates on your tile. New blocks begin life HIDDEN with x,y,z set to 0,0,-1. To select which block you want to edit, you'll need to know its index in your list of blocks. Consult the Tile Lookup to view your list of blocks.
Once you've selected the block you want to edit (i.e. found its index), do this:etheria.editBlock(col,row,index,[zero_or_-1,x,y,z,color],{from:eth.coinbase,gas:2500000});Notes:
- "col","row" = the coords of your tile
- (NEW) "zero_or_-1" = put -1 if you want to change the color of a block ONLY. Put 0 for all other edits.
- x, y, z are the coordinates WITHIN the tile
- color is any value from -128 to 86. See the chart below.
- Every block has a "key hex" which is its first x,y,z hex (out of 8). The x,y,z coords of the key hex are the same as the x,y,z coords of the block.
- Each subsequent hex is placed based on the key hex location. Ex: The West-to-East horizontal beam [[0,0,0], [1,0,0] ... [7,0,0]] placed at key hex 0,4 would result in [[0,4,0], [1,4,0] ... [7,4,0]]
- Blocks must fall entirely inside your tile.
- Blocks cannot conflict with other blocks. NOTE: Due to computational constraints, the block you're moving counts as an "other block" until it has successfully moved. This means if where you want to move it conflicts with where it is now, you'll have to move it out of the way first, then, with another edit, put it back where you want it. (Sorry.)
- Blocks must be placed on the ground OR on other blocks (in the same way as standard LEGOs).
- Blocks cannot be rehidden after being shown. (Any z value < 0 will be rejected.)
- GAS USAGE: Every time you place a block, gas usage for the next increases. Unfortunately, you'll hit pi million (the current block limit) at ~30 blocks.
Change the "name" of your tile
etheria.setName.sendTransaction(col,row,"Tyson Hill",{from:eth.coinbase,gas:1000000});Notes:
- "col","row" = the coords of your tile
- This value will appear when someone mouses over your tile in the map explorer
- Gas usage to set "fivedogit" was 50,000, results may vary depending on string length
Change the "status" of your tile
etheria.setStatus(col,row,"This thing I built is awesome! Suck it, everyone else.",{from:eth.coinbase,gas:1000000});Notes:
- "col","row" = the coords of your tile
- This value will appear when someone mouses over your tile in the map explorer
- Eventually this value will be automatically repeated on the @etheria_feed Twitter account, but I haven't hooked it up yet.
- To prevent spam, updating your status costs 1 ETH.
Give your tile to someone else
etheria.setOwner(col,row,web3.eth.toBigNumber('0xabc123...'),{from:eth.coinbase,gas:1000000});Notes:
- "col","row" = the coords of your tile
- Trustless exchanges can be created outside of Ξtheria that call the setOwner() method. (e.g. Ether for land, etc.)
- If the community would rather have the offer system back, I can re-introduce it in a future version.
A note on troubleshooting
Ξtheria contains a "whathappened" value that can be used to figure out where you've gone wrong if something doesn't work the way you expected.
etheria.getWhatHappened();NOTE: This value is shared amongst all Ξtheria players, so if you're the the only person interacting with Ξtheria for a minute or two, it should give you good information. If not, you could get confusing info.