Golarion Chronicles Wiki

Dialogue Parameters Reference

Every script handler in Golarion Chronicles reads its configuration from callInfo.ScriptParams, a dictionary of key-value pairs supplied by the dialogue toolset. This document catalogues every parameter name, which handler consumes it, and what it does.

Parameters are case-sensitive. Missing parameters resolve to an empty string (""), so handlers that expect a value will silently no-op if the key is absent.


Quest Handlers

All three quest handlers live in src/Quests/QuestFunctions.cs.

q_startquestat (Action)

Starts a quest for the player when a reply is selected.

Parameter Type Description
STARTQUEST resref The quest resref to start. Required.
GIVEITEM1 item resref Optional. Creates this item in the player's inventory when the quest starts.
GIVEITEM2 item resref Optional. Second bonus item.

Example:

Script: q_startquestat
STARTQUEST: q_foreignquarter
GIVEITEM1: wand_acidsplash

q_finishquestat (Action)

Completes a quest, awards rewards, and updates parent progress.

Parameter Type Description
QUESTRESREF resref The quest resref to finish. Required.
NOREWARD flag If present (any non-empty value), suppresses XP/gold/item rewards. Use for organizational parents whose children already reward the player.
REMOVE item tag/resref Destroys all items matching this tag from the player's inventory after turn-in. Useful for consumable quest items.

Example:

Script: q_finishquestat
QUESTRESREF: q_sewerscout

q_queststatusaw (Condition)

Returns true/false to show or hide a dialogue option. This is the primary gating script for all quest-related dialogue. Parameters are evaluated in a fixed priority order; the first applicable check wins.

Modern contract (preferred)

Parameter Type Description
QUESTRESREF resref The quest to evaluate. Required for modern usage.
QUESTSTATE enum Desired state. One of: ABSENT, READY, FINISHED, INPROGRESS.

State meanings:

Legacy parameters (still functional, superseded by QUESTSTATE)

These are checked in order after the modern contract. If any legacy parameter is present, it takes precedence over QUESTSTATE:

Parameter Type Description
QUESTCOMPLETE resref Override the database requiredquest prerequisite. Shows the option only if this quest is finished.
NOTCOMPLETE resref Hides the option if this quest is NOT finished. Used to gate on a prerequisite.
HIDEINPROGRESS resref Hides the option while this quest is in progress (started but incomplete).
QUESTINPROGRESS resref Shows the option only while this quest is in progress.
COMPLETEPROGRESS resref Shows the option only if this quest has reached 100% progress (equivalent to READY).

Modifier parameters

These can be combined with any of the above:

Parameter Type Description
LEVEL int Overrides the level check. Normally the evaluator uses the quest's level column from the database (±2 range). Setting this forces a specific threshold.
SPEAKERTAG tag Restricts the option to a specific speaker object tag. If the current speaker's tag doesn't match, the option is hidden.
FALLBACK flag If present, allows district fallback logic to substitute a compatible quest when the primary is unavailable.

Example (modern):

Script: q_queststatusaw
QUESTRESREF: q_sewerscout
QUESTSTATE: ABSENT

Example (with parent gate):

Script: q_queststatusaw
QUESTRESREF: q_sewerscout
QUESTSTATE: ABSENT
QUESTINPROGRESS: q_foreignquarter

Venture Captain Handlers

Live in src/Quests/cv_venturecapsc.cs.

cv_venturecapsc (Condition)

Dynamic paginated quest list builder for Venture Captain NPCs. Replaces static dialogue nodes with a database-driven list.

Parameter Type Description
NODE_ID int The node index in the template conversation. Nodes 1..pageSize-2 are quest slots; pageSize-1 is Previous Page; pageSize is Next Page.

The handler reads the speaker's CONVERSATION local variable to identify which quest pool to query, then filters by:

cv_venturecat (Action)

Handles pagination and quest selection from the dynamic list.

| Parameter | None | Reads the current node text to determine action: [Next Page], [Previous Page], "Thank you for checking.", or a quest display name (starts the quest dialogue). |

cv_setfaction (Action)

Assigns a faction to the player.

Parameter Type Description
FACTION string The faction identifier to assign (e.g. sovereigncourt, libertysedge, theexchange). No-op if the player already has a faction.

cv_gethasfaction (Condition)

Checks whether the player's faction matches the parameter.

Parameter Type Description
FACTION string Special values: ANY (player has any faction), PICKFACTION (player has no faction), SPEAKERFACTION (player faction matches speaker's faction), NOTSPEAKERFACTION (player faction differs from speaker's). Otherwise compared literally against the stored faction.

Speaker-to-faction mapping:


Generic Dialogue Helpers

cv_nwnxdialog (Condition)

Generic paginated list dialog. Same pattern as cv_venturecapsc but without quest-specific filtering.

Parameter Type Description
NODE_ID int Node index within the template conversation.

Reads the speaker's CONVERSATION local variable to select the list source. Currently stubbed (returns null list).

cv_nwnxaction (Action)

Pagination handler for cv_nwnxdialog. No parameters.

cv_startdlg (Action)

Chains into another dialogue file from the current conversation.

Parameter Type Description
RESREF dlg resref The .dlg resource to open next. Starts the conversation with entry level 0 (fresh start).

cv_openstore (Action)

Opens the merchant window associated with the NPC.

