Block Types

MichaelFisher1997 edited this page Jan 5, 2026 · 1 revision

Block Types

Complete reference of all block types implemented in ZigCraft.


Overview

ZigCraft currently features 40 block types spanning terrain, vegetation, ores, and decorative blocks. Each block has properties that define its behavior in the world.

PropertyDescription
SolidBlocks player/entity movement
TransparentAllows light and visibility through
Light EmissionBrightness level emitted (0-15)

All Block Types

Terrain Blocks

IDBlockSolidTransparentLightColor
1stone0#808080 Gray
2dirt0#8C5933 Brown
3grass0#4DA633 Green
4sand0#E6D999 Tan
8cobblestone0#666666 Dark Gray
9bedrock0#262626 Black
10gravel0#736B66 Gray-Brown
12snow_block0#F2F2FF White
17clay0#9999B3 Blue-Gray
19mud0#594D4D Dark Brown
30terracotta0#B3664D Orange
31red_sand0#CC661A Orange-Red
32mycelium0#664D66 Purple-Gray

Liquids & Air

IDBlockSolidTransparentLightColor
0air0
5water0#3366CC Blue

Ores

IDBlockSolidTransparentLightColor
14coal_ore0#1A1A1A Black
15iron_ore0#998066 Orange-Brown
16gold_ore0#E6CC33 Yellow

Trees & Logs

IDBlockSolidTransparentLightColor
6wood0#8C5926 Brown
7leaves0#338026 Green
20mangrove_log0#734040 Red-Brown
21mangrove_leaves0#338026 Green
22mangrove_roots0#664D33 Brown
23jungle_log0#804D1A Dark Brown
24jungle_leaves0#338026 Green
27acacia_log0#998C80 Gray-Brown
28acacia_leaves0#338026 Green
29acacia_sapling0#4D9933 Green

Mushrooms

IDBlockSolidTransparentLightColor
33mushroom_stem0#E6E6D9 Off-White
34red_mushroom_block0#CC3333 Red
35brown_mushroom_block0#99664D Brown

Vegetation & Foliage

IDBlockSolidTransparentLightColor
13cactus0#1A991A Dark Green
25melon0#99CC33 Light Green
26bamboo0#66CC33 Bright Green
36tall_grass0#4DA633 Green
37flower_red0#E61A1A Red
38flower_yellow0#E6E61A Yellow
39dead_bush0#664D1A Tan

Utility & Decorative

IDBlockSolidTransparentLightColor
11glass0#CCE6F2 Light Blue
18glowstone15#FFE680 Yellow-White

Note:glowstone is the only light-emitting block in the game.


Block Properties API

Defined in src/world/block.zig:

pubconstBlockType=enum(u8) {
// ... block definitionspubfnisSolid(self: BlockType) bool;
pubfnisTransparent(self: BlockType) bool;
pubfnisOpaque(self: BlockType) bool;
pubfngetColor(self: BlockType) [3]f32;
pubfngetLightEmission(self: BlockType) u4;
pubfngetFaceColor(self: BlockType, face: Face) [3]f32;
};

Adding New Blocks

To add a new block type:

  1. Add entry to BlockType enum in src/world/block.zig
  2. Register properties in isSolid(), isTransparent(), getLightEmission(), getColor()
  3. Add textures to src/engine/graphics/texture_atlas.zig
  4. Update src/world/chunk_mesh.zig for special rendering logic

See Contributing for detailed instructions.


Source: src/world/block.zig | Last updated: January 2026

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Block Types

MichaelFisher1997 edited this page Jan 5, 2026 · 1 revision

Block Types

Complete reference of all block types implemented in ZigCraft.


Overview

ZigCraft currently features 40 block types spanning terrain, vegetation, ores, and decorative blocks. Each block has properties that define its behavior in the world.

PropertyDescription
SolidBlocks player/entity movement
TransparentAllows light and visibility through
Light EmissionBrightness level emitted (0-15)

All Block Types

Terrain Blocks

