ワンクリックで
tinyworld-tool-icons-and-modes
Use when changing Tiny World Builder's mode indicator, boot tool selection, or Esc-to-Select behaviour.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when changing Tiny World Builder's mode indicator, boot tool selection, or Esc-to-Select behaviour.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | tinyworld-tool-icons-and-modes |
| description | Use when changing Tiny World Builder's mode indicator, boot tool selection, or Esc-to-Select behaviour. |
bootApp calls
selectTool(DEFAULT_TOOL) after loadState(), so a restored world's saved
toolId never leaves a fresh session "armed" for building.#build-play-mode toggles
body.tw-play-mode, persists tinyworld:build-play-mode.v1, and exposes
window.__tinyworldIsPlayMode() / window.__tinyworldMode. In PLAY mode,
build panels and edit radials are hidden, selection/sub-edit state is cleared,
and mutation paths should be gated through the same edit checks that call
mpEditAllowed().#welcome-modal: the rounded .launch-modal shows
assets/twlogo.png with Tinyverse, Battleworlds, Build, and Play buttons,
includes the compact "Created by Jason Kneen" footer with @jasonkneen and
@tinyworldsapp links, and hides app chrome via body.welcome-launch-open.
Build/Play call window.__tinyworldMode; Tinyverse waits for
window.__tinyworldWorlds.open() (or the tinyworld:worlds-ready signal)
and opens the Worlds frontend rather than silently falling back to Build.
Battleworlds calls window.__tinyworldBattleworlds.open() when present and
otherwise falls back to Play. Do not bring back the old farm/vehicle welcome
picker for this path, and keep publish.sh copying the assets/ directory
into dist/assets/.#showcase-exit X
button visible. Do not turn it back into a wide "Exit Showcase Esc" text pill;
keep aria-keyshortcuts="Escape" and the existing Escape handler that calls
setShowcaseActive(false).#mode-indicator (HUD chip, updated in updateModeIndicator in
19-tools-toolbar.js) names the current mode and colours itself: calm
mode-select, amber mode-build, red mode-erase. Keep it
pointer-events:none.Esc disarms any build/paint/erase tool back to Select (handler in
20-input-place-erase.js, skipped in first-person walk mode).tp), and first-person walk (fp). Both walk modes are
driven by the same fp controller in 20-input-place-erase.js; tp shows a
chase camera behind the voxel avatar, while fp uses the avatar rig's
getEyeWorldPosition() and hides the head via setFirstPerson(true).
Keep tp in camera-mode schema/import allowlists when touching saved camera
validation.fp avatar is added to the
shared worldGroup, so it must never coexist with a Tinyverse room's own
networked avatar or the player sees two copies of themselves. setCameraMode
redirects fp/tp to perspective while window.__tinyworldInWorldRoom is
set, and 47-worlds-room.js enterRoom calls window.__tinyworldExitWalkMode
(exposed from 20-input-place-erase.js) to dispose any active walk avatar
before spawning the room avatar. The room's own first-person is the surface
roam zoom-in (v key, _sr* in 47), not the builder fp controller.npm test (tools/check.js / smoke-static.js) reconstructs the split app
from tiny-world-builder.html plus engine/**/*.js. Update those static guards
when changing boot mode, launcher chrome, or mode persistence.
.toolbar is the default. The "Show groups" checkbox in
Settings → App (#toolbar-show-groups, persisted as tinyworld:showGroups,
default on) switches modes. When off, body.hide-groups hides only the
bottom toolbar's block tools/group buttons and a floating, resizable,
draggable #tool-palette shows every placeable block (select + all
TOOL_GROUPS tools with house variants expanded + erase). The bottom
toolbar itself must stay visible for utility controls such as Build/Play,
Home, Shield, View modes, Time/weather, Sound, Layers, Settings, and Account.engine/world/35-tool-palette.js.
Blocks are built with buildToolButton(t, { flyout: true }), so they keep
their colors and are highlighted by the same updateToolActiveStates() loop.showGroupsEnabled() returns true on
<=700px regardless of the stored pref (isSmallScreenForGroups()), the
checkbox is disabled there, and a resize listener re-applies across the
breakpoint. The floating palette is unusable on phones, so never let it open
there. The phone toolbar is also compacted to icon-only (labels/chevrons
hidden, smaller buttons) in the @media (max-width: 700px) block.
The grid uses fixed 64px square cells (repeat(auto-fill, 64px)), so resizing
the panel reflows blocks to the nearest square. buildToolbar() calls
rebuildToolPaletteIfActive() so toolbar rebuilds refresh an open palette..flyout.tool-menu) lays its icons out as a
2-row grid block (gridTemplateColumns: repeat(ceil(n/2), auto) set in
renderToolGroupFlyout)..controls rail is no longer visible. Keep its element IDs
in the DOM as stable wiring targets, but put everyday chrome in the bottom
toolbar: Build/Play, Home, Shield, View modes, Time/weather, Settings, and
Account. Import/export must remain owner-gated and should not be added to the
normal user toolbar.#mode-indicator HUD chip has been removed from the DOM;
updateModeIndicator() still runs but no-ops on the missing element.leave icon. The in-world exit that returns to the
world picker uses tw-hud-back-worlds, the reply glyph, and
worlds.backToWorlds so it is not confused with logging out.Use when changing Tiny World Builder renderer setup, shadows, smoke, voxel clouds, ghost board render cost, frame loop, or GPU performance.
Use when changing the first-class Island Viewer shell, sequential generated-island viewer routing, or viewer-scoped graphics defaults.
Use when adding, importing, designing, reviewing, or animating low-poly / stylized 3D assets in Tiny World Builder, including Three.js procedural meshes, GLB/GLTF assets, Poly Pizza models, material palettes, scale/orientation, silhouettes, clouds/planes/crop dusters, and toolbar thumbnails.
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.
Tinyverse collectibles lane — pack reveal, frozen islands, play-mode visits. Universe carousel is archived but code stays in repo.
Use when changing Tiny World Builder API, webhook, SSE, MCP, plugin, or automation examples.