Parameter Type Description
MARKUP int Percentage markup applied to store prices (0 = none).
MARKDOWN int Percentage markdown applied to sell prices (0 = none).

The actual store is resolved from the NPC's MERCHANT_RESREF local variable.

cv_openinventory (Action)

Force-opens a specific inventory container by tag.

Parameter Type Description
RESREF tag Tag of the placeable/container to open. Ends the conversation after opening.

Character Setup

cv_charsetup (Condition)

Paginated character setup menu shown at level 5.

Parameter Type Description
NODE_ID int Node index. Maps to entries in the home list (Deity Chooser, Domain Chooser, Wizard Opposed Schools, etc.).

cv_csetupat (Action)

Handles selections from the character setup menu. Opens NUI windows based on the selected action text. No parameters beyond NODE_ID (inherited from the condition).

cv_setschool (Action)

Sets a wizard's opposed school.

Parameter Type Description
SCHOOL string Spell school name (e.g. Abjuration, Conjuration, …) or reset to clear opposed schools. Must differ from the wizard's specialization.

cv_setdomain (Action)

Replaces a cleric's second domain.

Parameter Type Description
DOMAIN string Domain name from the domains 2DA (e.g. Life, Knowledge, Tempest). Cannot duplicate an existing domain.

Aeon Stone / Influence Shop

cv_aeonstart (Condition)

Paginated aeon stone purchase/influence shop menu.

Parameter Type Description
NODE_ID int Node index within the template.

Reads the speaker's CONVERSATION local variable or creature's DialogResRef to determine the shop type.

cv_aeonaction (Action)

Handles aeon stone purchases and influence shop navigation. No explicit parameters; dispatches on the current node text.

cv_scrollmaker (Action)

Opens the influence scroll crafting NUI window. No parameters. Uses callInfo.ObjectSelf as the shopkeeper reference.

cv_potionmaker (Action)

Opens the influence potion crafting NUI window. No parameters. Uses callInfo.ObjectSelf as the shopkeeper reference.


Rumors

cv_pickrumor (Condition)

Injects a random rumor into the dialogue node text.

| Parameter | None | Reads the speaker's RUMOR_TYPE local variable (default "low"). Queries gc_rumors.rumors table for a random entry of that type and replaces the placeholder text "rumortext" with the result. |


Transportation

cv_ferryman (Action)

Teleports the party to a waypoint for a gold fee.

Parameter Type Description
DESTINATION waypoint tag Tag of the target waypoint in the current area. Costs 5 gp.

cv_fishingrod (Action)

Creates a fishing rod in the player's inventory. No parameters.


Out-of-Character / Utility

ooc_teleport (Trigger)

Handles the OOC door trigger. Redirects characters with incomplete setup to the IC portal. No parameters.

enforcelegalchar (ELC Callback)

Validates character legality on save/load. No dialogue parameters; reads engine validation failure data directly.

cv_djinnattacked (Event)

Called when a djinn merchant is damaged. Spawns a respawn timer. No parameters.


Map / World Transition

worldtransition (Trigger)

Handles world map transitions. No dialogue parameters.

mapabsalom (Trigger)

Specific Absalom map transition handler. No dialogue parameters.

destroymodulate (Trigger)

Destroys modulated objects on transition. No dialogue parameters.

mapclick (Trigger)

World map click handler. No dialogue parameters.

cv_worldmapparty (Action)

Party management from the world map. No parameters.

onentermap / onexitmap (Triggers)

Map enter/exit event hooks. No dialogue parameters.


Quick-Reference: Which Handler Goes Where

Dialogue slot Script name Purpose
Reply Active (condition) q_queststatusaw Show/hide quest options
Reply Active (condition) cv_gethasfaction Gate on faction membership
Reply Active (condition) cv_venturecapsc Dynamic quest list page
Reply Active (condition) cv_nwnxdialog Generic paginated list
Reply Active (condition) cv_charsetup Character setup menu
Reply Active (condition) cv_aeonstart Aeon stone / influence shop
Reply Active (condition) cv_pickrumor Random rumor injection
Reply Script (action) q_startquestat Accept a quest
Reply Script (action) q_finishquestat Turn in a quest
Reply Script (action) cv_venturecat Paginate/select from VC list
Reply Script (action) cv_setfaction Join a faction
Reply Script (action) cv_startdlg Chain to another .dlg
Reply Script (action) cv_openstore Open merchant window
Reply Script (action) cv_openinventory Open a container
Reply Script (action) cv_csetupat Character setup selection
Reply Script (action) cv_setschool Set opposed school
Reply Script (action) cv_setdomain Replace cleric domain
Reply Script (action) cv_aeonaction Aeon stone purchase
Reply Script (action) cv_scrollmaker Open scroll craft NUI
Reply Script (action) cv_potionmaker Open potion craft NUI
Reply Script (action) cv_ferryman Teleport via ferry
Reply Script (action) cv_fishingrod Grant fishing rod
Reply Script (action) cv_nwnxaction Paginate generic list

JSON Structure Reminder

In .dlg.json files, parameters appear as key-value pairs inside:

Both use the same flat dictionary format:

{
  "type": "dictionary",
  "value": {
    "QUESTRESREF": { "type": "string", "value": "q_sewerscout" },
    "QUESTSTATE": { "type": "string", "value": "ABSENT" }
  }
}

Integer parameters (like NODE_ID, LEVEL, MARKUP, MARKDOWN) use the same structure with a numeric string value.