On this page
  1. API Reference
    1. Statistics and modifiers
      1. CatalystStatistic
        1. Methods
      2. CatalystModifier
        1. Methods
      3. CatalystStatisticRefreshResult
        1. Methods
      4. CatalystModifierEvaluation
        1. Methods
      5. CatalystStatisticLayerEvaluation
        1. Methods
      6. CatalystStatisticEvaluation
        1. Methods
    2. Resources and flows
      1. CatalystResource
        1. Methods
      2. CatalystResourceChange
        1. Methods
      3. CatalystResourceFlow
        1. Methods
      4. CatalystResourceFlowResult
        1. Methods
    3. Effects
      1. CatalystEffect
        1. Methods
      2. CatalystEffectManager
        1. Methods
      3. CatalystEffectTickResult
        1. Methods
      4. CatalystEffectApplicationResult
        1. Methods
    4. Sets and previews
      1. CatalystSet
        1. Methods
      2. CatalystModifierSet
        1. Methods
      3. CatalystSetPreviewResult
        1. Methods
      4. CatalystSetPreviewEntry
        1. Methods
      5. CatalystRouteDiagnostic
        1. Methods
      6. CatalystSetApplyResult
        1. Methods
      7. CatalystSetRefreshResult
        1. Methods
      8. CatalystSetStatisticRefreshEntry
        1. Methods
      9. CatalystSetResourceRefreshEntry
        1. Methods
      10. CatalystSetDetails
        1. Methods
      11. CatalystSetStatisticDetail
        1. Methods
    5. Observation, facts, and timing
      1. CatalystSubscription
        1. Methods
      2. CatalystFactBinding
        1. Methods
      3. CatalystCountdownTracker
        1. Methods
    6. Saving and loading
      1. CatalystStateCaptureResult
        1. Methods
      2. CatalystStateRestoreResult
        1. Methods
      3. CatalystStateCallbackRequirement
        1. Methods
      4. CatalystStateCountdownTrackerRequirement
        1. Methods
      5. CatalystRepair
        1. Methods
      6. Statistic repair row
        1. Methods
      7. Resource repair row
        1. Methods
      8. Resource Flow repair row
        1. Methods
      9. Modifier repair row
        1. Methods
      10. Effect repair row
        1. Methods
      11. Effect Manager repair row
        1. Methods
    7. Global functions
    8. Package globals
    9. Enums
      1. Statistics and modifiers
      2. Resources
      3. Effects
      4. Sets and routing
      5. Timing
    10. Symbol index

API Reference

Complete reference for Catalyst’s public API. For explanations and worked examples, start with the teaching pages; this page is for looking up exact constructors, methods, return values, enums, and package-level helpers.


Statistics and modifiers

CatalystStatistic

Creates a Statistic: a number with a base value that Modifiers can change. You can also give it optional minimum and maximum values, then use SetClamped(true) to keep the final value inside those limits.

new CatalystStatistic(value, min_value, max_value)
Arguments
value Real Starting base value. ResetToStarting() returns the Statistic to this value.
min_value optional Real Lowest final value allowed when SetClamped(true) is enabled. Defaults to no lower limit.
max_value optional Real Highest final value allowed when SetClamped(true) is enabled. Defaults to no upper limit.

Methods

Identity and tags
SetIdentity()Sets this Statistic's ID. CatalystSet uses it to find the Statistic when a Modifier targets that ID, and your own code can also use it for lookup.
GetIdentity()Returns the statistic's ID.
SetName()Sets the statistic name.
GetName()Returns the statistic name.
AddTag()Adds a tag if absent.
RemoveTag()Removes every matching tag.
HasTag()Returns whether this statistic has a tag.
ClearTags()Removes every tag.
Layers and modifier order
SetLayerOrder()Sets the exact order in which this Statistic processes Modifier layers. A Modifier whose layer is not in this array will be skipped, so include every layer you intend this Statistic to use.
GetLayerOrder()Returns a new array containing the configured evaluation-layer order.
SetModifierOrder()Chooses whether ADD Modifiers run before MULTIPLY Modifiers, MULTIPLY runs first, or all Modifiers follow attachment order inside each layer.
GetModifierOrder()Returns how ADD and MULTIPLY Modifiers are ordered inside each configured layer.
HasLayer()Returns whether this Statistic uses the given layer.
Modifier management
AddModifier()Attaches a standalone Modifier so it can affect this Statistic. A Modifier already owned by an Effect must be added through that Effect instead. If the Modifier has a different target ID, Catalyst warns but still allows this direct attachment.
DetachModifier()Removes a standalone Modifier from this Statistic without destroying it, so you can attach it again later. Effect-owned Modifiers must be removed through their Effect instead.
DestroyModifier()Removes this exact standalone Modifier from the Statistic and destroys it so it cannot be reused.
DestroyAllModifiers()Removes and destroys every standalone Modifier attached directly to this Statistic. Modifiers owned by active Effects are left alone.
DestroyModifiersBySourceLabel()Destroys all modifiers with one source label.
DestroyModifiersBySourceId()Destroys every attached Modifier whose source ID exactly matches the value you provide.
DestroyModifiersBySourceMeta()Destroys every attached Modifier for which your callback returns true after receiving the extra source data stored with SetSourceMeta().
DestroyModifiersByTag()Destroys every attached modifier carrying one tag.
GetModifiers()Returns a new array containing every Modifier currently attached to this Statistic.
FindModifiersBySourceId()Returns attached Modifiers whose source ID exactly matches the value you provide.
FindModifiersBySourceLabel()Finds attached modifiers with one source label.
FindModifiersBySourceMeta()Returns attached Modifiers for which your callback returns true after receiving the extra source data stored with SetSourceMeta().
HasModifierFromSourceId()Returns true when at least one attached Modifier has a source ID exactly matching the value you provide.
HasModifierFromSourceLabel()Returns whether any attached modifier has one source label.
HasModifierFromSourceMeta()Returns true when your callback returns true for the extra source data stored on at least one attached Modifier with SetSourceMeta().
HasModifier()Returns whether this exact Modifier is attached to the Statistic.
Evaluation and observation
Refresh()Recalculates the Statistic now and runs OnChange callbacks if its value changed.
GetValue()Returns the current Statistic value, recalculating it first when needed.
Evaluate()Calculates what this Statistic would be for the supplied Oracle Fact query. The result is temporary: it does not replace the stored current value and does not run OnChange callbacks.
Explain()Calculates the Statistic and returns a breakdown showing the base value, each layer, and what every Modifier did. This does not change the stored current value.
Preview()Shows what the value would be with one extra Modifier, without attaching it.
PreviewModifiers()Shows what the value would be with extra Modifiers, without attaching them.
OnChange()Adds a callback that runs whenever the Statistic's stored current value changes. Catalyst calls it as fn(statistic, previous, current). Keep the returned CatalystSubscription if you may want to stop listening later.
Facts and post-processing
SetFactView()Gives this Statistic an OracleFactView to read whenever a base function, condition, stack function, or post-process function needs Facts.
ClearFactView()Stops using the current FactView and marks the Statistic for recalculation.
GetFactView()Returns the currently bound FactView.
SetPostProcess()Sets a final adjustment function that runs after all Modifiers, but before the minimum/maximum limit and rounding step are applied.
ClearPostProcess()Removes the post-process callback.
SetClamped()Chooses whether the final value is kept between this Statistic's minimum and maximum. When disabled, those limits are stored but do not restrict the value.
SetRoundingStep()Rounds the final value to the nearest multiple of a positive step. For example, 1 rounds to whole numbers and 0.25 rounds to quarter steps.
ClearRounding()Disables final rounding without changing other evaluation configuration.
PublishToFact()Publishes this Statistic into an Oracle Facts scope under the key you provide, then keeps that Fact updated whenever the Statistic changes.
Base value and bounds
SetBaseValue()Sets the base value before modifiers.
SetBaseFunc()Replaces the stored base value with a function. Each time Catalyst calculates the Statistic, it calls this function with the Statistic and the same captured set of current Facts used for the rest of that calculation.
ClearBaseFunc()Returns base evaluation to the stored base value.
SetMaxValue()Sets the maximum used when clamping is enabled.
SetMinValue()Sets the minimum used when clamping is enabled.
ChangeBaseValue()Changes the stored base value by the amount supplied. Positive values increase it and negative values decrease it.
ChangeMaxValue()Changes the clamp maximum by the amount supplied. Positive values increase it and negative values decrease it.
ChangeMinValue()Changes the clamp minimum by the amount supplied. Positive values increase it and negative values decrease it.
ResetToStarting()Restores the base value captured when this statistic was constructed.
ResetAll()Resets the Statistic settings and destroys its Modifiers while keeping the starting value, name, ID, layer order, and Modifier order.
GetStartingValue()Returns the original constructor value.
GetBaseValue()Returns the stored base value before modifiers.
GetMaxValue()Returns the maximum used when SetClamped(true) is enabled.
GetMinValue()Returns the minimum used when SetClamped(true) is enabled.
Debugging
DebugDescribe()Writes the Statistic and its Explain() details to Echo debug output.
SetLayerOrder(layers)

Sets the exact order in which this Statistic processes Modifier layers. A Modifier whose layer is not in this array will be skipped, so include every layer you intend this Statistic to use.

Arguments
layers Array<Any> Layer IDs in the order they should be calculated. Each ID must be unique; strings and finite numbers are supported.
Returns
GetLayerOrder()

Returns a new array containing the configured evaluation-layer order.

Returns
Array<Any> layer identities in evaluation order.
SetModifierOrder(order)

Chooses whether ADD Modifiers run before MULTIPLY Modifiers, MULTIPLY runs first, or all Modifiers follow attachment order inside each layer.

Arguments
order Real Ordering rule from eCatModifierOrder: ADD_FIRST, MULTIPLY_FIRST, or ATTACHMENT_ORDER.
Returns
GetModifierOrder()

Returns how ADD and MULTIPLY Modifiers are ordered inside each configured layer.

Returns
Real eCatModifierOrder value.
HasLayer(layer)

Returns whether this Statistic uses the given layer.

Arguments
layer String,Real Layer ID to check.
Returns
Bool Whether the layer exists.
AddModifier(modifier)

Attaches a standalone Modifier so it can affect this Statistic. A Modifier already owned by an Effect must be added through that Effect instead. If the Modifier has a different target ID, Catalyst warns but still allows this direct attachment.

Arguments
modifier Struct.CatalystModifier Detached standalone Modifier to attach.
Returns
DetachModifier(modifier)

Removes a standalone Modifier from this Statistic without destroying it, so you can attach it again later. Effect-owned Modifiers must be removed through their Effect instead.

Arguments
modifier Struct.CatalystModifier Exact standalone Modifier to detach.
Returns
Bool Whether it was attached.
DestroyModifier(modifier)

Removes this exact standalone Modifier from the Statistic and destroys it so it cannot be reused.

Arguments
modifier Struct.CatalystModifier Exact Modifier to destroy.
Returns
Bool Whether it was attached and destroyed.
DestroyAllModifiers()

Removes and destroys every standalone Modifier attached directly to this Statistic. Modifiers owned by active Effects are left alone.

Returns
DestroyModifiersBySourceLabel(source_label)

Destroys all modifiers with one source label.

Arguments
source_label String Source label to match.
Returns
Real Number destroyed.
DestroyModifiersBySourceId(source_id)

Destroys every attached Modifier whose source ID exactly matches the value you provide.

Arguments
source_id Any Source ID value to match exactly.
Returns
Real Number destroyed.
DestroyModifiersBySourceMeta(predicate_func)

Destroys every attached Modifier for which your callback returns true after receiving the extra source data stored with SetSourceMeta().

Arguments
predicate_func Function Function called as fn(source_meta), where source_meta is the extra data stored with SetSourceMeta(). Return true for Modifiers you want to match.
Returns
Real Number destroyed.
DestroyModifiersByTag(tag)

Destroys every attached modifier carrying one tag.

Arguments
tag String Tag to match.
Returns
Real Number destroyed.
GetModifiers()

Returns a new array containing every Modifier currently attached to this Statistic.

Returns
Array<Struct.CatalystModifier> Attached modifiers.
FindModifiersBySourceId(source_id)

Returns attached Modifiers whose source ID exactly matches the value you provide.

Arguments
source_id Any Source ID value to match exactly.
Returns
Array<Struct.CatalystModifier> Matching modifiers.
FindModifiersBySourceLabel(source_label)

Finds attached modifiers with one source label.

Arguments
source_label String Source label to match.
Returns
Array<Struct.CatalystModifier> Matching modifiers.
FindModifiersBySourceMeta(predicate_func)

Returns attached Modifiers for which your callback returns true after receiving the extra source data stored with SetSourceMeta().

Arguments
predicate_func Function Function called as fn(source_meta), where source_meta is the extra data stored with SetSourceMeta(). Return true for Modifiers you want to match.
Returns
Array<Struct.CatalystModifier> Matching modifiers.
HasModifierFromSourceId(source_id)

Returns true when at least one attached Modifier has a source ID exactly matching the value you provide.

Arguments
source_id Any Source ID value to match exactly.
Returns
Bool Whether a match exists.
HasModifierFromSourceLabel(source_label)

Returns whether any attached modifier has one source label.

Arguments
source_label String Source label to match.
Returns
Bool Whether a match exists.
HasModifierFromSourceMeta(predicate_func)

Returns true when your callback returns true for the extra source data stored on at least one attached Modifier with SetSourceMeta().

Arguments
predicate_func Function Function called as fn(source_meta), where source_meta is the extra data stored with SetSourceMeta(). Return true for Modifiers you want to match.
Returns
Bool Whether a match exists.
HasModifier(modifier)

Returns whether this exact Modifier is attached to the Statistic.

Arguments
modifier Struct.CatalystModifier Modifier to check.
Returns
Bool Whether it is attached.
Refresh()

Recalculates the Statistic now and runs OnChange callbacks if its value changed.

Returns
Struct.CatalystStatisticRefreshResult Refresh result.
GetValue()

Returns the current Statistic value, recalculating it first when needed.

Returns
Real Current value.
Evaluate([query])

Calculates what this Statistic would be for the supplied Oracle Fact query. The result is temporary: it does not replace the stored current value and does not run OnChange callbacks.

Arguments
query optional Struct.OracleFactQuery,Struct Optional Oracle Fact query to use for this one calculation instead of the Statistic's normal FactView state.
Returns
Real One-off value.
Explain([query])

Calculates the Statistic and returns a breakdown showing the base value, each layer, and what every Modifier did. This does not change the stored current value.

Arguments
query optional Struct.OracleFactQuery,Struct Optional Oracle Fact query to use for this one calculation instead of the Statistic's normal FactView state.
Returns
Struct.CatalystStatisticEvaluation Details showing how the value was calculated.
Preview(modifier, [query])

Shows what the value would be with one extra Modifier, without attaching it.

Arguments
modifier Struct.CatalystModifier Modifier to include temporarily.
query optional Struct.OracleFactQuery,Struct Optional Oracle Fact query to use for this one calculation instead of the Statistic's normal FactView state.
Returns
Real Preview value.
PreviewModifiers(modifiers, [query])

Shows what the value would be with extra Modifiers, without attaching them.

Arguments
modifiers Array<Struct.CatalystModifier> Modifiers to include temporarily.
query optional Struct.OracleFactQuery,Struct Optional Oracle Fact query to use for this one calculation instead of the Statistic's normal FactView state.
Returns
Real Preview value.
OnChange(callback)

Adds a callback that runs whenever the Statistic's stored current value changes. Catalyst calls it as fn(statistic, previous, current). Keep the returned CatalystSubscription if you may want to stop listening later.

Arguments
callback Function Function called as fn(statistic, previous, current) after the stored value changes.
Returns
Struct.CatalystSubscription,Undefined Subscription you can later Unsubscribe(), or undefined if the callback was not valid.
SetFactView(fact_view)

Gives this Statistic an OracleFactView to read whenever a base function, condition, stack function, or post-process function needs Facts.

Arguments
fact_view Struct.OracleFactView Oracle FactView the Statistic should read from.
Returns
ClearFactView()

Stops using the current FactView and marks the Statistic for recalculation.

Returns
GetFactView()

Returns the currently bound FactView.

Returns
Struct.OracleFactView,Undefined Bound FactView, or undefined.
SetPostProcess(fn)

Sets a final adjustment function that runs after all Modifiers, but before the minimum/maximum limit and rounding step are applied.

Arguments
fn Function Function called as fn(statistic, value, facts). Return the final number you want Catalyst to continue with.
Returns
ClearPostProcess()

Removes the post-process callback.

Returns
SetClamped([enabled])

Chooses whether the final value is kept between this Statistic's minimum and maximum. When disabled, those limits are stored but do not restrict the value.

Arguments
enabled optional Bool true to keep the final value between the minimum and maximum; false to allow values outside them.
Returns
SetRoundingStep(step)

Rounds the final value to the nearest multiple of a positive step. For example, 1 rounds to whole numbers and 0.25 rounds to quarter steps.

Arguments
step Real Positive rounding step, such as 1 or 0.01.
Returns
ClearRounding()

Disables final rounding without changing other evaluation configuration.

Returns
SetName(name)

Sets the statistic name.

Arguments
name String New name.
Returns
GetName()

Returns the statistic name.

Returns
String Current name.
SetIdentity(identity)

Sets this Statistic's ID. CatalystSet uses it to find the Statistic when a Modifier targets that ID, and your own code can also use it for lookup.

Arguments
identity String,Real,Undefined ID to use. Give a non-empty string or finite number, or undefined to remove the current ID.
Returns
GetIdentity()

Returns the statistic's ID.

Returns
String,Real,Undefined Current ID, or undefined.
SetBaseValue(amount)

Sets the base value before modifiers.

Arguments
amount Real New base value.
Returns
SetBaseFunc(fn)

Replaces the stored base value with a function. Each time Catalyst calculates the Statistic, it calls this function with the Statistic and the same captured set of current Facts used for the rest of that calculation.

Arguments
fn Function Function called as fn(statistic, facts). Return the base number Catalyst should use before Modifiers.
Returns
ClearBaseFunc()

Returns base evaluation to the stored base value.

Returns
SetMaxValue(amount)

Sets the maximum used when clamping is enabled.

Arguments
amount Real New maximum.
Returns
SetMinValue(amount)

Sets the minimum used when clamping is enabled.

Arguments
amount Real New minimum.
Returns
ChangeBaseValue(amount)

Changes the stored base value by the amount supplied. Positive values increase it and negative values decrease it.

Arguments
amount Real Amount to change by. Use a positive number to increase or a negative number to decrease.
Returns
ChangeMaxValue(amount)

Changes the clamp maximum by the amount supplied. Positive values increase it and negative values decrease it.

Arguments
amount Real Amount to change by. Use a positive number to increase or a negative number to decrease.
Returns
ChangeMinValue(amount)

Changes the clamp minimum by the amount supplied. Positive values increase it and negative values decrease it.

Arguments
amount Real Amount to change by. Use a positive number to increase or a negative number to decrease.
Returns
ResetToStarting()

Restores the base value captured when this statistic was constructed.

Returns
ResetAll()

Resets the Statistic settings and destroys its Modifiers while keeping the starting value, name, ID, layer order, and Modifier order.

Returns
GetStartingValue()

Returns the original constructor value.

Returns
Real Starting value.
GetBaseValue()

Returns the stored base value before modifiers.

Returns
Real Base value.
GetMaxValue()

Returns the maximum used when SetClamped(true) is enabled.

Returns
Real Maximum.
GetMinValue()

Returns the minimum used when SetClamped(true) is enabled.

Returns
Real Minimum.
AddTag(tag)

Adds a tag if absent.

Arguments
tag String Tag to add.
Returns
RemoveTag(tag)

Removes every matching tag.

Arguments
tag String Tag to remove.
Returns
HasTag(tag)

Returns whether this statistic has a tag.

Arguments
tag String Tag to query.
Returns
Bool Whether the tag exists.
ClearTags()

Removes every tag.

Returns
PublishToFact(facts, key, [transform])

Publishes this Statistic into an Oracle Facts scope under the key you provide, then keeps that Fact updated whenever the Statistic changes.

Arguments
facts Struct.OracleFacts Oracle Facts scope that should receive the published value.
key String Name of the Fact to write, such as "health_fraction".
transform optional Function Optional function called as fn(statistic). Return the value you want stored in Oracle instead of the raw Statistic value.
Returns
Struct.CatalystFactBinding,Undefined Binding that keeps the Fact updated, or undefined if the Oracle target or key was invalid.
DebugDescribe()