IDBlockSolidTransparentLightColor
1stone0#808080 Gray
2dirt0#8C5933 Brown
3grass0#4DA633 Green
4sand0#E6D999 Tan
8cobblestone0#666666 Dark Gray
9bedrock0#262626 Black
10gravel0#736B66 Gray-Brown
12snow_block0#F2F2FF White
17clay0#9999B3 Blue-Gray
19mud0#594D4D Dark Brown
30terracotta0#B3664D Orange
31red_sand0#CC661A Orange-Red
32mycelium0#664D66 Purple-Gray

Liquids & Air

IDBlockSolidTransparentLightColor
0air0
5water0#3366CC Blue

Ores

IDBlockSolidTransparentLightColor
14coal_ore0#1A1A1A Black
15iron_ore0#998066 Orange-Brown
16gold_ore0#E6CC33 Yellow

Trees & Logs

IDBlockSolidTransparentLightColor
6wood0#8C5926 Brown
7leaves0#338026 Green
20mangrove_log0#734040 Red-Brown
21mangrove_leaves0#338026 Green
22mangrove_roots0#664D33 Brown
23jungle_log0#804D1A Dark Brown
24jungle_leaves0#338026 Green
27acacia_log0#998C80 Gray-Brown
28acacia_leaves0#338026 Green
29acacia_sapling0#4D9933 Green

Mushrooms

IDBlockSolidTransparentLightColor
33mushroom_stem0#E6E6D9 Off-White
34red_mushroom_block0#CC3333 Red
35brown_mushroom_block0#99664D Brown

Vegetation & Foliage

IDBlockSolidTransparentLightColor
13cactus0#1A991A Dark Green
25melon0#99CC33 Light Green
26bamboo0#66CC33 Bright Green
36tall_grass0#4DA633 Green
37flower_red0#E61A1A Red
38flower_yellow0#E6E61A Yellow
39dead_bush0#664D1A Tan

Utility & Decorative

IDBlockSolidTransparentLightColor
11glass0#CCE6F2 Light Blue
18glowstone15#FFE680 Yellow-White

Note:glowstone is the only light-emitting block in the game.


Block Properties API

Defined in src/world/block.zig:

pubconstBlockType=enum(u8) {
// ... block definitionspubfnisSolid(self: BlockType) bool;
pubfnisTransparent(self: BlockType) bool;
pubfnisOpaque(self: BlockType) bool;
pubfngetColor(self: BlockType) [3]f32;
pubfngetLightEmission(self: BlockType) u4;
pubfngetFaceColor(self: BlockType, face: Face) [3]f32;
};

Adding New Blocks

To add a new block type:

  1. Add entry to BlockType enum in src/world/block.zig
  2. Register properties in isSolid(), isTransparent(), getLightEmission(), getColor()
  3. Add textures to src/engine/graphics/texture_atlas.zig
  4. Update src/world/chunk_mesh.zig for special rendering logic

See Contributing for detailed instructions.


Source: src/world/block.zig | Last updated: January 2026

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Block Types

MichaelFisher1997 edited this page Jan 5, 2026 · 1 revision

Block Types

Complete reference of all block types implemented in ZigCraft.


Overview

ZigCraft currently features 40 block types spanning terrain, vegetation, ores, and decorative blocks. Each block has properties that define its behavior in the world.

PropertyDescription
SolidBlocks player/entity movement
TransparentAllows light and visibility through
Light EmissionBrightness level emitted (0-15)

All Block Types

Terrain Blocks

IDBlockSolidTransparentLightColor
1stone0#808080 Gray
2dirt0#8C5933 Brown
3grass0#4DA633 Green
4sand0#E6D999 Tan
8cobblestone0#666666 Dark Gray
9bedrock0#262626 Black
10gravel0#736B66 Gray-Brown
12snow_block0#F2F2FF White
17clay0#9999B3 Blue-Gray
19mud0#594D4D Dark Brown
30terracotta0#B3664D Orange
31red_sand0#CC661A Orange-Red
32mycelium0#664D66 Purple-Gray

