Skip to content

CC: Spatial Projector

Programmable ComputerCraft holograms for drawing lines, boxes, markers, and overlays in the world.

NeoForge
Loaders
NeoForge
Downloads on Modrinth
1.8K
Followers on Modrinth
7
version
1
Updated
July 6, 2026Jul 6
Published
in 2026

At a glance

Runs on NeoForge
For Minecraft 1.21.1
Needed in the game and on the server
Latest version — 0.1.0 from July 6, 2026
License MIT — free
Where it's needed
In gamerequiredOn serverrequired

Needed both in the game and on the server

Game versions1.21.1

CC: Spatial Projector

Programmable world-space overlays for CC:Tweaked computers and turtles.

CC: Spatial Projector lets ComputerCraft programs draw lines, paths, boxes, and markers directly in the Minecraft world.

Place a Spatial Projector, connect it to a ComputerCraft computer, turtle, or wired modem, and wear bound Spatial Goggles to see its output. Use it for technical build planning, navigation, turtle debugging, automation displays, and custom spatial interfaces.

Visuals are overlays only. They do not place blocks, spawn entities, or affect collisions.

polyline

Features

  • ComputerCraft peripheral named spatial_projector
  • Spatial Goggles for viewing projector output
  • Lua API for lines, polylines, boxes, and markers
  • Named visual objects that can be updated, removed, listed, or cleared
  • Persistent visuals by default
  • Optional TTL for temporary visuals
  • Configurable limits and default values
  • Built-in demo and utility commands
  • Optional Curios support for wearing goggles in a supported Curios slot

Quick start

  1. Place a Spatial Projector.
  2. Put a ComputerCraft computer or turtle next to it, or connect it using a wired modem.
  3. Right-click the projector with Spatial Goggles to bind them.
  4. Wear the bound goggles.
  5. Run the built-in demo:
spatial_projector

Useful CraftOS commands:

spatial_projector          -- run the demo
spatial_projector demo 30  -- run the demo with a 30-second TTL
spatial_projector clear    -- clear all visuals
spatial_projector stats    -- show projector statistics
spatial_projector list     -- list object IDs in the buffer

Lua example

local projector = peripheral.find("spatial_projector")
if not projector then
    error("spatial_projector not found")
end

projector.clear()

projector.line("axis.x", 0, 64, 0, 16, 64, 0, {
    color = 0xff3333,
    width = 0.07,
})

projector.marker("target", 16, 64, 0, {
    color = 0xff33cc,
    size = 1.0,
})

projector.sync()

Drawing API

Each visual is stored under a string ID inside the projector buffer. Drawing another object with the same ID replaces the previous visual.

projector.line(id, x1, y1, z1, x2, y2, z2, options)
projector.polyline(id, points, options)
projector.box(id, x1, y1, z1, x2, y2, z2, options)
projector.marker(id, x, y, z, options)

options is optional. If it is omitted, the projector uses its configured defaults.

{
    color = 0x33ff88, -- RGB color
    width = 0.0625,  -- line, polyline, and box width
    ttl = 0,         -- seconds before auto-removal; 0 means persistent
    size = 0.35,     -- marker size
}

Line

Draws a segment between two world positions.

projector.line("line.id", 0, 64, 0, 10, 64, 0, {
    color = 0xff3333,
    width = 0.07,
    ttl = 30,
})

Polyline

Draws a connected path through a dense array of {x, y, z} points.

projector.polyline("route", {
    {0, 64, 0},
    {4, 65, 4},
    {8, 64, 8},
    {12, 64, 4},
}, {
    color = 0x33ff88,
    width = 0.06,
})

Box

Draws a box between two opposite corners.

projector.box("build.area", 0, 63, 0, 10, 70, 10, {
    color = 0x3399ff,
    width = 0.05,
})

Marker

Draws a marker at one world position.

projector.marker("target", 16, 64, 0, {
    color = 0xff33cc,
    size = 1.0,
})

Buffer utilities

projector.clear()       -- remove all visuals
projector.remove(id)    -- remove one visual by ID
projector.list()        -- list object IDs
projector.stats()       -- get projector statistics
projector.getLimits()   -- get configured limits
projector.sync()        -- send pending drawing changes

Call sync() after a batch of drawing changes.

Requirements

Requires Minecraft 1.21.1, NeoForge 21.1.x, Java 21, CC:Tweaked 1.120.0+, and Create 6.0.10+.

Create is used as a rendering/library dependency. CC: Spatial Projector does not add Create contraption mechanics.

Optional: Curios API 9.x for wearing Spatial Goggles in a supported Curios slot. Without Curios, goggles can be worn as a normal helmet.

Notes

  • Only players wearing goggles bound to a projector receive its visuals.
  • Coordinates use normal Minecraft world coordinates.
  • list() returns object IDs, not full geometry data.
  • Visuals remain until they are cleared, removed, overwritten, expire through TTL, or are cleaned up when the chunk or world unloads.

FAQ

How to install CC: Spatial Projector?

Install NeoForge for your Minecraft version, download CC: Spatial Projector for the same version and loader, put the file into the mods folder and launch the game with the loader profile.

Which Minecraft versions does CC: Spatial Projector support?

CC: Spatial Projector has builds for Minecraft 1.21.1.

Is CC: Spatial Projector needed on the server?

Needed in the game and on the server

License and source
MIT Licensefree to use and share with credit to the author
Original — Modrinth↗Files unchanged, verified with SHA-512Is this your mod? For rights holders

The site uses cookies: the necessary ones for sign-in and the theme, plus the Yandex Metrica and LiveInternet visit counters — they show us how the site is used. We have no advertising cookies. More