Writes the Statistic and its Explain() details to Echo debug output.

Returns
Undefined No return value.

CatalystModifier

Creates a Modifier that can change a CatalystStatistic when attached. Choose whether it adds to the value, multiplies it, or forces a minimum/maximum using eCatMathOps.

new CatalystModifier(value, math_operation, duration, source_label, source_id, source_meta)
Arguments
value Real Amount used by the Modifier. Its meaning depends on _math_operation; for example ADD 5 adds 5, while MULTIPLY 0.5 increases the value by 50%.
math_operation Real How this Modifier changes the Statistic. Use eCatMathOps.ADD, MULTIPLY, FORCE_MIN, or FORCE_MAX.
duration optional Real How long the Modifier lasts once attached. Negative means permanent, positive counts down, and zero expires immediately when attached.
source_label optional String Optional human-readable label for what created the Modifier, such as "poison" or "iron_sword".
source_id optional Any Optional value your game can use to identify the exact source that created this Modifier.
source_meta optional Any Optional extra project data to store with the Modifier. Catalyst does not interpret it.

Methods

Identity and routing
SetIdentity()Sets an optional ID for this Modifier so your own code or Catalyst's save/restore tools can identify it.
GetIdentity()Returns the modifier's optional ID.
SetTargetIdentity()Sets the ID of the Statistic this Modifier should affect when passed through a CatalystSet. CatalystSet uses this ID to find the matching Statistic automatically.
GetTargetIdentity()Returns the Statistic ID CatalystSet uses to decide which Statistic this Modifier should attach to.
SetLayer()Chooses which Statistic layer contains this ADD or MULTIPLY Modifier. The target Statistic must include this layer in its layer order or the Modifier will be skipped.
Value and stacks
SetValue()Changes the modifier's base value.
SetMathsOp()Changes the math this Modifier uses when applied to a Statistic.
SetStacks()Sets how many copies, or stacks, of this Modifier are active. Catalyst limits the result to max_stacks.
AddStacks()Adds or removes stacks from the Modifier.
SetMaxStacks()Sets the maximum number of stacks this Modifier can use.
SetStackMode()Chooses how multiple stacks work for MULTIPLY. COMPOUND applies the multiplier once per stack; ADDITIVE combines the percentage change before multiplying.
GetStackMode()Returns the multiplicative stack mode.
SetStackFunc()Lets a function decide the Modifier's stack count each time the Statistic is calculated, instead of using the stored stacks value.
ClearStackFunc()Stops calculating stacks from a function and uses the stored stack count again.
Conditions and families
SetCondition()Sets a function that can turn this Modifier on or off for each Statistic calculation by returning true or false.
ClearCondition()Removes the condition so this Modifier can always apply.
SetFamily()Groups this Modifier with other Modifiers using the same family ID. The family mode decides whether all members apply or Catalyst chooses only the strongest/weakest.
ClearFamily()Removes this Modifier from its family.
SetFamilyMode()Changes the rule used when this Modifier is compared with other members of the same family.
SetFamilyScope()Chooses whether this Modifier competes with same-family Modifiers only in its own layer or anywhere in the Statistic.
Source metadata and tags
SetSourceLabel()Sets a human-readable label describing what created this Modifier. Source labels are useful for finding or removing groups of Modifiers later.
SetSourceId()Stores a source ID for this Modifier. Catalyst does not interpret the value; you can use it to match the exact gameplay source later.
SetSourceMeta()Stores extra project data about the Modifier's source. Catalyst keeps the value but does not interpret it.
AddTag()Adds a tag if it is not already present.
RemoveTag()Removes every matching tag.
HasTag()Returns whether this modifier has one tag.
ClearTags()Removes every tag.
Timing
SetCountdownTracker()Chooses which CatalystCountdownTracker counts down this Modifier while it is attached directly to a Statistic. A Modifier owned by an Effect uses the Effect's tracker instead.
GetCountdownTracker()Returns the standalone countdown tracker assigned to this modifier.
SetDuration()Replaces both the remaining time and the reset duration for this standalone Modifier. If it is already attached and you set zero, it expires immediately.
ResetDuration()Resets the remaining time to this Modifier's configured maximum duration. If that maximum is zero and the Modifier is attached, it expires immediately.
Lifecycle
Destroy()Destroys this Modifier. By default Catalyst first removes it from the Statistic it is attached to; pass false only when the caller has already handled that removal.
SetIdentity(identity)

Sets an optional ID for this Modifier so your own code or Catalyst's save/restore tools can identify it.

Arguments
identity String,Real,Undefined Non-empty string or finite number used as an ID to store, or undefined to clear.
Returns
GetIdentity()

Returns the modifier's optional ID.

Returns
String,Real,Undefined The configured ID, or undefined.
SetTargetIdentity(identity)

Sets the ID of the Statistic this Modifier should affect when passed through a CatalystSet. CatalystSet uses this ID to find the matching Statistic automatically.

Arguments
identity String,Real,Undefined ID of the target Statistic, or undefined to remove the target.
Returns
GetTargetIdentity()

Returns the Statistic ID CatalystSet uses to decide which Statistic this Modifier should attach to.

Returns
String,Real,Undefined The target ID, or undefined.
SetValue(value)

Changes the modifier's base value.

Arguments
value Real New modifier value.
Returns
SetMathsOp(maths_op)

Changes the math this Modifier uses when applied to a Statistic.

Arguments
maths_op Real New operation from eCatMathOps: ADD, MULTIPLY, FORCE_MIN, or FORCE_MAX.
Returns
SetLayer(layer)

Chooses which Statistic layer contains this ADD or MULTIPLY Modifier. The target Statistic must include this layer in its layer order or the Modifier will be skipped.

Arguments
layer String,Real Layer ID used by the target Statistic.
Returns
SetStacks(stacks)

Sets how many copies, or stacks, of this Modifier are active. Catalyst limits the result to max_stacks.

Arguments
stacks Real Desired stack count.
Returns
AddStacks([delta])

Adds or removes stacks from the Modifier.

Arguments
delta optional Real Amount to add, defaults to one stack.
Returns
SetMaxStacks(max)

Sets the maximum number of stacks this Modifier can use.

Arguments
max Real Maximum stacks, use infinity for unlimited.
Returns
SetStackMode(mode)

Chooses how multiple stacks work for MULTIPLY. COMPOUND applies the multiplier once per stack; ADDITIVE combines the percentage change before multiplying.

Arguments
mode Real Use eCatStackMode.COMPOUND or eCatStackMode.ADDITIVE.
Returns
GetStackMode()

Returns the multiplicative stack mode.

Returns
Real Current eCatStackMode value.
SetCondition(fn)

Sets a function that can turn this Modifier on or off for each Statistic calculation by returning true or false.

Arguments
fn Function Function called as fn(statistic, facts). Return true to let the Modifier apply or false to skip it.
Returns
ClearCondition()

Removes the condition so this Modifier can always apply.

Returns
SetStackFunc(fn)

Lets a function decide the Modifier's stack count each time the Statistic is calculated, instead of using the stored stacks value.

Arguments
fn Function Function called as fn(statistic, facts). Return the number of stacks Catalyst should use.
Returns
ClearStackFunc()

Stops calculating stacks from a function and uses the stored stack count again.

Returns
SetFamily(family, [mode])

Groups this Modifier with other Modifiers using the same family ID. The family mode decides whether all members apply or Catalyst chooses only the strongest/weakest.

Arguments
family String,Real Shared string or number ID used to group related Modifiers into the same family.
mode optional Real Family rule from eCatFamilyMode. Defaults to STRONGEST; STACK_ALL and WEAKEST are also available.
Returns
ClearFamily()

Removes this Modifier from its family.

Returns
SetFamilyMode(mode)

Changes the rule used when this Modifier is compared with other members of the same family.

Arguments
mode Real Use eCatFamilyMode.STACK_ALL, STRONGEST, or WEAKEST.
Returns
SetFamilyScope(scope)

Chooses whether this Modifier competes with same-family Modifiers only in its own layer or anywhere in the Statistic.

Arguments
scope Real Use eCatFamilyScope.LAYER or eCatFamilyScope.STATISTIC.
Returns
SetSourceLabel(source_label)

Sets a human-readable label describing what created this Modifier. Source labels are useful for finding or removing groups of Modifiers later.

Arguments
source_label String New label.
Returns
SetSourceId(source_id)

Stores a source ID for this Modifier. Catalyst does not interpret the value; you can use it to match the exact gameplay source later.

Arguments
source_id Any New source ID.
Returns
SetSourceMeta(source_meta)

Stores extra project data about the Modifier's source. Catalyst keeps the value but does not interpret it.

Arguments
source_meta Any Extra project data to store with this Modifier.
Returns
SetCountdownTracker(tracker)

Chooses which CatalystCountdownTracker counts down this Modifier while it is attached directly to a Statistic. A Modifier owned by an Effect uses the Effect's tracker instead.

Arguments
tracker Struct.CatalystCountdownTracker,Noone Tracker to assign, or noone to disable tracking.
Returns
GetCountdownTracker()

Returns the standalone countdown tracker assigned to this modifier.

Returns
Struct.CatalystCountdownTracker,Noone Assigned tracker, or noone.
SetDuration(duration)

Replaces both the remaining time and the reset duration for this standalone Modifier. If it is already attached and you set zero, it expires immediately.

Arguments
duration Real New duration. Negative means permanent, positive counts down, and zero expires immediately while attached.
Returns
Struct.CatalystModifier,Undefined Self, or undefined when the attached modifier expires immediately.
ResetDuration()

Resets the remaining time to this Modifier's configured maximum duration. If that maximum is zero and the Modifier is attached, it expires immediately.

Returns
Struct.CatalystModifier,Undefined Self, or undefined when the configured duration expires immediately.
AddTag(tag)

Adds a tag if it is not already present.

Arguments
tag String Tag to add.
Returns
RemoveTag(tag)

Removes every matching tag.

Arguments
tag String Tag to remove.
Returns
HasTag(tag)

Returns whether this modifier has one tag.

Arguments
tag String Tag to test.
Returns
Bool Whether the tag exists.
ClearTags()

Removes every tag.

Returns
Destroy([remove_from_stat])

Destroys this Modifier. By default Catalyst first removes it from the Statistic it is attached to; pass false only when the caller has already handled that removal.

Arguments
remove_from_stat optional Bool true to remove the Modifier from its Statistic before destroying it. Defaults to true.
Returns
Undefined No return value.

CatalystStatisticRefreshResult

Stores the before-and-after values from Statistic.Refresh(), along with whether the value actually changed.

Methods

MethodWhat it does
DidChange()Returns whether the value changed.
GetPrevious()Returns the value before the refresh.
GetCurrent()Returns the value after the refresh.
DidChange()

Returns whether the value changed.

Returns
Bool Whether the value changed.
GetPrevious()

Returns the value before the refresh.

Returns
Real Previous value.
GetCurrent()

Returns the value after the refresh.

Returns
Real Current value.

CatalystModifierEvaluation

Describes what happened to one Modifier while Catalyst calculated a Statistic, including whether it applied, how many stacks were used, and the value before and after it.

Methods

MethodWhat it does
GetModifier()Returns the Modifier these calculation details belong to.
Applied()Returns whether the Modifier affected the calculation.
GetSkipReason()Returns why this Modifier did not affect the Statistic. Returns eCatModifierSkipReason.NONE when it was not skipped.
GetEffectiveStacks()Returns the number of Modifier stacks Catalyst actually used for this calculation.
WonFamily()Returns whether the family rules allowed this Modifier to apply.
GetContribution()Returns how much this Modifier changed the value at its point in the calculation.
GetValueBefore()Returns the value immediately before this Modifier was applied.
GetValueAfter()Returns the value immediately after this Modifier was applied.
GetModifier()

Returns the Modifier these calculation details belong to.

Returns
Struct.CatalystModifier The modifier.
Applied()

Returns whether the Modifier affected the calculation.

Returns
Bool Whether it applied.
GetSkipReason()

Returns why this Modifier did not affect the Statistic. Returns eCatModifierSkipReason.NONE when it was not skipped.

Returns
GetEffectiveStacks()

Returns the number of Modifier stacks Catalyst actually used for this calculation.

Returns
Real Effective stacks.
WonFamily()

Returns whether the family rules allowed this Modifier to apply.

Returns
Bool True if the Modifier won its family or did not need to compete.
GetContribution()

Returns how much this Modifier changed the value at its point in the calculation.

Returns
Real Value after minus value before.
GetValueBefore()

Returns the value immediately before this Modifier was applied.

Returns
Real Value before.
GetValueAfter()

Returns the value immediately after this Modifier was applied.

Returns
Real Value after.

CatalystStatisticLayerEvaluation

Groups the calculation details for all Modifiers that were processed in one Statistic layer.

Methods

MethodWhat it does
GetLayer()Returns this Layer ID.
GetModifierResults()Returns the Modifier details for this layer.
GetLayer()

Returns this Layer ID.

Returns
String,Real Layer ID.
GetModifierResults()

Returns the Modifier details for this layer.

Returns
Array<Struct.CatalystModifierEvaluation> Modifier details.

CatalystStatisticEvaluation

Contains the final Statistic value plus a breakdown of the base value, layers, and Modifiers that produced it. This is the result returned by Explain().

Methods

MethodWhat it does
GetValue()Returns the final evaluated value.
GetBaseValue()Returns the base number Catalyst started with for this calculation, after SetBaseFunc() was used if one is configured.
GetModifierResults()Returns the details for every Modifier in this calculation.
GetLayers()Returns the layer details in evaluation order.
GetValue()

Returns the final evaluated value.

Returns
Real Final value.
GetBaseValue()

Returns the base number Catalyst started with for this calculation, after SetBaseFunc() was used if one is configured.

Returns
Real Base number used for this calculation.
GetModifierResults()

Returns the details for every Modifier in this calculation.

Returns
Array<Struct.CatalystModifierEvaluation> Modifier details.
GetLayers()

Returns the layer details in evaluation order.

Returns
Array<Struct.CatalystStatisticLayerEvaluation> Layer details.

Resources and flows

CatalystResource

Creates a Resource: a current amount with a minimum and maximum, useful for values such as health, stamina, fuel, stock, or capacity. Number bounds create private Statistics; passing existing Statistics makes the Resource share those live bounds.

new CatalystResource(maximum, current, minimum)
Arguments
maximum Real,Struct.CatalystStatistic Maximum amount, or an existing Statistic whose current value should act as the maximum.
current optional Real Starting current amount. If omitted, the Resource starts at its maximum.
minimum optional Real,Struct.CatalystStatistic Minimum amount, or an existing Statistic whose current value should act as the minimum. Defaults to 0.

Methods

Identity
SetIdentity()Sets this Resource's ID so a CatalystSet and your own code can find it later.
GetIdentity()Returns the Resource ID.
SetName()Sets the resource name.
GetName()Returns the resource name.
Values and bounds
GetCurrent()Returns the current amount. If a HARD minimum or maximum Statistic changed since the last check, Catalyst first moves current back inside those absolute bounds.
GetMinimum()Returns the Resource's current minimum after its minimum Statistic has been calculated.
GetMaximum()Returns the current maximum. If the minimum rises above it, the minimum wins.
SetMinimumBoundMode()Chooses how the minimum affects current. HARD never allows current below it. SOFT stops ordinary decreases at the minimum but explicit past-bound methods can go below it. OPEN does not restrict current at all.
GetMinimumBoundMode()Returns how the minimum constrains current.
SetMaximumBoundMode()Chooses how the maximum affects current. HARD never allows current above it. SOFT stops ordinary increases at the maximum but explicit past-bound methods can go above it. OPEN does not restrict current at all.
GetMaximumBoundMode()Returns how the maximum constrains current.
GetFraction()Returns the Resource's position between its minimum and maximum as a number from 0 to 1. Values below the minimum return 0, values above the maximum return 1, and a Resource whose minimum equals its maximum returns 1.
GetMissing()Returns how much could be added before current reaches the Resource's current maximum. Returns zero if current is already at or above the maximum.
GetOverflow()Returns how far current is above the Resource's current maximum.
GetUnderflow()Returns how far current is below the Resource's current minimum.
IsEmpty()Returns whether current is at or below the Resource's current minimum.
IsFull()Returns whether current is at or above the Resource's current maximum.
SetCurrent()Sets current to a specific value. HARD bounds still cannot be crossed, but SOFT and OPEN bounds allow you to place current outside the usual minimum/maximum range.
Change()Changes the current amount. Positive values increase it and negative values decrease it. HARD bounds cannot be crossed, and ordinary movement stops at SOFT bounds.
ChangePastBounds()Changes the current amount while allowing it to pass SOFT bounds. Positive values increase it and negative values decrease it. HARD bounds still cannot be crossed.
Increase()Adds a positive amount to current. The value stops at a SOFT maximum and can never pass a HARD maximum.
IncreasePastMaximum()Adds a positive amount to current and allows it to pass a SOFT maximum. A HARD maximum still cannot be crossed.
Decrease()Subtracts a positive amount from current. The value stops at a SOFT minimum and can never pass a HARD minimum.
DecreasePastMinimum()Subtracts a positive amount from current and allows it to pass a SOFT minimum. A HARD minimum still cannot be crossed.
Fill()Raises current to the Resource's current maximum when it is below maximum. If current is already above maximum, that overflow is left unchanged.
Empty()Lowers current to the Resource's current minimum when it is above minimum. If current is already below minimum, that underflow is left unchanged.
Refresh()Recalculates the minimum and maximum Statistics, then checks current against the latest HARD bounds. Use this when bound Statistics may have changed and you want the Resource updated immediately.
SetMinimum()Changes the minimum's base value when this Resource owns its minimum Statistic. If the minimum is sharing an external Statistic, call UnbindMinimumStatistic() first.
SetMaximum()Changes the maximum's base value when this Resource owns its maximum Statistic. If the maximum is sharing an external Statistic, call UnbindMaximumStatistic() first.
Dynamic bounds
BindMinimumStatistic()Makes this Resource use an existing CatalystStatistic as its minimum. Because the Statistic is shared, changes to it change the Resource's minimum.
BindMaximumStatistic()Makes this Resource use an existing CatalystStatistic as its maximum. Because the Statistic is shared, changes to it change the Resource's maximum.
UnbindMinimumStatistic()Stops sharing the external minimum Statistic. Catalyst creates a new internal Statistic starting at the external minimum's current value.
UnbindMaximumStatistic()Stops sharing the external maximum Statistic. Catalyst creates a new internal Statistic starting at the external maximum's current value.
IsMinimumBound()Returns whether the minimum Statistic is using an external Statistic.
IsMaximumBound()Returns whether the maximum Statistic is using an external Statistic.
GetMinimumStatistic()Returns the Statistic currently supplying this Resource's minimum.
GetMaximumStatistic()Returns the Statistic currently supplying this Resource's maximum.
AddMinimumModifier()Attaches one modifier to the active minimum Statistic.
DestroyMinimumModifier()Destroys one exact modifier on the active minimum Statistic.
AddMaximumModifier()Attaches one modifier to the active maximum Statistic.
DestroyMaximumModifier()Destroys one exact modifier on the active maximum Statistic.
Observation and facts
GetLastChange()Returns the most recent Resource change, including changes caused by its bounds.
OnChange()Adds a callback that runs when current, minimum, or maximum changes. Catalyst calls it as fn(resource, change), where change is a CatalystResourceChange describing what happened.
PublishToFact()Publishes this Resource into an Oracle Facts scope under the key you provide, then keeps that Fact updated when current, minimum, or maximum changes.
Flows
AddFlow()Attaches a standalone ResourceFlow to this Resource. Its assigned CatalystCountdownTracker then begins advancing it automatically if that tracker is running.
RemoveFlow()Removes a standalone Flow without destroying it, so it can be reused later.
DestroyFlow()Destroys one exact standalone flow attached to this resource.
HasFlow()Returns whether this exact standalone Flow is attached to the Resource.
GetFlows()Returns every Flow currently changing this Resource, including standalone Flows attached directly and Flows owned by active Effects.
SetIdentity(identity)

Sets this Resource's ID so a CatalystSet and your own code can find it later.

Arguments
identity String,Real,Undefined Non-empty string or finite number used as an ID to assign, or undefined to clear.
Returns
GetIdentity()

Returns the Resource ID.

Returns
String,Real,Undefined Current ID, or undefined.
SetName(name)