Liquids & Air

IDBlockSolidTransparentLightColor
0air0
5water0#3366CC Blue

Ores

IDBlockSolidTransparentLightColor
14coal_ore0#1A1A1A Black
15iron_ore0#998066 Orange-Brown
16gold_ore0#E6CC33 Yellow

Trees & Logs

IDBlockSolidTransparentLightColor
6wood0#8C5926 Brown
7leaves0#338026 Green
20mangrove_log0#734040 Red-Brown
21mangrove_leaves0#338026 Green
22mangrove_roots0#664D33 Brown
23jungle_log0#804D1A Dark Brown
24jungle_leaves0#338026 Green
27acacia_log0#998C80 Gray-Brown
28acacia_leaves0#338026 Green
29acacia_sapling0#4D9933 Green

Mushrooms

IDBlockSolidTransparentLightColor
33mushroom_stem0#E6E6D9 Off-White
34red_mushroom_block0#CC3333 Red
35brown_mushroom_block0#99664D Brown

Vegetation & Foliage

IDBlockSolidTransparentLightColor
13cactus0#1A991A Dark Green
25melon0#99CC33 Light Green
26bamboo0#66CC33 Bright Green
36tall_grass0#4DA633 Green
37flower_red0#E61A1A Red
38flower_yellow0#E6E61A Yellow
39dead_bush0#664D1A Tan

Utility & Decorative

IDBlockSolidTransparentLightColor
11glass0#CCE6F2 Light Blue
18glowstone15#FFE680 Yellow-White

Note:glowstone is the only light-emitting block in the game.


Block Properties API

Defined in src/world/block.zig:

pubconstBlockType=enum(u8) {
// ... block definitionspubfnisSolid(self: BlockType) bool;
pubfnisTransparent(self: BlockType) bool;
pubfnisOpaque(self: BlockType) bool;
pubfngetColor(self: BlockType) [3]f32;
pubfngetLightEmission(self: BlockType) u4;
pubfngetFaceColor(self: BlockType, face: Face) [3]f32;
};

Adding New Blocks

To add a new block type:

  1. Add entry to BlockType enum in src/world/block.zig
  2. Register properties in isSolid(), isTransparent(), getLightEmission(), getColor()
  3. Add textures to src/engine/graphics/texture_atlas.zig
  4. Update src/world/chunk_mesh.zig for special rendering logic

See Contributing for detailed instructions.


Source: src/world/block.zig | Last updated: January 2026

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Block Types

MichaelFisher1997 edited this page Jan 5, 2026 · 1 revision

Block Types

Complete reference of all block types implemented in ZigCraft.


Overview

ZigCraft currently features 40 block types spanning terrain, vegetation, ores, and decorative blocks. Each block has properties that define its behavior in the world.

PropertyDescription
SolidBlocks player/entity movement
TransparentAllows light and visibility through
Light EmissionBrightness level emitted (0-15)

All Block Types

Terrain Blocks

IDBlockSolidTransparentLightColor
1stone0#808080 Gray
2dirt0#8C5933 Brown
3grass0#4DA633 Green
4sand0#E6D999 Tan
8cobblestone0#666666 Dark Gray
9bedrock0#262626 Black
10gravel0#736B66 Gray-Brown
12snow_block0#F2F2FF White
17clay0#9999B3 Blue-Gray
19mud0#594D4D Dark Brown
30terracotta0#B3664D Orange
31red_sand0#CC661A Orange-Red
32mycelium0#664D66 Purple-Gray

Liquids & Air

IDBlockSolidTransparentLightColor
0air0
5water0#3366CC Blue

Ores

IDBlockSolidTransparentLightColor
14coal_ore0#1A1A1A Black
15iron_ore0#998066 Orange-Brown
16gold_ore0#E6CC33 Yellow

Trees & Logs

