This combined project contains two related JX3 browser tools:
- The Map Viewer for inspecting, editing, and validating JX3 map data.
- Game Tracer for investigating the data and runtime path behind JX3 skill casts.
They share this repository and the local JX3 installation, but run as separate local servers.
public/index.html— Front page with navigation to all current pagespublic/editor.html— Editor / map manager pagepublic/export-reader.html— Main export package validation pagepublic/actor-viewer.html— MovieEditor actor export viewer for skeleton and animation validationpublic/actor-animation-player.html— Actor animation playback and validation pagepublic/client-monitor-animation-player.html— Client monitor animation playback pagepublic/mesh-inspector.html— Regional mesh approval and denial workflowpublic/pss.html— PSS particle inspection pagepublic/collision-test-mode.html— Single-mesh sidecar collision walk testpublic/ability-matcher.html— Ability/resource matching pagepublic/ability-tani-sound.html— Final TANI-SOUND review and export pagepublic/wwise-soundbanks.html— Wwise soundbank browserpublic/cdn-resource-browser.html— CDN resource browserpublic/client-monitor.html— Live client capture monitor with integrated PSS client flow tracing
game-tracer/— Standalone HTML frontend and local server for JX3 skill-cast investigation.- The map viewer homepage links to Game Tracer at
http://127.0.0.1:3050/when its server is running. - Game Tracer investigation instructions
From the repository root:
npm install
npm run localDefault URL:
http://localhost:3015
Windows shortcut:
start-localhostOther equivalent start commands:
npm run dev
npm start
node server.jsTo start Game Tracer, run this from the repository root in another terminal:
npm run game-tracerGame Tracer is served at http://127.0.0.1:3050. It uses the same JX3 client installation by default and can be stopped independently from the map viewer.
npm run localauto-generates browser runtime libs intopublic/libfromnode_modules.npm run localalso reclaims port3015: if another process is listening there, it prints the PID, kills it, and starts a fresh server on3015.- On Windows,
npm run localstarts non-elevated by default. Usenpm run local -- --elevateorJX3_LOCAL_ELEVATE=1only when you explicitly need an elevated server. public/libis generated output and should remain untracked.- Large extracted assets such as
public/map-data/meshes,public/map-data/textures, andsource-meshesare not part of the lightweight runtime setup. - The UI shell can start without those large assets, but asset-driven pages need local map data or exported packages to do useful work.
actor-viewer.htmlcan also read MovieEditor exports directly fromC:\SeasunGame\MovieEditor\source\fbxwhen that local tool install is present.
The generated Wwise bank tree uses numeric WEM filenames. To recover usable folders, rebuild the Wwise event index and export by original event object path:
npm run wwise:index
npm run wwise:event-folders -- --query qicheng_longya --write-wem --decode-ogg --out cache-extraction/wwise-event-folders-qicheng-longyaFor a large run, omit --query and keep the default output folder:
npm run wwise:event-folders -- --write-wem --decode-oggOutputs are written under cache-extraction/wwise-event-folders: manifest.tsv, manifest.jsonl, summary.json, and a by-event folder tree. Each row includes the Wwise event name, object path, WEM id, source Wwise path, CDN path/package, and materialized WEM/OGG status.
- Collision Test and Export Reader use sidecar collision only.
- Runtime collision should come from
*.collision.jsonsidecars andmesh-collision-index.json. - Full Viewer has been removed and should not be treated as an active workflow.
Pages:
//index.html/editor.html/export-reader.html/actor-viewer.html/actor-animation-player.html/client-monitor-animation-player.html/mesh-inspector.html/pss.html/collision-test-mode.html/ability-matcher.html/ability-tani-sound.html/wwise-soundbanks.html/cdn-resource-browser.html/client-monitor.html
Key APIs:
GET /api/meshesGET /api/verdictsGET /api/full-exportsGET /api/actor-exportsPOST /api/export-fullPOST /api/export-full-with-collisionPOST /api/export-regional-with-collision
jx3-web-map-viewer/
├── public/
│ ├── index.html
│ ├── editor.html
│ ├── export-reader.html
│ ├── actor-viewer.html
│ ├── actor-animation-player.html
│ ├── client-monitor-animation-player.html
│ ├── mesh-inspector.html
│ ├── pss.html
│ ├── collision-test-mode.html
│ ├── ability-matcher.html
│ ├── ability-tani-sound.html
│ ├── wwise-soundbanks.html
│ ├── cdn-resource-browser.html
│ ├── client-monitor.html
│ ├── js/
│ └── map-data/
├── game-tracer/
│ ├── index.html
│ ├── app.js
│ ├── server.js
│ └── instruction.md
├── tools/
├── server.js
├── package.json
├── start-localhost.cmd
├── INSTRUCTIONS.md
├── EXPERIENCES.md
└── EXTERNAL_EXPORT_READER_GUIDE.md
- INSTRUCTIONS.md — current repo behavior, working rules, and reporting format
- EXPERIENCES.md — lessons learned and pitfalls
- EXTERNAL_EXPORT_READER_GUIDE.md — export-reader integration contract
- .github/copilot-instructions.md — Copilot loader bridge for
INSTRUCTIONS.md
See INSTRUCTIONS.md for the full tracked Markdown inventory.