Build, extend, or audit production-linked browser map editors for Three.js and isometric games. Use when Codex needs to create a private director view, derive a versioned editor document from authored placements, add outliner, layer, selection, drag, snap, inspector, or camera controls, expose enemy aggro, leash, or patrol overlays, implement local draft import, export, undo, and reset, secure an editor route with IP and password sessions, or validate and release a map editor without mutating live gameplay data.
75
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Build a paused director tool around the real game world. Let designers inspect and draft placements quickly while keeping production data, gameplay saves, and release integration explicit.
Inspect the repository before designing the editor:
Do not create an independent map source of truth. Derive the initial editor document from production definitions through adapters. Keep stable source IDs so every draft value can be traced back to authored code.
State the lifecycle in the UI and implementation:
production source -> editor document -> isolated draft -> validated export -> reviewed source integration
Treat export as a proposal. Do not claim that a draft changes gameplay until a separate integration updates authoritative source, passes gameplay tests, is committed, and is released.
Use a small serializable document instead of storing Three.js objects or React state.
Include:
id, sourceId, kind, label, zone, position, facing, and typed settings;Keep editor position data on the gameplay plane. For a flat-world game, use { x, y: 0, z } and reject nonzero Y rather than silently flattening imported data.
Validate at every import and integration boundary:
Keep detailed game-specific adapters and limits outside the reusable editor component.
Reuse the production world builder in a deliberate director or preview mode. Do not run combat, progression, persistence, enemy simulation, or live save mutations inside the editor.
Keep visual layers independent from editor data. Layer visibility may hide roots and overlays, but it must not delete or rewrite entities.
Provide:
F shortcut to frame the map;Focus the selected point and zoom in enough to identify it. Never zoom out when focusing an entity the user is already viewing closely. Cancel focus animation when the user starts manual camera input.
Keep pointer gestures atomic:
Show identity, canonical asset path, source ID, zone, position, facing, and source settings for every entity.
For enemies, expose only settings that have a clear gameplay contract:
Draw facing, aggro, leash, patrol-area, and waypoint overlays in world space. Keep overlay colors and legend labels consistent.
Make source-owned settings read-only unless the editor has a validated write-back path. Do not turn arbitrary runtime state into editable JSON.
Use immutable document snapshots and a bounded history.
Draft only or equivalent status persistently.If collaborative editing, server persistence, or source write-back is requested later, design it as a separate authenticated workflow with conflict handling, audit history, and explicit publish approval.
Treat a private URL as insufficient protection.
noindex, nofollow.Test missing configuration, denied IP, wrong password, valid token, wrong IP, wrong secret, expiration, and logout.
Read the exported document as a diff keyed by stable source ID.
Never copy a draft wholesale into production without understanding which system owns each field.
Add deterministic tests for:
Then run targeted tests, full tests, build, lint, and diff checks. In the approved browser, verify unauthorized and authorized states, outliner and layer behavior, selection and focusing, drag and snap, inspector edits, overlays, undo and redo, local restore, import and export rejection paths, reset confirmation, logout, desktop layout, mobile or narrow layout if supported, console health, and renderer cleanup.
Read references/vesperfall-implementation.md when working in Vesperfall or when a concrete production implementation map is useful.
46abf78
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.