Heroic Labs Documentation

Configurations #

The GDK provides a number of configuration parameters that you can use to customize the default user experience for the GDK systems.

Achievements #

PropertySubpropertyDescription
auto_claimWhether the achievement reward should be given automatically upon completion.
auto_claim_totalWhether the achievement total reward should be given automatically upon completing this and all sub-achievements.
auto_resetWhether the achievement should reset after completion.
nameThe display friendly name of this achievement.
categoryThe category name for this achievement.
descriptionThe description for this achievement.
countThe initial count towards progress for this achievement.
max_countThe number of times this achievement can be progressed before it can be claimed.
duration_secHow long (in seconds) this achievement is available for progression after creation. Used for limited time achievements.
reset_cronexprThe reset interval in CRON format.
precondition_idsAn array of achievement ids the user must have completed to qualify for starting this achievement.
prefab_namesA list of hints (e.g. icon names) for the client.
resource_idA string hint (e.g. addressable id) for the client.
rewardAn object that defines what rewards a player should receive once they complete this achievement.
collectiblesAn array of collectibles the user should receive as a reward.
consumablesAn string:int dictionary of consumables and quantities the user should receive as a reward.
currenciesAn string:int dictionary of currencies and quantities the user should receive as a reward.
sub_achievementsAn object with the same Schema as the root achievements object, used to define nested achievements.
total_rewardAn object that defines what rewards a player should receive once they have completed this achievement and all sub achievements.
collectiblesAn array of collectibles the user should receive as a reward.
consumablesA string:int dictionary of consumables and quantities the user should receive as a reward.
currenciesA string:int dictionary of currencies and quantities the user should receive as a reward.

Economy #

User initialization #

PropertyDescription
currenciesA string:int dictionary of currencies and quantities the user should start with.
consumablesA string:int dictionary of consumables and quantities the user should start with.
collectable_idsAn array of collectables the user should start with.

Collectables #

PropertyDescription
nameThe name for this collectable.
descriptionThe description for this collectable.
categoryThe category for this collectable.
removableA bool indicating whether or not this collectable can be removed from the user’s collection.
resource_idA string hint for the client (e.g. addressable id).

Consumables #

PropertyDescription
nameThe name for this consumable.
descriptionThe description for this consumable.
categoryThe category for this consumable.
max_countThe maximum amount of this consumable a user can own.
resource_idA string hint for the client (e.g. addressable id).

Donations #

PropertySubpropertyDescription
nameThe name for this donation.
descriptionThe description for this donation.
countThe initial count to start this donation with.
max_countThe maximum amount of donations required for this to be completed.
user_contribution_max_countThe maximum amount of times each user can donate towards this donation.
duration_secHow long (in seconds) this donation is active.
rewardAn object that defines what rewards a player should receive once the donation is fulfilled.
currenciesA string:int dictionary of currencies and quantities the user should receive as a reward.
consumablesA string:int dictionary of consumables and quantities the user should receive as a reward.
collectablesAn array of collectables the user should receive as a reward.
sender_rewardAn object that defines what rewards the sender should receive once the donation is fulfilled.
currenciesA string:int dictionary of currencies and quantities the sender should receive as a reward.
consumablesA string:int dictionary of consumables and quantities the sender should receive as a reward.
collectablesAn array of collectables the sender should receive as a reward.
resource_idA string hint for the client (e.g. addressable id).

Placements #

PropertySubpropertyDescription
resource_idA string hint for the client (e.g. addressable id).
rewardAn object that defines what rewards a player should receive once they purchase this item.
currenciesA string:int dictionary of currencies and quantities the user should receive as a reward.
consumablesA string:int dictionary of consumables and quantities the user should receive as a reward.
energiesA string:int dictionary of energies and quantities the user should receive as a reward.
collectablesAn array of collectables the user should receive as a reward.

Store items #

