Curious Expedition Wiki


Events are the basic ingredient to making anything happen in the game. They allow you to tell the story, start battles, give the player choices and really anything that happens in the game is an event.

Events consist of commands and can invoke other events. 

List of event commands[]

Event Types[]

When creating an event or multiple events their type will determine something about how they execute.

There are multiple keywords that allow you to trigger events in different ways.

Before any event executes the requirements inside that event are checked.

Keyword Description
select Randomly selects one of the given events
charEvents Executes all of the given events with each characters context until it succeeds or has tried all characters

Executes all of the given events with the party context

actions Uses the events as actions available to the player to select from
storeEvents Executes all given events with a store context
npcEvents Executes all given events with an npc context
itemEvents Executes all given events with an item context


Events in the game have a context that they can access to check if certain requirements are met. This allows you to select specific events depending on the current state of the game.

Position Context[]

This context refers to a position on the map and is usually needed by event commands that change something on the map.

Some examples are the addZonerevealTiles or replaceFixtures commands.

These commands require a world position for their effect. The default world position assumed is always the player position. Commands that can be used to change the context position are posPunch and posTile, which set the context position to the output of their command. addFixture also does this by default.

Character Context[]

This context refers to a specific character in your party. This context usually exists in CharacterEffects.

Some examples for commands that need it are: reqStatusDayAgeloyalty and removeCharacter

Location Context[]

This context refers to a specific location in the game.

Examples are setLocationFlags

These commands require a location for their effect. This context is set when triggering a location action and removed again when the diary is closed.

Zone Context[]

This context refers to a specific zone in the game.

The only command in the game using it is removeZone

These commands require a zone to which to apply the effect. The zone context exists for the evt-combat-loot event.


    id: evt-harbor-quest-trex-hunt-complete
    reqPartyFlags: +trex-hunt-accepted
    setPartyFlags: -trex-hunt-accepted
    text: txt-evt-harbor-quest-trex-complete
    npc: npc-hunter
    npcEvents: {
      actions: {
        reqItems: {it-trexTooth: 1}
        alwaysShown: true
        actionText: txt-evt-harbor-quest-trex-complete-action
        text: txt-evt-harbor-quest-trex-complete-1
        report: txt-evt-harbor-quest-trex-complete-report
        items: {it-trexTooth: -1}
        actions: evt-harbor-quest-reward
    actions: {
      actionText: txt-evt-harbor-quest-trex-fail-action
      text: txt-evt-harbor-quest-trex-fail
      fame: -fameLarge
      select: evt-harbor-eventSelection

This event will only trigger if the party has the trx-hunt-accepted flag set.

It then unsets that flag and spaws an NPC hunter.

Then it shows the player an action to hand over a trex tooth if the player has at least one in his inventory. In that case the player loses a tooth but gets rewarded.

And it always shows the player an option to not hand over the tooth. In which case there's a large fame penalty.