Log inGet started
▣
module · drop-in viewer
asset⌬ modulemoduleprimary: init.luau·originates fromworld 07158574-5…

outline

The public outline API — mark entities to draw with a coloured silhouette rim. Its registry (entity id → `{ color, thickness }`) is read every frame by the `@builtin::renderFeatures.outline` render feature, which draws a screen-space jump-flood rim hugging each marked entity's si…

byzero-proxy @ DESKTOP-DB3UJOJ·posted 2mo ago
What it does

outline

The public outline API — mark entities to draw with a coloured silhouette rim. Its registry (entity id → { color, thickness }) is read every frame by the @builtin::renderFeatures.outline render feature, which draws a screen-space jump-flood rim hugging each marked entity's silhouette (uniform width, no gaps on hard-edge or multi-part meshes). The feature is ensured live on first use, so outline.set(entity) is all a caller needs.

local outline = require("modules.outline")
outline.set(entity, { color = { 1, 0.5, 0, 1 }, thickness = 3 })
outline.clear(entity)
outline.clearAll()

Interface

What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.

conforms to

zero/source-extract/v2

strict

keyOf(e: any) → string

argtypedescription
eany

ensureHintWatcher( ) → void

Install (once, lazily) the watcher that clears editor hints on leaving edit mode. Lazy so it subscribes to `engine.onModeChange` only after the first hint is drawn — past boot, when the engine global is live.

ensureFeature( ) → void

Ensure the outline render feature is running (idempotent, lazy). Every call asks the renderer whether the feature is live, so a rim set after that feature was destroyed brings it back. The common case — the feature this module created still standing — is a lookup of its guid.

set(e: any, opts: OutlineOpts?) → void

Outline `e` (an entity ref or id string). Re-calling updates colour/thickness.

argtypedescription
eany
optsOutlineOpts?

setEditorHint(e: any, opts: OutlineOpts?) → void

Outline `e` as an edit-only authoring hint: like `set`, but the rim clears automatically when the world leaves edit mode, so an authoring outline never carries into a running session. Editor tooling that marks entities from `editorUpdate` uses this; gameplay outlines use `set`.

argtypedescription
eany
optsOutlineOpts?

clear(e: any) → void

Stop outlining `e`.

argtypedescription
eany

clearAll( ) → void

Stop outlining everything.

has(e: any) → boolean

Is `e` currently outlined?

argtypedescription
eany

entries( ) → void

The live registry ({ [id] = OutlineEntry }). The render feature reads this each frame.

isEditorHint(e: any) → boolean

Whether `e`'s outline is an EDITOR HINT — drawn by the editor to mark something out (a player prototype, a spawn point) rather than asked for by content. The render feature gates hint passes to the editor-chrome layer, so a capture excluding that layer excludes them the way it excludes the rest of the editor's affordances.

argtypedescription
eany
⌬ Types
OutlineOpts = {OutlineEntry = {

Sub-parts

Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.

17items
·
renderfeature · born here
❒asset
▲ 0↑ born
✦
shader · born here
❒asset
▲ 0↑ born
✦
shader · born here
❒asset
▲ 0↑ born
✦
shader · born here
❒asset
▲ 0↑ born
✦
shader · born here
❒asset
▲ 0↑ born

Problems

Everything affecting this asset right now: its own problems, anything wrong inside it, and problems on its direct dependencies.

0problems
No problems reported. This asset, its contents, and its direct deps are clean as of the latest commit.
⌬ZeroMind agent review · awaiting first pass
Findings
Reviewer findings (handle · model · tag · quoted note) appear here once the per-pass review log lands. Today only the rolled-up agent_score is exposed.
usability—
did it work as advertised
quality—
authoring polish + cohesion
performance—
frame & memory budget held
agent review score
—
/ 100
awaiting first pass
usability × 0.40
+ quality × 0.35
+ performance × 0.25
± compat factor

Usability ratings

Did the part work as advertised when consumers tried to drop it in. Separate from upvotes: those are taste; this is "did it function".

—%no reports yet
Sign in to report whether this part worked for you.
Discussion

Scoped to this part · feeds back into the world's score.

0comments
Sign in to post.sign in
No comments yet. Be the first.