Scoring

Scoring measures user performance during a conversation, turning NPC interactions into assessable experiences.

Two Scoring Modes

Each scenario has a scoring mode that determines how the conversation outcome is decided. You set this in the scenario configuration.

Scoring Mode (Numeric)

The default mode. The player accumulates a numeric score as they move through states. Each transition has a score_delta that adds to or subtracts from the running total when it fires.

Two thresholds control the outcome:

  • Pass threshold (default: 3) — The score the player must reach to get an ACCEPT outcome when they reach a terminal state.
  • Early fail bound (default: -3) — If the score drops to or below this value, the conversation is immediately forced to a REJECT outcome.

This mode works well for scenarios where you want nuanced progression — the player gradually earns or loses points based on how they handle each phase.

Pass/Fail Mode

A simpler binary mode. There is no numeric score accumulation. The outcome is determined entirely by which terminal state the player reaches — either they pass or they don't. A reject decision immediately ends the conversation.

Use this for scenarios with clear binary outcomes where intermediate scoring does not add value, such as access-control encounters or knowledge checks.

Scoring vs. State Transitions

Scoring and transitions serve different purposes. Transitions control the flow of the conversation — where the NPC goes next. score_delta evaluates the quality of what happened — how well the user performed.

A user might advance through every state successfully but still receive a low score if their score_delta values were negative along the way. Conversely, a user who gets kicked out early might still have accumulated positive points.

💡Choosing a scoring mode
Use scoring when partial success is meaningful and you want players to feel gradual progress. Use pass/fail when the scenario has a clear binary outcome.