IDBlockSolidTransparentLightColor
6wood0#8C5926 Brown
7leaves0#338026 Green
20mangrove_log0#734040 Red-Brown
21mangrove_leaves0#338026 Green
22mangrove_roots0#664D33 Brown
23jungle_log0#804D1A Dark Brown
24jungle_leaves0#338026 Green
27acacia_log0#998C80 Gray-Brown
28acacia_leaves0#338026 Green
29acacia_sapling0#4D9933 Green

Mushrooms

IDBlockSolidTransparentLightColor
33mushroom_stem0#E6E6D9 Off-White
34red_mushroom_block0#CC3333 Red
35brown_mushroom_block0#99664D Brown

Vegetation & Foliage

IDBlockSolidTransparentLightColor
13cactus0#1A991A Dark Green
25melon0#99CC33 Light Green
26bamboo0#66CC33 Bright Green
36tall_grass0#4DA633 Green
37flower_red0#E61A1A Red
38flower_yellow0#E6E61A Yellow
39dead_bush0#664D1A Tan

Utility & Decorative

IDBlockSolidTransparentLightColor
11glass0#CCE6F2 Light Blue
18glowstone15#FFE680 Yellow-White

Note:glowstone is the only light-emitting block in the game.


Block Properties API

Defined in src/world/block.zig:

pubconstBlockType=enum(u8) {
// ... block definitionspubfnisSolid(self: BlockType) bool;
pubfnisTransparent(self: BlockType) bool;
pubfnisOpaque(self: BlockType) bool;
pubfngetColor(self: BlockType) [3]f32;
pubfngetLightEmission(self: BlockType) u4;
pubfngetFaceColor(self: BlockType, face: Face) [3]f32;
};

Adding New Blocks

To add a new block type:

  1. Add entry to BlockType enum in src/world/block.zig
  2. Register properties in isSolid(), isTransparent(), getLightEmission(), getColor()
  3. Add textures to src/engine/graphics/texture_atlas.zig
  4. Update src/world/chunk_mesh.zig for special rendering logic

See Contributing for detailed instructions.


Source: src/world/block.zig | Last updated: January 2026

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Block Types

MichaelFisher1997 edited this page Jan 5, 2026 · 1 revision

Block Types

Complete reference of all block types implemented in ZigCraft.


Overview

ZigCraft currently features 40 block types spanning terrain, vegetation, ores, and decorative blocks. Each block has properties that define its behavior in the world.

PropertyDescription
SolidBlocks player/entity movement
TransparentAllows light and visibility through
Light EmissionBrightness level emitted (0-15)

All Block Types

Terrain Blocks

IDBlockSolidTransparentLightColor
1stone0#808080 Gray
2dirt0#8C5933 Brown
3grass0#4DA633 Green
4sand0#E6D999 Tan
8cobblestone0#666666 Dark Gray
9bedrock0#262626 Black
10gravel0#736B66 Gray-Brown
12snow_block0#F2F2FF White
17clay0#9999B3 Blue-Gray
19mud0#594D4D Dark Brown
30terracotta0#B3664D Orange
31red_sand0#CC661A Orange-Red
32mycelium0#664D66 Purple-Gray

Liquids & Air

IDBlockSolidTransparentLightColor
0air0
5water0#3366CC Blue

Ores

IDBlockSolidTransparentLightColor
14coal_ore0#1A1A1A Black
15iron_ore0#998066 Orange-Brown
16gold_ore0#E6CC33 Yellow

Trees & Logs

IDBlockSolidTransparentLightColor
6wood0#8C5926 Brown
7leaves0#338026 Green
20mangrove_log0#734040 Red-Brown
21mangrove_leaves0#338026 Green
22mangrove_roots0#664D33 Brown
23jungle_log0#804D1A Dark Brown
24jungle_leaves0#338026 Green
27acacia_log0#998C80 Gray-Brown
28acacia_leaves0#338026 Green
29acacia_sapling0#4D9933 Green

Mushrooms

IDBlockSolidTransparentLightColor
33mushroom_stem0#E6E6D9 Off-White
34red_mushroom_block0#CC3333 Red
35brown_mushroom_block0#99664D Brown