Sets the resource name.

Arguments
name String New name.
Returns
GetName()

Returns the resource name.

Returns
String Current name.
GetCurrent()

Returns the current amount. If a HARD minimum or maximum Statistic changed since the last check, Catalyst first moves current back inside those absolute bounds.

Returns
Real Current Resource value.
GetMinimum()

Returns the Resource's current minimum after its minimum Statistic has been calculated.

Returns
Real Minimum value.
GetMaximum()

Returns the current maximum. If the minimum rises above it, the minimum wins.

Returns
Real Maximum value.
SetMinimumBoundMode(mode)

Chooses how the minimum affects current. HARD never allows current below it. SOFT stops ordinary decreases at the minimum but explicit past-bound methods can go below it. OPEN does not restrict current at all.

Arguments
mode Real Use eCatResourceBoundMode.HARD, SOFT, or OPEN.
Returns
GetMinimumBoundMode()

Returns how the minimum constrains current.

Returns
Real eCatResourceBoundMode value.
SetMaximumBoundMode(mode)

Chooses how the maximum affects current. HARD never allows current above it. SOFT stops ordinary increases at the maximum but explicit past-bound methods can go above it. OPEN does not restrict current at all.

Arguments
mode Real Use eCatResourceBoundMode.HARD, SOFT, or OPEN.
Returns
GetMaximumBoundMode()

Returns how the maximum constrains current.

Returns
Real eCatResourceBoundMode value.
GetFraction()

Returns the Resource's position between its minimum and maximum as a number from 0 to 1. Values below the minimum return 0, values above the maximum return 1, and a Resource whose minimum equals its maximum returns 1.

Returns
Real Fraction from 0 to 1, where 0 is at the minimum and 1 is at the maximum.
GetMissing()

Returns how much could be added before current reaches the Resource's current maximum. Returns zero if current is already at or above the maximum.

Returns
Real Missing amount.
GetOverflow()

Returns how far current is above the Resource's current maximum.

Returns
Real Overflow amount, or zero when current is not above maximum.
GetUnderflow()

Returns how far current is below the Resource's current minimum.

Returns
Real Underflow amount, or zero when current is not below minimum.
IsEmpty()

Returns whether current is at or below the Resource's current minimum.

Returns
Bool Whether the resource is empty.
IsFull()

Returns whether current is at or above the Resource's current maximum.

Returns
Bool Whether the resource is full.
SetCurrent(amount, [change_info])

Sets current to a specific value. HARD bounds still cannot be crossed, but SOFT and OPEN bounds allow you to place current outside the usual minimum/maximum range.

Arguments
amount Real Desired current value.
change_info optional Struct Optional struct describing the change: reason can say why it happened, source can say what caused it, and meta can hold any extra project data you want returned with the CatalystResourceChange.
Returns
Struct.CatalystResourceChange Resulting change.
Change(amount, [change_info])

Changes the current amount. Positive values increase it and negative values decrease it. HARD bounds cannot be crossed, and ordinary movement stops at SOFT bounds.

Arguments
amount Real Amount to add to current. Use a positive number to increase or a negative number to decrease.
change_info optional Struct Optional struct describing the change: reason can say why it happened, source can say what caused it, and meta can hold any extra project data you want returned with the CatalystResourceChange.
Returns
Struct.CatalystResourceChange Resulting change.
ChangePastBounds(amount, [change_info])

Changes the current amount while allowing it to pass SOFT bounds. Positive values increase it and negative values decrease it. HARD bounds still cannot be crossed.

Arguments
amount Real Amount to add to current. Use a positive number to increase or a negative number to decrease.
change_info optional Struct Optional struct describing the change: reason can say why it happened, source can say what caused it, and meta can hold any extra project data you want returned with the CatalystResourceChange.
Returns
Struct.CatalystResourceChange Resulting change.
Increase(amount, [change_info])

Adds a positive amount to current. The value stops at a SOFT maximum and can never pass a HARD maximum.

Arguments
amount Real Positive amount to add. Negative inputs are treated as their positive magnitude.
change_info optional Struct Optional struct describing the change: reason can say why it happened, source can say what caused it, and meta can hold any extra project data you want returned with the CatalystResourceChange.
Returns
Struct.CatalystResourceChange Resulting change.
IncreasePastMaximum(amount, [change_info])

Adds a positive amount to current and allows it to pass a SOFT maximum. A HARD maximum still cannot be crossed.

Arguments
amount Real Positive amount to add. Negative inputs are treated as their positive magnitude.
change_info optional Struct Optional struct describing the change: reason can say why it happened, source can say what caused it, and meta can hold any extra project data you want returned with the CatalystResourceChange.
Returns
Struct.CatalystResourceChange Resulting change.
Decrease(amount, [change_info])

Subtracts a positive amount from current. The value stops at a SOFT minimum and can never pass a HARD minimum.

Arguments
amount Real Positive amount to subtract. Negative inputs are treated as their positive magnitude.
change_info optional Struct Optional struct describing the change: reason can say why it happened, source can say what caused it, and meta can hold any extra project data you want returned with the CatalystResourceChange.
Returns
Struct.CatalystResourceChange Resulting change.
DecreasePastMinimum(amount, [change_info])

Subtracts a positive amount from current and allows it to pass a SOFT minimum. A HARD minimum still cannot be crossed.

Arguments
amount Real Positive amount to subtract. Negative inputs are treated as their positive magnitude.
change_info optional Struct Optional struct describing the change: reason can say why it happened, source can say what caused it, and meta can hold any extra project data you want returned with the CatalystResourceChange.
Returns
Struct.CatalystResourceChange Resulting change.
Fill([change_info])

Raises current to the Resource's current maximum when it is below maximum. If current is already above maximum, that overflow is left unchanged.

Arguments
change_info optional Struct Optional struct describing the change: reason can say why it happened, source can say what caused it, and meta can hold any extra project data you want returned with the CatalystResourceChange.
Returns
Struct.CatalystResourceChange Resulting change.
Empty([change_info])

Lowers current to the Resource's current minimum when it is above minimum. If current is already below minimum, that underflow is left unchanged.

Arguments
change_info optional Struct Optional struct describing the change: reason can say why it happened, source can say what caused it, and meta can hold any extra project data you want returned with the CatalystResourceChange.
Returns
Struct.CatalystResourceChange Resulting change.
Refresh()

Recalculates the minimum and maximum Statistics, then checks current against the latest HARD bounds. Use this when bound Statistics may have changed and you want the Resource updated immediately.

Returns
Struct.CatalystResourceChange Result of checking the Resource against its latest bounds, including when nothing changed.
SetMinimum(value)

Changes the minimum's base value when this Resource owns its minimum Statistic. If the minimum is sharing an external Statistic, call UnbindMinimumStatistic() first.

Arguments
value Real New owned minimum base value.
Returns
SetMaximum(value)

Changes the maximum's base value when this Resource owns its maximum Statistic. If the maximum is sharing an external Statistic, call UnbindMaximumStatistic() first.

Arguments
value Real New owned maximum base value.
Returns
BindMinimumStatistic(statistic)

Makes this Resource use an existing CatalystStatistic as its minimum. Because the Statistic is shared, changes to it change the Resource's minimum.

Arguments
statistic Struct.CatalystStatistic Statistic to bind.
Returns
BindMaximumStatistic(statistic)

Makes this Resource use an existing CatalystStatistic as its maximum. Because the Statistic is shared, changes to it change the Resource's maximum.

Arguments
statistic Struct.CatalystStatistic Statistic to bind.
Returns
UnbindMinimumStatistic()

Stops sharing the external minimum Statistic. Catalyst creates a new internal Statistic starting at the external minimum's current value.

Returns
UnbindMaximumStatistic()

Stops sharing the external maximum Statistic. Catalyst creates a new internal Statistic starting at the external maximum's current value.

Returns
IsMinimumBound()

Returns whether the minimum Statistic is using an external Statistic.

Returns
Bool Whether it is external.
IsMaximumBound()

Returns whether the maximum Statistic is using an external Statistic.

Returns
Bool Whether it is external.
GetMinimumStatistic()

Returns the Statistic currently supplying this Resource's minimum.

Returns
Struct.CatalystStatistic Minimum Statistic.
GetMaximumStatistic()

Returns the Statistic currently supplying this Resource's maximum.

Returns
Struct.CatalystStatistic Maximum Statistic.
AddMinimumModifier(modifier)

Attaches one modifier to the active minimum Statistic.

Arguments
modifier Struct.CatalystModifier Modifier to attach.
Returns
DestroyMinimumModifier(modifier)

Destroys one exact modifier on the active minimum Statistic.

Arguments
modifier Struct.CatalystModifier Modifier to destroy.
Returns
Bool Whether it was attached.
AddMaximumModifier(modifier)

Attaches one modifier to the active maximum Statistic.

Arguments
modifier Struct.CatalystModifier Modifier to attach.
Returns
DestroyMaximumModifier(modifier)

Destroys one exact modifier on the active maximum Statistic.

Arguments
modifier Struct.CatalystModifier Modifier to destroy.
Returns
Bool Whether it was attached.
GetLastChange()

Returns the most recent Resource change, including changes caused by its bounds.

Returns
Struct.CatalystResourceChange,Undefined Last change, or undefined before one is recorded.
OnChange(callback)

Adds a callback that runs when current, minimum, or maximum changes. Catalyst calls it as fn(resource, change), where change is a CatalystResourceChange describing what happened.

Arguments
callback Function Function called as fn(resource, change) whenever the Resource state changes.
Returns
Struct.CatalystSubscription,Undefined Subscription you can later Unsubscribe(), or undefined if the callback was not valid.
AddFlow(flow)

Attaches a standalone ResourceFlow to this Resource. Its assigned CatalystCountdownTracker then begins advancing it automatically if that tracker is running.

Arguments
flow Struct.CatalystResourceFlow Detached flow to attach.
Returns
RemoveFlow(flow)

Removes a standalone Flow without destroying it, so it can be reused later.

Arguments
flow Struct.CatalystResourceFlow Flow to detach.
Returns
Bool Whether it was detached.
DestroyFlow(flow)

Destroys one exact standalone flow attached to this resource.

Arguments
flow Struct.CatalystResourceFlow Flow to destroy.
Returns
Bool Whether it was attached.
HasFlow(flow)

Returns whether this exact standalone Flow is attached to the Resource.

Arguments
flow Struct.CatalystResourceFlow Flow to check.
Returns
Bool Whether it is attached.
GetFlows()

Returns every Flow currently changing this Resource, including standalone Flows attached directly and Flows owned by active Effects.

Returns
Array<Struct.CatalystResourceFlow> Attached flows.
PublishToFact(facts, key, [transform])

Publishes this Resource into an Oracle Facts scope under the key you provide, then keeps that Fact updated when current, minimum, or maximum changes.

Arguments
facts Struct.OracleFacts Oracle fact scope to update.
key String Fact key to publish.
transform optional Function Optional function called as fn(resource). Return the value you want stored in Oracle instead of the Resource's current amount.
Returns
Struct.CatalystFactBinding,Undefined Active binding, or undefined when the target is invalid.

CatalystResourceChange

Describes one Resource update. It records the value before and after, what was requested, what was actually applied after minimum/maximum rules, and any optional reason/source information.

Methods

MethodWhat it does
DidChange()Returns true if the Resource value, minimum, or maximum changed.
Succeeded()Returns whether the resource operation was accepted.
GetOperation()Returns the recorded eCatResourceOperation.
GetPrevious()Returns the Resource value before the change.
GetRequested()Returns the caller-requested amount when the operation has one.
GetTarget()Returns the value the operation tried to reach before Resource bound rules changed or limited it.
GetApplied()Returns how much current actually changed after Resource bounds were applied. Positive means an increase and negative means a decrease.
GetCurrent()Returns the Resource value after the change.
GetPreviousMinimum()Returns the minimum value Catalyst was using before the change.
GetPreviousMaximum()Returns the maximum value Catalyst was using before the change.
GetMinimum()Returns the minimum value Catalyst used for this operation.
GetMaximum()Returns the maximum value Catalyst used for this operation.
GetReason()Returns optional reason supplied by your project.
GetSource()Returns the optional source responsible for the operation.
GetMeta()Returns any extra project data supplied with this Resource change.
DidChange()

Returns true if the Resource value, minimum, or maximum changed.

Returns
Bool Whether current Resource state changed.
Succeeded()

Returns whether the resource operation was accepted.

Returns
Bool Whether it succeeded.
GetOperation()

Returns the recorded eCatResourceOperation.

Returns
Real Operation value.
GetPrevious()

Returns the Resource value before the change.

Returns
Real Previous value.
GetRequested()

Returns the caller-requested amount when the operation has one.

Returns
Real,Undefined Requested amount.
GetTarget()

Returns the value the operation tried to reach before Resource bound rules changed or limited it.

Returns
Real Target value.
GetApplied()

Returns how much current actually changed after Resource bounds were applied. Positive means an increase and negative means a decrease.

Returns
Real Applied amount.
GetCurrent()

Returns the Resource value after the change.

Returns
Real Current value.
GetPreviousMinimum()

Returns the minimum value Catalyst was using before the change.

Returns
Real Previous minimum value.
GetPreviousMaximum()

Returns the maximum value Catalyst was using before the change.

Returns
Real Previous maximum value.
GetMinimum()

Returns the minimum value Catalyst used for this operation.

Returns
Real Minimum value.
GetMaximum()

Returns the maximum value Catalyst used for this operation.

Returns
Real Maximum value.
GetReason()

Returns optional reason supplied by your project.

Returns
Any Reason value.
GetSource()

Returns the optional source responsible for the operation.

Returns
Any Source value.
GetMeta()

Returns any extra project data supplied with this Resource change.

Returns
Any Extra project data stored with this change.

CatalystResourceFlow

Creates a ResourceFlow that changes a Resource as countdown time passes. Positive rates add to the Resource and negative rates remove from it. Passing a number creates a private rate Statistic; passing an existing Statistic makes the Flow share that Statistic as its rate.

new CatalystResourceFlow(rate, source_label, source_id, source_meta)
Arguments
rate Real,Struct.CatalystStatistic Resource change per countdown unit, or an existing Statistic that supplies that rate. Positive increases the Resource; negative decreases it.
source_label optional String Optional human-readable label copied into ResourceChange results so you can tell what caused the movement.
source_id optional Any Optional source ID copied into ResourceChange results.
source_meta optional Any Optional extra project data copied into ResourceChange results. Catalyst does not interpret it.

Methods

Identity and source
SetIdentity()Sets an optional ID for this Flow so Catalyst save/restore or your own code can identify it.
GetIdentity()Returns the flow's optional ID.
SetName()Sets the flow name.
GetName()Returns the flow name.
SetSourceLabel()Sets the source label copied into Resource changes.
SetSourceId()Sets the source ID copied into ResourceChange results.
SetSourceMeta()Stores extra project data to copy into ResourceChange results caused by this Flow. Catalyst does not interpret it.
Rate
SetRate()Changes the Flow's rate when it is using its own internal rate Statistic. If the Flow is sharing an external Statistic, call UnbindRateStatistic() before setting a direct value.
BindRateStatistic()Makes this Flow use an existing CatalystStatistic as its rate. Because the Statistic is shared, later changes to it immediately change the Flow's rate.
UnbindRateStatistic()Stops sharing the external rate Statistic. Catalyst creates a new internal Statistic starting at the external Statistic's current value.
IsRateBound()Returns whether the active rate Statistic is using an external Statistic.
GetRateStatistic()Returns the Statistic currently supplying this Flow's rate.
State and timing
SetActive()Turns Resource movement on or off without changing the Flow's rate or remaining delay.
IsActive()Returns whether this Flow is currently allowed to move its Resource when countdown time passes.
Delay()Sets how much countdown time must pass before this Flow can start moving its Resource. Calling Delay() again replaces the remaining delay rather than adding to it.
IsDelayed()Returns whether delay remains.
GetDelayRemaining()Returns remaining delay.
ClearDelay()Removes the current delay so the Flow can move the next time countdown advances. It also clears any partial progress this Flow had made toward an Effect tick.
SetCountdownTracker()Chooses which CatalystCountdownTracker advances this Flow when it is attached directly to a Resource. A Flow owned by an Effect uses the Effect's timing instead.
GetCountdownTracker()Returns the tracker assigned to this flow.
Lifecycle
Destroy()Destroys this Flow. If it is attached directly to a Resource, Catalyst detaches it first. If an Effect owns it, the Effect handles the removal so its ownership stays consistent.
SetIdentity(identity)

Sets an optional ID for this Flow so Catalyst save/restore or your own code can identify it.

Arguments
identity String,Real,Undefined Non-empty string or finite number used as an ID to assign, or undefined to clear.
Returns
GetIdentity()

Returns the flow's optional ID.

Returns
String,Real,Undefined Current ID, or undefined.
SetName(name)

Sets the flow name.

Arguments
name String New name.
Returns
GetName()

Returns the flow name.

Returns
String Current name.
SetRate(value)

Changes the Flow's rate when it is using its own internal rate Statistic. If the Flow is sharing an external Statistic, call UnbindRateStatistic() before setting a direct value.

Arguments
value Real New Resource change per countdown unit. Positive increases the Resource; negative decreases it.
Returns
BindRateStatistic(statistic)

Makes this Flow use an existing CatalystStatistic as its rate. Because the Statistic is shared, later changes to it immediately change the Flow's rate.

Arguments
statistic Struct.CatalystStatistic Statistic to bind.
Returns
UnbindRateStatistic()

Stops sharing the external rate Statistic. Catalyst creates a new internal Statistic starting at the external Statistic's current value.

Returns
IsRateBound()

Returns whether the active rate Statistic is using an external Statistic.

Returns
Bool Whether it is external.
GetRateStatistic()

Returns the Statistic currently supplying this Flow's rate.

Returns
Struct.CatalystStatistic Rate Statistic.
SetActive(active)

Turns Resource movement on or off without changing the Flow's rate or remaining delay.

Arguments
active Bool Whether the flow should advance.
Returns
IsActive()

Returns whether this Flow is currently allowed to move its Resource when countdown time passes.

Returns
Bool Whether it is active.
Delay(amount)

Sets how much countdown time must pass before this Flow can start moving its Resource. Calling Delay() again replaces the remaining delay rather than adding to it.

Arguments
amount Real Non-negative delay amount.
Returns
IsDelayed()

Returns whether delay remains.

Returns
Bool Whether delay remains.
GetDelayRemaining()

Returns remaining delay.

Returns
Real Remaining delay amount.
ClearDelay()

Removes the current delay so the Flow can move the next time countdown advances. It also clears any partial progress this Flow had made toward an Effect tick.

Returns
SetCountdownTracker(tracker)

Chooses which CatalystCountdownTracker advances this Flow when it is attached directly to a Resource. A Flow owned by an Effect uses the Effect's timing instead.

Arguments
tracker Struct.CatalystCountdownTracker,Noone Tracker to assign, or noone.
Returns
GetCountdownTracker()

Returns the tracker assigned to this flow.

Returns
Struct.CatalystCountdownTracker,Noone Assigned tracker, or noone.
SetSourceLabel(source_label)

Sets the source label copied into Resource changes.

Arguments
source_label String New label.
Returns
SetSourceId(source_id)

Sets the source ID copied into ResourceChange results.

Arguments
source_id Any Source ID to copy into future ResourceChange results.
Returns
SetSourceMeta(source_meta)

Stores extra project data to copy into ResourceChange results caused by this Flow. Catalyst does not interpret it.

Arguments
source_meta Any Extra project data to copy into future ResourceChange results.
Returns
Destroy()

Destroys this Flow. If it is attached directly to a Resource, Catalyst detaches it first. If an Effect owns it, the Effect handles the removal so its ownership stays consistent.

Returns
Undefined No return value.

CatalystResourceFlowResult

Describes one Resource movement produced by an Effect-owned Flow during a successful Effect tick, including the rate, time amount, multiplier, requested movement, and exact Resource change.

Methods

MethodWhat it does
Succeeded()Returns whether the Resource change succeeded.
GetFlow()Returns the flow that requested movement.
GetResource()Returns the moved Resource.
GetCountdownAmount()Returns the amount of Flow time used for this movement after any delay.
GetRate()Returns the rate used for this movement. Positive means the Resource increases; negative means it decreases.
GetMultiplier()Returns the applied effect-tick multiplier.
GetRequested()Returns the movement requested from the Resource before its bounds were applied. Positive means increase; negative means decrease.
GetChange()Returns the exact Resource change result.
Succeeded()

