🏜 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
| layer | what it is | builder-accessible today? |
|---|---|---|
| Quest data | title, lore, objectives, reward | ✅ POST /api/v1/quests |
| Reward item | legendary weapon with affixes + a 3D model | ✅ via reward (model = item_<base>.glb) |
| 3D assets | relic pieces, the assembled blade, the boss, animals | ✅ publish your .glb: POST /api/v1/models |
| World scripting | teleport 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
- Design objectives around the five counters (
harvest/craft/trade/mission/kill). - Pick a reward: reuse an existing
basemodel, or PUBLISH your own .glb and setmodel_url. POST /api/v1/questswith your key — it's live at the Tools Marketplace immediately.- Watch pickup:
GET /api/v1/market/pricesto see your reward trading once players claim it.