
Catalyst (GameMaker Stat Handler)
A downloadable tool
Catalyst - A modifiable statistic handler for GameMaker!
Have you ever tried to add some modifiers to your in-game stats, like "When the player hits this boost, their move speed should double for 5 seconds".
Or perhaps "Getting the 'spring' powerup should double my players jump height".
Or even "when the player gets the 'Firebrand' augment, their move speed should be increased based on how many burning enemies are near them"?
Did your code end up becoming hard to manage spaghet? Mine certainly did, and that's why I built Catalyst, which turns handling modifiable numbers into a breeze!
Whether it's your players speed or jump height for a platformer, or a deep and complex web of stats for an RPG, Catalyst is designed to make it as easy as possible to deal with modifying your statistics, with extremely powerful features to back up all the things you might want to do.
Get the Ignition Kit bundle, featuring Pulse, Catalyst AND Statement for a discount!
Or get the Full Suite Pass bundle to get all current and future tools for one low price (price will increase each time a new tool launches, so get in early for substantial savings!)
Key Features
With Catalyst it's dead simple to do things like:
- Apply modifiers only for a certain duration.
- Sensibly interweave multiple positive and negative additive or multiplicative modifiers on a single stat.
- Order your modifiers sensibly (base before gear before buffs before, etc).
- Preview changes easily (want to see exactly what will happen when you swap the broken iron sword for the staff of fire? Catalyst makes that simple)
- Apply tags to modifiers and remove them in groups (turns complex things like "a potion that removes all debuffs" into a single line of code)
- Base stats off complex interactions with other stats (is your maximum health dynamically based on a formula like
50 + vitality * 10 + level * 5? Set that as a rule once and Catalyst automatically handles it for you) - Have modifiers only apply during certain conditions ("+50% damage only against frozen targets", or "Extra move speed when health is below 25%")
- Plus tons more (modifier families, post-processing stats, on-change callbacks, etc)
How to use it
Creating a statistic is easy in Catalyst:
hp_max = new CatalystStatistic(50).SetName("HP Max");
And applying a modifier is also very simple (let's add 3 to your hp_max stat):
var _mod = new CatalystModifier(3, eCatMathOps.ADD);
hp_max.AddModifier(_mod);
And finally, retrieving the current value of a stat is a piece of cake:
var _hp_max = hp_max.GetValue();
This pattern alone will save you hours of development time when trying to handle stats and modifiers, as Catalyst handles all the messy 'behind the scenes' work you'd be doing attempting to manage this (especially once multiple modifiers are involved).
But once you've gotten used to that pattern and start diving into the true power behind Catalyst, that's when saving hours of development time turns into saving weeks.
Context aware evaluations, context-driven stacks, conditional modifiers, modifier families and stacking rules, derived base values, soft caps and curves, tags for grouping, etc.
If you can think of something that you might possibly want to do to a stat, Catalyst very likely has the answer for you in an easy to use manner (and if you think of something Catalyst can't do, I'll implement it!).
I've been building and refining Catalyst for years now, and I've endeavoured to make it extremely powerful without having that power increase the complexity of using it (I'm a simple man and I enjoy simple things, I don't want to have to learn a new language just to make some stats).
Echo comes with Catalyst for free!
Catalyst includes Echo, a debug logger and powerful debug UI builder, entirely for free!
Documentation
As with all of my GameMaker based tools, Catalyst comes with full online documentation, including an entire API reference page, a quickstart guide and multiple common patterns that you can add to your project straight away with minimal tweaking.
Requirements
GameMaker 2.3 or later (as long as it has structs and methods)
Echo requires 2024.8+ (as it uses gpu_set_scissor())
Support and feedback
If you run into issues or have ideas for improvements:
- GitHub Issues (bugs and feature requests): https://github.com/RefresherTowel/Catalyst/issues
- Discord (questions, discussion, show and tell): https://discord.gg/qx6GtfVWJR
Part of the RefresherTowel Games frameworks
Part of a growing suite of GameMaker frameworks that are designed to play nicely together. If you like this style of tooling, you might also want:
- Catalyst - makes modifiable numbers & statistics super easy.
- Pulse - a signals and events framework (supporting queries that allow you to ask questions instead of just broadcast signals!)
- Statement - a state machine framework (with a fully visual in-game debugger).
- Echo - advanced debug logging (level filtering, tags, optional stack traces, history dumps) that now comes with an advanced, yet easy to use debug UI builder!
Get them in the Ignition Kit bundle for a discount! Or buy the Full Suite Pass bundle (get access to all past and future tools) in one go!
I have been dogfooding these tools across my own projects for a long time, and I hope they make your codebase calmer, cleaner, and harder to accidentally sabotage at 2am.
| Published | 8 hours ago |
| Status | Released |
| Category | Tool |
| Author | RefresherTowel |
| Genre | Role Playing |
| Made with | GameMaker |
| Tags | GameMaker, sourcecode, stat, statistics, tool |
Purchase
In order to download this tool you must purchase it at or above the minimum price of $9.95 USD. You will get access to the following files:



Leave a comment
Log in with itch.io to leave a comment.