Returns whether the Resource change succeeded.

Returns
Bool Whether it succeeded.
GetFlow()

Returns the flow that requested movement.

Returns
Struct.CatalystResourceFlow Flow that requested the movement.
GetResource()

Returns the moved Resource.

Returns
Struct.CatalystResource Resource that was changed.
GetCountdownAmount()

Returns the amount of Flow time used for this movement after any delay.

Returns
Real Countdown amount.
GetRate()

Returns the rate used for this movement. Positive means the Resource increases; negative means it decreases.

Returns
Real Evaluated rate.
GetMultiplier()

Returns the applied effect-tick multiplier.

Returns
Real Multiplier.
GetRequested()

Returns the movement requested from the Resource before its bounds were applied. Positive means increase; negative means decrease.

Returns
Real Requested movement.
GetChange()

Returns the exact Resource change result.

Returns
Struct.CatalystResourceChange Resource change.

Effects

CatalystEffect

Creates an Effect: a reusable bundle that can attach Modifiers and ResourceFlows when applied through an EffectManager. Effects can be permanent or timed, can run apply/tick/remove callbacks, and can control what happens when the same Effect ID is applied again.

new CatalystEffect(identity, duration, source_label, source_id, source_meta)
Arguments
identity optional String,Real Optional Effect ID. EffectManager uses matching IDs for reapplication rules such as REPLACE, REFRESH, and EXTEND.
duration optional Real How long the Effect lasts after applying. Positive values count down, negative means permanent, and zero is already expired.
source_label optional String Optional human-readable label describing where this Effect came from.
source_id optional Any Optional value your game can use to identify the exact source that created this Effect.
source_meta optional Any Optional extra project data to store with the Effect. Catalyst does not interpret it.

Methods

Identity and reapplication
SetIdentity()Sets this Effect's ID. When the Effect is applied, its EffectManager compares this ID with active Effects to decide whether the reapplication policy should run.
GetIdentity()Returns the Effect ID.
SetFamily()Gives this Effect a family ID so you can find a group of related active Effects even when they have different individual IDs.
GetFamily()Returns the Effect family value.
SetReapplyPolicy()Chooses what the EffectManager should do if this Effect is applied while another active Effect has the same ID.
GetReapplyPolicy()Returns the current reapplication policy.
Duration and timing source
SetDuration()Replaces both this Effect's remaining time and the duration ResetDuration() returns to. If an active Effect is set to zero duration, it is removed immediately.
ResetDuration()Resets the Effect's remaining time to its configured maximum duration.
SetCountdownTracker()Chooses which CatalystCountdownTracker advances this Effect's duration and tick timer while the Effect is active.
GetCountdownTracker()Returns the countdown tracker assigned to this Effect.
Application chance
SetChanceToApply()Sets the Effect's chance of applying when it uses its own internal chance Statistic. If you bound an external Statistic with BindChanceToApplyStatistic(), unbind it first.
BindChanceToApplyStatistic()Makes this Effect use an existing CatalystStatistic for its application chance. Because the Statistic is shared, changes to it immediately affect future applications.
UnbindChanceToApplyStatistic()Stops sharing the external application-chance Statistic. Catalyst creates a new internal Statistic starting at the external Statistic's current value.
IsChanceToApplyBound()Returns whether application chance is using an external Statistic.
GetChanceToApplyStatistic()Returns the active application-chance Statistic.
Ticking
SetTickInterval()Chooses how much Effect time must pass between ticks. Positive values enable ticking; zero or a negative value disables it.
ClearTickInterval()Turns ticking off and discards any partial progress toward the next tick.
GetTickInterval()Returns the positive interval, or a negative value when ticking is disabled.
SetChancePerTick()Sets the chance that each completed tick succeeds when the Effect uses its own internal chance Statistic. If an external Statistic is bound, unbind it first.
BindChancePerTickStatistic()Makes this Effect use an existing CatalystStatistic for its per-tick chance. Because the Statistic is shared, changes to it affect later ticks.
UnbindChancePerTickStatistic()Stops using the external per-tick chance and replaces it with a new internal Statistic at the same current value.
IsChancePerTickBound()Returns whether per-tick chance is using an external Statistic.
GetChancePerTickStatistic()Returns the active per-tick chance Statistic.
Callbacks
SetOnApply()Sets a callback that runs after the Effect has successfully become active and its Modifiers and Flows have been attached.
ClearOnApply()Clears the application callback.
SetResolveTick()Sets a callback that runs after the normal tick chance is checked but before owned Flows move Resources. Use the CatalystEffectTickResult to cancel the tick or change its movement multiplier.
ClearResolveTick()Removes the ResolveTick callback, so Catalyst uses the normal tick result and movement multiplier without a custom adjustment.
SetOnTick()Sets a callback that runs after every completed tick, after any Flow movement. It runs whether the tick succeeded or failed its chance check.
ClearOnTick()Clears the post-movement tick callback.
SetOnRemove()Sets a callback that runs when an active Effect is removed. Its Modifiers and Flows have already been removed. During the callback, effect.manager and effect.owner still point to the EffectManager and owner it was removed from.
ClearOnRemove()Clears the removal callback.
Flows and modifiers
AddFlow()Adds a detached ResourceFlow to this Effect. The Flow is not attached to the Resource yet; it is attached only if the Effect successfully applies, and the Effect owns it afterward.
RemoveFlow()Removes and destroys one exact Flow owned by this Effect.
AddModifier()Adds a detached Modifier to this Effect. The Modifier is not attached to the Statistic yet; it is attached only if the Effect successfully applies, and the Effect owns it afterward.
RemoveModifier()Removes and destroys one exact Modifier owned by this Effect.
Tags
AddTag()Adds a tag if absent.
RemoveTag()Removes every matching tag.
HasTag()Returns whether this Effect contains a tag.
ClearTags()Removes every tag.
Lifecycle
Destroy()Destroys this Effect. If it is active, its EffectManager removes it normally so callbacks and owned Modifiers/Flows are cleaned up. If it has not been applied, its stored Modifiers and Flows are destroyed directly.
SetIdentity(identity)

Sets this Effect's ID. When the Effect is applied, its EffectManager compares this ID with active Effects to decide whether the reapplication policy should run.

Arguments
identity String,Real,Undefined Non-empty string or finite number used as an ID to assign, or undefined to clear.
Returns
GetIdentity()

Returns the Effect ID.

Returns
String,Real,Undefined Current ID.
SetFamily(family)

Gives this Effect a family ID so you can find a group of related active Effects even when they have different individual IDs.

Arguments
family String,Real,Undefined Shared string or finite number used to group related Effects, or undefined to clear the family.
Returns
GetFamily()

Returns the Effect family value.

Returns
String,Real,Undefined Family value.
SetReapplyPolicy(policy)

Chooses what the EffectManager should do if this Effect is applied while another active Effect has the same ID.

Arguments
policy Real Reapplication rule from eCatEffectReapplyPolicy: STACK, IGNORE, REPLACE, REFRESH, or EXTEND.
Returns
GetReapplyPolicy()

Returns the current reapplication policy.

Returns
SetDuration(duration)

Replaces both this Effect's remaining time and the duration ResetDuration() returns to. If an active Effect is set to zero duration, it is removed immediately.

Arguments
duration Real Positive timed duration, zero expired, or negative permanent duration.
Returns
Struct.CatalystEffect,Undefined Self, or undefined when an active zero duration removes the Effect.
ResetDuration()

Resets the Effect's remaining time to its configured maximum duration.

Returns
Struct.CatalystEffect,Undefined Self, or undefined when the maximum is zero and removal occurs.
SetCountdownTracker(tracker)

Chooses which CatalystCountdownTracker advances this Effect's duration and tick timer while the Effect is active.

Arguments
tracker Struct.CatalystCountdownTracker,Noone Tracker to assign, or noone.
Returns
GetCountdownTracker()

Returns the countdown tracker assigned to this Effect.

Returns
Struct.CatalystCountdownTracker,Noone Assigned tracker, or noone.
SetChanceToApply(value)

Sets the Effect's chance of applying when it uses its own internal chance Statistic. If you bound an external Statistic with BindChanceToApplyStatistic(), unbind it first.

Arguments
value Real New chance value, where 0 never applies and 1 always applies. Values below 0 are treated as 0 and values above 1 as 1 when Catalyst checks the chance.
Returns
BindChanceToApplyStatistic(statistic)

Makes this Effect use an existing CatalystStatistic for its application chance. Because the Statistic is shared, changes to it immediately affect future applications.

Arguments
statistic Struct.CatalystStatistic Statistic to bind.
Returns
UnbindChanceToApplyStatistic()

Stops sharing the external application-chance Statistic. Catalyst creates a new internal Statistic starting at the external Statistic's current value.

Returns
IsChanceToApplyBound()

Returns whether application chance is using an external Statistic.

Returns
Bool Whether it is external.
GetChanceToApplyStatistic()

Returns the active application-chance Statistic.

Returns
Struct.CatalystStatistic Chance Statistic.
SetTickInterval(interval)

Chooses how much Effect time must pass between ticks. Positive values enable ticking; zero or a negative value disables it.

Arguments
interval Real Tick interval, or non-positive to disable.
Returns
ClearTickInterval()

Turns ticking off and discards any partial progress toward the next tick.

Returns
GetTickInterval()

Returns the positive interval, or a negative value when ticking is disabled.

Returns
Real Tick interval.
SetChancePerTick(value)

Sets the chance that each completed tick succeeds when the Effect uses its own internal chance Statistic. If an external Statistic is bound, unbind it first.

Arguments
value Real New chance value, where 0 never succeeds and 1 always succeeds. Values below 0 are treated as 0 and values above 1 as 1 when Catalyst checks the chance.
Returns
BindChancePerTickStatistic(statistic)

Makes this Effect use an existing CatalystStatistic for its per-tick chance. Because the Statistic is shared, changes to it affect later ticks.

Arguments
statistic Struct.CatalystStatistic Statistic to bind.
Returns
UnbindChancePerTickStatistic()

Stops using the external per-tick chance and replaces it with a new internal Statistic at the same current value.

Returns
IsChancePerTickBound()

Returns whether per-tick chance is using an external Statistic.

Returns
Bool Whether it is external.
GetChancePerTickStatistic()

Returns the active per-tick chance Statistic.

Returns
Struct.CatalystStatistic Chance Statistic.
SetOnApply(callback)

Sets a callback that runs after the Effect has successfully become active and its Modifiers and Flows have been attached.

Arguments
callback Function Function to run after application. Catalyst calls it with this Effect as self.
Returns
ClearOnApply()

Clears the application callback.

Returns
SetResolveTick(callback)

Sets a callback that runs after the normal tick chance is checked but before owned Flows move Resources. Use the CatalystEffectTickResult to cancel the tick or change its movement multiplier.

Arguments
callback Function Function called as fn(tick_duration, result) with this Effect as self.
Returns
ClearResolveTick()

Removes the ResolveTick callback, so Catalyst uses the normal tick result and movement multiplier without a custom adjustment.

Returns
SetOnTick(callback)

Sets a callback that runs after every completed tick, after any Flow movement. It runs whether the tick succeeded or failed its chance check.

Arguments
callback Function Function called as fn(tick_duration, result) with this Effect as self.
Returns
ClearOnTick()

Clears the post-movement tick callback.

Returns
SetOnRemove(callback)

Sets a callback that runs when an active Effect is removed. Its Modifiers and Flows have already been removed. During the callback, effect.manager and effect.owner still point to the EffectManager and owner it was removed from.

Arguments
callback Function Function called as fn(reason) with this Effect as self. reason is the value supplied when the Effect was removed.
Returns
ClearOnRemove()

Clears the removal callback.

Returns
AddFlow(resource, flow)

Adds a detached ResourceFlow to this Effect. The Flow is not attached to the Resource yet; it is attached only if the Effect successfully applies, and the Effect owns it afterward.

Arguments
resource Struct.CatalystResource Resource this Flow should change while the Effect is active.
flow Struct.CatalystResourceFlow Detached Flow to add. Do not attach it separately; this Effect will manage its lifetime.
Returns
RemoveFlow(flow)

Removes and destroys one exact Flow owned by this Effect.

Arguments
flow Struct.CatalystResourceFlow Owned flow to remove.
Returns
Bool Whether it was owned.
AddModifier(statistic, modifier)

Adds a detached Modifier to this Effect. The Modifier is not attached to the Statistic yet; it is attached only if the Effect successfully applies, and the Effect owns it afterward.

Arguments
statistic Struct.CatalystStatistic Statistic this Modifier should affect while the Effect is active.
modifier Struct.CatalystModifier Detached Modifier to add. Do not attach it separately; this Effect will manage its lifetime.
Returns
RemoveModifier(modifier)

Removes and destroys one exact Modifier owned by this Effect.

Arguments
modifier Struct.CatalystModifier Owned modifier to remove.
Returns
Bool Whether it was owned.
AddTag(tag)

Adds a tag if absent.

Arguments
tag Any Tag to add.
Returns
RemoveTag(tag)

Removes every matching tag.

Arguments
tag Any Tag to remove.
Returns
HasTag(tag)

Returns whether this Effect contains a tag.

Arguments
tag Any Tag to query.
Returns
Bool Whether it exists.
ClearTags()

Removes every tag.

Returns
Destroy([reason])

Destroys this Effect. If it is active, its EffectManager removes it normally so callbacks and owned Modifiers/Flows are cleaned up. If it has not been applied, its stored Modifiers and Flows are destroyed directly.

Arguments
reason optional Any Optional value describing why the Effect was removed. Catalyst passes it to OnRemove callbacks but otherwise leaves it untouched.
Returns
Undefined No return value.

CatalystEffectManager

Creates an EffectManager for one owner. The owner can be a GameMaker instance, a struct, or any other value your game uses to represent the thing receiving Effects. The manager applies, removes, searches, and updates that owner's active Effects.

new CatalystEffectManager(owner)
Arguments
owner Any Value that these Effects belong to, such as a player instance, enemy instance, or gameplay struct.

Methods

Identity and owner
SetIdentity()Sets this EffectManager's ID so a CatalystSet and your own code can find it later.
GetIdentity()Returns the manager ID.
SetName()Sets the manager name.
GetName()Returns the manager name.
GetOwner()Returns the owner value that was given to this EffectManager when it was created.
Randomness and observation
SetRandomFunction()Replaces the random-number function used for Effect application and per-tick chance checks. This is useful when your game needs seeded or otherwise controlled randomness.
ClearRandomFunction()Restores GameMaker random(1) as the manager's random source.
OnEffectApplied()Adds a callback that runs whenever an Effect successfully becomes active. Catalyst calls it as fn(manager, effect, application_result). Keep the returned subscription if you may want to stop listening later.
OnEffectRemoved()Adds a callback that runs whenever an active Effect is removed. Catalyst calls it as fn(manager, effect, reason), where reason is the value supplied by the removal call.
Effect management
AddEffect()Tries to make a detached Effect active on this manager. Catalyst checks its application chance and same-ID reapplication policy, then attaches its Modifiers and Flows and starts its timer if the Effect applies.
RemoveEffect()Removes one active Effect from this manager. Its owned Modifiers and Flows are removed and destroyed and its removal callbacks run. If the manager is currently applying/removing another Effect, this exact request is saved until that operation finishes.
HasEffect()Returns whether this exact Effect is currently active on the manager.
GetEffects()Returns the currently active Effects in the order they were applied.
Lookup and removal
GetEffectsByIdentity()Returns active Effects with the given ID.
HasEffectIdentity()Returns whether any active Effect has the given ID.
RemoveEffectsByIdentity()Removes every active Effect with the given ID.
GetEffectsByFamily()Returns active Effects whose family ID exactly matches the value you provide.
HasTag()Returns whether any active Effect provides a tag.
GetEffectsTagged()Returns active Effects providing one tag.
RemoveEffectsTagged()Removes every active Effect providing one tag.
Lifecycle
Destroy()Destroys the EffectManager after removing all active Effects and stopping its event subscriptions. If Destroy() is called while the manager is already applying or removing an Effect, cleanup completes as soon as that current operation finishes.
SetIdentity(identity)

Sets this EffectManager's ID so a CatalystSet and your own code can find it later.

Arguments
identity String,Real,Undefined Non-empty string or finite number used as an ID to assign, or undefined to clear.
Returns
Struct.CatalystEffectManager This struct, so calls can be chained.
GetIdentity()

Returns the manager ID.

Returns
String,Real,Undefined Current ID, or undefined.
SetName(name)

Sets the manager name.

Arguments
name String New name.
Returns
Struct.CatalystEffectManager This struct, so calls can be chained.
GetName()

Returns the manager name.

Returns
String Current name.
GetOwner()

Returns the owner value that was given to this EffectManager when it was created.

Returns
Any Owner value.
SetRandomFunction(fn)

Replaces the random-number function used for Effect application and per-tick chance checks. This is useful when your game needs seeded or otherwise controlled randomness.

Arguments
fn Function Function called with no arguments. Return a number on the same 0-to-1 scale as your Effect chance values.
Returns
Struct.CatalystEffectManager This struct, so calls can be chained.
ClearRandomFunction()

Restores GameMaker random(1) as the manager's random source.

Returns
Struct.CatalystEffectManager This struct, so calls can be chained.
OnEffectApplied(callback)

Adds a callback that runs whenever an Effect successfully becomes active. Catalyst calls it as fn(manager, effect, application_result). Keep the returned subscription if you may want to stop listening later.

Arguments
callback Function Function called as fn(manager, effect, application_result).
Returns
Struct.CatalystSubscription,Undefined Subscription you can later Unsubscribe(), or undefined if the callback was not valid.
OnEffectRemoved(callback)

Adds a callback that runs whenever an active Effect is removed. Catalyst calls it as fn(manager, effect, reason), where reason is the value supplied by the removal call.

Arguments
callback Function Function called as fn(manager, effect, reason).
Returns
Struct.CatalystSubscription,Undefined Subscription you can later Unsubscribe(), or undefined if the callback was not valid.
AddEffect(effect, [query])

Tries to make a detached Effect active on this manager. Catalyst checks its application chance and same-ID reapplication policy, then attaches its Modifiers and Flows and starts its timer if the Effect applies.

Arguments
effect Struct.CatalystEffect Detached Effect to apply. It must not already belong to an EffectManager.
query optional Struct.OracleFactQuery,Struct Optional Oracle Fact query used only while calculating this Effect's application chance.
Returns
Struct.CatalystEffectApplicationResult Application result.
RemoveEffect(effect, [reason])

Removes one active Effect from this manager. Its owned Modifiers and Flows are removed and destroyed and its removal callbacks run. If the manager is currently applying/removing another Effect, this exact request is saved until that operation finishes.

Arguments
effect Struct.CatalystEffect Active Effect to remove.
reason optional Any Optional value describing why the Effect is being removed. Catalyst passes it to removal callbacks but otherwise leaves it untouched.
Returns
Bool Whether removal happened now or an exact deferred request was accepted.
HasEffect(effect)

Returns whether this exact Effect is currently active on the manager.

Arguments
effect Struct.CatalystEffect Effect to check.
Returns
Bool Whether it is active here.
GetEffects()

Returns the currently active Effects in the order they were applied.

Returns
Array<Struct.CatalystEffect> New array containing active Effects.
GetEffectsByIdentity(identity)

Returns active Effects with the given ID.

Arguments
identity String,Real ID to match.
Returns
Array<Struct.CatalystEffect> Matching Effects.
HasEffectIdentity(identity)

Returns whether any active Effect has the given ID.

Arguments
identity String,Real ID to match.
Returns
Bool Whether a match exists.
RemoveEffectsByIdentity(identity, [reason])

Removes every active Effect with the given ID.

Arguments
identity String,Real ID to match.
reason optional Any Removal reason.
Returns
Real Number removed now or queued to be removed after the current Effect change finishes.
GetEffectsByFamily(family)

Returns active Effects whose family ID exactly matches the value you provide.

Arguments
family String,Real Effect family ID to match.
Returns
Array<Struct.CatalystEffect> Matching Effects.
HasTag(tag)

Returns whether any active Effect provides a tag.

Arguments
tag Any Tag to query.
Returns
Bool Whether a match exists.
GetEffectsTagged(tag)

Returns active Effects providing one tag.

Arguments
tag Any Tag to query.
Returns
Array<Struct.CatalystEffect> Matching Effects.
RemoveEffectsTagged(tag, [reason])

