Journal: Adding Quest Rewards

From Baldur's Gate 3 Modding

The journal system allows us to reward the player with experience points, gold or items. Each quest step can have a reward tied to it, and the reward will be given to the player when the step unlocks.

We recommend reading the Journal Editor Overview before learning how to add quest rewards.

Setting Up Rewards

Navigate to the Quest State Properties panel in the Quests tab of the Journal Editor. There, you'll see the Rewards dropdown.

an image of the rewards in the journal editor
The Rewards dropdown in the Quest State Properties panel of the Journal Editor.

LevelOverride

This field forces the entry to a specific level, overriding the stats trigger that is set in the AreaLevelOverrideGUID field. Generally, this field can be left as is.

ExperienceReward

This dropdown contains the type of reward given. The most frequently used values are the following:

Progress

  • A small XP reward that is granted for advancing the quest by meaningful intermediate quest steps.
  • Never granted when starting a quest.
  • Not every intermediate step should have a progress reward; only the ones you feel players should be rewarded for.
  • Example use cases:
    • Players find a clue that leads to further investigation.
    • Players learn additional valuable information from an NPC.
  • The types of Progress rewards are:
    • ProgressBooster: XP given during a meaningful progression in a booster (shouldn't be used very often).
    • ProgressMajor: XP given during a meaningful progression in a quest (not the main quest).
    • ProgressMain: XP given during a meaningful progression in the main quest.

Close

  • A big XP reward that is granted upon completing a quest without combat.
  • Each situation can only have one Close reward, given when resolving the main goal of the quest.
  • Example use cases:
    • Players resolve the situation by persuading an NPC.
    • Players resolve the situation by stealing.
    • Players resolve the situation by bringing the item an NPC asked for.
  • The types of Close rewards are:
    • CloseBoosterEasy: XP given when a short/simple/easy booster is closed via a successful outcome (1 check or 1 simple action required).
    • CloseBoosterHard: XP given when a complex/tough booster is closed via a successful outcome (multiple checks, high DC or complex sequence of actions required).
    • CloseMajor: XP given when a quest is closed via a successful outcome.
    • CloseMain: XP given when the main quest is closed.

Combat Close

  • Similar to Close, but is used when a quest ends in a combat (since the combat itself will provide some additional XP).
  • The types of Combat Close rewards are:
    • CombatCloseBooster: XP given when a booster is closed after a fight.
    • CombatCloseMajor: XP given when a quest is closed after a fight.
    • CombatCloseMain: XP given when the main quest is closed after a fight.

Combat Avoidance

  • BypassedCombatMedium: XP given when a series of actions is done to overcome a combat encounter without fighting anyone.
  • It is better to use the "Peaceful Resolution" feature for combat avoidance, though. Calling the PROC_PeacefulResolve Osiris function on a character the party avoids combat with will reward the player with the exact same amount XP as if they had killed them.
    • CombatCloseBooster: Provides a static amount of XP that will never match the exact possible amount from combat.
    • PROC_PeacefulResolve: Applies a special status on characters so that killing them after resolving the situation peacefully will not reward the same XP twice.

ReputationGain

This field is deprecated and can be ignored.

Generated Rewards

  • RewardTreasureLevel: Overrides the level used by RewardTreasureTables.
  • RewardTreasureTables: All items generated by these treasure tables will be given to the player via the Reward UI panel.
    • These rewards are generated seemingly "out of thin air" and can’t be looted or pickpocketed.
  • RewardOptionalTreasureTables: Items generated by these treasure tables will be offered to the player to choose from.
    • The player will be able to choose some of the items (determined by RewardTreasureOptionalCount) as a reward. All other items will vanish.
  • RewardTreasureOptionalCount: Sets the number of items the player may pick from the RewardOptionalTreasureTables.

Carried Rewards

  • RewardCarriedTemplates: Gives the player a specific item via a GUID or a root template reference.
    • The item will be given via the Reward UI panel.
    • The item will be taken from the inventory of an entity set in the RewardCarriedOwner property.
    • If a template is specified, the first item matching the request will be returned.
    • If the item can’t be found in the inventory of the owner, nothing will be rewarded (unless the fallback is specified via RewardCarriedFallbackTreasureTable).
  • RewardCarriedGold: Gives the player a selected amount of gold from the RewardCarriedOwner's inventory.
    • If RewardCarriedOwner doesn’t have the exact amount of gold, nothing will be given.
  • RewardCarriedOwner: The container or character from which an item from RewardCarriedTemplates or gold from RewardCarriedGold will be taken.
  • RewardCarriedFallbackTreasureTable: If RewardCarriedTemplates weren't found in RewardCarriedOwner's inventory, but you still want to reward the player somehow, the reward from this treasure table will be generated instead as a fallback.

Hidden Boosters

In cases where we want to give a reward without tying it to a quest, we can use something called hidden boosters.

an image showing how to add a reward without a quest
An example of a hidden booster.

Hidden boosters need entries in their respective hidden booster quest. This is a fake quest made in an act-specific hidden boosters category of the Journal Editor.

  1. The quest is hidden by deselecting the Visible property.
  2. The Title of this quest must remain empty (%%% EMPTY). It should not be visible to the player.
  3. It must have a single objective. The Description of this objective must remain empty (%%% EMPTY). It’s not visible to the player.
  4. Each entry in this quest is one of the rewarding booster outcomes.
  5. The Description of the booster step should be empty (%%% EMPTY) if the booster is only used to provide an XP reward. However, if the booster provides an item or gold reward, the description must be written, since it is displayed in the Reward UI panel alongside the quest title. Since boosters don’t have an actual title, for boosters with gold/items rewards, the QuestTitleOverride property must be defined and written.
  6. Otherwise, the booster's step has a standard rewards setup that may reward XP, generate treasure, or give an item from the inventory of an NPC or a container.