Table of Contents

Ability

Ability describes the effects that occur while the trinket is equipped. Such the healing the player, harvesting a crop, attacking an enemy, and so on.

An ability is primarily defined by AbilityClass (what it does) and Proc (when does it activate). Following the successful proc of an ability, a number of proc effects can happen.

Structure

Property Type Default Notes
Id string same as AbilityClass The Id of this ability, used for ProcSyncId and content patcher EditData.
AbilityClass string "Nop" Type name of the motion class to use, can use short name like "Buff".
Refer to docs under "Ability Classes" in the table of contents for details.
Description string null String of the ability, will be used to substitute "{1}" in a trinket's description.
Proc ProcOn Footstep Make ability activate (proc) when something happens.
ProcTimer double -1 After an ability proc, prevent further activations for this amount of time.
ProcSyncId string null For use with Proc.Sync, makes this ability proc after another ability in the same level, by their Id. If set, this field takes precedence over ProcSyncIndex.
ProcSyncIndex int 0 For use with Proc.Sync, makes this ability proc after another ability in the same level, by their order in the list of abilities.
ProcSyncDelay int 0 For use for other abilities with Proc.Sync, add a delay between the proc of this ability and any sync ability listening to this one.
ProcSound string null Play a sound cue when ability procs (details)
ProcTAS List<string> null String Ids of temporary animated sprites to show when the ability activates. For most abilities, this TAS is drawn shown relative to the farmer. For Hitscan/Projectile, this TAS is shown on the targeted monster instead.
ProcOneshotAnim string null Play the matching anim clip on proc, return to normal animation after 1 cycle.
ProcSpeechBubble string null Show the matching speech bubble on proc.
ProcAltVariant string null Switch the companion to the matching alt variant on proc. Use "RECHECK" to switch
ProcChatterKey string null On the next activation of a Chatter ability, use this key instead of the normal conditional key.
Condition string null A game state query that must pass before proc.
DamageThreshold int -1 Must receive or deal this much damage before proc.
For ReceiveDamage & DamageMonster
IsBomb bool? null Must deal damage with(true)/not with(false) a bomb.
For DamageMonster & SlayMonster
IsCriticalHit bool? null Must (true)/must not(false) deal a critical hit.
For DamageMonster & SlayMonster
InCombat bool? null Must (true)/must not(false) be in combat.
"In combat" is defined as monsters in the same location, and having dealt or taken damage in the last 10 seconds.
Args Dictionary varies Arguments specific to an ability class, see respective page for details.

Ability Descriptions

Abilities are internally 0-indexed, but the displayed minimum ability can be changed in TinkerData

Then there are multiple abilities per level and a description for each, they will be joined with new line before passed to description template.

It's not neccesary to provide descriptions to all abilities in a level, often it is sufficient to describe the entire ability in 1 description on the first ability, while leaving the others blank.

Example of a description template for a trinket with 2 ability levels:

// Trinket
"Description": "My trinket {0}:\n====\n{1}"
// Tinker
"MinLevel": 2
// Tinker Abilities
[
    [   // rest of ability omitted
        {"Description": "first ability A", ...},
        {"Description": "second ability B", ...},
    ],
    [   // rest of ability omitted
        {"Description": "first ability C", ...},
        {"Description": "second ability D", ...}
    ]
]

Description when trinket has internal level 0:

My trinket 2:
====
first ability A
second ability B

Description when trinket has internal level 1:

My trinket 3:
====
first ability C
second ability D