@rbxts/gizmos
v1.2.1
Published
TypeScript port of sg3cko's Gizmos library - Debug drawing utilities for Roblox including shapes, raycasts, paths, and world-space text.
Readme
@rbxts/gizmos
Debug drawing library for Roblox with support for lines, rays, shapes, raycasts, and more.
Credits
Original Luau implementation by sg3cko
DevForum Post
TypeScript package by SnarlyZoo
Installation
npm install @rbxts/gizmosUsage
import Gizmos from "@rbxts/gizmos";
// Draw colored shapes
Gizmos.setColor("red");
Gizmos.drawLine(Vector3.zero, new Vector3(0, 10, 0));
Gizmos.setColor("blue");
Gizmos.drawSphere(new Vector3(5, 5, 5), 2);
// Visualize raycasts
const params = new RaycastParams();
const result = workspace.Raycast(origin, direction, params);
Gizmos.drawRaycast(origin, direction, result);
// Draw text in world space
Gizmos.drawText(new Vector3(0, 10, 0), "Player spawn point");
// Log to screen
Gizmos.log("Frame:", tick());Features
- Shapes: Lines, rays, paths, points, cubes, circles, spheres, pyramids, cones
- Raycasts: Visualize raycasts, spherecasts, and blockcasts with hit detection
- Text: World-space and on-screen text rendering
- Colors: Built-in color presets (red, green, blue, yellow, cyan, magenta, orange, purple, white, gray, black)
- Trailing paths: Track object movement over time
- Auto-clearing: Automatically clears each frame (configurable)
API
Drawing
setColor(color: string | Color3)- Set drawing colorsetTransparency(value: number)- Set transparency (0-1)drawLine(from: Vector3, to: Vector3)- Draw a linedrawRay(origin: Vector3, direction: Vector3)- Draw a ray with arrowdrawPath(points: Vector3[], closed?: boolean, dotsSize?: number)- Draw connected pathdrawPoint(position: Vector3, size?: number)- Draw point markerdrawCube(position: Vector3 | CFrame, size: Vector3)- Draw wireframe cubedrawCircle(position: Vector3, radius: number, normal?: Vector3)- Draw circledrawSphere(position: Vector3 | CFrame, radius: number)- Draw spheredrawPyramid(position: Vector3 | CFrame, size: number, height: number)- Draw pyramiddrawCone(apex: Vector3, direction: Vector3, range: number, halfAngleDeg: number, segments?: number)- Draw cone (apex + axis + slant range + half-angle); resolution adapts to the cone's shape, with an optionalsegmentsoverridedrawCFrame(cf: CFrame, size?: number, color?: Color3)- Draw CFrame axes
Raycasts
drawRaycast(origin: Vector3, direction: Vector3, result?: RaycastResult)- Visualize raycastdrawSpherecast(origin: Vector3, radius: number, direction: Vector3, result?: RaycastResult)- Visualize spherecastdrawBlockcast(cf: CFrame, size: Vector3, direction: Vector3, result?: RaycastResult)- Visualize blockcast
Text & Logging
drawText(position: Vector3, ...args: unknown[])- Draw text at world positionlog(...args: unknown[])- Log to on-screen display
Utilities
addToPath(name: string, position: Vector3, dotsSize?: number)- Add point to trailing pathforceUpdate()- Manually clear and update gizmostest()- Run visual test of all features
Properties
clear: boolean- Auto-clear each frame (default: true)
License
MIT