Removes every active Effect providing one tag.

Arguments
tag Any Tag to match.
reason optional Any Removal reason.
Returns
Real Number removed now or queued to be removed after the current Effect change finishes.
Destroy()

Destroys the EffectManager after removing all active Effects and stopping its event subscriptions. If Destroy() is called while the manager is already applying or removing an Effect, cleanup completes as soon as that current operation finishes.

Returns
Undefined No return value.

CatalystEffectTickResult

Stores everything Catalyst decided for one completed Effect tick. ResolveTick can use this result to cancel the tick or change the multiplier before owned ResourceFlows move Resources.

Methods

MethodWhat it does
Succeeded()Returns whether this tick will currently succeed. ResolveTick can change this value with SetSucceeded().
SetSucceeded()Changes whether this tick succeeds. Call this from ResolveTick when your own rules should override the normal chance result.
GetMultiplier()Returns the multiplier that will be applied to Resource movement from this Effect's owned Flows when the tick succeeds.
SetMultiplier()Changes how much this Effect's owned Flows move Resources for this tick. For example, 0.5 gives half movement and 2 gives double movement.
GetEffect()Returns the Effect this tick belongs to.
GetTickDuration()Returns the completed interval duration.
GetChance()Returns the evaluated per-tick chance.
GetRoll()Returns the random number Catalyst used for the normal per-tick chance check, or undefined when the chance did not require a random roll.
ChanceSucceeded()Returns the chance result from before ResolveTick changed anything.
GetFlowResults()Returns a new array containing concrete flow movement results produced by this tick.
Succeeded()

Returns whether this tick will currently succeed. ResolveTick can change this value with SetSucceeded().

Returns
Bool Whether the tick succeeds.
SetSucceeded(success)

Changes whether this tick succeeds. Call this from ResolveTick when your own rules should override the normal chance result.

Arguments
success Bool New success state.
Returns
GetMultiplier()

Returns the multiplier that will be applied to Resource movement from this Effect's owned Flows when the tick succeeds.

Returns
Real Current multiplier.
SetMultiplier(multiplier)

Changes how much this Effect's owned Flows move Resources for this tick. For example, 0.5 gives half movement and 2 gives double movement.

Arguments
multiplier Real New multiplier.
Returns
GetEffect()

Returns the Effect this tick belongs to.

Returns
Struct.CatalystEffect Effect for this tick.
GetTickDuration()

Returns the completed interval duration.

Returns
Real Tick duration.
GetChance()

Returns the evaluated per-tick chance.

Returns
Real Chance value.
GetRoll()

Returns the random number Catalyst used for the normal per-tick chance check, or undefined when the chance did not require a random roll.

Returns
Real,Undefined Roll, or undefined.
ChanceSucceeded()

Returns the chance result from before ResolveTick changed anything.

Returns
Bool Ordinary chance result.
GetFlowResults()

Returns a new array containing concrete flow movement results produced by this tick.

Returns
Array<Struct.CatalystResourceFlowResult> Flow results.

CatalystEffectApplicationResult

Describes the result of EffectManager.AddEffect(), including whether the Effect became active, whether the request was queued, what reapplication rule ran, and any chance roll that was used.

Methods

MethodWhat it does
Succeeded()Returns true when AddEffect() handled the request successfully. This includes cases where the incoming Effect did not become active because the current Effect was ignored, refreshed, or extended instead.
Applied()Returns whether the exact Effect passed to AddEffect() became active.
Queued()Returns true when the manager was already changing its active Effects and saved this request to process immediately afterward.
GetOutcome()Returns the specific eCatEffectApplicationOutcome explaining what AddEffect() did.
GetIncomingEffect()Returns the Effect supplied by the caller.
GetEffect()Returns the active Effect produced or affected by this request.
GetChance()Returns the evaluated application chance when chance resolution was reached.
GetRoll()Returns the random roll when a non-guaranteed chance required one.
Succeeded()

Returns true when AddEffect() handled the request successfully. This includes cases where the incoming Effect did not become active because the current Effect was ignored, refreshed, or extended instead.

Returns
Bool Whether the request succeeded.
Applied()

Returns whether the exact Effect passed to AddEffect() became active.

Returns
Bool Whether the incoming Effect applied.
Queued()

Returns true when the manager was already changing its active Effects and saved this request to process immediately afterward.

Returns
Bool Whether it was queued.
GetOutcome()

Returns the specific eCatEffectApplicationOutcome explaining what AddEffect() did.

Returns
Real Outcome value.
GetIncomingEffect()

Returns the Effect supplied by the caller.

Returns
Any Value that was passed to AddEffect().
GetEffect()

Returns the active Effect produced or affected by this request.

Returns
Struct.CatalystEffect,Noone Active Effect, or noone.
GetChance()

Returns the evaluated application chance when chance resolution was reached.

Returns
Real,Undefined Chance value.
GetRoll()

Returns the random roll when a non-guaranteed chance required one.

Returns
Real,Undefined Roll, or undefined.

Sets and previews

CatalystSet

Creates a CatalystSet: a container that lets related Statistics, Resources, and EffectManagers share a FactView/layer order and lets ModifierSets target Statistics by ID. Adding something to a Set does not transfer ownership; destroying the Set leaves those Catalyst values alive. A Statistic, Resource, or EffectManager can be a direct member of only one Set at a time.

new CatalystSet(identity)
Arguments
identity optional String,Real Optional Set ID, used by save/restore and available for your own lookup.

Methods

Identity and metadata
SetIdentity()Sets this Set's ID. Save/restore uses it to make sure captured state is being loaded into the intended Set.
GetIdentity()Returns the Set ID.
SetName()Sets the Set name.
GetName()Returns the Set name.
SetMeta()Stores any extra project data you want to keep with this value. Catalyst does not interpret or change it.
GetMeta()Returns the extra project data previously stored with SetMeta().
Saving and loading
CaptureState()Collects the Catalyst data in this Set into a save-friendly struct. Call Succeeded() on the result before using GetState(); functions and other runtime-only values may require repair when the state is restored.
RestoreState()Prepares previously captured state to load into this already-created Set. RestoreState() does not immediately change gameplay data. First supply any callbacks or custom countdown trackers the save file could not contain with Repair(), then call Complete() to apply the state.
Statistics
AddStatistic()Adds a Statistic directly to this Set. The Statistic must have an ID so Catalyst can match incoming Modifiers to it, and it cannot already belong directly to another CatalystSet.
RemoveStatistic()Removes a Statistic from this Set without destroying it or its Modifiers.
HasStatistic()Returns whether this Set directly contains a Statistic with the given ID.
GetStatistic()Returns the directly added Statistic with the given ID.
GetStatistics()Returns a new array containing direct Statistic members.
Resources
AddResource()Adds a Resource as a direct member of this Set. The Resource must have an ID and cannot already be a direct member of another CatalystSet. The Set also passes its FactView/layer settings into Catalyst-owned Statistics inside the Resource.
RemoveResource()Removes a Resource from this Set without destroying it or its Flows.
HasResource()Returns whether this Set directly contains a Resource with the given ID.
GetResource()Returns the directly added Resource with the given ID.
GetResources()Returns a new array containing direct Resource members.
Effect managers
AddEffectManager()Adds an EffectManager as a direct member of this Set. It must have an ID and cannot already be a direct member of another Set. Effects applied through this manager later receive the Set's FactView and layer settings for their Catalyst-owned Statistics.
RemoveEffectManager()Removes an EffectManager from this Set without destroying it or its active Effects.
HasEffectManager()Returns whether this Set directly contains an EffectManager with the given ID.
GetEffectManager()Returns the directly added EffectManager with the given ID.
GetEffectManagers()Returns a new array containing direct Effect Manager members.
Facts and layers
SetFactView()Sets the OracleFactView that managed Statistics should read from. The Set applies it to direct Statistics and to Catalyst-owned Statistics inside Resources, Flows, and Effects.
ClearFactView()Clears the Set FactView and removes it from the Statistics currently managed by this Set.
GetFactView()Returns the stored Fact View.
SetLayerOrder()Sets the Statistic layer order this Set should apply across its managed Catalyst values. Direct Statistics and Catalyst-owned Statistics inside Resources, Flows, and Effects receive the same order.
ClearLayerOrder()Stops the Set from applying its layer order to future Statistics. Existing Statistics keep the order they already received.
GetLayerOrder()Returns the layer order stored by this Set, or undefined when none is set.
Preview and apply
Preview()Checks where every Modifier in the incoming ModifierSet would go and calculates the resulting Statistic values without changing the Set.
PreviewSwap()Calculates a proposed swap: remove the outgoing ModifierSet's attached Modifiers and add the incoming ModifierSet's Modifiers, without actually changing any Statistic.
Apply()Attaches every Modifier in the incoming ModifierSet to the Statistic matching its target ID. The operation is all-or-nothing: if any Modifier cannot be applied, none of them are attached.
ApplySwap()Removes the outgoing ModifierSet's attached Modifiers and attaches the incoming ModifierSet's Modifiers by target ID. The whole swap is all-or-nothing: if any part fails validation, nothing changes.
Refresh and inspection
Refresh()Recalculates every Statistic managed by this Set, including Catalyst-owned Statistics inside Resources, Flows, and active Effects. It then refreshes Resources so changed minimum/maximum values are applied.
GetDetails()Returns data intended for debug/inspection tools: Explain() details for managed Statistics plus the Set's direct Resources and EffectManagers.
Lifecycle
Destroy()Destroys the Set container and removes its membership/configuration links. The Statistics, Resources, EffectManagers, Modifiers, Effects, and Flows themselves stay alive.
SetIdentity(identity)

Sets this Set's ID. Save/restore uses it to make sure captured state is being loaded into the intended Set.

Arguments
identity String,Real,Undefined Non-empty string or finite number used as an ID, or undefined to clear.
Returns
Struct.CatalystSet
GetIdentity()

Returns the Set ID.

Returns
String,Real,Undefined ID value.
SetName(name)

Sets the Set name.

Arguments
name String Name value.
Returns
Struct.CatalystSet
GetName()

Returns the Set name.

Returns
String Name value.
SetMeta(meta)

Stores any extra project data you want to keep with this value. Catalyst does not interpret or change it.

Arguments
meta Any Any extra project data you want to store here.
Returns
Struct.CatalystSet
GetMeta()

Returns the extra project data previously stored with SetMeta().

Returns
Any Extra project data previously stored with SetMeta().
CaptureState()

Collects the Catalyst data in this Set into a save-friendly struct. Call Succeeded() on the result before using GetState(); functions and other runtime-only values may require repair when the state is restored.

Returns
Struct.CatalystStateCaptureResult Result containing the saved state when capture succeeds, or a report explaining why it could not be captured.
RestoreState(state)

Prepares previously captured state to load into this already-created Set. RestoreState() does not immediately change gameplay data. First supply any callbacks or custom countdown trackers the save file could not contain with Repair(), then call Complete() to apply the state.

Arguments
state Struct Struct returned by CatalystStateCaptureResult.GetState(). It may have been saved with json_stringify() and loaded again with json_parse().
Returns
Struct.CatalystStateRestoreResult Restore result, including diagnostics when the state cannot be applied.
AddStatistic(statistic)

Adds a Statistic directly to this Set. The Statistic must have an ID so Catalyst can match incoming Modifiers to it, and it cannot already belong directly to another CatalystSet.

Arguments
statistic Struct.CatalystStatistic Statistic reference to add.
Returns
Struct.CatalystSet
RemoveStatistic(statistic)

Removes a Statistic from this Set without destroying it or its Modifiers.

Arguments
statistic Struct.CatalystStatistic Statistic reference to remove.
Returns
Bool Whether it was a member.
HasStatistic(identity)

Returns whether this Set directly contains a Statistic with the given ID.

Arguments
identity String,Real Statistic ID.
Returns
Bool Whether a direct member exists.
GetStatistic(identity)

Returns the directly added Statistic with the given ID.

Arguments
identity String,Real Statistic ID.
Returns
Struct.CatalystStatistic,Undefined Statistic or undefined.
GetStatistics()

Returns a new array containing direct Statistic members.

Returns
Array<Struct.CatalystStatistic> Statistics.
AddResource(resource)

Adds a Resource as a direct member of this Set. The Resource must have an ID and cannot already be a direct member of another CatalystSet. The Set also passes its FactView/layer settings into Catalyst-owned Statistics inside the Resource.

Arguments
resource Struct.CatalystResource Resource reference to add.
Returns
Struct.CatalystSet
RemoveResource(resource)

Removes a Resource from this Set without destroying it or its Flows.

Arguments
resource Struct.CatalystResource Resource reference to remove.
Returns
Bool Whether it was a member.
HasResource(identity)

Returns whether this Set directly contains a Resource with the given ID.

Arguments
identity String,Real Resource ID.
Returns
Bool Whether a direct member exists.
GetResource(identity)

Returns the directly added Resource with the given ID.

Arguments
identity String,Real Resource ID.
Returns
Struct.CatalystResource,Undefined Resource or undefined.
GetResources()

Returns a new array containing direct Resource members.

Returns
Array<Struct.CatalystResource> Resources.
AddEffectManager(manager)

Adds an EffectManager as a direct member of this Set. It must have an ID and cannot already be a direct member of another Set. Effects applied through this manager later receive the Set's FactView and layer settings for their Catalyst-owned Statistics.

Arguments
manager Struct.CatalystEffectManager Effect Manager reference to add.
Returns
Struct.CatalystSet
RemoveEffectManager(manager)

Removes an EffectManager from this Set without destroying it or its active Effects.

Arguments
manager Struct.CatalystEffectManager Manager reference to remove.
Returns
Bool Whether it was a member.
HasEffectManager(identity)

Returns whether this Set directly contains an EffectManager with the given ID.

Arguments
identity String,Real EffectManager ID.
Returns
Bool Whether a direct member exists.
GetEffectManager(identity)

Returns the directly added EffectManager with the given ID.

Arguments
identity String,Real EffectManager ID.
Returns
Struct.CatalystEffectManager,Undefined Manager or undefined.
GetEffectManagers()

Returns a new array containing direct Effect Manager members.

Returns
Array<Struct.CatalystEffectManager> Managers.
SetFactView(fact_view)

Sets the OracleFactView that managed Statistics should read from. The Set applies it to direct Statistics and to Catalyst-owned Statistics inside Resources, Flows, and Effects.

Arguments
fact_view Struct.OracleFactView Oracle FactView to apply to Statistics managed by this Set.
Returns
Struct.CatalystSet
ClearFactView()

Clears the Set FactView and removes it from the Statistics currently managed by this Set.

Returns
Struct.CatalystSet
GetFactView()

Returns the stored Fact View.

Returns
Struct.OracleFactView,Undefined Fact View or undefined.
SetLayerOrder(layers)

Sets the Statistic layer order this Set should apply across its managed Catalyst values. Direct Statistics and Catalyst-owned Statistics inside Resources, Flows, and Effects receive the same order.

Arguments
layers Array<Any> Layer IDs in the order Statistics should calculate them. Each ID must be unique; strings and finite numbers are supported.
Returns
Struct.CatalystSet
ClearLayerOrder()

Stops the Set from applying its layer order to future Statistics. Existing Statistics keep the order they already received.

Returns
Struct.CatalystSet
GetLayerOrder()

Returns the layer order stored by this Set, or undefined when none is set.

Returns
Array<Any>,Undefined layer order or undefined.
Preview(incoming, [query])

Checks where every Modifier in the incoming ModifierSet would go and calculates the resulting Statistic values without changing the Set.

Arguments
incoming Struct.CatalystModifierSet ModifierSet whose Modifiers should be tested as additions.
query optional Struct.OracleFactQuery,Struct Optional Oracle Fact query used only while calculating these values.
Returns
Struct.CatalystSetPreviewResult Preview result.
PreviewSwap(outgoing, incoming, [query])

Calculates a proposed swap: remove the outgoing ModifierSet's attached Modifiers and add the incoming ModifierSet's Modifiers, without actually changing any Statistic.

Arguments
outgoing Struct.CatalystModifierSet ModifierSet whose currently attached Modifiers should be treated as removals.
incoming Struct.CatalystModifierSet ModifierSet whose Modifiers should be tested as additions.
query optional Struct.OracleFactQuery,Struct Optional Oracle Fact query used only while calculating these values.
Returns
Struct.CatalystSetPreviewResult Preview result.
Apply(incoming)

Attaches every Modifier in the incoming ModifierSet to the Statistic matching its target ID. The operation is all-or-nothing: if any Modifier cannot be applied, none of them are attached.

Arguments
incoming Struct.CatalystModifierSet ModifierSet whose Modifiers should be tested as additions.
Returns
Struct.CatalystSetApplyResult Apply result.
ApplySwap(outgoing, incoming)

Removes the outgoing ModifierSet's attached Modifiers and attaches the incoming ModifierSet's Modifiers by target ID. The whole swap is all-or-nothing: if any part fails validation, nothing changes.

Arguments
outgoing Struct.CatalystModifierSet ModifierSet whose currently attached Modifiers should be treated as removals.
incoming Struct.CatalystModifierSet ModifierSet whose Modifiers should be tested as additions.
Returns
Struct.CatalystSetApplyResult Apply result.
Refresh()

Recalculates every Statistic managed by this Set, including Catalyst-owned Statistics inside Resources, Flows, and active Effects. It then refreshes Resources so changed minimum/maximum values are applied.

Returns
Struct.CatalystSetRefreshResult Result listing which Statistics and Resources changed.
GetDetails([query])

Returns data intended for debug/inspection tools: Explain() details for managed Statistics plus the Set's direct Resources and EffectManagers.

Arguments
query optional Struct.OracleFactQuery,Struct Optional Oracle Fact query used only while calculating these values.
Returns
Struct.CatalystSetDetails Details struct.
Destroy()

Destroys the Set container and removes its membership/configuration links. The Statistics, Resources, EffectManagers, Modifiers, Effects, and Flows themselves stay alive.

Returns
Undefined No return value.

CatalystModifierSet

Creates a reusable group of Modifiers for CatalystSet Preview(), Apply(), and swap operations. Each Modifier uses its target ID to choose a Statistic. The ModifierSet only groups references; it does not own, attach, detach, or destroy the Modifiers itself.

new CatalystModifierSet(identity)
Arguments
identity optional String,Real Optional ID for this ModifierSet, useful for your own lookup or save data.

Methods

Identity and metadata
SetIdentity()Sets an optional ID for this ModifierSet so your own code can identify the package.
GetIdentity()Returns the package ID.
SetName()Sets the package name.
GetName()Returns the package name.
SetMeta()Stores any extra project data you want to keep with this value. Catalyst does not interpret or change it.
GetMeta()Returns the extra project data previously stored with SetMeta().
Modifiers
AddModifier()Adds a Modifier reference to this package. This does not attach the Modifier to a Statistic or transfer ownership; it only makes the Modifier part of future Set preview/apply operations.
RemoveModifier()Removes the Modifier reference from this package only. If the Modifier is attached somewhere, that attachment is unchanged.
HasModifier()Returns whether this exact Modifier reference is currently included in the package.
GetModifiers()Returns the Modifiers in this package.
Lifecycle
Destroy()Clears this ModifierSet. The Modifiers themselves are not destroyed and any existing Statistic attachments stay unchanged.
SetIdentity(identity)

Sets an optional ID for this ModifierSet so your own code can identify the package.

Arguments
identity String,Real,Undefined Non-empty string or finite number used as an ID, or undefined to clear.
Returns
GetIdentity()

Returns the package ID.

Returns
String,Real,Undefined ID value.
SetName(name)

Sets the package name.

Arguments
name String Name value.
Returns
GetName()

Returns the package name.

Returns
String Name value.
SetMeta(meta)

Stores any extra project data you want to keep with this value. Catalyst does not interpret or change it.

Arguments
meta Any Any extra project data you want to store here.
Returns
GetMeta()

Returns the extra project data previously stored with SetMeta().

Returns
Any Extra project data previously stored with SetMeta().
AddModifier(modifier)

Adds a Modifier reference to this package. This does not attach the Modifier to a Statistic or transfer ownership; it only makes the Modifier part of future Set preview/apply operations.

Arguments
modifier Struct.CatalystModifier Modifier to package.
Returns
RemoveModifier(modifier)

Removes the Modifier reference from this package only. If the Modifier is attached somewhere, that attachment is unchanged.

