On this page
- API Reference
- Statistics and modifiers
- Resources and flows
- Effects
- Sets and previews
- Observation, facts, and timing
- Saving and loading
- Global functions
- Package globals
- Enums
- 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)
Methods
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. |
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. |
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. |
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. |
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. |
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. |
DebugDescribe() | Writes the Statistic and its Explain() details to Echo debug output. |
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.
Returns a new array containing the configured evaluation-layer order.
Chooses whether ADD Modifiers run before MULTIPLY Modifiers, MULTIPLY runs first, or all Modifiers follow attachment order inside each layer.
Returns how ADD and MULTIPLY Modifiers are ordered inside each configured layer.
eCatModifierOrder value. Returns whether this Statistic uses the given layer.
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.
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.
Removes this exact standalone Modifier from the Statistic and destroys it so it cannot be reused.
Removes and destroys every standalone Modifier attached directly to this Statistic. Modifiers owned by active Effects are left alone.
Destroys all modifiers with one source label.
Destroys every attached Modifier whose source ID exactly matches the value you provide.
Destroys every attached Modifier for which your callback returns true after receiving the extra source data stored with SetSourceMeta().
Destroys every attached modifier carrying one tag.
Returns a new array containing every Modifier currently attached to this Statistic.
Returns attached Modifiers whose source ID exactly matches the value you provide.
Finds attached modifiers with one source label.
Returns attached Modifiers for which your callback returns true after receiving the extra source data stored with SetSourceMeta().
Returns true when at least one attached Modifier has a source ID exactly matching the value you provide.
Returns whether any attached modifier has one source label.
Returns true when your callback returns true for the extra source data stored on at least one attached Modifier with SetSourceMeta().
Returns whether this exact Modifier is attached to the Statistic.
Recalculates the Statistic now and runs OnChange callbacks if its value changed.
Returns the current Statistic value, recalculating it first when needed.
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.
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.
Shows what the value would be with one extra Modifier, without attaching it.
Shows what the value would be with extra Modifiers, without attaching them.
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.
Gives this Statistic an OracleFactView to read whenever a base function, condition, stack function, or post-process function needs Facts.
Stops using the current FactView and marks the Statistic for recalculation.
Returns the currently bound FactView.
Sets a final adjustment function that runs after all Modifiers, but before the minimum/maximum limit and rounding step are applied.
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.
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.
Disables final rounding without changing other evaluation configuration.
Sets the statistic name.
Returns the statistic name.
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.
Returns the statistic's ID.
Sets the base value before modifiers.
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.
Sets the maximum used when clamping is enabled.
Sets the minimum used when clamping is enabled.
Changes the stored base value by the amount supplied. Positive values increase it and negative values decrease it.
Changes the clamp maximum by the amount supplied. Positive values increase it and negative values decrease it.
Changes the clamp minimum by the amount supplied. Positive values increase it and negative values decrease it.
Restores the base value captured when this statistic was constructed.
Resets the Statistic settings and destroys its Modifiers while keeping the starting value, name, ID, layer order, and Modifier order.
Returns the original constructor value.
Returns the stored base value before modifiers.
Returns the maximum used when SetClamped(true) is enabled.
Returns the minimum used when SetClamped(true) is enabled.
Removes every matching tag.
Returns whether this statistic has a tag.
Publishes this Statistic into an Oracle Facts scope under the key you provide, then keeps that Fact updated whenever the Statistic changes.
Writes the Statistic and its Explain() details to Echo debug output.
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)
Methods
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. |
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. |
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. |
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. |
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. |
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. |
Sets an optional ID for this Modifier so your own code or Catalyst's save/restore tools can identify it.
Returns the modifier's optional ID.
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.
Returns the Statistic ID CatalystSet uses to decide which Statistic this Modifier should attach to.
Changes the modifier's base value.
Changes the math this Modifier uses when applied to a Statistic.
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.
Sets how many copies, or stacks, of this Modifier are active. Catalyst limits the result to max_stacks.
Adds or removes stacks from the Modifier.
Sets the maximum number of stacks this Modifier can use.
Chooses how multiple stacks work for MULTIPLY. COMPOUND applies the multiplier once per stack; ADDITIVE combines the percentage change before multiplying.
Sets a function that can turn this Modifier on or off for each Statistic calculation by returning true or false.
Removes the condition so this Modifier can always apply.
Lets a function decide the Modifier's stack count each time the Statistic is calculated, instead of using the stored stacks value.
Stops calculating stacks from a function and uses the stored stack count again.
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.
eCatFamilyMode. Defaults to STRONGEST; STACK_ALL and WEAKEST are also available. Changes the rule used when this Modifier is compared with other members of the same family.
Chooses whether this Modifier competes with same-family Modifiers only in its own layer or anywhere in the Statistic.
Sets a human-readable label describing what created this Modifier. Source labels are useful for finding or removing groups of Modifiers later.
Stores a source ID for this Modifier. Catalyst does not interpret the value; you can use it to match the exact gameplay source later.
Stores extra project data about the Modifier's source. Catalyst keeps the value but does not interpret it.
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.
Returns the standalone countdown tracker assigned to this modifier.
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.
Resets the remaining time to this Modifier's configured maximum duration. If that maximum is zero and the Modifier is attached, it expires immediately.
Adds a tag if it is not already present.
Removes every matching tag.
Returns whether this modifier has one tag.
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.
CatalystStatisticRefreshResult
Stores the before-and-after values from Statistic.Refresh(), along with whether the value actually changed.
Methods
| Method | What it does |
|---|---|
DidChange() | Returns whether the value changed. |
GetPrevious() | Returns the value before the refresh. |
GetCurrent() | Returns the value after the refresh. |
Returns whether the value changed.
Returns the value before the refresh.
Returns the value after the refresh.
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
| Method | What 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. |
Returns the Modifier these calculation details belong to.
Returns whether the Modifier affected the calculation.
Returns why this Modifier did not affect the Statistic. Returns eCatModifierSkipReason.NONE when it was not skipped.
eCatModifierSkipReason value. Returns the number of Modifier stacks Catalyst actually used for this calculation.
Returns whether the family rules allowed this Modifier to apply.
Returns how much this Modifier changed the value at its point in the calculation.
Returns the value immediately before this Modifier was applied.
Returns the value immediately after this Modifier was applied.
CatalystStatisticLayerEvaluation
Groups the calculation details for all Modifiers that were processed in one Statistic layer.
Methods
| Method | What it does |
|---|---|
GetLayer() | Returns this Layer ID. |
GetModifierResults() | Returns the Modifier details for this layer. |
Returns this Layer ID.
Returns the Modifier details for this layer.
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
| Method | What 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. |
Returns the final evaluated value.
Returns the base number Catalyst started with for this calculation, after SetBaseFunc() was used if one is configured.
Returns the details for every Modifier in this calculation.
Returns the layer details in evaluation order.
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)
Methods
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. |
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. |
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. |
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. |
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. |
Sets this Resource's ID so a CatalystSet and your own code can find it later.
Returns the Resource ID.
Sets the resource name.
Returns the resource name.
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 the Resource's current minimum after its minimum Statistic has been calculated.
Returns the current maximum. If the minimum rises above it, the minimum wins.
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.
Returns how the minimum constrains current.
eCatResourceBoundMode value. 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.
Returns how the maximum constrains current.
eCatResourceBoundMode value. 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 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 how far current is above the Resource's current maximum.
Returns how far current is below the Resource's current minimum.
Returns whether current is at or below the Resource's current minimum.
Returns whether current is at or above the Resource's current maximum.
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.
CatalystResourceChange. 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.
CatalystResourceChange. 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.
CatalystResourceChange. Adds a positive amount to current. The value stops at a SOFT maximum and can never pass a HARD maximum.
CatalystResourceChange. Adds a positive amount to current and allows it to pass a SOFT maximum. A HARD maximum still cannot be crossed.
CatalystResourceChange. Subtracts a positive amount from current. The value stops at a SOFT minimum and can never pass a HARD minimum.
CatalystResourceChange. Subtracts a positive amount from current and allows it to pass a SOFT minimum. A HARD minimum still cannot be crossed.
CatalystResourceChange. Raises current to the Resource's current maximum when it is below maximum. If current is already above maximum, that overflow is left unchanged.
CatalystResourceChange. Lowers current to the Resource's current minimum when it is above minimum. If current is already below minimum, that underflow is left unchanged.
CatalystResourceChange. 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.
Changes the minimum's base value when this Resource owns its minimum Statistic. If the minimum is sharing an external Statistic, call UnbindMinimumStatistic() first.
Changes the maximum's base value when this Resource owns its maximum Statistic. If the maximum is sharing an external Statistic, call UnbindMaximumStatistic() first.
Makes this Resource use an existing CatalystStatistic as its minimum. Because the Statistic is shared, changes to it change the Resource's minimum.
Makes this Resource use an existing CatalystStatistic as its maximum. Because the Statistic is shared, changes to it change the Resource's maximum.
Stops sharing the external minimum Statistic. Catalyst creates a new internal Statistic starting at the external minimum's current value.
Stops sharing the external maximum Statistic. Catalyst creates a new internal Statistic starting at the external maximum's current value.
Returns whether the minimum Statistic is using an external Statistic.
Returns whether the maximum Statistic is using an external Statistic.
Returns the Statistic currently supplying this Resource's minimum.
Returns the Statistic currently supplying this Resource's maximum.
Attaches one modifier to the active minimum Statistic.
Destroys one exact modifier on the active minimum Statistic.
Attaches one modifier to the active maximum Statistic.
Destroys one exact modifier on the active maximum Statistic.
Returns the most recent Resource change, including changes caused by its bounds.
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.
Attaches a standalone ResourceFlow to this Resource. Its assigned CatalystCountdownTracker then begins advancing it automatically if that tracker is running.
Removes a standalone Flow without destroying it, so it can be reused later.
Destroys one exact standalone flow attached to this resource.
Returns whether this exact standalone Flow is attached to the Resource.
Returns every Flow currently changing this Resource, including standalone Flows attached directly and Flows owned by active Effects.
Publishes this Resource into an Oracle Facts scope under the key you provide, then keeps that Fact updated when current, minimum, or maximum changes.
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
| Method | What 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. |
Returns true if the Resource value, minimum, or maximum changed.
Returns whether the resource operation was accepted.
Returns the Resource value before the change.
Returns the caller-requested amount when the operation has one.
Returns the value the operation tried to reach before Resource bound rules changed or limited it.
Returns how much current actually changed after Resource bounds were applied. Positive means an increase and negative means a decrease.
Returns the Resource value after the change.
Returns the minimum value Catalyst was using before the change.
Returns the maximum value Catalyst was using before the change.
Returns the minimum value Catalyst used for this operation.
Returns the maximum value Catalyst used for this operation.
Returns optional reason supplied by your project.
Returns the optional source responsible for the operation.
Returns any extra project data supplied with this Resource 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)
Methods
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. |
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. |
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. |
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. |
Sets an optional ID for this Flow so Catalyst save/restore or your own code can identify it.
Returns the flow's optional ID.
Sets the flow name.
Returns the flow name.
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.
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.
Stops sharing the external rate Statistic. Catalyst creates a new internal Statistic starting at the external Statistic's current value.
Returns whether the active rate Statistic is using an external Statistic.
Returns the Statistic currently supplying this Flow's rate.
Turns Resource movement on or off without changing the Flow's rate or remaining delay.
Returns whether this Flow is currently allowed to move its Resource when countdown time passes.
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.
Returns whether delay remains.
Returns remaining delay.
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.
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.
Returns the tracker assigned to this flow.
Sets the source label copied into Resource changes.
Sets the source ID copied into ResourceChange results.
Stores extra project data to copy into ResourceChange results caused by this Flow. Catalyst does not interpret it.
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.
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
| Method | What 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. |
Returns whether the Resource change succeeded.
Returns the flow that requested movement.
Returns the moved Resource.
Returns the amount of Flow time used for this movement after any delay.
Returns the rate used for this movement. Positive means the Resource increases; negative means it decreases.
Returns the applied effect-tick multiplier.
Returns the movement requested from the Resource before its bounds were applied. Positive means increase; negative means decrease.
Returns the exact Resource change result.
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)
Methods
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. |
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. |
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. |
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. |
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. |
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. |
AddTag() | Adds a tag if absent. |
RemoveTag() | Removes every matching tag. |
HasTag() | Returns whether this Effect contains a tag. |
ClearTags() | Removes every tag. |
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. |
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.
Returns the Effect ID.
Gives this Effect a family ID so you can find a group of related active Effects even when they have different individual IDs.
Returns the Effect family value.
Chooses what the EffectManager should do if this Effect is applied while another active Effect has the same ID.
eCatEffectReapplyPolicy: STACK, IGNORE, REPLACE, REFRESH, or EXTEND. Returns the current reapplication policy.
eCatEffectReapplyPolicy value. 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.
Resets the Effect's remaining time to its configured maximum duration.
Chooses which CatalystCountdownTracker advances this Effect's duration and tick timer while the Effect is active.
Returns the countdown tracker assigned to this Effect.
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.
Makes this Effect use an existing CatalystStatistic for its application chance. Because the Statistic is shared, changes to it immediately affect future applications.
Stops sharing the external application-chance Statistic. Catalyst creates a new internal Statistic starting at the external Statistic's current value.
Returns whether application chance is using an external Statistic.
Returns the active application-chance Statistic.
Chooses how much Effect time must pass between ticks. Positive values enable ticking; zero or a negative value disables it.
Turns ticking off and discards any partial progress toward the next tick.
Returns the positive interval, or a negative value when ticking is disabled.
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.
Makes this Effect use an existing CatalystStatistic for its per-tick chance. Because the Statistic is shared, changes to it affect later ticks.
Stops using the external per-tick chance and replaces it with a new internal Statistic at the same current value.
Returns whether per-tick chance is using an external Statistic.
Returns the active per-tick chance Statistic.
Sets a callback that runs after the Effect has successfully become active and its Modifiers and Flows have been attached.
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.
Removes the ResolveTick callback, so Catalyst uses the normal tick result and movement multiplier without a custom adjustment.
Sets a callback that runs after every completed tick, after any Flow movement. It runs whether the tick succeeded or failed its chance check.
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.
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.
Removes and destroys one exact Flow owned by this Effect.
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.
Removes and destroys one exact Modifier owned by this Effect.
Removes every matching tag.
Returns whether this Effect contains a tag.
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.
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)
Methods
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. |
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. |
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. |
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. |
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. |
Sets this EffectManager's ID so a CatalystSet and your own code can find it later.
Returns the manager ID.
Sets the manager name.
Returns the manager name.
Returns the owner value that was given to this EffectManager when it was created.
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.
Restores GameMaker random(1) as the manager's random source.
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.
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.
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.
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.
Returns whether this exact Effect is currently active on the manager.
Returns the currently active Effects in the order they were applied.
Returns active Effects with the given ID.
Returns whether any active Effect has the given ID.
Removes every active Effect with the given ID.
Returns active Effects whose family ID exactly matches the value you provide.
Returns whether any active Effect provides a tag.
Returns active Effects providing one tag.
Removes every active Effect providing one tag.
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.
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
| Method | What 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. |
Returns whether this tick will currently succeed. ResolveTick can change this value with SetSucceeded().
Changes whether this tick succeeds. Call this from ResolveTick when your own rules should override the normal chance result.
Returns the multiplier that will be applied to Resource movement from this Effect's owned Flows when the tick succeeds.
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.
Returns the Effect this tick belongs to.
Returns the completed interval duration.
Returns the evaluated per-tick chance.
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 the chance result from before ResolveTick changed anything.
Returns a new array containing concrete flow movement results produced by this tick.
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
| Method | What 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. |
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 whether the exact Effect passed to AddEffect() became active.
Returns true when the manager was already changing its active Effects and saved this request to process immediately afterward.
Returns the specific eCatEffectApplicationOutcome explaining what AddEffect() did.
Returns the Effect supplied by the caller.
Returns the active Effect produced or affected by this request.
Returns the evaluated application chance when chance resolution was reached.
Returns the random roll when a non-guaranteed chance required one.
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)
Methods
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(). |
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. |
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. |
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. |
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. |
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() | 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() | 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. |
Destroy() | Destroys the Set container and removes its membership/configuration links. The Statistics, Resources, EffectManagers, Modifiers, Effects, and Flows themselves stay alive. |
Sets this Set's ID. Save/restore uses it to make sure captured state is being loaded into the intended Set.
Returns the Set ID.
Returns the Set name.
Stores any extra project data you want to keep with this value. Catalyst does not interpret or change it.
Returns the extra project data previously stored with SetMeta().
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.
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.
CatalystStateCaptureResult.GetState(). It may have been saved with json_stringify() and loaded again with json_parse(). 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.
Removes a Statistic from this Set without destroying it or its Modifiers.
Returns whether this Set directly contains a Statistic with the given ID.
Returns the directly added Statistic with the given ID.
Returns a new array containing direct Statistic members.
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.
Removes a Resource from this Set without destroying it or its Flows.
Returns whether this Set directly contains a Resource with the given ID.
Returns the directly added Resource with the given ID.
Returns a new array containing direct Resource members.
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.
Removes an EffectManager from this Set without destroying it or its active Effects.
Returns whether this Set directly contains an EffectManager with the given ID.
Returns the directly added EffectManager with the given ID.
Returns a new array containing direct Effect Manager members.
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.
Clears the Set FactView and removes it from the Statistics currently managed by this Set.
Returns the stored Fact View.
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.
Stops the Set from applying its layer order to future Statistics. Existing Statistics keep the order they already received.
Returns the layer order stored by this Set, or undefined when none is set.
Checks where every Modifier in the incoming ModifierSet would go and calculates the resulting Statistic values without changing the Set.
Calculates a proposed swap: remove the outgoing ModifierSet's attached Modifiers and add the incoming ModifierSet's Modifiers, without actually changing any Statistic.
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.
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.
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 data intended for debug/inspection tools: Explain() details for managed Statistics plus the Set's direct Resources and EffectManagers.
Destroys the Set container and removes its membership/configuration links. The Statistics, Resources, EffectManagers, Modifiers, Effects, and Flows themselves stay alive.
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)
Methods
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(). |
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. |
Destroy() | Clears this ModifierSet. The Modifiers themselves are not destroyed and any existing Statistic attachments stay unchanged. |
Sets an optional ID for this ModifierSet so your own code can identify the package.
Returns the package ID.
Sets the package name.
Returns the package name.
Stores any extra project data you want to keep with this value. Catalyst does not interpret or change it.
Returns the extra project data previously stored with SetMeta().
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.
Removes the Modifier reference from this package only. If the Modifier is attached somewhere, that attachment is unchanged.
Returns whether this exact Modifier reference is currently included in the package.
Returns the Modifiers in this package.
Clears this ModifierSet. The Modifiers themselves are not destroyed and any existing Statistic attachments stay unchanged.
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
| Method | What 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. |
Returns whether every Modifier in the preview could be matched to a valid target Statistic.
Returns a new array containing preview entries.
Returns the 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
| Method | What 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. |
Returns this Statistic's value before the proposed ModifierSet change.
Returns what this Statistic's value would be after the proposed ModifierSet change.
Returns Explain-style details showing exactly how Catalyst calculated this Statistic's preview value.
Returns a new array containing the Modifiers that would be removed by this preview.
Returns a new array containing the Modifiers that would be added by this preview.
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
| Method | What 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. |
Returns the eCatRouteOutcome value that explains what went wrong.
eCatRouteOutcome value. Returns the Modifier or other Catalyst value involved in this problem.
Returns the requested Statistic ID.
Returns the Statistic Catalyst found before the operation failed, or noone if no Statistic was found.
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
| Method | What 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. |
Returns whether the complete apply or swap was performed.
Returns the problems Catalyst found while matching Modifiers to target Statistics.
Returns a new array containing refresh results for touched Statistics.
CatalystSetRefreshResult
Reports what changed when a CatalystSet was refreshed.
Methods
| Method | What 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. |
Returns whether any refreshed Statistic or Resource changed current value.
Returns the Statistic refresh results.
Returns the Resource refresh results.
CatalystSetStatisticRefreshEntry
Pairs one refreshed Statistic with the result of that refresh.
Methods
| Method | What it does |
|---|---|
GetStatistic() | Returns the refreshed Statistic. |
GetResult() | Returns this Statistic's refresh result. |
Returns the refreshed Statistic.
Returns this Statistic's refresh result.
CatalystSetResourceRefreshEntry
Pairs one refreshed Resource with its change result.
Methods
| Method | What it does |
|---|---|
GetResource() | Returns the refreshed Resource. |
GetResult() | Returns this Resource's refresh result. |
Returns this Resource's refresh 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
| Method | What it does |
|---|---|
GetStatisticEvaluations() | Returns the Statistic inspection details. |
GetResources() | Returns direct Resource members. |
GetEffectManagers() | Returns direct Effect Manager members. |
Returns the Statistic inspection details.
Returns direct Effect Manager members.
CatalystSetStatisticDetail
Keeps a Statistic together with the Explain() details showing how its current value was calculated.
Methods
| Method | What it does |
|---|---|
GetStatistic() | Returns the inspected Statistic. |
GetEvaluation() | Returns Explain() details showing how this Statistic's value was calculated. |
Returns the inspected Statistic.
Returns Explain() details showing how this Statistic's 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
| Method | What 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. |
Stops this subscription, so its callback will no longer run. Calling Unsubscribe() again is safe and returns false because it is already stopped.
Returns whether this subscription is still active and able to receive callbacks.
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
| Method | What 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. |
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.
Stops keeping the Oracle Fact updated. The Fact value already stored in Oracle is left in place.
Returns whether this binding is still publishing changes.
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
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. |
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. |
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. |
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. |
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. |
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. |
Gives this custom countdown tracker an ID so Catalyst save/restore can reconnect timed values to the same tracker after loading.
Returns the optional ID used to reconnect this custom countdown tracker during save/restore.
Adds a standalone ResourceFlow to this tracker so Countdown() advances its delay and moves its Resource over time.
Stops this tracker from advancing the Flow. The Flow itself is not destroyed or removed from its Resource.
Returns whether this tracker currently contains the given standalone flow.
Adds an active timed Effect to this tracker so Countdown() advances its duration and tick timing.
Stops this tracker from advancing the Effect's timers. The Effect stays active on its EffectManager.
Returns whether this tracker currently contains the given timed effect.
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.
Stops this tracker from advancing the Modifier's duration. The Modifier stays attached to its Statistic.
Returns whether this tracker currently contains the given modifier.
Pauses or resumes this tracker. While paused, both manual Countdown() calls and automatic countdown leave all tracked timers unchanged.
Returns whether countdown is currently paused.
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.
Returns the multiplier applied to every countdown step.
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.
eCatCountdownMode.FRAMES or eCatCountdownMode.DELTA_TIME. Defaults to FRAMES. Stops automatic countdown without detaching tracked flows, effects, or modifiers.
Returns whether this tracker is currently advancing itself automatically each frame.
Returns the tracker's current countdown mode.
eCatCountdownMode). Passes time to every Flow, Effect, and standalone Modifier tracked here. Time scale and pause state are applied automatically.
Writes separate summaries of tracked standalone flows, timed effects, and timed modifiers to debug output.
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.
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
| Method | What 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. |
Returns true when CaptureState() produced complete save data that can be passed to GetState().
Returns the complete captured state when capture succeeded.
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.
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() | 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(). |
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. |
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.
CatalystRepair() and filled with the callbacks/trackers your game uses. 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.
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 every saved value that is still waiting to be reconnected to a custom CatalystCountdownTracker before Complete() can succeed.
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 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 whether Complete() has successfully applied the captured state to the live CatalystSet.
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.
CatalystStateCallbackRequirement
One missing callback requirement returned by CatalystStateRestoreResult.GetMissingCallbacks().
Methods
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. |
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. |
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. |
Returns which kind of Catalyst value is missing a callback, such as "statistic", "modifier", or "effect".
Returns the ID of the Catalyst value whose callback needs to be supplied again.
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 a text path showing where this missing callback came from inside the captured state. This is mainly useful for debugging a restore problem.
Returns whether you are allowed to skip the temporary saved Effect, Flow, or Modifier that needs this callback. Permanent Set members cannot be skipped.
Marks the temporary saved Effect, Flow, or Modifier containing this missing callback to be skipped when Complete() applies the restore. Use CanIgnore() first.
Returns the kind of temporary saved Catalyst value that Ignore() would skip, such as an Effect, Flow, or Modifier.
Returns the ID of the temporary saved Catalyst value that Ignore() would skip.
Returns the Catalyst value this missing-callback requirement belongs to. This lets advanced repair code inspect the value directly if needed.
Returns the names of callbacks that this Catalyst value still needs before the restore can complete.
Returns whether this requirement is still waiting for the callback name you provide.
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.
Supplies one function that the save file could not store. The function is held until Complete() applies the restored state.
CatalystStateCountdownTrackerRequirement
One missing custom countdown tracker requirement returned by CatalystStateRestoreResult.GetMissingCountdownTrackers().
Methods
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. |
Resolve() | Reconnects this saved Catalyst value to the live custom CatalystCountdownTracker it used before saving. |
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. |
Returns which kind of Catalyst value is waiting for a custom CatalystCountdownTracker, such as an Effect, Flow, or Modifier.
Returns the ID of the Catalyst value that needs to be reconnected to a custom countdown tracker.
Returns the ID of the custom CatalystCountdownTracker this saved value used before it was captured.
Returns the saved-state path containing the missing countdown tracker.
Returns whether you are allowed to skip the temporary saved Effect, Flow, or Modifier that needs this tracker. Permanent Set members cannot be skipped.
Marks the temporary saved Effect, Flow, or Modifier containing this tracker to be skipped when Complete() applies the restore. Use CanIgnore() first.
Returns the kind of temporary saved Catalyst value that Ignore() would skip, such as an Effect, Flow, or Modifier.
Returns the ID of the temporary saved Catalyst value that Ignore() would skip.
Returns the Catalyst value this missing-tracker requirement belongs to. This lets advanced repair code inspect the value directly if needed.
Reconnects this saved Catalyst value to the live custom CatalystCountdownTracker it used before saving.
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
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. |
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.
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.
Opens the repair entry for the Resource with this ID. From there you can repair callbacks on its minimum or maximum Statistics.
Opens the repair entry for the ResourceFlow with this ID. From there you can repair callbacks on its rate Statistic.
Opens the repair entry for the Modifier with this ID so you can restore its condition or stack function.
Opens the repair entry for the Effect with this ID so you can restore its callbacks and callbacks on its chance Statistics.
Opens the repair entry for the EffectManager with this ID so you can restore its custom random function.
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
| Method | What 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. |
Supplies the Statistic's SetBaseFunc() function for a pending state restore.
Supplies the Statistic's SetPostProcess() function for a pending state restore.
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
| Method | What 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. |
Opens the repair entry for callbacks belonging to this Resource's minimum Statistic.
Opens the repair entry for callbacks belonging to this Resource's maximum Statistic.
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
| Method | What it does |
|---|---|
Rate() | Opens the repair entry for callbacks belonging to this Flow's rate Statistic. |
Opens the repair entry for callbacks belonging to this Flow's rate Statistic.
Modifier repair row
Returned as __CatalystRepairModifier.
Repair row returned by CatalystRepair.AddModifier(). It supplies runtime-only Modifier callbacks before a restore.
Methods
| Method | What 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. |
Supplies the Modifier function normally set with SetCondition() for a pending state restore.
Supplies the Modifier function normally set with SetStackFunc() for a pending state restore.
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
| Method | What 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. |
Supplies the Effect callback normally set with SetOnApply() for a pending state restore.
Supplies the Effect callback normally set with SetResolveTick() for a pending state restore.
Supplies the Effect callback normally set with SetOnTick() for a pending state restore.
Supplies the Effect callback normally set with SetOnRemove() for a pending state restore.
Opens the repair entry for callbacks belonging to this Effect's chance-to-apply Statistic.
Opens the repair entry for callbacks belonging to this Effect's chance-per-tick Statistic.
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
| Method | What it does |
|---|---|
RandomFunction() | Supplies the EffectManager function normally set with SetRandomFunction() for a pending state restore. |
Supplies the EffectManager function normally set with SetRandomFunction() for a pending state restore.
Global functions
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.
Package globals
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.
global.__catalyst_countdown_trackerEnums
Statistics and modifiers
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.
Chooses the order used for ADD and MULTIPLY Modifiers inside each Statistic layer.
Ready-made Statistic layer IDs. You can use these or provide your own string or number layer IDs.
Chooses how multiple stacks of a MULTIPLY Modifier combine. COMPOUND multiplies once per stack; ADDITIVE combines the percentage first.
Chooses what happens when several Modifiers belong to the same family: use all of them, only the strongest, or only the weakest.
Chooses where Modifier family rules apply. LAYER compares family members only inside the same layer; STATISTIC compares them across the whole Statistic.
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.
Resources
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.
Identifies the kind of Resource change recorded in a CatalystResourceChange result.
Effects
Chooses what an EffectManager does when an Effect is applied while another active Effect has the same ID.
Explains what happened when CatalystEffectManager.AddEffect() tried to apply an Effect.
Sets and routing
Summarises whether a CatalystSet preview could route every requested Modifier, only some of them, or none of them.
Explains why a CatalystSet could or could not match a Modifier to its target Statistic and perform the requested apply or swap.
Timing
Chooses how automatic countdown measures time. FRAMES counts one unit per game frame, while DELTA_TIME uses elapsed real time.
Symbol index
AddCountdownTracker()CatalystRepairAddEffect()CatalystCountdownTrackerAddEffect()CatalystEffectManagerAddEffect()CatalystRepairAddEffectManager()CatalystRepairAddEffectManager()CatalystSetAddFlow()CatalystCountdownTrackerAddFlow()CatalystEffectAddFlow()CatalystRepairAddFlow()CatalystResourceAddMaximumModifier()CatalystResourceAddMinimumModifier()CatalystResourceAddModifier()CatalystCountdownTrackerAddModifier()CatalystEffectAddModifier()CatalystModifierSetAddModifier()CatalystRepairAddModifier()CatalystStatisticAddResource()CatalystRepairAddResource()CatalystSetAddStacks()CatalystModifierAddStatistic()CatalystRepairAddStatistic()CatalystSetAddTag()CatalystEffectAddTag()CatalystModifierAddTag()CatalystStatisticApplied()CatalystEffectApplicationResultApplied()CatalystModifierEvaluationApply()CatalystSetApplySwap()CatalystSetBaseFunc()__CatalystRepairStatisticBindChancePerTickStatistic()CatalystEffectBindChanceToApplyStatistic()CatalystEffectBindMaximumStatistic()CatalystResourceBindMinimumStatistic()CatalystResourceBindRateStatistic()CatalystResourceFlowCanIgnore()CatalystStateCallbackRequirementCanIgnore()CatalystStateCountdownTrackerRequirementCaptureState()CatalystSetChancePerTick()__CatalystRepairEffectChanceSucceeded()CatalystEffectTickResultChanceToApply()__CatalystRepairEffectChange()CatalystResourceChangeBaseValue()CatalystStatisticChangeMaxValue()CatalystStatisticChangeMinValue()CatalystStatisticChangePastBounds()CatalystResourceClearBaseFunc()CatalystStatisticClearCondition()CatalystModifierClearDelay()CatalystResourceFlowClearFactView()CatalystSetClearFactView()CatalystStatisticClearFamily()CatalystModifierClearLayerOrder()CatalystSetClearOnApply()CatalystEffectClearOnRemove()CatalystEffectClearOnTick()CatalystEffectClearPostProcess()CatalystStatisticClearRandomFunction()CatalystEffectManagerClearResolveTick()CatalystEffectClearRounding()CatalystStatisticClearStackFunc()CatalystModifierClearTags()CatalystEffectClearTags()CatalystModifierClearTags()CatalystStatisticClearTickInterval()CatalystEffectComplete()CatalystStateRestoreResultCondition()__CatalystRepairModifierCountdown()CatalystCountdownTrackerDebugDescribe()CatalystStatisticDebugDump()CatalystCountdownTrackerDecrease()CatalystResourceDecreasePastMinimum()CatalystResourceDelay()CatalystResourceFlowDestroy()CatalystCountdownTrackerDestroy()CatalystEffectDestroy()CatalystEffectManagerDestroy()CatalystModifierDestroy()CatalystModifierSetDestroy()CatalystResourceFlowDestroy()CatalystSetDestroyAllModifiers()CatalystStatisticDestroyFlow()CatalystResourceDestroyMaximumModifier()CatalystResourceDestroyMinimumModifier()CatalystResourceDestroyModifier()CatalystStatisticDestroyModifiersBySourceId()CatalystStatisticDestroyModifiersBySourceLabel()CatalystStatisticDestroyModifiersBySourceMeta()CatalystStatisticDestroyModifiersByTag()CatalystStatisticDetachEffect()CatalystCountdownTrackerDetachFlow()CatalystCountdownTrackerDetachModifier()CatalystCountdownTrackerDetachModifier()CatalystStatisticDidChange()CatalystResourceChangeDidChange()CatalystSetRefreshResultDidChange()CatalystStatisticRefreshResultFill()CatalystResourceFindModifiersBySourceId()CatalystStatisticFindModifiersBySourceLabel()CatalystStatisticFindModifiersBySourceMeta()CatalystStatisticGetApplied()CatalystResourceChangeGetBaseValue()CatalystStatisticGetBaseValue()CatalystStatisticEvaluationGetCallbacks()CatalystStateCallbackRequirementGetChance()CatalystEffectApplicationResultGetChance()CatalystEffectTickResultGetChancePerTickStatistic()CatalystEffectGetChanceToApplyStatistic()CatalystEffectGetChange()CatalystResourceFlowResultGetComponent()CatalystStateCallbackRequirementGetContribution()CatalystModifierEvaluationGetCountdownAmount()CatalystResourceFlowResultGetCountdownMode()CatalystCountdownTrackerGetCountdownTracker()CatalystEffectGetCountdownTracker()CatalystModifierGetCountdownTracker()CatalystResourceFlowGetCurrent()CatalystResourceGetCurrent()CatalystResourceChangeGetCurrent()CatalystStatisticRefreshResultGetCurrentValue()CatalystSetPreviewEntryGetDelayRemaining()CatalystResourceFlowGetDetails()CatalystSetGetDiagnostics()CatalystSetApplyResultGetDiagnostics()CatalystSetPreviewResultGetEffect()CatalystEffectApplicationResultGetEffect()CatalystEffectTickResultGetEffectiveStacks()CatalystModifierEvaluationGetEffectManager()CatalystSetGetEffectManagers()CatalystSetGetEffectManagers()CatalystSetDetailsGetEffects()CatalystEffectManagerGetEffectsByFamily()CatalystEffectManagerGetEffectsByIdentity()CatalystEffectManagerGetEffectsTagged()CatalystEffectManagerGetEntries()CatalystSetPreviewResultGetEvaluation()CatalystSetPreviewEntryGetEvaluation()CatalystSetStatisticDetailGetFactView()CatalystSetGetFactView()CatalystStatisticGetFamily()CatalystEffectGetFlow()CatalystResourceFlowResultGetFlowResults()CatalystEffectTickResultGetFlows()CatalystResourceGetFraction()CatalystResourceGetIdentity()CatalystCountdownTrackerGetIdentity()CatalystEffectGetIdentity()CatalystEffectManagerGetIdentity()CatalystModifierGetIdentity()CatalystModifierSetGetIdentity()CatalystResourceGetIdentity()CatalystResourceFlowGetIdentity()CatalystSetGetIdentity()CatalystStateCallbackRequirementGetIdentity()CatalystStateCountdownTrackerRequirementGetIdentity()CatalystStatisticGetIgnoreIdentity()CatalystStateCallbackRequirementGetIgnoreIdentity()CatalystStateCountdownTrackerRequirementGetIgnoreType()CatalystStateCallbackRequirementGetIgnoreType()CatalystStateCountdownTrackerRequirementGetIncomingEffect()CatalystEffectApplicationResultGetIncomingModifiers()CatalystSetPreviewEntryGetLastChange()CatalystResourceGetLayer()CatalystStatisticLayerEvaluationGetLayerOrder()CatalystSetGetLayerOrder()CatalystStatisticGetLayers()CatalystStatisticEvaluationGetMaximum()CatalystResourceGetMaximum()CatalystResourceChangeGetMaximumBoundMode()CatalystResourceGetMaximumStatistic()CatalystResourceGetMaxValue()CatalystStatisticGetMeta()CatalystModifierSetGetMeta()CatalystResourceChangeGetMeta()CatalystSetGetMinimum()CatalystResourceGetMinimum()CatalystResourceChangeGetMinimumBoundMode()CatalystResourceGetMinimumStatistic()CatalystResourceGetMinValue()CatalystStatisticGetMissing()CatalystResourceGetMissingCallbacks()CatalystStateRestoreResultGetMissingCountdownTrackers()CatalystStateRestoreResultGetModifier()CatalystModifierEvaluationGetModifierOrder()CatalystStatisticGetModifierResults()CatalystStatisticEvaluationGetModifierResults()CatalystStatisticLayerEvaluationGetModifiers()CatalystModifierSetGetModifiers()CatalystStatisticGetMultiplier()CatalystEffectTickResultGetMultiplier()CatalystResourceFlowResultGetName()CatalystEffectManagerGetName()CatalystModifierSetGetName()CatalystResourceGetName()CatalystResourceFlowGetName()CatalystSetGetName()CatalystStatisticGetOperation()CatalystResourceChangeGetOutcome()CatalystEffectApplicationResultGetOutcome()CatalystRouteDiagnosticGetOutgoingModifiers()CatalystSetPreviewEntryGetOverflow()CatalystResourceGetOwner()CatalystEffectManagerGetPath()CatalystStateCallbackRequirementGetPath()CatalystStateCountdownTrackerRequirementGetPreviewValue()CatalystSetPreviewEntryGetPrevious()CatalystResourceChangeGetPrevious()CatalystStatisticRefreshResultGetPreviousMaximum()CatalystResourceChangeGetPreviousMinimum()CatalystResourceChangeGetRate()CatalystResourceFlowResultGetRateStatistic()CatalystResourceFlowGetReapplyPolicy()CatalystEffectGetReason()CatalystResourceChangeGetRefreshResults()CatalystSetApplyResultGetReport()CatalystStateCaptureResultGetReport()CatalystStateRestoreResultGetRequested()CatalystResourceChangeGetRequested()CatalystResourceFlowResultGetResource()CatalystResourceFlowResultGetResource()CatalystSetGetResource()CatalystSetResourceRefreshEntryGetResourceResults()CatalystSetRefreshResultGetResources()CatalystSetGetResources()CatalystSetDetailsGetResult()CatalystSetResourceRefreshEntryGetResult()CatalystSetStatisticRefreshEntryGetRoll()CatalystEffectApplicationResultGetRoll()CatalystEffectTickResultGetSavedCallbackName()CatalystStateCallbackRequirementGetSkipReason()CatalystModifierEvaluationGetSource()CatalystResourceChangeGetStackMode()CatalystModifierGetStartingValue()CatalystStatisticGetState()CatalystStateCaptureResultGetStatistic()CatalystRouteDiagnosticGetStatistic()CatalystSetGetStatistic()CatalystSetPreviewEntryGetStatistic()CatalystSetStatisticDetailGetStatistic()CatalystSetStatisticRefreshEntryGetStatisticEvaluations()CatalystSetDetailsGetStatisticResults()CatalystSetRefreshResultGetStatistics()CatalystSetGetStatus()CatalystSetPreviewResultGetStruct()CatalystStateCallbackRequirementGetStruct()CatalystStateCountdownTrackerRequirementGetSubject()CatalystRouteDiagnosticGetTarget()CatalystResourceChangeGetTargetIdentity()CatalystModifierGetTargetIdentity()CatalystRouteDiagnosticGetTickDuration()CatalystEffectTickResultGetTickInterval()CatalystEffectGetTimeScale()CatalystCountdownTrackerGetTrackerIdentity()CatalystStateCountdownTrackerRequirementGetType()CatalystStateCallbackRequirementGetType()CatalystStateCountdownTrackerRequirementGetUnderflow()CatalystResourceGetValue()CatalystStatisticGetValue()CatalystStatisticEvaluationGetValueAfter()CatalystModifierEvaluationGetValueBefore()CatalystModifierEvaluationHasEffect()CatalystEffectManagerHasEffectIdentity()CatalystEffectManagerHasEffectManager()CatalystSetHasFlow()CatalystResourceHasLayer()CatalystStatisticHasModifier()CatalystModifierSetHasModifier()CatalystStatisticHasModifierFromSourceId()CatalystStatisticHasModifierFromSourceLabel()CatalystStatisticHasModifierFromSourceMeta()CatalystStatisticHasResource()CatalystSetHasStatistic()CatalystSetHasTag()CatalystEffectHasTag()CatalystEffectManagerHasTag()CatalystModifierHasTag()CatalystStatisticIgnore()CatalystStateCallbackRequirementIgnore()CatalystStateCountdownTrackerRequirementIgnoreMissing()CatalystStateRestoreResultIncrease()CatalystResourceIncreasePastMaximum()CatalystResourceIsActive()CatalystResourceFlowIsActive()CatalystSubscriptionIsAutomatic()CatalystCountdownTrackerIsBound()CatalystFactBindingIsChancePerTickBound()CatalystEffectIsChanceToApplyBound()CatalystEffectIsComplete()CatalystStateRestoreResultIsDelayed()CatalystResourceFlowIsEmpty()CatalystResourceIsFull()CatalystResourceIsMaximumBound()CatalystResourceIsMinimumBound()CatalystResourceIsPaused()CatalystCountdownTrackerIsRateBound()CatalystResourceFlowIsTrackingEffect()CatalystCountdownTrackerIsTrackingFlow()CatalystCountdownTrackerIsTrackingModifier()CatalystCountdownTrackerNeeds()CatalystStateCallbackRequirementOnApply()__CatalystRepairEffectOnChange()CatalystResourceOnChange()CatalystStatisticOnEffectApplied()CatalystEffectManagerOnEffectRemoved()CatalystEffectManagerOnRemove()__CatalystRepairEffectOnTick()__CatalystRepairEffectPostProcess()__CatalystRepairStatisticPreview()CatalystSetPreview()CatalystStatisticPreviewModifiers()CatalystStatisticPreviewSwap()CatalystSetPublishToFact()CatalystResourcePublishToFact()CatalystStatisticQueued()CatalystEffectApplicationResultRandomFunction()__CatalystRepairEffectManagerRate()__CatalystRepairFlowRefresh()CatalystResourceRefresh()CatalystSetRefresh()CatalystStatisticRemoveEffect()CatalystEffectManagerRemoveEffectManager()CatalystSetRemoveEffectsByIdentity()CatalystEffectManagerRemoveEffectsTagged()CatalystEffectManagerRemoveFlow()CatalystEffectRemoveFlow()CatalystResourceRemoveModifier()CatalystEffectRemoveModifier()CatalystModifierSetRemoveResource()CatalystSetRemoveStatistic()CatalystSetRemoveTag()CatalystEffectRemoveTag()CatalystModifierRemoveTag()CatalystStatisticRepair()CatalystStateRestoreResultResetAll()CatalystStatisticResetDuration()CatalystEffectResetDuration()CatalystModifierResetToStarting()CatalystStatisticResolve()CatalystStateCallbackRequirementResolve()CatalystStateCountdownTrackerRequirementResolveCallbacks()CatalystStateRestoreResultResolveTick()__CatalystRepairEffectRestoreState()CatalystSetSetActive()CatalystResourceFlowSetBaseFunc()CatalystStatisticSetBaseValue()CatalystStatisticSetChancePerTick()CatalystEffectSetChanceToApply()CatalystEffectSetClamped()CatalystStatisticSetCondition()CatalystModifierSetCountdownTracker()CatalystEffectSetCountdownTracker()CatalystModifierSetCountdownTracker()CatalystResourceFlowSetCurrent()CatalystResourceSetDuration()CatalystEffectSetDuration()CatalystModifierSetFactView()CatalystSetSetFactView()CatalystStatisticSetFamily()CatalystEffectSetFamily()CatalystModifierSetFamilyMode()CatalystModifierSetFamilyScope()CatalystModifierSetIdentity()CatalystCountdownTrackerSetIdentity()CatalystEffectSetIdentity()CatalystEffectManagerSetIdentity()CatalystModifierSetIdentity()CatalystModifierSetSetIdentity()CatalystResourceSetIdentity()CatalystResourceFlowSetIdentity()CatalystSetSetIdentity()CatalystStatisticSetLayer()CatalystModifierSetLayerOrder()CatalystSetSetLayerOrder()CatalystStatisticSetMathsOp()CatalystModifierSetMaximum()CatalystResourceSetMaximumBoundMode()CatalystResourceSetMaxStacks()CatalystModifierSetMaxValue()CatalystStatisticSetMeta()CatalystModifierSetSetMeta()CatalystSetSetMinimum()CatalystResourceSetMinimumBoundMode()CatalystResourceSetMinValue()CatalystStatisticSetModifierOrder()CatalystStatisticSetMultiplier()CatalystEffectTickResultSetName()CatalystEffectManagerSetName()CatalystModifierSetSetName()CatalystResourceSetName()CatalystResourceFlowSetName()CatalystSetSetName()CatalystStatisticSetOnApply()CatalystEffectSetOnRemove()CatalystEffectSetOnTick()CatalystEffectSetPaused()CatalystCountdownTrackerSetPostProcess()CatalystStatisticSetRandomFunction()CatalystEffectManagerSetRate()CatalystResourceFlowSetReapplyPolicy()CatalystEffectSetResolveTick()CatalystEffectSetRoundingStep()CatalystStatisticSetSourceId()CatalystModifierSetSourceId()CatalystResourceFlowSetSourceLabel()CatalystModifierSetSourceLabel()CatalystResourceFlowSetSourceMeta()CatalystModifierSetSourceMeta()CatalystResourceFlowSetStackFunc()CatalystModifierSetStackMode()CatalystModifierSetStacks()CatalystModifierSetSucceeded()CatalystEffectTickResultSetTargetIdentity()CatalystModifierSetTickInterval()CatalystEffectSetTimeScale()CatalystCountdownTrackerSetValue()CatalystModifierStackFunc()__CatalystRepairModifierStartAutomatic()CatalystCountdownTrackerStopAutomatic()CatalystCountdownTrackerSucceeded()CatalystEffectApplicationResultSucceeded()CatalystEffectTickResultSucceeded()CatalystResourceChangeSucceeded()CatalystResourceFlowResultSucceeded()CatalystSetApplyResultSucceeded()CatalystSetPreviewResultSucceeded()CatalystStateCaptureResultSync()CatalystFactBindingUnbind()CatalystFactBindingUnbindChancePerTickStatistic()CatalystEffectUnbindChanceToApplyStatistic()CatalystEffectUnbindMaximumStatistic()CatalystResourceUnbindMinimumStatistic()CatalystResourceUnbindRateStatistic()CatalystResourceFlowUnsubscribe()CatalystSubscriptionWonFamily()CatalystModifierEvaluationeCatFamilyModeenumeCatFamilyScopeenumeCatMathOpsenumeCatRouteOutcomeenumeCatStackModeenumeCatStatLayerenumCATALYST_COUNTDOWNmacro