🏜 Example: Building a Quest like The Sun-Cleaver

The Sun-Cleaver — Monsterion's first expedition — doubles as the worked example for builders: this page shows exactly how it's assembled, from API-drivable quest data to Meshy 3D assets, and which parts you can already ship via the Builder API versus which come with the team today.

Anatomy of the Sun-Cleaver

layerwhat it isbuilder-accessible today?
Quest datatitle, lore, objectives, rewardPOST /api/v1/quests
Reward itemlegendary weapon with affixes + a 3D model✅ via reward (model = item_<base>.glb)
3D assetsrelic pieces, the assembled blade, the boss, animals✅ publish your .glb: POST /api/v1/models
World scriptingteleport map, compass objectives, forge cinematic, boss choreography🤝 team-built today; scripting API on the roadmap

1 · The quest, as API data

The counter-based core of the Sun-Cleaver could be published today with a single request:

curl -X POST https://<host>/api/v1/quests \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{
    "id": "sun-cleaver-trial",
    "title": "Trial of the Buried Suns",
    "lore": "Four suns fell in the age before ours. Prove yourself worthy of the blade: harvest the desert'\''s bounty and fell the beasts that guard it.",
    "objectives": [
      { "type": "harvest", "n": 400 },
      { "type": "kill",    "n": 6 },
      { "type": "craft",   "n": 3 }
    ],
    "reward": {
      "slot": "weapon", "base": "suncleaver", "rarity": "legendary",
      "name": "Sun-Cleaver Replica",
      "flavor": "Forged from four buried suns; it remembers the desert.",
      "affixes": [
        { "stat": "atk", "val": 24 },
        { "stat": "crit_chance", "val": 6 }
      ]
    }
  }'

Players find it at the ⚙ Tools Marketplace, accept it, and their counters do the rest. Note "base": "suncleaver" — the reward reuses the real Sun-Cleaver model already on the CDN.

2 · 3D assets: PUBLISH your own models

You bring the art. Publish any textured .glb through the API and it's validated, hosted, and served to every game client — no build, no team hand-off:

# publish (raw binary body, name it — 3-48 chars [A-Za-z0-9_-])
curl -X POST "https://<host>/api/v1/models?name=crystal_stag" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @crystal_stag.glb

# → { "ok": true, "name": "crystal_stag", "bytes": 2381442,
#     "url": "/api/v1/models/crystal_stag",
#     "rigging": { "engine": "runtime soft-skin rig — applied automatically …",
#                  "animations": ["walk", "pen-wander", "ride", "fly (…)", "hunt/chase"] } }

curl -H "Authorization: Bearer $KEY" https://<host>/api/v1/models     # list yours
# GET /api/v1/models/crystal_stag is PUBLIC — that's what game clients stream

Validation on upload (rejected with a precise error otherwise):

  • must be a binary .glb (magic checked), max 8 MB
  • textures embedded in the file (external image references are refused — they'd arrive white)
  • at least one mesh

Use it as a reward model — give your quest's reward a model_url and players will see YOUR model in their bag, on their body, in the character sheet and the inspect turntable:

"reward": {
  "slot": "mount", "base": "custom", "rarity": "epic",
  "name": "Crystal Stag",
  "model_url": "/api/v1/models/crystal_stag",
  "affixes": [ { "stat": "spd", "val": 0.5 } ]
}

3 · Rigging & animation — done FOR you, via the API

You publish a static model; the engine rigs and animates it automatically at load with the runtime soft-skin rig (the same tech behind the horses, the Stratum Weaver and the desert fauna). Never ship a skeleton or animation clips — they're not used:

  • a skeleton (body, head, four legs — plus wings when the model has lateral sail geometry) is built at runtime with smooth per-vertex weights,
  • and the animation set comes with it: walk, pen-wander, ride, fly (winged models), hunt/chase (fauna).

For the best result, publish a quadruped in a neutral four-legged stance, textures packed. The upload response tells you exactly which animation set your model will receive. Bosses like the Desert Colossus add choreographed specials on top (position/rotation tweens + AOE checks) — no rig required there either.

4 · World scripting (what the team builds today)

The parts of the Sun-Cleaver beyond data — the teleport-to-desert map, the compass with bearing markers, pole-by-pole objectives, the forge cinematic, hazards (tornados, insect swarms), hostile fauna and boss choreography — live in game modules (fps/mmo_quest_desert.gd is the reference). If your quest concept needs them, propose it to the team with your quest JSON + asset prompts; the scripting API (custom locations, NPCs, webhooks) is on the roadmap.

Checklist for your first custom quest

  1. Design objectives around the five counters (harvest/craft/trade/mission/kill).
  2. Pick a reward: reuse an existing base model, or PUBLISH your own .glb and set model_url.
  3. POST /api/v1/quests with your key — it's live at the Tools Marketplace immediately.
  4. Watch pickup: GET /api/v1/market/prices to see your reward trading once players claim it.