Welcome, Guest. Please login or register

Author Topic: Understanding the NBT Spec  (Read 449 times)

0 Members and 1 Guest are viewing this topic.

Offline grand_mind1

  • Creeper Killer
  • **
  • Posts: 118
  • Karma: +3/-0
  • Thank You
  •   - Given: 18
  •   - Receive: 2

  • "I am new!"

    • View Profile
Understanding the NBT Spec
« on: July 25, 2016, 04:36:24 am »
I'm trying to understand the NBT spec as described here:
http://wiki.vg/NBT
http://web.archive.org/web/20110723210920/http://www.minecraft.net/docs/NBT.txt
http://minecraft.gamepedia.com/NBT_format

However, I'm having some problems with it. I've decided to use the "Hello World" example in the first link. According to NBTExplorer, it looks like this:
http://i.imgur.com/tGBXrbd.png
I'm printing out the bytes to get a better idea of how it's actually stored. It contained the following bytes:
Code: [Select]
10 0 11 104 101 108 108 111 32 119 111 114 108 100 8 0 4 110 97 109 101 0 9 66 97 110 97 110 114 97 109 97 0
So far, I have "decoded" this to:
http://i.imgur.com/z4TsbLe.png
As you can see, I have some question marks by some bytes. I'm unsure of what these bytes represent. I think they're related to the data types but I'm not sure. For example, at the beginning, I assume the first byte "10" is Tag_Compound, but it is then followed by "0" and "11" neither of which I understand in context of the spec. The same thing for 8,0,4 and 0,9.
I would be greatly appreciative if someone would explain how to interpret these values.

Offline LexManos

  • Forge Code God
  • Reality Controller
  • *****
  • Posts: 7,286
  • Karma: +1,500/-287
  • Thank You
  •   - Given: 1
  •   - Receive: 924

  • "I am new!"

    • View Profile
Re: Understanding the NBT Spec
« Reply #1 on: July 25, 2016, 06:59:35 pm »
http://wiki.vg/NBT#Examples
Directly under the defintion of the hello world example is
"Here is the example explained"
..... You should start reading things in hex when working with binary files much more standard way of showing things.

That '0 and 11' is not a '0 and 11' it's 0x000B, It's a WORD (2 bytes, 16-bit integer) when when converted to decimal comes out to be 11. Which tells you the length of the next string "hello world" Count it, you'll see its true.
Same goes for anywhere else in the spec that states that it's a word.
« Last Edit: July 25, 2016, 07:09:35 pm by LexManos »
If you don't know how to run a java file you're a moron and should watch this: http://www.youtube.com/watch?v=j6uMF-PjGT4
Patreon: http://www.patreon.com/lexmanos (Because, people asked 0.o)
Paypal: LexManos@gmail.com (Again added on request)

Follow members gave a thank to your post:


Offline grand_mind1

  • Creeper Killer
  • **
  • Posts: 118
  • Karma: +3/-0
  • Thank You
  •   - Given: 18
  •   - Receive: 2

  • "I am new!"

    • View Profile
Re: Understanding the NBT Spec
« Reply #2 on: July 25, 2016, 11:49:30 pm »
Seems I should start reading things in general. Completely blind me missed that. Thanks for the advice!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 
Close
Please register or Login to join in on the community!