Builtin Library
README.md
spline.drawing
Debug-drawing helpers for visualising a spline in-world. Spawns lightweight marker spheres and segment cubes so callers can inspect the curve shape, preview spacing before placing real content, or build authoring tools around path editing.
Exports
Drawing.draw(path, opts?) -> { string }— markers + segments in one call.Drawing.drawMarkers(path, opts?) -> { string }— sphere markers at sample points.Drawing.drawSegments(path, opts?) -> { string }— oriented thin cubes between placements.Drawing.clearDrawn(ids: { string }?)— despawn every entity in the supplied id list.
Types:
MarkerOpts = { count?, prefix?, markerSize?, markerModel?, markerMaterial?, easing?, steps?, up?, verticalOffset?, lateralOffset? }SegmentOpts = { count?, prefix?, segmentThickness?, segmentModel?, segmentMaterial?, easing?, steps?, up?, verticalOffset?, lateralOffset? }DrawOpts = MarkerOpts & SegmentOptsMaterialInput = string | table— a material name or anAssetRef, assigned to theModelcomponent'smaterialfield.
Usage
local Drawing = require("@builtin::modules.spline.drawing")
local ids = Drawing.draw(path, {
count = 32,
markerMaterial = "@builtin::materials.glow",
segmentThickness = 0.04,
})
-- later
Drawing.clearDrawn(ids)
Notes
- Each spawned entity is named
<prefix>_marker_<index>or<prefix>_segment_<index>— setopts.prefixto disambiguate when drawing multiple paths. - Segment cubes are oriented along the delta between consecutive placement positions. Degenerate (length < 0.0001) deltas are skipped — no zero-length segment cubes.
clearDrawnis robust to ids that have already despawned, so it's safe to call multiple times.