PropertySubpropertyDescription
nameThe name for this store item.
descriptionThe description for this store item.
categoryThe category for this store item.
costThe cost for this store item, either in soft currency using the currencies subproperty or via IAP using the sku subproperty.
currenciesA string:int dictionary of currencies and quantities the user must pay to purchase this item.
skuThe SKU code of the in-app purchase the user must complete to obtain this item.
rewardAn object that defines what rewards a player should receive once they purchase this item.
currenciesA string:int dictionary of currencies and quantities the user should receive as a reward.
consumablesA string:int dictionary of consumables and quantities the user should receive as a reward.
collectablesAn array of collectables the user should receive as a reward.
resource_idA string hint for the client (e.g. addressable id).

Energy #

PropertySubpropertyDescription
start_countThe initial amount of this energy a user should start with.
max_countThe maximum amount of this energy a user can possess at any time.
refill_countThe amount of this energy refilled after each interval (defined in refill_time_sec).
refill_time_secThe time in seconds it takes for this energy to refill by refill_count amount.
implicitIf true the user starts with this energy, if false they must be granted this energy.
rewardAn object that defines what rewards a player should receive once they complete this achievement.
collectablesAn array of collectables the user should receive as a reward.
consumablesAn string:int dictionary of consumables and quantities the user should receive as a reward.
currenciesAn string:int dictionary of currencies and quantities the user should receive as a reward.

Leaderboards #

PropertySubpropertyDescription
nameThe name of this leaderboard.
descriptionThe description of this leaderboard.
operatorThe leaderboard operation (e.g. set, best, incr, or decr).
sortThe leaderboard sort type (e.g. asc or desc).
start_timeThe start time (as a UNIX timestamp) of this leaderboard.
end_timeThe end time (as a UNIX timestamp) of this leaderboard.
resetThe reset schedule of this leaderboard expressed as a CRON expression.
score_targetAn optional score target a user must reach for the leaderboard event to be considered won.
max_reroll_countThe maximum amount of times a user can reroll their score.
bucket_sizeThe size of the bucket of users when using bucketed leaderboards.
resource_idA string hint for the client (e.g. addressable field).
costAn object that defines the entry cost for this leaderboard.
currenciesA string:int dictionary of currencies and quantities the user should receive as a reward.
reward_rangesAn array of objects that define the various rewards available to players based on their final rank in the leaderboard.
rank_startThe first rank included in the reward range.
rank_endThe last rank included in the reward range.
rewardAn object that defines what rewards the players will receive. See schema below for properties.
reward_ranges_teamAn array of objects that define the various rewards available to players who participate in a team based on the team’s final rank in the leaderboard.
rank_startThe first rank included in the reward range.
rank_endThe last rank included in the reward range.
rewardAn object that defines what rewards the players will receive. See schema below for properties.

Unlockables #

Slots #

PropertySubpropertyDescription
max_active_slotsThe maximum number of slots a player can have active at any time.
active_slotsThe number of active slots, if any, each player starts with.
slotsThe total number of slots, active and inactive, a player can have.
slot_costThe cost to purchase additional active slots.
currenciesA string:int dictionary of the currencies and amounts required to purchase additional slots.

Unlockable #

PropertySubpropertyDescription
probabilityAn int value indicating the likelihood this unlockable item is the one received by the player.
nameThe name of this unlockable.
categoryThe category, if any, of this unlockable.
descriptionThe description of this unlockable.
start_costThe cost to begin unlocking this unlockable.
currenciesA string:int dictionary of the currencies and amounts required as the start cost.
wait_time_secThe total time (in seconds) a player must wait before this item in unlocked.
costThe cost to advance the wait time by one unit of time, defined in cost_unit_time_sec.
currenciesA string:int dictionary of the currencies and amounts required.
cost_unit_time_secThe amount of time to be advanced on wait_time_sec for each cost purchase.
rewardsAn object that defines what rewards the player should receive after unlocking this unlockable.
probabilityAn int value indicating the likelihood this reward is received by the player after unlocking this unlockable.
currenciesA string:int dictionary of currencies and quantities the player should receive as a reward.
consumablesA string:int dictionary of consumables and quantities the player should receive as a reward.
collectablesAn array of collectables the player should receive as a reward.
resource_idA string hint for the client (e.g. addressable id).