Arguments
modifier Struct.CatalystModifier Modifier reference to remove.
Returns
Bool Whether it was present.
HasModifier(modifier)

Returns whether this exact Modifier reference is currently included in the package.

Arguments
modifier Struct.CatalystModifier Modifier to check.
Returns
Bool True when the Modifier is in this package.
GetModifiers()

Returns the Modifiers in this package.

Returns
Array<Struct.CatalystModifier> Packaged Modifiers.
Destroy()

Clears this ModifierSet. The Modifiers themselves are not destroyed and any existing Statistic attachments stay unchanged.

Returns
Undefined No return value.

CatalystSetPreviewResult

Stores the result of Preview() or PreviewSwap(). It tells you whether all requested Modifiers could be matched to Statistics, gives preview values for affected Statistics, and lists any problems. Nothing has been attached or removed.

Methods

MethodWhat it does
GetStatus()Returns the overall preview status.
Succeeded()Returns whether every Modifier in the preview could be matched to a valid target Statistic.
GetEntries()Returns a new array containing preview entries.
GetDiagnostics()Returns the problems Catalyst found while matching Modifiers to target Statistics.
GetStatus()

Returns the overall preview status.

Returns
Real eCatSetPreviewStatus value.
Succeeded()

Returns whether every Modifier in the preview could be matched to a valid target Statistic.

Returns
Bool Whether status is SUCCESS.
GetEntries()

Returns a new array containing preview entries.

Returns
Array<Struct.CatalystSetPreviewEntry> Preview entries.
GetDiagnostics()

Returns the problems Catalyst found while matching Modifiers to target Statistics.

Returns
Array<Struct.CatalystRouteDiagnostic> Problems Catalyst found while matching Modifiers to target Statistics.

CatalystSetPreviewEntry

Shows how one Statistic would change during CatalystSet.Preview() or PreviewSwap(), including its current value, proposed value, and which Modifiers would leave or enter.

Methods

MethodWhat it does
GetStatistic()Returns the target Statistic.
GetCurrentValue()Returns this Statistic's value before the proposed ModifierSet change.
GetPreviewValue()Returns what this Statistic's value would be after the proposed ModifierSet change.
GetEvaluation()Returns Explain-style details showing exactly how Catalyst calculated this Statistic's preview value.
GetOutgoingModifiers()Returns a new array containing the Modifiers that would be removed by this preview.
GetIncomingModifiers()Returns a new array containing the Modifiers that would be added by this preview.
GetStatistic()

Returns the target Statistic.

Returns
Struct.CatalystStatistic Statistic reference.
GetCurrentValue()

Returns this Statistic's value before the proposed ModifierSet change.

Returns
Real Current value.
GetPreviewValue()

Returns what this Statistic's value would be after the proposed ModifierSet change.

Returns
Real Preview value.
GetEvaluation()

Returns Explain-style details showing exactly how Catalyst calculated this Statistic's preview value.

Returns
Struct.CatalystStatisticEvaluation Details showing how the preview value was calculated.
GetOutgoingModifiers()

Returns a new array containing the Modifiers that would be removed by this preview.

Returns
Array<Struct.CatalystModifier> Outgoing modifiers.
GetIncomingModifiers()

Returns a new array containing the Modifiers that would be added by this preview.

Returns
Array<Struct.CatalystModifier> Incoming modifiers.

CatalystRouteDiagnostic

Describes one problem found while a CatalystSet was trying to match a Modifier's target ID to a Statistic and apply or preview it.

Methods

MethodWhat it does
GetOutcome()Returns the eCatRouteOutcome value that explains what went wrong.
GetSubject()Returns the Modifier or other Catalyst value involved in this problem.
GetTargetIdentity()Returns the requested Statistic ID.
GetStatistic()Returns the Statistic Catalyst found before the operation failed, or noone if no Statistic was found.
GetOutcome()

Returns the eCatRouteOutcome value that explains what went wrong.

Returns
Real eCatRouteOutcome value.
GetSubject()

Returns the Modifier or other Catalyst value involved in this problem.

Returns
Any Subject value.
GetTargetIdentity()

Returns the requested Statistic ID.

Returns
String,Real,Undefined Target ID.
GetStatistic()

Returns the Statistic Catalyst found before the operation failed, or noone if no Statistic was found.

Returns
Struct.CatalystStatistic,Noone Statistic or noone.

CatalystSetApplyResult

Stores the result of Apply() or ApplySwap(). These operations are all-or-nothing: if any Modifier cannot be matched and applied safely, the Set leaves everything unchanged.

Methods

MethodWhat it does
Succeeded()Returns whether the complete apply or swap was performed.
GetDiagnostics()Returns the problems Catalyst found while matching Modifiers to target Statistics.
GetRefreshResults()Returns a new array containing refresh results for touched Statistics.
Succeeded()

Returns whether the complete apply or swap was performed.

Returns
Bool Whether it succeeded.
GetDiagnostics()

Returns the problems Catalyst found while matching Modifiers to target Statistics.

Returns
Array<Struct.CatalystRouteDiagnostic> Problems Catalyst found while matching Modifiers to target Statistics.
GetRefreshResults()

Returns a new array containing refresh results for touched Statistics.

Returns
Array<Struct.CatalystStatisticRefreshResult> Refresh results.

CatalystSetRefreshResult

Reports what changed when a CatalystSet was refreshed.

Methods

MethodWhat it does
DidChange()Returns whether any refreshed Statistic or Resource changed current value.
GetStatisticResults()Returns the Statistic refresh results.
GetResourceResults()Returns the Resource refresh results.
DidChange()

Returns whether any refreshed Statistic or Resource changed current value.

Returns
Bool Whether anything changed.
GetStatisticResults()

Returns the Statistic refresh results.

Returns
Array<Struct.CatalystSetStatisticRefreshEntry> Statistic refresh entries.
GetResourceResults()

Returns the Resource refresh results.

Returns
Array<Struct.CatalystSetResourceRefreshEntry> Resource refresh entries.

CatalystSetStatisticRefreshEntry

Pairs one refreshed Statistic with the result of that refresh.

Methods

MethodWhat it does
GetStatistic()Returns the refreshed Statistic.
GetResult()Returns this Statistic's refresh result.
GetStatistic()

Returns the refreshed Statistic.

Returns
Struct.CatalystStatistic Statistic reference.
GetResult()

Returns this Statistic's refresh result.

Returns
Struct.CatalystStatisticRefreshResult Refresh result.

CatalystSetResourceRefreshEntry

Pairs one refreshed Resource with its change result.

Methods

MethodWhat it does
GetResource()Returns the refreshed Resource.
GetResult()Returns this Resource's refresh result.
GetResource()

Returns the refreshed Resource.

Returns
Struct.CatalystResource Resource reference.
GetResult()

Returns this Resource's refresh result.

Returns
Struct.CatalystResourceChange Resource change result.

CatalystSetDetails

Contains the Catalyst values currently managed by a Set for inspection or debug UI: Statistic calculation details, direct Resources, and direct EffectManagers.

Methods

MethodWhat it does
GetStatisticEvaluations()Returns the Statistic inspection details.
GetResources()Returns direct Resource members.
GetEffectManagers()Returns direct Effect Manager members.
GetStatisticEvaluations()

Returns the Statistic inspection details.

Returns
Array<Struct.CatalystSetStatisticDetail> Evaluation entries.
GetResources()

Returns direct Resource members.

Returns
Array<Struct.CatalystResource> Resources.
GetEffectManagers()

Returns direct Effect Manager members.

Returns
Array<Struct.CatalystEffectManager> Managers.

CatalystSetStatisticDetail

Keeps a Statistic together with the Explain() details showing how its current value was calculated.

Methods

MethodWhat it does
GetStatistic()Returns the inspected Statistic.
GetEvaluation()Returns Explain() details showing how this Statistic's value was calculated.
GetStatistic()

Returns the inspected Statistic.

Returns
Struct.CatalystStatistic Statistic reference.
GetEvaluation()

Returns Explain() details showing how this Statistic's value was calculated.

Returns
Struct.CatalystStatisticEvaluation Details showing how the preview value was calculated.

Observation, facts, and timing

CatalystSubscription

Returned by OnChange() and similar methods when you subscribe to an event. Keep this value if you may want to stop that callback later with Unsubscribe().

Methods

MethodWhat it does
Unsubscribe()Stops this subscription, so its callback will no longer run. Calling Unsubscribe() again is safe and returns false because it is already stopped.
IsActive()Returns whether this subscription is still active and able to receive callbacks.
Unsubscribe()

Stops this subscription, so its callback will no longer run. Calling Unsubscribe() again is safe and returns false because it is already stopped.

Returns
Bool True when an active subscription was removed.
IsActive()

Returns whether this subscription is still active and able to receive callbacks.

Returns
Bool Whether the subscription is active.

CatalystFactBinding

Represents a live connection between a Catalyst Statistic or Resource and an Oracle Fact. PublishToFact() normally creates this for you; keep it if you may want to Sync() or Unbind() later.

Methods

MethodWhat it does
Sync()Immediately writes the current Statistic or Resource value to Oracle again. This is useful after a silent state restore, which intentionally does not fire ordinary change callbacks.
Unbind()Stops keeping the Oracle Fact updated. The Fact value already stored in Oracle is left in place.
IsBound()Returns whether this binding is still publishing changes.
Sync()

Immediately writes the current Statistic or Resource value to Oracle again. This is useful after a silent state restore, which intentionally does not fire ordinary change callbacks.

Returns
Unbind()

Stops keeping the Oracle Fact updated. The Fact value already stored in Oracle is left in place.

Returns
Bool True when an active binding was removed.
IsBound()

Returns whether this binding is still publishing changes.

Returns
Bool Whether the binding is active.

CatalystCountdownTracker

Creates a timer controller for timed ResourceFlows, Effects, and standalone Modifiers. It can be advanced manually or automatically once per frame.

new CatalystCountdownTracker()

Methods

Identity
SetIdentity()Gives this custom countdown tracker an ID so Catalyst save/restore can reconnect timed values to the same tracker after loading.
GetIdentity()Returns the optional ID used to reconnect this custom countdown tracker during save/restore.
Tracked flows
AddFlow()Adds a standalone ResourceFlow to this tracker so Countdown() advances its delay and moves its Resource over time.
DetachFlow()Stops this tracker from advancing the Flow. The Flow itself is not destroyed or removed from its Resource.
IsTrackingFlow()Returns whether this tracker currently contains the given standalone flow.
Tracked effects
AddEffect()Adds an active timed Effect to this tracker so Countdown() advances its duration and tick timing.
DetachEffect()Stops this tracker from advancing the Effect's timers. The Effect stays active on its EffectManager.
IsTrackingEffect()Returns whether this tracker currently contains the given timed effect.
Tracked modifiers
AddModifier()Adds a timed Modifier that is attached directly to a Statistic, so Countdown() advances its remaining duration. Detached Modifiers and Modifiers owned by Effects are ignored because they are timed elsewhere.
DetachModifier()Stops this tracker from advancing the Modifier's duration. The Modifier stays attached to its Statistic.
IsTrackingModifier()Returns whether this tracker currently contains the given modifier.
Timing
SetPaused()Pauses or resumes this tracker. While paused, both manual Countdown() calls and automatic countdown leave all tracked timers unchanged.
IsPaused()Returns whether countdown is currently paused.
SetTimeScale()Scales all time passed through this tracker. For example, 0.5 makes timers advance at half speed, 2 doubles their speed, and 0 freezes them without changing the paused setting.
GetTimeScale()Returns the multiplier applied to every countdown step.
StartAutomatic()Makes this tracker advance itself once per game frame. FRAMES advances by 1 each frame; DELTA_TIME advances by the frame's elapsed time in seconds.
StopAutomatic()Stops automatic countdown without detaching tracked flows, effects, or modifiers.
IsAutomatic()Returns whether this tracker is currently advancing itself automatically each frame.
GetCountdownMode()Returns the tracker's current countdown mode.
Countdown()Passes time to every Flow, Effect, and standalone Modifier tracked here. Time scale and pause state are applied automatically.
Debugging and lifecycle
DebugDump()Writes separate summaries of tracked standalone flows, timed effects, and timed modifiers to debug output.
Destroy()Destroys this tracker and stops its automatic timing. Tracked values are detached from the tracker but are not otherwise destroyed. If called during Countdown(), cleanup finishes after the current countdown pass.
SetIdentity(identity)

Gives this custom countdown tracker an ID so Catalyst save/restore can reconnect timed values to the same tracker after loading.

Arguments
identity String,Real,Undefined Non-empty string or finite number to use as the tracker ID, or undefined to clear it.
Returns
Struct.CatalystCountdownTracker This tracker, so calls can be chained.
GetIdentity()

Returns the optional ID used to reconnect this custom countdown tracker during save/restore.

Returns
String,Real,Undefined Current tracker ID, or undefined when none is set.
AddFlow(flow)

Adds a standalone ResourceFlow to this tracker so Countdown() advances its delay and moves its Resource over time.

Arguments
flow Struct.CatalystResourceFlow Flow to track.
Returns
Struct.CatalystCountdownTracker The tracker, for chaining.
DetachFlow(flow)

Stops this tracker from advancing the Flow. The Flow itself is not destroyed or removed from its Resource.

Arguments
flow Struct.CatalystResourceFlow Flow to detach.
Returns
Bool Whether the flow was detached.
IsTrackingFlow(flow)

Returns whether this tracker currently contains the given standalone flow.

Arguments
flow Struct.CatalystResourceFlow Flow to query.
Returns
Bool Whether the flow is tracked.
AddEffect(effect)

Adds an active timed Effect to this tracker so Countdown() advances its duration and tick timing.

Arguments
effect Struct.CatalystEffect Effect to track.
Returns
Struct.CatalystCountdownTracker The tracker, for chaining.
DetachEffect(effect)

Stops this tracker from advancing the Effect's timers. The Effect stays active on its EffectManager.

Arguments
effect Struct.CatalystEffect Effect to detach.
Returns
Bool Whether the effect was detached.
IsTrackingEffect(effect)

Returns whether this tracker currently contains the given timed effect.

Arguments
effect Struct.CatalystEffect Effect to query.
Returns
Bool Whether the effect is tracked.
AddModifier(modifier)

Adds a timed Modifier that is attached directly to a Statistic, so Countdown() advances its remaining duration. Detached Modifiers and Modifiers owned by Effects are ignored because they are timed elsewhere.

Arguments
modifier Struct.CatalystModifier Attached standalone Modifier to track.
Returns
Struct.CatalystCountdownTracker The tracker, for chaining.
DetachModifier(modifier)

Stops this tracker from advancing the Modifier's duration. The Modifier stays attached to its Statistic.

Arguments
modifier Struct.CatalystModifier Modifier to detach.
Returns
Bool Whether the modifier was detached.
IsTrackingModifier(modifier)

Returns whether this tracker currently contains the given modifier.

Arguments
modifier Struct.CatalystModifier Modifier to query.
Returns
Bool Whether the modifier is tracked.
SetPaused(paused)

Pauses or resumes this tracker. While paused, both manual Countdown() calls and automatic countdown leave all tracked timers unchanged.

Arguments
paused Bool True to pause countdown, false to resume.
Returns
Bool Current paused state.
IsPaused()

Returns whether countdown is currently paused.

Returns
Bool Current paused state.
SetTimeScale(time_scale)

Scales all time passed through this tracker. For example, 0.5 makes timers advance at half speed, 2 doubles their speed, and 0 freezes them without changing the paused setting.

Arguments
time_scale Real Time multiplier. Values below 0 are treated as 0.
Returns
Real Current time scale.
GetTimeScale()

Returns the multiplier applied to every countdown step.

Returns
Real Current time scale.
StartAutomatic([mode])

Makes this tracker advance itself once per game frame. FRAMES advances by 1 each frame; DELTA_TIME advances by the frame's elapsed time in seconds.

Arguments
mode optional Real Use eCatCountdownMode.FRAMES or eCatCountdownMode.DELTA_TIME. Defaults to FRAMES.
Returns
Struct.CatalystCountdownTracker The tracker, for chaining.
StopAutomatic()

Stops automatic countdown without detaching tracked flows, effects, or modifiers.

Returns
Struct.CatalystCountdownTracker The tracker, for chaining.
IsAutomatic()

Returns whether this tracker is currently advancing itself automatically each frame.

Returns
Bool Whether automatic countdown is active.
GetCountdownMode()

Returns the tracker's current countdown mode.

Returns
Real Current countdown mode (eCatCountdownMode).
Countdown([step_size])

Passes time to every Flow, Effect, and standalone Modifier tracked here. Time scale and pause state are applied automatically.

Arguments
step_size optional Real Amount of countdown time to pass. Defaults to 1.
Returns
Undefined No return value.
DebugDump()

Writes separate summaries of tracked standalone flows, timed effects, and timed modifiers to debug output.

Returns
Undefined No return value.
Destroy()

Destroys this tracker and stops its automatic timing. Tracked values are detached from the tracker but are not otherwise destroyed. If called during Countdown(), cleanup finishes after the current countdown pass.

Returns
Undefined No return value.

Saving and loading

CatalystStateCaptureResult

Result returned by CatalystSet.CaptureState(). When Succeeded() is true, GetState() returns the save-friendly Catalyst data. When it is false, GetReport() explains what prevented the capture.

Methods

MethodWhat it does
Succeeded()Returns true when CaptureState() produced complete save data that can be passed to GetState().
GetState()Returns the complete captured state when capture succeeded.
GetReport()Returns a plain-data report describing whether capture succeeded and, if it failed, what Catalyst could not save. The report is safe to include in JSON or debug output.
Succeeded()

Returns true when CaptureState() produced complete save data that can be passed to GetState().

Returns
Bool Whether capture succeeded.
GetState()

Returns the complete captured state when capture succeeded.

Returns
Struct,Undefined Captured state, or undefined when capture failed.
GetReport()

Returns a plain-data report describing whether capture succeeded and, if it failed, what Catalyst could not save. The report is safe to include in JSON or debug output.

Returns
Struct Capture diagnostic report.
Extra notes
report_version Real Version of the diagnostic report format.
success Bool Whether capture succeeded.
stage String Capture stage represented by this report.
failures Array<Struct> Plain-data descriptions of values Catalyst could not capture.
set_identity String,Real,Undefined Set identity when one was available.

CatalystStateRestoreResult

Pending restore handle returned by CatalystSet.RestoreState(). Use it to supply missing runtime values, inspect restore diagnostics, and explicitly Complete() the prepared load.

Methods

Repair
Repair()Applies a CatalystRepair table to this pending restore. Call this after RestoreState() when the save contains callbacks or custom countdown trackers that must be supplied again at runtime.
ResolveCallbacks()Advanced alternative to CatalystRepair(). Supplies missing callbacks from a struct grouped by Catalyst type and ID. For Statistics owned inside Resources, Flows, or Effects, put their callbacks inside the matching component entry such as minimum, rate, or chance_per_tick.
GetMissingCallbacks()Returns every callback that is still preventing Complete() from loading the captured state. Each requirement tells you what Catalyst value needs the callback and lets you Resolve() it directly.
GetMissingCountdownTrackers()Returns every saved value that is still waiting to be reconnected to a custom CatalystCountdownTracker before Complete() can succeed.
IgnoreMissing()Tells the restore to skip any temporary saved Effect, Flow, or Modifier that still cannot be repaired. Direct Set members and other permanent structure are never skipped, so unresolved permanent requirements will still block Complete().
Status and completion
GetReport()Returns a plain-data report describing the current restore stage, unresolved requirements, ignored temporary values, and any failures. The report is safe to include in JSON or debug output.
IsComplete()Returns whether Complete() has successfully applied the captured state to the live CatalystSet.
Complete()Applies the prepared save data to the existing CatalystSet once all required callbacks and custom countdown trackers have been repaired or deliberately ignored. The load is gameplay-silent: Catalyst does not treat restored values as ordinary gameplay changes or fire normal change/apply/remove callbacks.
Repair(repair)

Applies a CatalystRepair table to this pending restore. Call this after RestoreState() when the save contains callbacks or custom countdown trackers that must be supplied again at runtime.

Arguments
repair Struct Repair table created with CatalystRepair() and filled with the callbacks/trackers your game uses.
Returns
Struct.CatalystStateRestoreResult This restore result.
ResolveCallbacks(callbacks)

Advanced alternative to CatalystRepair(). Supplies missing callbacks from a struct grouped by Catalyst type and ID. For Statistics owned inside Resources, Flows, or Effects, put their callbacks inside the matching component entry such as minimum, rate, or chance_per_tick.

