with one click
tinyworld-settings
// Use when changing Tiny World Builder Settings modal tabs, panels, controls, rendering/world/material/crowd/AI settings, or settings accessibility.
// Use when changing Tiny World Builder Settings modal tabs, panels, controls, rendering/world/material/crowd/AI settings, or settings accessibility.
Use when changing Tiny World Builder selection placement, freehand drawing, asset clipboard, cut/copy/paste/duplicate, saved templates, or Stamps panel navigation.
Use when changing Tiny World Builder renderer setup, shadows, smoke, voxel clouds, ghost board render cost, frame loop, or GPU performance.
Use when changing Tiny World Builder API, webhook, SSE, MCP, plugin, or automation examples.
Use when changing the home island layout, edge dressing, undersides, draped banners (autoincentive sponsor flag), plane/crop-duster flight paths, banner streamers, or which side of the island is "front".
Use when changing ghost boards, multiplayer preview boards, panning, ghost visibility, jigsaw reveal, or any visibility behavior around the active Tiny World board.
Use when adding or changing persisted user state — settings defaults, audio, camera/orbit, panel positions, feature flags, and the in-app "Save Defaults" pipeline that snapshots localStorage into tinyworld-defaults.json. Also covers the inline-script regex gotcha that has burned us twice.
| name | tinyworld-settings |
| description | Use when changing Tiny World Builder Settings modal tabs, panels, controls, rendering/world/material/crowd/AI settings, or settings accessibility. |
Settings live in tiny-world-builder.html inside #render-modal.
Keep settings changes compatible with the existing static single-file app:
data-settings-tab values (app, rendering, world, materials, environment, crowd, ai) unless every command-palette and settings caller is updated in the same change.getElementById, so moving controls between sections is safe but renaming IDs is not.selectSettingsTab(name) must guard unknown names and update all tab and panel state together: .active, aria-selected, tab tabIndex, panel .active, and panel hidden.role="tab" buttons inside a role="tablist" and support click plus Arrow/Home/End keyboard navigation.role="tabpanel" with stable IDs and aria-labelledby pointing at the matching tab.selectSettingsTab().data-settings-tab value, role, keyboard navigation, and accessible label in sync.Structure rules:
data-settings-keywords when a setting or panel should be discoverable by broader user language such as performance, mechanics, textures, weather, or model.data-settings-tab / data-settings-panel wiring, ARIA roles, keyboard tab navigation, and search-count chips.Organization guidance:
Quality covers resolution and shadows; Lighting covers lighting and fill controls; Image effects covers brightness, saturation, contrast, pixelation, shader AA, and tilt-shift.Voxel gap and Show crowns are also intentionally removed from the UI and forced off for render stability/performance.Planes checkbox (render-planes-enabled) because it
controls ambient flyovers and towed banners. It defaults off for the current
performance pass and should stay searchable by plane/crop-duster/banner terms.Validation:
npm test, and npm run build.