Vegetation & Foliage

IDBlockSolidTransparentLightColor
13cactus0#1A991A Dark Green
25melon0#99CC33 Light Green
26bamboo0#66CC33 Bright Green
36tall_grass0#4DA633 Green
37flower_red0#E61A1A Red
38flower_yellow0#E6E61A Yellow
39dead_bush0#664D1A Tan

Utility & Decorative

IDBlockSolidTransparentLightColor
11glass0#CCE6F2 Light Blue
18glowstone15#FFE680 Yellow-White

Note:glowstone is the only light-emitting block in the game.


Block Properties API

Defined in src/world/block.zig:

pubconstBlockType=enum(u8) {
// ... block definitionspubfnisSolid(self: BlockType) bool;
pubfnisTransparent(self: BlockType) bool;
pubfnisOpaque(self: BlockType) bool;
pubfngetColor(self: BlockType) [3]f32;
pubfngetLightEmission(self: BlockType) u4;
pubfngetFaceColor(self: BlockType, face: Face) [3]f32;
};

Adding New Blocks

To add a new block type:

  1. Add entry to BlockType enum in src/world/block.zig
  2. Register properties in isSolid(), isTransparent(), getLightEmission(), getColor()
  3. Add textures to src/engine/graphics/texture_atlas.zig
  4. Update src/world/chunk_mesh.zig for special rendering logic

See Contributing for detailed instructions.


Source: src/world/block.zig | Last updated: January 2026

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Block Types

MichaelFisher1997 edited this page Jan 5, 2026 · 1 revision

Block Types

Complete reference of all block types implemented in ZigCraft.


Overview

ZigCraft currently features 40 block types spanning terrain, vegetation, ores, and decorative blocks. Each block has properties that define its behavior in the world.

PropertyDescription
SolidBlocks player/entity movement
TransparentAllows light and visibility through
Light EmissionBrightness level emitted (0-15)

All Block Types

Terrain Blocks

IDBlockSolidTransparentLightColor
1stone0#808080 Gray
2dirt0#8C5933 Brown
3grass0#4DA633 Green
4sand0#E6D999 Tan
8cobblestone0#666666 Dark Gray
9bedrock0#262626 Black
10gravel0#736B66 Gray-Brown
12snow_block0#F2F2FF White
17clay0#9999B3 Blue-Gray
19mud0#594D4D Dark Brown
30terracotta0#B3664D Orange
31red_sand0#CC661A Orange-Red
32mycelium0#664D66 Purple-Gray

Liquids & Air

IDBlockSolidTransparentLightColor
0air0
5water0#3366CC Blue

Ores

IDBlockSolidTransparentLightColor
14coal_ore0#1A1A1A Black
15iron_ore0#998066 Orange-Brown
16gold_ore0#E6CC33 Yellow

Trees & Logs

IDBlockSolidTransparentLightColor
6wood0#8C5926 Brown
7leaves0#338026 Green
20mangrove_log0#734040 Red-Brown
21mangrove_leaves0#338026 Green
22mangrove_roots0#664D33 Brown
23jungle_log0#804D1A Dark Brown
24jungle_leaves0#338026 Green
27acacia_log0#998C80 Gray-Brown
28acacia_leaves0#338026 Green
29acacia_sapling0#4D9933 Green

Mushrooms

IDBlockSolidTransparentLightColor
33mushroom_stem0#E6E6D9 Off-White
34red_mushroom_block0#CC3333 Red
35brown_mushroom_block0#99664D Brown

Vegetation & Foliage

IDBlockSolidTransparentLightColor
13cactus0#1A991A Dark Green
25melon0#99CC33 Light Green
26bamboo0#66CC33 Bright Green
36tall_grass0#4DA633 Green
37flower_red0#E61A1A Red
38flower_yellow0#E6E61A Yellow
39dead_bush0#664D1A Tan

Utility & Decorative

IDBlockSolidTransparentLightColor
11glass0#CCE6F2 Light Blue
18glowstone15#FFE680 Yellow-White

