Log inGet started
World

Builtin Library

Branchmain
Branchesmainpublish
Commitdd348ac6c3

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 & SegmentOpts
  • MaterialInput = string | table — a material name or an AssetRef, assigned to the Model component's material field.

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> — set opts.prefix to 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.
  • clearDrawn is robust to ids that have already despawned, so it's safe to call multiple times.