원클릭으로
viverse-world-publishing
Publishing PlayCanvas projects to VIVERSE Worlds via CLI
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Publishing PlayCanvas projects to VIVERSE Worlds via CLI
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Three.js Polygon Streaming .xrg integration and debugging playbook for @polygon-streaming/web-player-threejs, including correct wrapper events, asset publishing, model fitting, and fallback replacement policy
Bundle entry for the exported VIVERSE PlayCanvas Toolkit workflow pack. Use when you want bundled VIVERSE PlayCanvas Toolkit skills, prompts, catalogs, and helper assets in one standalone package.
Collision detection patterns for Three.js games without physics engines
Protect third-party API keys by moving secret-bearing calls into VIVERSE Play Lambda scripts and keeping only non-secret user data in VIVERSE Storage.
Build or fix CPU racing drivers for Three.js or VIVERSE racing games. Use for waypoint loops, tile-to-route reconstruction, lap completion, recovery logic, and low-overhead debug workflows.
VIVERSE Login SDK integration for user authentication and SSO
| name | viverse-world-publishing |
| description | Publishing PlayCanvas projects to VIVERSE Worlds via CLI |
| prerequisites | ["Node.js","VIVERSE Studio account","VIVERSE CLI"] |
| tags | ["viverse","publishing","cli","deployment"] |
Publish a web build to VIVERSE Worlds with repeatable CLI workflow.
Use this when a project needs:
.envdist/.env and treat that App ID as locked for the workspace.dist/ deterministically before publish or verifier rerun:
YOUR_APP_ID must not appearUse this whenever publish/auth/leaderboard issues might be caused by App ID drift.
.env VITE_VIVERSE_CLIENT_ID.env and confirm VITE_VIVERSE_CLIENT_ID=<expected_app_id>.dist/:
YOUR_APP_ID must not appeardist/ contains YOUR_APP_ID
Root cause is unresolved placeholder or stale build. Fix source/env, then rebuild.source contains hardcoded app id literal
Root cause is invalid source workaround. Remove literal, restore env/runtime resolution, then rebuild.publish succeeded but verifier failed on App ID propagation
Treat this as a deterministic recovery task, not a full workflow restart.npm install -g @viverse/cli
viverse-cli auth login
npm run build
viverse-cli app list
Vite/bundled app (has npm run build → produces dist/):
npm run build
viverse-cli app publish ./dist --app-id <APP_ID>
Static HTML app (no build step — pure HTML/JS/assets folder, no package.json build):
viverse-cli app publish <template-folder> --app-id <APP_ID>
[!IMPORTANT] Never run
npm run buildor referencedist/for a static HTML app. The publish source is the template/project folder itself. CheckCONTRACT.jsonbuild.requiredandpaths.publishSourceto determine which strategy applies.
viverse-cli app create --name "<APP_NAME>" --type world.env with VITE_VIVERSE_CLIENT_ID=<APP_ID> (bundled apps only)..env or CONTRACT.json app.appId.build.required: true) and publish with that same App ID.app.createAppAllowed: false in CONTRACT.json — skip app create entirely.build.required | paths.publishSource | Strategy |
|---|---|---|
true | dist/ or similar | Run build command, then app publish dist/ |
false | template folder path | Skip build, app publish <publishSource> directly |
false | dist/ | Skip build but still publish dist/ if it exists |
Always read CONTRACT.json before deciding. Never assume dist/.
[!IMPORTANT] When creating an app for the web/iframe (VIVERSE Worlds), you MUST use
--type world. The default ismobile, which will causecheckAuth()to fail.
viverse-cli app publish ./dist --auto-create-app --name "<APP_NAME>" --type world
.env App ID matches the published target appdist/ contains expected App ID and does not contain YOUR_APP_IDimport.meta.env is build-time in Vite; rebuild after env changes.VITE_VIVERSE_CLIENT_ID from env wiring.dist/ containing the real target App ID is expected after env injection; the release blocker is unresolved placeholder or invalid source hardcoding.dist/ — there is no build step and no dist/ folder. Always use the template/source folder as the publish target. Publishing a non-existent dist/ will fail or upload an empty package.viverse-cli app create must be skipped for republish — if CONTRACT.json has app.createAppAllowed: false, running app create will create a new orphan app and the App ID in the publish will be wrong.--type world for web/iframe VIVERSE apps. Creating without this flag defaults to mobile and breaks checkAuth().publishCommand may contain <APP_ID> as a template placeholder — this is intentional. CONTRACT.json is a reference document, not shipped source. The compliance publish-no-placeholder-appid rule deliberately ignores CONTRACT.json. Do NOT treat this as a violation or attempt to patch it.build.required: false), the fix is always: patch source files and re-publish with viverse-cli app publish <publishSource>. There is no dist/, no npm run build, and no npm install to run.