On this page
- Catalyst Scripting Reference
- Enums
- Macros and globals
- Constructors
CatalystStatistic(_value, _min_value, _max_value)StaticSetup()AddModifier(_mod)AddOnChangeFunction(fn1, fn2, ...)RemoveOnChangeFunction(_id)RemoveModifierById(_mod_id)RemoveAllModifiers()RemoveModifierBySourceLabel(_source_label)RemoveModifierBySourceId(_source_id)RemoveModifierBySourceMeta(_source_meta_func)RemoveModifierByPosition(_pos)RemoveModifiersByTag(_tag)FindModifiersBySourceId(_source_id)FindModifiersBySourceLabel(_source_label)FindModifiersBySourceMeta(_predicate_func)FindModifiersById(_id)HasModifierFromSourceId(_source_id)HasModifierFromSourceLabel(_source_label)HasModifierFromSourceMeta(_predicate_func)HasModifier(_mod)SetPostProcess(_fn)ClearPostProcess()GetValue(_context)GetValuePreview(_context)PreviewChange(_mod_value, _mod_op, _layer, _stacks, _max_stacks, _condition, _stack_func, _context, _family, _family_mode)PreviewChanges(_extra_ops, _context)SetClamped(_bool)SetRounding(_enabled, _step)SetName(_name)SetBaseValue(_amount)SetBaseFunc(_fn)ClearBaseFunc()SetMaxValue(_amount)SetMinValue(_amount)ChangeBaseValue(_amount)ChangeMaxValue(_amount)ChangeMinValue(_amount)ResetToStarting()ResetAll()GetStartingValue()GetBaseValue()GetMaxValue()GetMinValue()GetName()DebugDescribe()AddTag(_tag)RemoveTag(_tag)HasTag(_tag)ClearTags()_EvaluateWithExtraOps(_extra_ops, _context)
CatalystModifier(_value, _math_operation, _duration, _source_label, _source_id, _source_meta)ApplyDuration()SetDuration(_duration)ResetDuration()SetValue(_value)SetMathsOp(_maths_op)SetSourceLabel(_source_label)SetSourceId(_source_id)SetSourceMeta(_source_meta)SetLayer(_layer)SetStacks(_stacks)AddStacks(_delta)SetMaxStacks(_max)SetCondition(_fn)ClearCondition()SetStackFunc(_fn)ClearStackFunc()SetFamily(_family, _mode)SetFamilyMode(_mode)ClearFamily()AddTag(_tag)RemoveTag(_tag)HasTag(_tag)ClearTags()Destroy(_remove_from_stat)
CatalystModifierTracker()EchoChamberThemeCatalyst()
- Functions
Catalyst Scripting Reference
Catalyst is a stat and modifier system built around GML 2.3+ structs and functions.
Callback notes:
- Bind explicit scope with
method(self, function(...) {})for instance scope. - If you need additional scope, bind a struct that contains references to all the different scope you might want with
method(scope_struct, function(...) {})(for instance, you might want to save the values from local variables alongside a reference to the owner).
Enums
eCatMathOps
ADD- Adds
value * stacksto the running value.
- Adds
MULTIPLY- Multiplies the running value by
power(1 + value, stacks).
- Multiplies the running value by
FORCE_MIN- Applied after all ADD and MULTIPLY layers.
- If the current value is less than the modifier value, the value is raised to the modifier value.
- Excluded from family comparisons.
FORCE_MAX- Applied after all ADD, MULTIPLY, and FORCE_MIN passes.
- If the current value is greater than the modifier value, the value is lowered to the modifier value.
- Excluded from family comparisons.
eCatStatLayer
Layers control when modifiers apply during evaluation. Catalyst processes layers in this order:
BASE_BONUSEQUIPMENTAUGMENTSTEMPGLOBAL
eCatFamilyStackMode
STACK_ALL- All modifiers in the family apply.
HIGHEST- Only the strongest modifier in the family applies (per layer, per family_mode).
LOWEST- Only the weakest modifier in the family applies (per layer, per family_mode).
Macros and globals
CATALYST_COUNTDOWN
Macro alias for the global tracker instance.
- Definition:
#macro CATALYST_COUNTDOWN global.__catalyst_modifier_tracker - Used by
CatalystModifier.ApplyDuration()andCatalystModCountdown().
global.__catalyst_modifier_tracker
Default global tracker instance.
- Created at load time in
scr_catalyst_macro. - Recreated on demand if missing when a timed modifier is applied.
- You can replace it with your own
CatalystModifierTracker, but the macro will still point at this global.
Constructors
CatalystStatistic(_value, _min_value, _max_value)
Creates a numeric stat container with modifiers, clamping, rounding, and callbacks.
Arguments
_valueRealInitial base value._min_valueRealOptional minimum clamp value (defaults to-infinity)._max_valueRealOptional maximum clamp value (defaults toinfinity).
Returns: Struct.CatalystStatistic
Core fields
base_valueRealBase (pre modifier) value.starting_valueRealBase value at construction time.current_valueRealCached canonical value from the lastGetValue()call without context.base_funcFunction,NooneOptional base override functionfn(stat, context) -> Real.min_valueRealMinimum clamp value.max_valueRealMaximum clamp value.clampedBoolWhether clamping is enabled (defaultfalse).roundedBoolWhether rounding is enabled (defaulttrue).round_stepRealRounding step (default1).modifiersArray<Struct.CatalystModifier>Attached modifiers.alteredBoolWhether the cached value needs recomputing (defaulttrue).nameStringHuman readable label (default empty string).on_change_callbacksArray<Struct>Entries are{ ident, fn }.on_change_next_idRealInternal id counter for callbacks.post_processFunction,NooneOptional post processfn(stat, raw_value, context) -> Real.tagsArray<String>Stat tags.
Evaluation pipeline
- Start from
base_valueorbase_func(stat, context)whenbase_funcis callable. - Stage 1: Apply ADD and MULTIPLY modifiers by layer order.
- Stage 2: Apply FORCE_MIN modifiers (all layers).
- Stage 3: Apply FORCE_MIN extra ops (all layers).
- Stage 4: Apply FORCE_MAX modifiers (all layers).
- Stage 5: Apply FORCE_MAX extra ops (all layers).
- Stage 6: Apply
post_processif callable. - Stage 7: Apply clamping and rounding if enabled.
Evaluation rules
- Condition callbacks run only when callable. If
contextisundefined, the condition is called asfn(stat); otherwise it is called asfn(stat, context). - Stacks are computed as follows:
- Start from
stacks(default1when missing in extra ops). - If
stack_funcis callable and a context is provided, stacks becomestack_func(stat, context). - If
stack_funcis callable and no context is provided, stacks become0. - If
max_stacksis defined, stacks are clamped to[0, max_stacks]. If it is missing, stacks are only clamped to>= 0.
- Start from
- Family stacking applies only when
familyis set andfamily_modeisHIGHESTorLOWEST.- Family comparisons are per layer and include both real modifiers and preview ops.
- The strength comparison uses
abs(value * stacks)for ADD andabs(power(1 + value, stacks) - 1)for MULTIPLY. FORCE_MINandFORCE_MAXare excluded from family comparisons.
Public methods
-
StaticSetup()- Arguments: None.
- Returns:
Undefined - Additional details:
- Reapplies the
CatalystModifierstatic methods to all current modifiers. - Call this after loading serialized stats and modifiers from disk.
- Reapplies the
-
AddModifier(_mod)- Arguments:
_modStruct.CatalystModifierModifier to attach.
- Returns:
Struct.CatalystStatistic - Additional details:
- If the modifier is already attached to a different stat, the call is ignored and
EchoDebugWarnlogs a warning. - If the modifier is already attached to this stat, the call is a no op.
- Sets
_mod.applied_stat = selfand marks the stat as altered.
- If the modifier is already attached to a different stat, the call is ignored and
- Arguments:
-
AddOnChangeFunction(fn1, fn2, ...)- Arguments:
fn*FunctionOne or more callback functions. Each is called asfn(stat, old_value, new_value).
- Returns:
Array<Real>Array of callback ids, one per function added. - Additional details:
- Callbacks fire only when
GetValue()is called with no context and the cached value changes. undefinedarguments are skipped, but non-callable values are stored as-is and will error when fired.- Use
method(self, function(...) {})if you need instance scope.
- Callbacks fire only when
- Arguments:
-
RemoveOnChangeFunction(_id)- Arguments:
_idRealCallback id returned byAddOnChangeFunction.
- Returns:
Bool
- Arguments:
-
RemoveModifierById(_mod_id)- Arguments:
_mod_idStruct.CatalystModifierModifier instance to remove.
- Returns:
Bool - Additional details:
- Destroys the modifier via
Destroy(false)and removes it from the stat.
- Destroys the modifier via
- Arguments:
-
RemoveAllModifiers()- Arguments: None.
- Returns:
Struct.CatalystStatistic - Additional details:
- Calls
Destroy(false)on each modifier, then clears the modifiers array.
- Calls
-
RemoveModifierBySourceLabel(_source_label)- Arguments:
_source_labelStringSource label to match.
- Returns:
RealNumber of modifiers removed.
- Arguments:
-
RemoveModifierBySourceId(_source_id)- Arguments:
_source_idID.Instance|StructSource id to match.
- Returns:
RealNumber of modifiers removed.
- Arguments:
-
RemoveModifierBySourceMeta(_source_meta_func)- Arguments:
_source_meta_funcFunctionPredicate called asfn(source_meta) -> Bool.
- Returns:
RealNumber of modifiers removed. - Additional details:
- The predicate is called for every modifier.
- The function is not validated. It must be callable.
- Arguments:
-
RemoveModifierByPosition(_pos)- Arguments:
_posRealIndex in the modifiers array.
- Returns:
BoolTrue if an entry existed and was removed.
- Arguments:
-
RemoveModifiersByTag(_tag)- Arguments:
_tagStringTag string to remove.
- Returns:
RealNumber of modifiers removed.
- Arguments:
-
FindModifiersBySourceId(_source_id)- Arguments:
_source_idID.Instance|Struct
- Returns:
Array<Struct.CatalystModifier>
- Arguments:
-
FindModifiersBySourceLabel(_source_label)- Arguments:
_source_labelString
- Returns:
Array<Struct.CatalystModifier>
- Arguments:
-
FindModifiersBySourceMeta(_predicate_func)- Arguments:
_predicate_funcFunctionPredicate called asfn(source_meta) -> Bool.
- Returns:
Array<Struct.CatalystModifier> - Additional details:
- The function is not validated. It must be callable.
- Arguments:
-
FindModifiersById(_id)- Arguments:
_idStruct.CatalystModifier
- Returns:
Array<Struct.CatalystModifier>
- Arguments:
-
HasModifierFromSourceId(_source_id)- Arguments:
_source_idID.Instance|Struct
- Returns:
Bool
- Arguments:
-
HasModifierFromSourceLabel(_source_label)- Arguments:
_source_labelString
- Returns:
Bool
- Arguments:
-
HasModifierFromSourceMeta(_predicate_func)- Arguments:
_predicate_funcFunctionPredicate called asfn(source_meta) -> Bool.
- Returns:
Bool - Additional details:
- The function is not validated. It must be callable.
- Arguments:
-
HasModifier(_mod)- Arguments:
_modStruct.CatalystModifierModifier instance.
- Returns:
Bool
- Arguments:
-
SetPostProcess(_fn)- Arguments:
_fnFunctionCallbackfn(stat, value, context) -> Real.
- Returns:
Struct.CatalystStatistic - Additional details:
- Logs a debug message and ignores the call if
_fnis not callable.
- Logs a debug message and ignores the call if
- Arguments:
-
ClearPostProcess()- Arguments: None.
- Returns:
Struct.CatalystStatistic
-
GetValue(_context)- Arguments:
_contextAnyOptional evaluation context.
- Returns:
Real - Additional details:
- If
_contextisundefinedor omitted, returns the cached canonical value and fires on change callbacks when the value changes. - If
_contextis provided, evaluates a preview value without caching or callbacks. - Passing
undefinedexplicitly is treated the same as omitting the argument.
- If
- Arguments:
-
GetValuePreview(_context)- Arguments:
_contextAnyOptional evaluation context.
- Returns:
Real - Additional details:
- Always evaluates without caching or callbacks.
- Arguments:
-
PreviewChange(_mod_value, _mod_op, _layer, _stacks, _max_stacks, _condition, _stack_func, _context, _family, _family_mode)- Arguments:
_mod_valueRealModifier value to apply._mod_opeCatMathOpsMath operation._layereCatStatLayerOptional layer (defaults toAUGMENTS)._stacksRealOptional stacks (defaults to1)._max_stacksRealOptional max stacks (defaults to_stackswhen negative)._conditionFunctionOptional conditionfn(stat, context) -> Bool._stack_funcFunctionOptional stack functionfn(stat, context) -> Real._contextAnyOptional evaluation context._familyAnyOptional family key._family_modeeCatFamilyStackModeOptional family mode (defaults toSTACK_ALL).
- Returns:
Real - Additional details:
- Builds a temporary op struct and evaluates it without mutating the stat.
- Arguments:
-
PreviewChanges(_extra_ops, _context)- Arguments:
_extra_opsArray<Struct>Array of op structs with fields:valueRealoperationeCatMathOpslayereCatStatLayerOptional, defaults toAUGMENTS.stacksRealOptional, defaults to1.max_stacksRealOptional, when omitted no max clamp is applied.conditionFunctionOptional,fn(stat, context) -> Bool.stack_funcFunctionOptional,fn(stat, context) -> Real.familyAnyOptional family key.family_modeeCatFamilyStackModeOptional, defaults toSTACK_ALL.
_contextAnyOptional evaluation context.
- Returns:
Real - Additional details:
- If
_extra_opsisundefined, it is treated as an empty array.
- If
- Arguments:
-
SetClamped(_bool)- Arguments:
_boolBoolOptional, defaults totrue.
- Returns:
Struct.CatalystStatistic - Additional details:
- Use
SetClamped(false)to disable clamping.
- Use
- Arguments:
-
SetRounding(_enabled, _step)- Arguments:
_enabledBoolWhether rounding is enabled._stepRealOptional step (defaults to1).
- Returns:
Struct.CatalystStatistic - Additional details:
- If
round_step <= 0, the evaluation step uses1to avoid division by zero.
- If
- Arguments:
-
SetName(_name)- Arguments:
_nameStringName to assign.
- Returns:
Struct.CatalystStatistic
- Arguments:
-
SetBaseValue(_amount)- Arguments:
_amountRealNew base value.
- Returns:
Struct.CatalystStatistic
- Arguments:
-
SetBaseFunc(_fn)- Arguments:
_fnFunctionCallbackfn(stat, context) -> Real.
- Returns:
Struct.CatalystStatistic - Additional details:
- Logs a debug message and ignores the call if
_fnis not callable.
- Logs a debug message and ignores the call if
- Arguments:
-
ClearBaseFunc()- Arguments: None.
- Returns:
Struct.CatalystStatistic
-
SetMaxValue(_amount)- Arguments:
_amountRealNew max value.
- Returns:
Struct.CatalystStatistic
- Arguments:
-
SetMinValue(_amount)- Arguments:
_amountRealNew min value.
- Returns:
Struct.CatalystStatistic
- Arguments:
-
ChangeBaseValue(_amount)- Arguments:
_amountRealAmount to add.
- Returns:
Struct.CatalystStatistic - Additional details:
- Applies clamping and rounding to
base_valueif enabled.
- Applies clamping and rounding to
- Arguments:
-
ChangeMaxValue(_amount)- Arguments:
_amountRealAmount to add.
- Returns:
Struct.CatalystStatistic
- Arguments:
-
ChangeMinValue(_amount)- Arguments:
_amountRealAmount to add.
- Returns:
Struct.CatalystStatistic
- Arguments:
-
ResetToStarting()- Arguments: None.
- Returns:
Struct.CatalystStatistic
-
ResetAll()- Arguments: None.
- Returns:
Struct.CatalystStatistic - Additional details:
- Resets base and cached values to
starting_value. - Clears modifiers, callbacks, tags, base_func, and post_process.
- Resets clamping and rounding to defaults.
- Resets base and cached values to
-
GetStartingValue()- Arguments: None.
- Returns:
Real
-
GetBaseValue()- Arguments: None.
- Returns:
Real
-
GetMaxValue()- Arguments: None.
- Returns:
Real
-
GetMinValue()- Arguments: None.
- Returns:
Real
-
GetName()- Arguments: None.
- Returns:
String
-
DebugDescribe()- Arguments: None.
- Returns:
Undefined - Additional details:
- Logs the stat and modifier details using
GetValuePreview(). - Does not change cached values or fire callbacks.
- Logs the stat and modifier details using
-
AddTag(_tag)- Arguments:
_tagString
- Returns:
Struct.CatalystStatistic
- Arguments:
-
RemoveTag(_tag)- Arguments:
_tagString
- Returns:
Struct.CatalystStatistic
- Arguments:
-
HasTag(_tag)- Arguments:
_tagString
- Returns:
Bool
- Arguments:
-
ClearTags()- Arguments: None.
- Returns:
Struct.CatalystStatistic
-
_EvaluateWithExtraOps(_extra_ops, _context)- Arguments:
_extra_opsArray<Struct>Extra ops array, same format asPreviewChanges._contextAnyOptional evaluation context.
- Returns:
Real - Additional details:
- Internal evaluation helper used by
GetValueand preview methods. - Available as a method but usually not called directly.
- Internal evaluation helper used by
- Arguments:
CatalystModifier(_value, _math_operation, _duration, _source_label, _source_id, _source_meta)
Creates a modifier that can be attached to a CatalystStatistic.
Arguments
_valueRealModifier value._math_operationeCatMathOpsHow the value applies._durationRealOptional duration in ticks (-1for permanent)._source_labelStringOptional human readable label._source_idID.Instance|StructOptional source handle._source_metaAnyOptional metadata.
Returns: Struct.CatalystModifier
Core fields
valueRealModifier value.operationeCatMathOpsMath operation.durationRealRemaining duration (-1for permanent).duration_maxRealOriginal duration.duration_appliedBoolWhether the modifier is tracked.stacksRealCurrent stack count (default1).max_stacksRealMax stack count (defaultinfinity).layereCatStatLayerDefault layer (defaultTEMP).conditionFunction,UndefinedOptional condition.stack_funcFunction,UndefinedOptional stack function.familyAnyFamily key (default empty string).family_modeeCatFamilyStackModeFamily stacking mode (defaultSTACK_ALL).tagsArray<String>Modifier tags.source_labelStringSource label.source_idID.Instance|StructSource handle.source_metaAnyMetadata object.applied_statStruct.CatalystStatistic,NooneOwning stat.remove_from_statBoolInternal flag used during destruction.
Duration behavior
- A positive duration registers the modifier with the global tracker.
- A negative duration is permanent and not tracked.
- A duration of
0is not tracked when first created. If already tracked, it will expire on the next countdown. ApplyDuration()is called at the end of the constructor.
Public methods
-
ApplyDuration()- Arguments: None.
- Returns:
Undefined - Additional details:
- Registers the modifier with
CATALYST_COUNTDOWNifduration > 0and not already applied. - Creates the global tracker if missing.
- Registers the modifier with
-
SetDuration(_duration)- Arguments:
_durationRealNew duration value.
- Returns:
Struct.CatalystModifier - Additional details:
- Updates
durationandduration_max. - Detaches from the tracker when
_duration < 0. - Reapplies tracking when
_duration >= 0andduration > 0.
- Updates
- Arguments:
-
ResetDuration()- Arguments: None.
- Returns:
Undefined - Additional details:
- Calls
SetDuration(duration_max).
- Calls
-
SetValue(_value)- Arguments:
_valueReal
- Returns:
Struct.CatalystModifier - Additional details:
- Marks the owning stat as altered if attached.
- Arguments:
-
SetMathsOp(_maths_op)- Arguments:
_maths_opeCatMathOps
- Returns:
Struct.CatalystModifier - Additional details:
- Marks the owning stat as altered if attached.
- Arguments:
-
SetSourceLabel(_source_label)- Arguments:
_source_labelString
- Returns:
Struct.CatalystModifier
- Arguments:
-
SetSourceId(_source_id)- Arguments:
_source_idID.Instance|Struct
- Returns:
Struct.CatalystModifier
- Arguments:
-
SetSourceMeta(_source_meta)- Arguments:
_source_metaAny
- Returns:
Struct.CatalystModifier
- Arguments:
-
SetLayer(_layer)- Arguments:
_layereCatStatLayer
- Returns:
Struct.CatalystModifier - Additional details:
- Marks the owning stat as altered if attached.
- Arguments:
-
SetStacks(_stacks)- Arguments:
_stacksReal
- Returns:
Struct.CatalystModifier - Additional details:
- Clamps to
[0, max_stacks]. - Marks the owning stat as altered if attached.
- Clamps to
- Arguments:
-
AddStacks(_delta)- Arguments:
_deltaRealOptional delta (defaults to1).
- Returns:
Struct.CatalystModifier
- Arguments:
-
SetMaxStacks(_max)- Arguments:
_maxRealNew max stack count.
- Returns:
Struct.CatalystModifier - Additional details:
- Uses
max(1, _max)so the minimum is1. - Clamps the current stack count if needed.
- Marks the owning stat as altered if attached.
- Uses
- Arguments:
-
SetCondition(_fn)- Arguments:
_fnFunctionCallbackfn(stat)orfn(stat, context) -> Bool.
- Returns:
Struct.CatalystModifier - Additional details:
- Marks the owning stat as altered if attached.
- Arguments:
-
ClearCondition()- Arguments: None.
- Returns:
Struct.CatalystModifier - Additional details:
- Marks the owning stat as altered if attached.
-
SetStackFunc(_fn)- Arguments:
_fnFunctionCallbackfn(stat, context) -> Real.
- Returns:
Struct.CatalystModifier - Additional details:
- When set, the effective stack count comes from this callback when a context is provided.
- When no context is provided, the effective stack count is
0. - Marks the owning stat as altered if attached.
- Arguments:
-
ClearStackFunc()- Arguments: None.
- Returns:
Struct.CatalystModifier - Additional details:
- Marks the owning stat as altered if attached.
-
SetFamily(_family, _mode)- Arguments:
_familyAnyFamily key._modeeCatFamilyStackModeOptional stacking mode (defaults toHIGHEST).
- Returns:
Struct.CatalystModifier - Additional details:
- Marks the owning stat as altered if attached.
- Arguments:
-
SetFamilyMode(_mode)- Arguments:
_modeeCatFamilyStackMode
- Returns:
Struct.CatalystModifier - Additional details:
- Marks the owning stat as altered if attached.
- Arguments:
-
ClearFamily()- Arguments: None.
- Returns:
Struct.CatalystModifier - Additional details:
- Clears the family key and resets the mode to
STACK_ALL. - Marks the owning stat as altered if attached.
- Clears the family key and resets the mode to
-
AddTag(_tag)- Arguments:
_tagString
- Returns:
Struct.CatalystModifier
- Arguments:
-
RemoveTag(_tag)- Arguments:
_tagString
- Returns:
Struct.CatalystModifier
- Arguments:
-
HasTag(_tag)- Arguments:
_tagString
- Returns:
Bool
- Arguments:
-
ClearTags()- Arguments: None.
- Returns:
Struct.CatalystModifier
-
Destroy(_remove_from_stat)- Arguments:
_remove_from_statBoolOptional (defaults totrue).
- Returns:
Undefined - Additional details:
- Removes the modifier from the tracker if present.
- When
_remove_from_statistrue, also detaches it from the owning stat. - When
_remove_from_statisfalse, the stat is not updated. Use this only when the stat is already handling its own removal. - The modifier is deleted and should not be used after this call.
- Arguments:
CatalystModifierTracker()
Creates a tracker for timed modifiers.
Returns: Struct.CatalystModifierTracker
Fields
modifiersArray<Struct.CatalystModifier>Currently tracked modifiers.
Public methods
-
AddModifier(_mod)- Arguments:
_modStruct.CatalystModifier
- Returns:
Undefined - Additional details:
- Simply pushes the modifier into the list.
- Arguments:
-
RemoveModifierById(_mod)- Arguments:
_modStruct.CatalystModifier
- Returns:
Bool - Additional details:
- Removes the first matching instance, calls
RemoveModifierByPos, and returns true when a modifier was removed.
- Removes the first matching instance, calls
- Arguments:
-
RemoveModifierByPos(_pos)- Arguments:
_posRealIndex in the modifiers array.
- Returns:
Bool - Additional details:
- Deletes the modifier and removes it from the tracker.
- If
remove_from_statis true andapplied_statis aCatalystStatistic, the stat reference is removed as well.
- Arguments:
-
DetachModifier(_mod)- Arguments:
_modStruct.CatalystModifier
- Returns:
Bool - Additional details:
- Removes the modifier from the tracker without touching its owning stat.
- Sets
_mod.duration_applied = false.
- Arguments:
-
Countdown()- Arguments: None.
- Returns:
Undefined - Additional details:
- Decrements each tracked modifier duration by 1.
- Removes and deletes modifiers whose duration reaches 0 or lower.
-
DebugDump()- Arguments: None.
- Returns:
Undefined - Additional details:
- Writes a summary of all tracked modifiers to the debug output.
EchoChamberThemeCatalyst()
Creates a Catalyst themed EchoChamberTheme variant with a neon reactor palette.
Returns: Struct.EchoChamberThemeCatalyst
Additional details
- Extends
EchoChamberThemeand overrides colors, panel styles, button styles, toggles, dropdowns, and text inputs. - Requires Echo Chamber to be present in your project.
Functions
CatalystModCountdown()
Helper for driving the global modifier tracker.
Arguments: None.
Returns: Undefined
Additional details
- Calls
global.__catalyst_modifier_tracker.Countdown()when the tracker exists and is aCatalystModifierTracker. - Safe to call once per Step or per tick in your game loop.