Dynamic Decals - Documentation System
In-tool documentation system for the dynamic decals tool. Provides a two-column window with a filterable table of contents (left) and content panel (right). Other modules register documentation sectio
In-tool documentation system for the dynamic decals tool. Provides a two-column window with a filterable table of contents (left) and content panel (right). Other modules register documentation sections with GUI callbacks. Includes built-in Introduction, Getting Started, and Controls sections.
Public API
| Function | Signature | Description |
|---|---|---|
M.register | (data) | Registers a docs section: {section={"Parent","Child"}, guiFn=fn, order=num} |
M.selectSection | (section, doNotOpenWindow) | Navigates to section by string name or {"Parent","Child"} path |
M.showWindow | () | Shows docs window, re-sorts sections |
M.hideWindow | () | Hides docs window |
M.isWindowVisible | () → bool | Returns visibility state |
M.image | (path, width, title, subtitle) | Renders image with optional tooltip and subtitle |
M.verticalSpacing | () | Adds configurable vertical spacing |
M.introductionGui | (docsSection) | Built-in Introduction page content |
M.registerEditorPreferences | (prefsRegistry) | Registers indentSpacing (8) and verticalSpacing (16) |
M.editorPreferenceValueChanged | (path, value) | Preference change callback (stub) |
M.setup | (tool_in) | Registers window (640×640), built-in sections, input action bindings |
Section Registration
-- Modules register docs during setup:
docs.register({
section = {"Layer Types", "Decal Layer"},
guiFn = function(docsSection)
im.TextUnformatted("Documentation content here...")
end,
order = 100 -- optional, lower = higher in TOC
})
-- Nested sections auto-create parent entries:
docs.register({ section = {"Getting Started", "First Steps"}, guiFn = myGuiFn, order = 11 })Built-in Sections
| Section | Order | Content |
|---|---|---|
| Introduction | 0 | Welcome text, tool version, feature overview, forum link |
| Getting Started | 10 | Getting started guide |
| Controls | 20 | Input action table (keyboard/mouse bindings for dynamicDecals action map) |
TOC Features
- Text filter: Filters sections recursively (removes empty parents)
- Color coding: Ordered sections highlighted in light blue
- Selection indicator: Orange bar next to selected section
- Auto-scroll: Scrolls to programmatically selected section
Preferences
| Key | Type | Default | Description |
|---|---|---|---|
docs.indentSpacing | int | 8 | TOC indent spacing (0–64) |
docs.verticalSpacing | int | 16 | Vertical spacing in content (0–64) |
Dependencies
| Module | Purpose |
|---|---|
editor_dynamicDecals_helper | textUnformattedCentered(), capitalizeWords() |
core_input_bindings | Input binding data for controls table |
core_input_actions | Action definitions for controls table |
See Also
- Dynamic Decals - Browser - Related reference
- Dynamic Decals - Brushes - Related reference
- Dynamic Decals - Camera - Related reference
- World Editor Guide - Guide
Dynamic Decals - Debug Textures
Debug texture viewer for the dynamic decals tool. Displays collapsible sections for all internal texture buffers: combined, dynamic, baked, highlight, decal input (brush), and mask textures.
Dynamic Decals - Export
Export system for the dynamic decals tool. Two export modes: **Export Skin** (generates skin files ready for in-game use) and **Export Textures** (exports raw color, metallic, roughness, and color pal