Arguments
callbacks Struct Struct containing callback entries grouped by Catalyst type and ID.
Returns
Struct.CatalystStateRestoreResult This restore result.
GetMissingCallbacks()

Returns every callback that is still preventing Complete() from loading the captured state. Each requirement tells you what Catalyst value needs the callback and lets you Resolve() it directly.

Returns
Array<Struct.CatalystStateCallbackRequirement> Missing callback requirements.
GetMissingCountdownTrackers()

Returns every saved value that is still waiting to be reconnected to a custom CatalystCountdownTracker before Complete() can succeed.

Returns
Array<Struct.CatalystStateCountdownTrackerRequirement> Missing countdown tracker requirements.
IgnoreMissing()

Tells the restore to skip any temporary saved Effect, Flow, or Modifier that still cannot be repaired. Direct Set members and other permanent structure are never skipped, so unresolved permanent requirements will still block Complete().

Returns
Struct.CatalystStateRestoreResult This restore result.
GetReport()

Returns a plain-data report describing the current restore stage, unresolved requirements, ignored temporary values, and any failures. The report is safe to include in JSON or debug output.

Returns
Struct Restore diagnostic report.
Extra notes
report_version Real Version of the diagnostic report format.
success Bool Whether the prepared state has been completely applied.
stage String Current restore stage, such as prepare, pending, ready, apply, or complete.
salvaged Bool Whether temporary saved values were deliberately ignored so the restore could proceed.
failures Array<Struct> Plain-data descriptions of unresolved or failed restore requirements.
ignored Array<Struct> Temporary saved values deliberately skipped by the restore.
set_identity String,Real,Undefined Live Set identity when available.
saved_set_identity String,Real,Undefined Identity stored in the captured state when available.
IsComplete()

Returns whether Complete() has successfully applied the captured state to the live CatalystSet.

Returns
Bool Whether restoration is complete.
Complete()

Applies the prepared save data to the existing CatalystSet once all required callbacks and custom countdown trackers have been repaired or deliberately ignored. The load is gameplay-silent: Catalyst does not treat restored values as ordinary gameplay changes or fire normal change/apply/remove callbacks.

Returns
Bool true if the state is now fully applied; false if repair requirements or another restore blocker remain.

CatalystStateCallbackRequirement

One missing callback requirement returned by CatalystStateRestoreResult.GetMissingCallbacks().

Methods

Identification
GetType()Returns which kind of Catalyst value is missing a callback, such as "statistic", "modifier", or "effect".
GetIdentity()Returns the ID of the Catalyst value whose callback needs to be supplied again.
GetComponent()Tells you which part of the Catalyst value owns the missing callback. For example, "self" means the main value, while "rate", "minimum", or "chance_per_tick" refers to an owned Statistic inside it.
GetPath()Returns a text path showing where this missing callback came from inside the captured state. This is mainly useful for debugging a restore problem.
GetStruct()Returns the Catalyst value this missing-callback requirement belongs to. This lets advanced repair code inspect the value directly if needed.
Missing callbacks
GetCallbacks()Returns the names of callbacks that this Catalyst value still needs before the restore can complete.
Needs()Returns whether this requirement is still waiting for the callback name you provide.
GetSavedCallbackName()If the original callback was a named GameMaker function, returns that saved function name. This can help your repair code decide which function to supply again.
Resolve()Supplies one function that the save file could not store. The function is held until Complete() applies the restored state.
Optional salvage
CanIgnore()Returns whether you are allowed to skip the temporary saved Effect, Flow, or Modifier that needs this callback. Permanent Set members cannot be skipped.
Ignore()Marks the temporary saved Effect, Flow, or Modifier containing this missing callback to be skipped when Complete() applies the restore. Use CanIgnore() first.
GetIgnoreType()Returns the kind of temporary saved Catalyst value that Ignore() would skip, such as an Effect, Flow, or Modifier.
GetIgnoreIdentity()Returns the ID of the temporary saved Catalyst value that Ignore() would skip.
GetType()

Returns which kind of Catalyst value is missing a callback, such as "statistic", "modifier", or "effect".

Returns
String Catalyst value type.
GetIdentity()

Returns the ID of the Catalyst value whose callback needs to be supplied again.

Returns
String,Real,Undefined Catalyst value ID, or undefined when that value has no ID.
GetComponent()

Tells you which part of the Catalyst value owns the missing callback. For example, "self" means the main value, while "rate", "minimum", or "chance_per_tick" refers to an owned Statistic inside it.

Returns
String Component name.
GetPath()

Returns a text path showing where this missing callback came from inside the captured state. This is mainly useful for debugging a restore problem.

Returns
String Saved-state path.
CanIgnore()

Returns whether you are allowed to skip the temporary saved Effect, Flow, or Modifier that needs this callback. Permanent Set members cannot be skipped.

Returns
Bool Whether Ignore() is available.
Ignore()

Marks the temporary saved Effect, Flow, or Modifier containing this missing callback to be skipped when Complete() applies the restore. Use CanIgnore() first.

Returns
Bool Whether the restore root was marked to be ignored.
GetIgnoreType()

Returns the kind of temporary saved Catalyst value that Ignore() would skip, such as an Effect, Flow, or Modifier.

Returns
String,Undefined Kind of saved value that would be skipped, or undefined when it cannot be ignored.
GetIgnoreIdentity()

Returns the ID of the temporary saved Catalyst value that Ignore() would skip.

Returns
String,Real,Undefined ID of the saved value that would be skipped, or undefined when it cannot be ignored.
GetStruct()

Returns the Catalyst value this missing-callback requirement belongs to. This lets advanced repair code inspect the value directly if needed.

Returns
Struct Catalyst struct.
GetCallbacks()

Returns the names of callbacks that this Catalyst value still needs before the restore can complete.

Returns
Array<String> Missing callback slot names.
Needs(callback)

Returns whether this requirement is still waiting for the callback name you provide.

Arguments
callback String Callback name, such as "condition", "on_apply", or another name returned by GetCallbacks().
Returns
Bool Whether the callback is still required.
GetSavedCallbackName(callback)

If the original callback was a named GameMaker function, returns that saved function name. This can help your repair code decide which function to supply again.

Arguments
callback String Callback slot from this requirement.
Returns
String,Undefined Saved function name, or undefined when none was available.
Resolve(callback, fn)

Supplies one function that the save file could not store. The function is held until Complete() applies the restored state.

Arguments
callback String Callback slot name returned by GetCallbacks().
fn Function Function to restore into this callback slot when Complete() succeeds.
Returns
Bool Whether the callback was accepted.

CatalystStateCountdownTrackerRequirement

One missing custom countdown tracker requirement returned by CatalystStateRestoreResult.GetMissingCountdownTrackers().

Methods

Identification
GetType()Returns which kind of Catalyst value is waiting for a custom CatalystCountdownTracker, such as an Effect, Flow, or Modifier.
GetIdentity()Returns the ID of the Catalyst value that needs to be reconnected to a custom countdown tracker.
GetTrackerIdentity()Returns the ID of the custom CatalystCountdownTracker this saved value used before it was captured.
GetPath()Returns the saved-state path containing the missing countdown tracker.
GetStruct()Returns the Catalyst value this missing-tracker requirement belongs to. This lets advanced repair code inspect the value directly if needed.
Resolution
Resolve()Reconnects this saved Catalyst value to the live custom CatalystCountdownTracker it used before saving.
Optional salvage
CanIgnore()Returns whether you are allowed to skip the temporary saved Effect, Flow, or Modifier that needs this tracker. Permanent Set members cannot be skipped.
Ignore()Marks the temporary saved Effect, Flow, or Modifier containing this tracker to be skipped when Complete() applies the restore. Use CanIgnore() first.
GetIgnoreType()Returns the kind of temporary saved Catalyst value that Ignore() would skip, such as an Effect, Flow, or Modifier.
GetIgnoreIdentity()Returns the ID of the temporary saved Catalyst value that Ignore() would skip.
GetType()

Returns which kind of Catalyst value is waiting for a custom CatalystCountdownTracker, such as an Effect, Flow, or Modifier.

Returns
String Catalyst value type.
GetIdentity()

Returns the ID of the Catalyst value that needs to be reconnected to a custom countdown tracker.

Returns
String,Real,Undefined Catalyst value ID, or undefined when it has no ID.
GetTrackerIdentity()

Returns the ID of the custom CatalystCountdownTracker this saved value used before it was captured.

Returns
String,Real Countdown tracker identity.
GetPath()

Returns the saved-state path containing the missing countdown tracker.

Returns
String Saved-state path.
CanIgnore()

Returns whether you are allowed to skip the temporary saved Effect, Flow, or Modifier that needs this tracker. Permanent Set members cannot be skipped.

Returns
Bool Whether Ignore() is available.
Ignore()

Marks the temporary saved Effect, Flow, or Modifier containing this tracker to be skipped when Complete() applies the restore. Use CanIgnore() first.

Returns
Bool Whether the saved temporary value was marked to be skipped.
GetIgnoreType()

Returns the kind of temporary saved Catalyst value that Ignore() would skip, such as an Effect, Flow, or Modifier.

Returns
String,Undefined Kind of saved value that would be skipped, or undefined when it cannot be ignored.
GetIgnoreIdentity()

Returns the ID of the temporary saved Catalyst value that Ignore() would skip.

Returns
String,Real,Undefined ID of the saved value that would be skipped, or undefined when it cannot be ignored.
GetStruct()

Returns the Catalyst value this missing-tracker requirement belongs to. This lets advanced repair code inspect the value directly if needed.

Returns
Struct Catalyst value.
Resolve(tracker)

Reconnects this saved Catalyst value to the live custom CatalystCountdownTracker it used before saving.

Arguments
tracker Struct.CatalystCountdownTracker Live tracker whose ID matches GetTrackerIdentity().
Returns
Bool Whether the tracker was accepted.

CatalystRepair

Creates a repair table for Catalyst state loading. Save files can store ordinary data but cannot preserve every runtime function or live custom countdown tracker, so use this table to provide those values again before calling Complete(). Its helper methods are arranged to work well with GameMaker autocomplete.

new CatalystRepair()

Methods

Runtime repair
AddCountdownTracker()Adds a live custom CatalystCountdownTracker to this repair table so saved Effects, Flows, or Modifiers that used it can reconnect after loading. The tracker must have an ID.
AddStatistic()Opens the repair entry for the Statistic with this ID. Use the returned entry to supply callbacks that could not be stored in the save file.
AddResource()Opens the repair entry for the Resource with this ID. From there you can repair callbacks on its minimum or maximum Statistics.
AddFlow()Opens the repair entry for the ResourceFlow with this ID. From there you can repair callbacks on its rate Statistic.
AddModifier()Opens the repair entry for the Modifier with this ID so you can restore its condition or stack function.
AddEffect()Opens the repair entry for the Effect with this ID so you can restore its callbacks and callbacks on its chance Statistics.
AddEffectManager()Opens the repair entry for the EffectManager with this ID so you can restore its custom random function.
AddCountdownTracker(tracker)

Adds a live custom CatalystCountdownTracker to this repair table so saved Effects, Flows, or Modifiers that used it can reconnect after loading. The tracker must have an ID.

Arguments
tracker Struct.CatalystCountdownTracker Live custom tracker with the same ID it had when the state was captured.
Returns
Struct.CatalystRepair This repair table, so calls can be chained.
AddStatistic(identity)

Opens the repair entry for the Statistic with this ID. Use the returned entry to supply callbacks that could not be stored in the save file.

Arguments
identity String,Real ID of the Statistic you want to repair.
Returns
Struct.__CatalystRepairStatistic,Undefined Statistic repair row, or undefined for an invalid identity.
AddResource(identity)

Opens the repair entry for the Resource with this ID. From there you can repair callbacks on its minimum or maximum Statistics.

Arguments
identity String,Real ID of the Resource you want to repair.
Returns
Struct.__CatalystRepairResource,Undefined Resource repair row, or undefined for an invalid identity.
AddFlow(identity)

Opens the repair entry for the ResourceFlow with this ID. From there you can repair callbacks on its rate Statistic.

Arguments
identity String,Real ID of the Flow you want to repair.
Returns
Struct.__CatalystRepairFlow,Undefined Flow repair row, or undefined for an invalid identity.
AddModifier(identity)

Opens the repair entry for the Modifier with this ID so you can restore its condition or stack function.

Arguments
identity String,Real ID of the Modifier you want to repair.
Returns
Struct.__CatalystRepairModifier,Undefined Modifier repair row, or undefined for an invalid identity.
AddEffect(identity)

Opens the repair entry for the Effect with this ID so you can restore its callbacks and callbacks on its chance Statistics.

Arguments
identity String,Real ID of the Effect you want to repair.
Returns
Struct.__CatalystRepairEffect,Undefined Effect repair row, or undefined for an invalid identity.
AddEffectManager(identity)

Opens the repair entry for the EffectManager with this ID so you can restore its custom random function.

Arguments
identity String,Real ID of the EffectManager you want to repair.
Returns
Struct.__CatalystRepairEffectManager,Undefined EffectManager repair row, or undefined for an invalid identity.

Statistic repair row

Returned as __CatalystRepairStatistic.

Repair row returned by CatalystRepair.AddStatistic() and by owned Statistic repair helpers. It supplies runtime-only Statistic callbacks before a restore.

Methods

MethodWhat it does
BaseFunc()Supplies the Statistic's SetBaseFunc() function for a pending state restore.
PostProcess()Supplies the Statistic's SetPostProcess() function for a pending state restore.
BaseFunc(fn)

Supplies the Statistic's SetBaseFunc() function for a pending state restore.

Arguments
fn Function Function that should be restored into this callback slot.
Returns
Struct.__CatalystRepairStatistic This repair row.
PostProcess(fn)

Supplies the Statistic's SetPostProcess() function for a pending state restore.

Arguments
fn Function Function that should be restored into this callback slot.
Returns
Struct.__CatalystRepairStatistic This repair row.

Resource repair row

Returned as __CatalystRepairResource.

Repair row returned by CatalystRepair.AddResource(). It opens repair rows for the Resource's owned minimum and maximum Statistics.

Methods

MethodWhat it does
Minimum()Opens the repair entry for callbacks belonging to this Resource's minimum Statistic.
Maximum()Opens the repair entry for callbacks belonging to this Resource's maximum Statistic.
Minimum()

Opens the repair entry for callbacks belonging to this Resource's minimum Statistic.

Returns
Struct.__CatalystRepairStatistic Minimum Statistic repair row.
Maximum()

Opens the repair entry for callbacks belonging to this Resource's maximum Statistic.

Returns
Struct.__CatalystRepairStatistic Maximum Statistic repair row.

Resource Flow repair row

Returned as __CatalystRepairFlow.

Repair row returned by CatalystRepair.AddFlow(). It opens the repair row for the Flow's owned rate Statistic.

Methods

MethodWhat it does
Rate()Opens the repair entry for callbacks belonging to this Flow's rate Statistic.
Rate()

Opens the repair entry for callbacks belonging to this Flow's rate Statistic.

Returns
Struct.__CatalystRepairStatistic Rate Statistic repair row.

Modifier repair row

Returned as __CatalystRepairModifier.

Repair row returned by CatalystRepair.AddModifier(). It supplies runtime-only Modifier callbacks before a restore.

Methods

MethodWhat it does
Condition()Supplies the Modifier function normally set with SetCondition() for a pending state restore.
StackFunc()Supplies the Modifier function normally set with SetStackFunc() for a pending state restore.
Condition(fn)

Supplies the Modifier function normally set with SetCondition() for a pending state restore.

Arguments
fn Function Function that should be restored into this callback slot.
Returns
Struct.__CatalystRepairModifier This repair row.
StackFunc(fn)

Supplies the Modifier function normally set with SetStackFunc() for a pending state restore.

Arguments
fn Function Function that should be restored into this callback slot.
Returns
Struct.__CatalystRepairModifier This repair row.

Effect repair row

Returned as __CatalystRepairEffect.

Repair row returned by CatalystRepair.AddEffect(). It supplies Effect callbacks and opens repair rows for its owned chance Statistics.

Methods

MethodWhat it does
OnApply()Supplies the Effect callback normally set with SetOnApply() for a pending state restore.
ResolveTick()Supplies the Effect callback normally set with SetResolveTick() for a pending state restore.
OnTick()Supplies the Effect callback normally set with SetOnTick() for a pending state restore.
OnRemove()Supplies the Effect callback normally set with SetOnRemove() for a pending state restore.
ChanceToApply()Opens the repair entry for callbacks belonging to this Effect's chance-to-apply Statistic.
ChancePerTick()Opens the repair entry for callbacks belonging to this Effect's chance-per-tick Statistic.
OnApply(fn)

Supplies the Effect callback normally set with SetOnApply() for a pending state restore.

Arguments
fn Function Function that should be restored into this callback slot.
Returns
Struct.__CatalystRepairEffect This repair row.
ResolveTick(fn)

Supplies the Effect callback normally set with SetResolveTick() for a pending state restore.

Arguments
fn Function Function that should be restored into this callback slot.
Returns
Struct.__CatalystRepairEffect This repair row.
OnTick(fn)

Supplies the Effect callback normally set with SetOnTick() for a pending state restore.

Arguments
fn Function Function that should be restored into this callback slot.
Returns
Struct.__CatalystRepairEffect This repair row.
OnRemove(fn)

Supplies the Effect callback normally set with SetOnRemove() for a pending state restore.

Arguments
fn Function Function that should be restored into this callback slot.
Returns
Struct.__CatalystRepairEffect This repair row.
ChanceToApply()

Opens the repair entry for callbacks belonging to this Effect's chance-to-apply Statistic.

Returns
Struct.__CatalystRepairStatistic Chance-to-apply Statistic repair row.
ChancePerTick()

Opens the repair entry for callbacks belonging to this Effect's chance-per-tick Statistic.

Returns
Struct.__CatalystRepairStatistic Chance-per-tick Statistic repair row.

Effect Manager repair row

Returned as __CatalystRepairEffectManager.

Repair row returned by CatalystRepair.AddEffectManager(). It supplies the manager's runtime random function before a restore.

Methods

MethodWhat it does
RandomFunction()Supplies the EffectManager function normally set with SetRandomFunction() for a pending state restore.
RandomFunction(fn)

Supplies the EffectManager function normally set with SetRandomFunction() for a pending state restore.

Arguments
fn Function Function that should be restored into this callback slot.
Returns
Struct.__CatalystRepairEffectManager This repair row.

Global functions

CatalystCountdown([step_size])

Advances the global CATALYST_COUNTDOWN tracker by the amount you provide. You normally only need this when automatic countdown is disabled or when you want to drive Catalyst with your own time system.

Arguments
step_size optional Real Amount of countdown time to pass. Defaults to 1.
Returns
Undefined No return value.

Package globals

CATALYST_COUNTDOWN

The global default CatalystCountdownTracker. Catalyst creates it when the package initialises and starts it automatically in frame mode. Use a custom CatalystCountdownTracker when one model needs an independent timing source.

Value
global.__catalyst_countdown_tracker

Enums

Statistics and modifiers

eCatMathOps

Chooses how a Modifier changes a Statistic. ADD adds or subtracts a value, MULTIPLY scales it, and FORCE_MIN/FORCE_MAX set lower or upper limits.

ADD
MULTIPLY
FORCE_MIN
FORCE_MAX
NUM
eCatModifierOrder

Chooses the order used for ADD and MULTIPLY Modifiers inside each Statistic layer.

ADD_FIRST
MULTIPLY_FIRST
ATTACHMENT_ORDER
NUM
eCatStatLayer

Ready-made Statistic layer IDs. You can use these or provide your own string or number layer IDs.

BASE_BONUS
EQUIPMENT
AUGMENTS
TEMP
GLOBAL
NUM
eCatStackMode

Chooses how multiple stacks of a MULTIPLY Modifier combine. COMPOUND multiplies once per stack; ADDITIVE combines the percentage first.

COMPOUND
ADDITIVE
NUM
eCatFamilyMode

Chooses what happens when several Modifiers belong to the same family: use all of them, only the strongest, or only the weakest.

STACK_ALL
STRONGEST
WEAKEST
NUM
eCatFamilyScope

Chooses where Modifier family rules apply. LAYER compares family members only inside the same layer; STATISTIC compares them across the whole Statistic.

LAYER
STATISTIC
NUM
eCatModifierSkipReason

