Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/BunnyNabbit/voxel-telephone/llms.txt

Use this file to discover all available pages before exploring further.

Voxel Telephone depends on several external tools that must be installed separately before the server can start. This page explains what each one does in the context of the server and where to get it.

Node.js

Required. The server runtime. Voxel Telephone is a Node.js application written in ES modules (.mjs). The project is known to work at v20 and above. Verify your installed version:
node --version
Download Node.js from nodejs.org. Consider using a version manager such as nvm or fnm to pin the version per project.

MongoDB

Required. Voxel Telephone persists all game data — turns, player records, interactions, bans, render jobs, and more — in MongoDB. The server connects using the official MongoDB Node.js driver. By default the server connects to mongodb://localhost:27017. You can override this with the dbConnectionString option in config.json. See the configuration reference for details. Install MongoDB Community Edition from mongodb.com/try/download/community or run it via Docker:
docker run -d -p 27017:27017 --name mongo mongo:latest

pnpm

Required. Voxel Telephone uses pnpm as its package manager. The pnpm-workspace.yaml at the project root configures workspace-level settings such as minimum release age and allowed build-only packages. Install pnpm globally:
npm install -g pnpm
Then install project dependencies from the repository root:
pnpm install
The packageManager field in package.json pins the exact pnpm version (10.30.3) used by the project.

Spotvox

Required for the renderer. Spotvox is a Java-based voxel renderer that converts .vox files into rendered PNG images. The renderer (renderer/SpotvoxRenderer.mjs) calls Spotvox via java -jar ../spotvox.jar from the renderer/ directory, which means the .jar file must be placed in the project root (the same directory as voxelTelephone.mjs). Download Spotvox from github.com/tommyettinger/spotvox. Java must be available on your PATH for the renderer to invoke Spotvox.
The game server itself starts without Spotvox present. Only the renderer process (node renderer/SpotvoxRenderer.mjs) requires the .jar. You can run the game server and add the renderer later.

ImageMagick

Optional. The renderer uses ImageMagick’s convert command to convert the PNG output from Spotvox into WebP format, which is more compact for web delivery. If ImageMagick is not installed or the conversion fails, the renderer automatically falls back to saving the image as PNG. Download ImageMagick from imagemagick.org. After installation, confirm the convert command is on your PATH:
convert --version
ImageMagick is only needed if you want WebP-format game previews. The server and renderer both function without it.

Build docs developers (and LLMs) love