To create a new quest, you will need to install the Raining Chain Editor.
Quest Overview Edit
Events are scripts that contain the logic of your quest. For example:
- Teleport player.
- Give items.
- Spawn monsters.
- Display message.
- Is the gate locked?
Check the Game API page for the list of all functionalities you can use in events.
Triggers tell the game engine when to trigger a specific event.
- When talking to a NPC.
- When NPC dies.
- When toggling a switch.
- When looting a chest.
- When reaching a certain position.
- When using item.
Check the Event Triggers for more details.
Quest Variables Edit
Quest variables track the player progression. They are modified by events. Each player has its own copy of variables. For example:
- goblinKillCount = 1000
- isDoorLocked = true
- haveTalkedWithRingo = false
Maps handle the map images but also indicate what NPC to spawn. For example:
- NPC (Ringo)
- Trigger (onDialogue) => Event (talkRingo)
- Trigger (onDeath) => Event (killRingo)
- NPC (Dragon)
- Trigger (onDeath) => Event (giveDragonHead)
- NPC (Switch)
- Trigger (toggle) => Event (openLockedDoor)
Check the Map Creation for help creating map graphics.
Spawning Actors Edit
For every NPC you create, you need to mark where it spawns in the associated Tiled map file. To mark it, select the layer SPOT and places letters from the tileset #9.
Every NPC can be customized with over an hundred possible attributes.
- spriteBase: The appearance of the actor.
- onDialogue: Event called when player selects "Talk to" option.
- onDeath: Event called when NPC dies.
- viewedIf: If event returns true, the actor is visible.
- name: Display name.
- globalDef: Multiply defence by this value.
- globalDmg: Multiply damage by this value.
Check the Game API page for the list of all actor attributes you can use.
Check the Actor Models page for the list of all premade actor models you can use.
Quest Examples Edit
You can access the list of examples in the RCE via "Ctrl+P: QquestExample". They are located in game folder at /rainingchain-X.X.X/server/example.