Do Minecraft save files use a Python interface?
How do Minecraft save files work? Is there a Python interface?
You're looking for mclevel.py. This (as the name hints at) allows python to manipulate Minecraft levels. I don't know if it also does minecarts, but I suppose so.
It can be found at http://www.minecraftforum.net/viewtopic.php?f=25&t=28518&p=507974&hilit=pymclevel#p507974
An example of what you can do with it: http://www.minecraftforum.net/viewtopic.php?f=25&t=52183
This Minepedia page has some documentation; here's a simple overview.
-
World<x>
holds the data for the world in thex
th slot.-
level.dat
contains information about your spawn point, time of day, inventory. - A number of folders used to organize data into at most 64 groups of chunks.
- A second level of folder used to organize data into at most 4,096 smaller groups of chunks
- The chunk files themselves, each storing terrain, item and monster data for the corresponding 16×16 slice of the world.
-
The folder hashing has been added because some systems had trouble handling folders with huge amounts of files.
For the curious, the path for the chunk at position (x,y)
for the world in slot w
is calculated as follows, using this base36
function and the %
modulus operation:
world<w>/<base36(x % 64)>/<base36(y % 64)>/c.<base36(x)>.<base36(y)>.dat
Each chunk is as large as this hole:
Image courtesy of Raven Dreamer, say hello to the creeper.
Information about the world-file format can be found here and here.