@rbxts/gizmos
v1.0.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 Colin Miller (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
- 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 pyramiddrawCFrame(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
