Skip to content

Terminology ​

This page will explain terminology used throughout this entire section of the wiki, mainly to make describing certain concepts as easy and unambiguous as possible.

Directions ​

Minecraft describes positions and directions using signed X,Y,Z coordinates. For more info on how these directions are determined, check the directions page.

Spaces ​

Spaces describe where and how coordinates are expressed within the world.

Block space ​

Limited to signed 32-bit Integers (-2,147,483,648 to 2,147,483,647) along the horizontal axes and a signed 8-bit Integer (limited, 0 to 127) along the vertical axis. This space defines the grid that the blocks of Minecraft adhere to.

Chunk space ​

Limited to signed 32-bit Integers (-2,147,483,648 to 2,147,483,647) along the horizontal axes. This space defines the grid that chunks are placed within. 1 unit in chunk space covers 16 units in block space.

Player space ​

Limited to signed 64-bit doubles (1.7E +/- 308). This space defines the positions of players on the client and server. Why the player movement seems to be stuttery is explained on the distance effects page.

Entity space ​

Limited to signed 28.4 fixed-point* numbers (-134,217,728.0 to 134,217,727.9375) along all axes. This space defines the positions of all entities in the world. The 4 lowest bits are used for in-block precision, meaning that within each block an entity has a decimal precision of 1/16th of a Block (0.0625 Blocks / 1 Pixel).

*Sent as a signed 32-bit Integer

Conversion from a floating-point value to a 28.4 fixed-point value can be done as follows.

c
int32_t fixed_val = int32_t(float_val * 32.0f);

This can be reversed too.

c
float float_val = float(fixed_val) / 32.0f;

Additionally, rotation data is often quantized to only a single 8-bit Byte, following this formula.

c
int8_t quant_val = int8_t(( float_val / 360.0 ) * 255.0)

This can be reversed too.

c
float float_val = (( float(quant_val) / 255.0 ) * 360.0)

Quantized Angles ​