Note:glowstone is the only light-emitting block in the game.


Block Properties API

Defined in src/world/block.zig:

pubconstBlockType=enum(u8) {
// ... block definitionspubfnisSolid(self: BlockType) bool;
pubfnisTransparent(self: BlockType) bool;
pubfnisOpaque(self: BlockType) bool;
pubfngetColor(self: BlockType) [3]f32;
pubfngetLightEmission(self: BlockType) u4;
pubfngetFaceColor(self: BlockType, face: Face) [3]f32;
};

Adding New Blocks

To add a new block type:

  1. Add entry to BlockType enum in src/world/block.zig
  2. Register properties in isSolid(), isTransparent(), getLightEmission(), getColor()
  3. Add textures to src/engine/graphics/texture_atlas.zig
  4. Update src/world/chunk_mesh.zig for special rendering logic

See Contributing for detailed instructions.


Source: src/world/block.zig | Last updated: January 2026

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Block Types

MichaelFisher1997 edited this page Jan 5, 2026 · 1 revision

Block Types

Complete reference of all block types implemented in ZigCraft.


Overview

ZigCraft currently features 40 block types spanning terrain, vegetation, ores, and decorative blocks. Each block has properties that define its behavior in the world.

PropertyDescription
SolidBlocks player/entity movement
TransparentAllows light and visibility through
Light EmissionBrightness level emitted (0-15)

All Block Types

Terrain Blocks

IDBlockSolidTransparentLightColor
1stone0#808080 Gray
2dirt0#8C5933 Brown
3grass0#4DA633 Green
4sand0#E6D999 Tan
8cobblestone0#666666 Dark Gray
9bedrock0#262626 Black
10gravel0#736B66 Gray-Brown
12snow_block0#F2F2FF White
17clay0#9999B3 Blue-Gray
19mud0#594D4D Dark Brown
30terracotta0#B3664D Orange
31red_sand0#CC661A Orange-Red
32mycelium0#664D66 Purple-Gray

Liquids & Air

IDBlockSolidTransparentLightColor
0air0
5water0#3366CC Blue

Ores

IDBlockSolidTransparentLightColor
14coal_ore0#1A1A1A Black
15iron_ore0#998066 Orange-Brown
16gold_ore0#E6CC33 Yellow

Trees & Logs

IDBlockSolidTransparentLightColor
6wood0#8C5926 Brown
7leaves0#338026 Green
20mangrove_log0#734040 Red-Brown
21mangrove_leaves0#338026 Green
22mangrove_roots0#664D33 Brown
23jungle_log0#804D1A Dark Brown
24jungle_leaves0#338026 Green
27acacia_log0#998C80 Gray-Brown
28acacia_leaves0#338026 Green
29acacia_sapling0#4D9933 Green

Mushrooms

IDBlockSolidTransparentLightColor
33mushroom_stem0#E6E6D9 Off-White
34red_mushroom_block0#CC3333 Red
35brown_mushroom_block0#99664D Brown

Vegetation & Foliage

IDBlockSolidTransparentLightColor
13cactus0#1A991A Dark Green
25melon0#99CC33 Light Green
26bamboo0#66CC33 Bright Green
36tall_grass0#4DA633 Green
37flower_red0#E61A1A Red
38flower_yellow0#E6E61A Yellow
39dead_bush0#664D1A Tan

Utility & Decorative

IDBlockSolidTransparentLightColor
11glass0#CCE6F2 Light Blue
18glowstone15#FFE680 Yellow-White

Note:glowstone is the only light-emitting block in the game.


Block Properties API

Defined in src/world/block.zig:

pubconstBlockType=enum(u8) {
// ... block definitionspubfnisSolid(self: BlockType) bool;
pubfnisTransparent(self: BlockType) bool;
pubfnisOpaque(self: BlockType) bool;
pubfngetColor(self: BlockType) [3]f32;
pubfngetLightEmission(self: BlockType) u4;
pubfngetFaceColor(self: BlockType, face: Face) [3]f32;
};