Explains why a Modifier did not affect a Statistic calculation, such as a failed condition, zero stacks, losing its family comparison, or using an unknown layer.

NONE
CONDITION_FAILED
ZERO_STACKS
FAMILY_LOST
UNKNOWN_LAYER
NUM

Resources

eCatResourceBoundMode

Chooses how a Resource minimum or maximum behaves. HARD never allows the value past the bound, SOFT blocks ordinary movement past it but can be crossed explicitly, and OPEN does not restrict the value.

HARD
SOFT
OPEN
NUM
eCatResourceOperation

Identifies the kind of Resource change recorded in a CatalystResourceChange result.

SET
CHANGE
INCREASE
DECREASE
FILL
EMPTY
RECONCILE
NUM

Effects

eCatEffectReapplyPolicy

Chooses what an EffectManager does when an Effect is applied while another active Effect has the same ID.

STACK
IGNORE
REPLACE
REFRESH
EXTEND
NUM
eCatEffectApplicationOutcome

Explains what happened when CatalystEffectManager.AddEffect() tried to apply an Effect.

ADDED
QUEUED
FAILED_CHANCE
IGNORED
REPLACED
REFRESHED
EXTENDED
INVALID_EFFECT
MANAGER_DESTROYING
ALREADY_MANAGED
EXPIRED
TRACKER_DESTROYING
NUM

Sets and routing

eCatSetPreviewStatus

Summarises whether a CatalystSet preview could route every requested Modifier, only some of them, or none of them.

SUCCESS
PARTIAL
FAILED
NUM
eCatRouteOutcome

Explains why a CatalystSet could or could not match a Modifier to its target Statistic and perform the requested apply or swap.

INVALID_TARGET_SET
INVALID_INCOMING_SET
INVALID_OUTGOING_SET
INVALID_MODIFIER
DUPLICATE_REFERENCE
MISSING_TARGET_IDENTITY
TARGET_NOT_FOUND
UNKNOWN_TARGET_LAYER
MODIFIER_ALREADY_PRESENT
MODIFIER_ATTACHED_ELSEWHERE
MODIFIER_EFFECT_OWNED
OUTGOING_MODIFIER_NOT_ATTACHED
OUTGOING_TARGET_NOT_IN_SET
OUTGOING_TARGET_IDENTITY_MISMATCH
MODIFIER_EXPIRED
MODIFIER_TRACKER_DESTROYING
NUM

Timing

eCatCountdownMode

Chooses how automatic countdown measures time. FRAMES counts one unit per game frame, while DELTA_TIME uses elapsed real time.

MANUAL
FRAMES
DELTA_TIME
NUM

Symbol index

A
AddCountdownTracker()CatalystRepair
AddEffect()CatalystCountdownTracker
AddEffect()CatalystEffectManager
AddEffect()CatalystRepair
AddEffectManager()CatalystRepair
AddFlow()CatalystCountdownTracker
AddFlow()CatalystEffect
AddFlow()CatalystRepair
AddFlow()CatalystResource
AddMaximumModifier()CatalystResource
AddMinimumModifier()CatalystResource
AddModifier()CatalystCountdownTracker
AddModifier()CatalystEffect
AddModifier()CatalystModifierSet
AddModifier()CatalystRepair
AddModifier()CatalystStatistic
AddResource()CatalystRepair
AddResource()CatalystSet
AddStacks()CatalystModifier
AddStatistic()CatalystRepair
AddStatistic()CatalystSet
AddTag()CatalystEffect
AddTag()CatalystModifier
AddTag()CatalystStatistic
Applied()CatalystEffectApplicationResult
Applied()CatalystModifierEvaluation
Apply()CatalystSet
ApplySwap()CatalystSet
B
BaseFunc()__CatalystRepairStatistic
BindMaximumStatistic()CatalystResource
BindMinimumStatistic()CatalystResource
BindRateStatistic()CatalystResourceFlow
C
CanIgnore()CatalystStateCallbackRequirement
CanIgnore()CatalystStateCountdownTrackerRequirement
CaptureState()CatalystSet
ChancePerTick()__CatalystRepairEffect
ChanceSucceeded()CatalystEffectTickResult
ChanceToApply()__CatalystRepairEffect
Change()CatalystResource
ChangeBaseValue()CatalystStatistic
ChangeMaxValue()CatalystStatistic
ChangeMinValue()CatalystStatistic
ChangePastBounds()CatalystResource
ClearBaseFunc()CatalystStatistic
ClearCondition()CatalystModifier
ClearDelay()CatalystResourceFlow
ClearFactView()CatalystSet
ClearFactView()CatalystStatistic
ClearFamily()CatalystModifier
ClearOnApply()CatalystEffect
ClearOnRemove()CatalystEffect
ClearOnTick()CatalystEffect
ClearPostProcess()CatalystStatistic
ClearRandomFunction()CatalystEffectManager
ClearResolveTick()CatalystEffect
ClearRounding()CatalystStatistic
ClearStackFunc()CatalystModifier
ClearTags()CatalystEffect
ClearTags()CatalystModifier
ClearTags()CatalystStatistic
ClearTickInterval()CatalystEffect
Complete()CatalystStateRestoreResult
Condition()__CatalystRepairModifier
Countdown()CatalystCountdownTracker
D
DebugDescribe()CatalystStatistic
DebugDump()CatalystCountdownTracker
Decrease()CatalystResource
DecreasePastMinimum()CatalystResource
Delay()CatalystResourceFlow
Destroy()CatalystCountdownTracker
Destroy()CatalystEffect
Destroy()CatalystEffectManager
Destroy()CatalystModifier
Destroy()CatalystModifierSet
Destroy()CatalystResourceFlow
Destroy()CatalystSet
DestroyAllModifiers()CatalystStatistic
DestroyFlow()CatalystResource
DestroyMaximumModifier()CatalystResource
DestroyMinimumModifier()CatalystResource
DestroyModifier()CatalystStatistic
DestroyModifiersByTag()CatalystStatistic
DetachEffect()CatalystCountdownTracker
DetachFlow()CatalystCountdownTracker
DetachModifier()CatalystCountdownTracker
DetachModifier()CatalystStatistic
DidChange()CatalystResourceChange
DidChange()CatalystSetRefreshResult
DidChange()CatalystStatisticRefreshResult
E
Empty()CatalystResource
Evaluate()CatalystStatistic
Explain()CatalystStatistic
F
Fill()CatalystResource
FindModifiersBySourceId()CatalystStatistic
G
GetApplied()CatalystResourceChange
GetBaseValue()CatalystStatistic
GetBaseValue()CatalystStatisticEvaluation
GetCallbacks()CatalystStateCallbackRequirement
GetChance()CatalystEffectApplicationResult
GetChance()CatalystEffectTickResult
GetChange()CatalystResourceFlowResult
GetComponent()CatalystStateCallbackRequirement
GetContribution()CatalystModifierEvaluation
GetCountdownAmount()CatalystResourceFlowResult
GetCountdownMode()CatalystCountdownTracker
GetCountdownTracker()CatalystEffect
GetCountdownTracker()CatalystModifier
GetCountdownTracker()CatalystResourceFlow
GetCurrent()CatalystResource
GetCurrent()CatalystResourceChange
GetCurrent()CatalystStatisticRefreshResult
GetCurrentValue()CatalystSetPreviewEntry
GetDelayRemaining()CatalystResourceFlow
GetDetails()CatalystSet
GetDiagnostics()CatalystSetApplyResult
GetDiagnostics()CatalystSetPreviewResult
GetEffect()CatalystEffectApplicationResult
GetEffect()CatalystEffectTickResult
GetEffectiveStacks()CatalystModifierEvaluation
GetEffectManagers()CatalystSetDetails
GetEffects()CatalystEffectManager
GetEffectsByFamily()CatalystEffectManager
GetEffectsByIdentity()CatalystEffectManager
GetEffectsTagged()CatalystEffectManager
GetEntries()CatalystSetPreviewResult
GetEvaluation()CatalystSetPreviewEntry
GetEvaluation()CatalystSetStatisticDetail
GetFactView()CatalystSet
GetFactView()CatalystStatistic
GetFamily()CatalystEffect
GetFlow()CatalystResourceFlowResult
GetFlowResults()CatalystEffectTickResult
GetFlows()CatalystResource
GetFraction()CatalystResource
GetIdentity()CatalystCountdownTracker
GetIdentity()CatalystEffect
GetIdentity()CatalystEffectManager
GetIdentity()CatalystModifier
GetIdentity()CatalystModifierSet
GetIdentity()CatalystResource
GetIdentity()CatalystResourceFlow
GetIdentity()CatalystSet
GetIdentity()CatalystStateCallbackRequirement
GetIdentity()CatalystStateCountdownTrackerRequirement
GetIdentity()CatalystStatistic
GetIgnoreIdentity()CatalystStateCallbackRequirement
GetIgnoreIdentity()CatalystStateCountdownTrackerRequirement
GetIgnoreType()CatalystStateCallbackRequirement
GetIgnoreType()CatalystStateCountdownTrackerRequirement
GetIncomingEffect()CatalystEffectApplicationResult
GetIncomingModifiers()CatalystSetPreviewEntry
GetLastChange()CatalystResource
GetLayer()CatalystStatisticLayerEvaluation
GetLayerOrder()CatalystSet
GetLayerOrder()CatalystStatistic
GetLayers()CatalystStatisticEvaluation
GetMaximum()CatalystResource
GetMaximum()CatalystResourceChange
GetMaximumBoundMode()CatalystResource
GetMaximumStatistic()CatalystResource
GetMaxValue()CatalystStatistic
GetMeta()CatalystModifierSet
GetMeta()CatalystResourceChange
GetMeta()CatalystSet
GetMinimum()CatalystResource
GetMinimum()CatalystResourceChange
GetMinimumBoundMode()CatalystResource
GetMinimumStatistic()CatalystResource
GetMinValue()CatalystStatistic
GetMissing()CatalystResource
GetMissingCallbacks()CatalystStateRestoreResult
GetMissingCountdownTrackers()CatalystStateRestoreResult
GetModifier()CatalystModifierEvaluation
GetModifierOrder()CatalystStatistic
GetModifierResults()CatalystStatisticEvaluation
GetModifierResults()CatalystStatisticLayerEvaluation
GetModifiers()CatalystModifierSet
GetModifiers()CatalystStatistic
GetMultiplier()CatalystEffectTickResult
GetMultiplier()CatalystResourceFlowResult
GetName()CatalystEffectManager
GetName()CatalystModifierSet
GetName()CatalystResource
GetName()CatalystResourceFlow
GetName()CatalystSet
GetName()CatalystStatistic
GetOperation()CatalystResourceChange
GetOutcome()CatalystEffectApplicationResult
GetOutcome()CatalystRouteDiagnostic
GetOutgoingModifiers()CatalystSetPreviewEntry
GetOverflow()CatalystResource
GetOwner()CatalystEffectManager
GetPath()CatalystStateCallbackRequirement
GetPath()CatalystStateCountdownTrackerRequirement
GetPreviewValue()CatalystSetPreviewEntry
GetPrevious()CatalystResourceChange
GetPrevious()CatalystStatisticRefreshResult
GetPreviousMaximum()CatalystResourceChange
GetPreviousMinimum()CatalystResourceChange
GetRate()CatalystResourceFlowResult
GetRateStatistic()CatalystResourceFlow
GetReapplyPolicy()CatalystEffect
GetReason()CatalystResourceChange
GetRefreshResults()CatalystSetApplyResult
GetReport()CatalystStateCaptureResult
GetReport()CatalystStateRestoreResult
GetRequested()CatalystResourceChange
GetRequested()CatalystResourceFlowResult
GetResource()CatalystResourceFlowResult
GetResource()CatalystSet
GetResource()CatalystSetResourceRefreshEntry
GetResourceResults()CatalystSetRefreshResult
GetResources()CatalystSet
GetResources()CatalystSetDetails
GetResult()CatalystSetResourceRefreshEntry
GetResult()CatalystSetStatisticRefreshEntry
GetRoll()CatalystEffectApplicationResult
GetRoll()CatalystEffectTickResult
GetSavedCallbackName()CatalystStateCallbackRequirement
GetSkipReason()CatalystModifierEvaluation
GetSource()CatalystResourceChange
GetStackMode()CatalystModifier
GetStartingValue()CatalystStatistic
GetState()CatalystStateCaptureResult
GetStatistic()CatalystRouteDiagnostic
GetStatistic()CatalystSet
GetStatistic()CatalystSetPreviewEntry
GetStatistic()CatalystSetStatisticDetail
GetStatistic()CatalystSetStatisticRefreshEntry
GetStatisticEvaluations()CatalystSetDetails
GetStatisticResults()CatalystSetRefreshResult
GetStatistics()CatalystSet
GetStatus()CatalystSetPreviewResult
GetStruct()CatalystStateCallbackRequirement
GetStruct()CatalystStateCountdownTrackerRequirement
GetSubject()CatalystRouteDiagnostic
GetTarget()CatalystResourceChange
GetTargetIdentity()CatalystModifier
GetTargetIdentity()CatalystRouteDiagnostic
GetTickDuration()CatalystEffectTickResult
GetTickInterval()CatalystEffect
GetTimeScale()CatalystCountdownTracker
GetTrackerIdentity()CatalystStateCountdownTrackerRequirement
GetType()CatalystStateCallbackRequirement
GetType()CatalystStateCountdownTrackerRequirement
GetUnderflow()CatalystResource
GetValue()CatalystStatistic
GetValue()CatalystStatisticEvaluation
GetValueAfter()CatalystModifierEvaluation
GetValueBefore()CatalystModifierEvaluation
H
HasEffect()CatalystEffectManager
HasEffectIdentity()CatalystEffectManager
HasFlow()CatalystResource
HasLayer()CatalystStatistic
HasModifier()CatalystModifierSet
HasModifier()CatalystStatistic
HasModifierFromSourceId()CatalystStatistic
HasResource()CatalystSet
HasStatistic()CatalystSet
HasTag()CatalystEffect
HasTag()CatalystEffectManager
HasTag()CatalystModifier
HasTag()CatalystStatistic
I
Ignore()CatalystStateCallbackRequirement
Ignore()CatalystStateCountdownTrackerRequirement
IgnoreMissing()CatalystStateRestoreResult
Increase()CatalystResource
IncreasePastMaximum()CatalystResource
IsActive()CatalystResourceFlow
IsActive()CatalystSubscription
IsAutomatic()CatalystCountdownTracker
IsBound()CatalystFactBinding
IsComplete()CatalystStateRestoreResult
IsDelayed()CatalystResourceFlow
IsEmpty()CatalystResource
IsFull()CatalystResource
IsMaximumBound()CatalystResource
IsMinimumBound()CatalystResource
IsPaused()CatalystCountdownTracker
IsRateBound()CatalystResourceFlow
IsTrackingEffect()CatalystCountdownTracker
IsTrackingFlow()CatalystCountdownTracker
IsTrackingModifier()CatalystCountdownTracker
M
Maximum()__CatalystRepairResource
Minimum()__CatalystRepairResource
N
Needs()CatalystStateCallbackRequirement
O
OnApply()__CatalystRepairEffect
OnChange()CatalystResource
OnChange()CatalystStatistic
OnEffectApplied()CatalystEffectManager
OnEffectRemoved()CatalystEffectManager
OnRemove()__CatalystRepairEffect
OnTick()__CatalystRepairEffect
P
PostProcess()__CatalystRepairStatistic
Preview()CatalystSet
Preview()CatalystStatistic
PreviewModifiers()CatalystStatistic
PreviewSwap()CatalystSet
PublishToFact()CatalystResource
PublishToFact()CatalystStatistic
Q
Queued()CatalystEffectApplicationResult
R
RandomFunction()__CatalystRepairEffectManager
Rate()__CatalystRepairFlow
Refresh()CatalystResource
Refresh()CatalystSet
Refresh()CatalystStatistic
RemoveEffect()CatalystEffectManager
RemoveEffectsByIdentity()CatalystEffectManager
RemoveEffectsTagged()CatalystEffectManager
RemoveFlow()CatalystEffect
RemoveFlow()CatalystResource
RemoveModifier()CatalystEffect
RemoveModifier()CatalystModifierSet
RemoveResource()CatalystSet
RemoveTag()CatalystEffect
RemoveTag()CatalystModifier
RemoveTag()CatalystStatistic
Repair()CatalystStateRestoreResult
ResetAll()CatalystStatistic
ResetDuration()CatalystEffect
ResetDuration()CatalystModifier
ResetToStarting()CatalystStatistic
Resolve()CatalystStateCallbackRequirement
Resolve()CatalystStateCountdownTrackerRequirement
ResolveCallbacks()CatalystStateRestoreResult
ResolveTick()__CatalystRepairEffect
RestoreState()CatalystSet
S
SetActive()CatalystResourceFlow
SetBaseFunc()CatalystStatistic
SetBaseValue()CatalystStatistic
SetChancePerTick()CatalystEffect
SetChanceToApply()CatalystEffect
SetClamped()CatalystStatistic
SetCondition()CatalystModifier
SetCountdownTracker()CatalystEffect
SetCountdownTracker()CatalystModifier
SetCountdownTracker()CatalystResourceFlow
SetCurrent()CatalystResource
SetDuration()CatalystEffect
SetDuration()CatalystModifier
SetFactView()CatalystSet
SetFactView()CatalystStatistic
SetFamily()CatalystEffect
SetFamily()CatalystModifier
SetFamilyMode()CatalystModifier
SetFamilyScope()CatalystModifier
SetIdentity()CatalystCountdownTracker
SetIdentity()CatalystEffect
SetIdentity()CatalystEffectManager
SetIdentity()CatalystModifier
SetIdentity()CatalystModifierSet
SetIdentity()CatalystResource
SetIdentity()CatalystResourceFlow
SetIdentity()CatalystSet
SetIdentity()CatalystStatistic
SetLayer()CatalystModifier
SetLayerOrder()CatalystSet
SetLayerOrder()CatalystStatistic
SetMathsOp()CatalystModifier
SetMaximum()CatalystResource
SetMaximumBoundMode()CatalystResource
SetMaxStacks()CatalystModifier
SetMaxValue()CatalystStatistic
SetMeta()CatalystModifierSet
SetMeta()CatalystSet
SetMinimum()CatalystResource
SetMinimumBoundMode()CatalystResource
SetMinValue()CatalystStatistic
SetModifierOrder()CatalystStatistic
SetMultiplier()CatalystEffectTickResult
SetName()CatalystEffectManager
SetName()CatalystModifierSet
SetName()CatalystResource
SetName()CatalystResourceFlow
SetName()CatalystSet
SetName()CatalystStatistic
SetOnApply()CatalystEffect
SetOnRemove()CatalystEffect
SetOnTick()CatalystEffect
SetPaused()CatalystCountdownTracker
SetPostProcess()CatalystStatistic
SetRandomFunction()CatalystEffectManager
SetRate()CatalystResourceFlow
SetReapplyPolicy()CatalystEffect
SetResolveTick()CatalystEffect
SetRoundingStep()CatalystStatistic
SetSourceId()CatalystModifier
SetSourceId()CatalystResourceFlow
SetSourceLabel()CatalystModifier
SetSourceLabel()CatalystResourceFlow
SetSourceMeta()CatalystModifier
SetSourceMeta()CatalystResourceFlow
SetStackFunc()CatalystModifier
SetStackMode()CatalystModifier
SetStacks()CatalystModifier
SetSucceeded()CatalystEffectTickResult
SetTargetIdentity()CatalystModifier
SetTickInterval()CatalystEffect
SetTimeScale()CatalystCountdownTracker
SetValue()CatalystModifier
StackFunc()__CatalystRepairModifier
StartAutomatic()CatalystCountdownTracker
StopAutomatic()CatalystCountdownTracker
Succeeded()CatalystEffectApplicationResult
Succeeded()CatalystEffectTickResult
Succeeded()CatalystResourceChange
Succeeded()CatalystResourceFlowResult
Succeeded()CatalystSetApplyResult
Succeeded()CatalystSetPreviewResult
Succeeded()CatalystStateCaptureResult
Sync()CatalystFactBinding
U
Unbind()CatalystFactBinding
UnbindMaximumStatistic()CatalystResource
UnbindMinimumStatistic()CatalystResource
UnbindRateStatistic()CatalystResourceFlow
Unsubscribe()CatalystSubscription
W
WonFamily()CatalystModifierEvaluation
Macros