deepslate icon indicating copy to clipboard operation
deepslate copied to clipboard

Library for rendering and emulating parts of Minecraft

Deepslate

Library for rendering and emulating parts of Minecraft

Install

npm install deepslate
<script src="https://unpkg.com/[email protected]"></script>

Quick Examples

Reading and writing binary NBT files

import { NbtFile, NbtString } from 'deepslate'

fetch('./example.nbt')
	.then(res => res.arrayBuffer())
	.then(data => {
		const file = NbtFile.read(new Uint8Array(data))
		file.root.set('Hello', new NbtString('World!'))
		const newData = file.write()
		console.log(newData)
	})

Rendering a structure

import { Structure, StructureRenderer } from 'deepslate'
import { mat4 } from 'gl-matrix'

const structure = new Structure([4, 3, 4])
structure.addBlock([0, 0, 3], "minecraft:stone")
structure.addBlock([0, 1, 3], "minecraft:cactus", { "age": "1" })

// Obtain the WebGL context of a canvas element
const gl = canvas.getContext('webgl')

// See the demo on how to create a resources object
const renderer = new StructureRenderer(gl, structure, resources)

const view = mat4.create()
mat4.translate(view, view, [0, 0, -5])

renderer.drawStructure(view)

Docs

A collection of examples showcasing the use cases of deepslate.

Render

Rendering a simple structure to a canvas, read from an NBT file. Includes mouse controls and loading of an arbitrary resource pack.

image

Splines

image

Noise

image

MultiNoise

image

Chunk Generator

image