Adding New Blocks

To add a new block type:

  1. Add entry to BlockType enum in src/world/block.zig
  2. Register properties in isSolid(), isTransparent(), getLightEmission(), getColor()
  3. Add textures to src/engine/graphics/texture_atlas.zig
  4. Update src/world/chunk_mesh.zig for special rendering logic

See Contributing for detailed instructions.


Source: src/world/block.zig | Last updated: January 2026

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Block Types

MichaelFisher1997 edited this page Jan 5, 2026 · 1 revision

Block Types

Complete reference of all block types implemented in ZigCraft.


Overview

ZigCraft currently features 40 block types spanning terrain, vegetation, ores, and decorative blocks. Each block has properties that define its behavior in the world.

PropertyDescription
SolidBlocks player/entity movement
TransparentAllows light and visibility through
Light EmissionBrightness level emitted (0-15)

All Block Types

Terrain Blocks

IDBlockSolidTransparentLightColor
1stone0#808080 Gray
2dirt0#8C5933 Brown
3grass0#4DA633 Green
4sand0#E6D999 Tan
8cobblestone0#666666 Dark Gray
9bedrock0#262626 Black
10gravel0#736B66 Gray-Brown
12snow_block0#F2F2FF White
17clay0#9999B3 Blue-Gray
19mud0#594D4D Dark Brown
30terracotta0#B3664D Orange
31red_sand0#CC661A Orange-Red
32mycelium0#664D66 Purple-Gray

Liquids & Air

IDBlockSolidTransparentLightColor
0air0
5water0#3366CC Blue

Ores

IDBlockSolidTransparentLightColor
14coal_ore0#1A1A1A Black
15iron_ore0#998066 Orange-Brown
16gold_ore0#E6CC33 Yellow

Trees & Logs

IDBlockSolidTransparentLightColor
6wood0#8C5926 Brown
7leaves0#338026 Green
20mangrove_log0#734040 Red-Brown
21mangrove_leaves0#338026 Green
22mangrove_roots0#664D33 Brown
23jungle_log0#804D1A Dark Brown
24jungle_leaves0#338026 Green
27acacia_log0#998C80 Gray-Brown
28acacia_leaves0#338026 Green
29acacia_sapling0#4D9933 Green

Mushrooms

IDBlockSolidTransparentLightColor
33mushroom_stem0#E6E6D9 Off-White
34red_mushroom_block0#CC3333 Red
35brown_mushroom_block0#99664D Brown

Vegetation & Foliage

IDBlockSolidTransparentLightColor
13cactus0#1A991A Dark Green
25melon0#99CC33 Light Green
26bamboo0#66CC33 Bright Green
36tall_grass0#4DA633 Green
37flower_red0#E61A1A Red
38flower_yellow0#E6E61A Yellow
39dead_bush0#664D1A Tan

Utility & Decorative

IDBlockSolidTransparentLightColor
11glass0#CCE6F2 Light Blue
18glowstone15#FFE680 Yellow-White

Note:glowstone is the only light-emitting block in the game.


Block Properties API

Defined in src/world/block.zig:

pubconstBlockType=enum(u8) {
// ... block definitionspubfnisSolid(self: BlockType) bool;
pubfnisTransparent(self: BlockType) bool;
pubfnisOpaque(self: BlockType) bool;
pubfngetColor(self: BlockType) [3]f32;
pubfngetLightEmission(self: BlockType) u4;
pubfngetFaceColor(self: BlockType, face: Face) [3]f32;
};

Adding New Blocks

To add a new block type:

  1. Add entry to BlockType enum in src/world/block.zig
  2. Register properties in isSolid(), isTransparent(), getLightEmission(), getColor()
  3. Add textures to src/engine/graphics/texture_atlas.zig
  4. Update src/world/chunk_mesh.zig for special rendering logic

See Contributing for detailed instructions.


Source: src/world/block.zig | Last updated: January 2026

Clone this wiki locally