forked from InfernalSuite/AdvancedSlimePaper
-
Notifications
You must be signed in to change notification settings - Fork 0
/
SLIME_FORMAT
70 lines (65 loc) · 2.3 KB
/
SLIME_FORMAT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
-------------------------------------
“Slime” file format
2 bytes - magic = 0xB10B
1 byte (ubyte) - version, current = 0x0C
4 bytes (int) - world version (see version list below)
4 bytes (int) - compressed chunks size
4 bytes (int) - uncompressed chunks size
<array of chunks> (size determined from bitmask)
compressed using zstd
4 bytes (int) - compressed “extra” size
4 bytes (int) - uncompressed “extra” size
[depends] - extra compound tag compressed using zstd (used for PDC, and/or custom data)
-------------------------------------
Custom chunk format
4 byte (int) - chunk x
4 byte (int) - chunk z
4 bytes (int) section count
[for each section]
1 byte (boolean) - has sky light
[if has sky light]
2048 bytes - sky light
1 byte (boolean) - has block light
[if has block light]
2048 bytes - block light
4 bytes (int) - block states byte size
<block states component>
4 bytes (int) - biomes byte size
<biomes component>
4 bytes (int) - heightmaps size
<array of heightmap nbt compounds>
same format as mc, uncompressed
4 bytes (int) - tile entities size
<array of tile entity nbt compounds>
Same format as mc
inside an nbt list named “tiles”, in a global compound, no gzip anywhere
uncompressed
4 bytes (int) entities size
<array of entity nbt compounds>
Same format as mc EXCEPT optional “CustomId”
inside an nbt list named “entities”, in a global compound
Compressed using zstd
[depends] - compound tag uncompressed (used for PDC, and/or custom data)
-------------------------------------
World version list:
- 1: 1.8 world
- 2: 1.9 world
- 3: 1.11 world
- 4: 1.13 world
- 5: 1.14 world
- 6: 1.16 world
- 7: 1.17 world
-------------------------------------
Version history:
- v1: Initial release.
- v2: Added "extra" nbt tag for per-world custom data.
- v3: Added entities storage.
- v4: Added support for 1.13 worlds and removed HypixelBlocks3.
- v5: Skylight and blocklight might not always be present.
- v6: Added world versioning
- v7: Added world maps
- v8: Variable biomes size
- v9: Fix issue with biomes size, causing old worlds to be corrupted
- v10: Use minecraft version id, remove legacy version artifacts
- v11: Move entities and tile entities into the chunk structure
- v12: Add support for chunk-based PDC