Asset - Extension PRState: A clean and simple finite state machine implementation.

Hello again, everyone!

Once again, my company, Prismatic Realms Inc. and I would like to introduce another new extension just released on the marketplace! It's called PRState.

This small extension will allow you to quickly and easily implement state machines for your game objects. Use this to group your object's Step Event (frame update) code into logical units (states) that you can easily switch between using a single command. Prevent unwanted states from running by specifying "valid from" state lists. Convenient "mode" argument passed to your script to tell you when you should run your state setup code, when to run state cleanup code and when to run your core state code. Turn on and off verbose logging so that you can watch when your objects are switching states to make sure they are running as desired.

Say good-bye to huge, unwieldy Step events and hello to state-switching simplicity and code organization. Once you've tasted using a state machine to handle your object's behaviours, you'll never go back to the old way of doing things. A support web page containing further info and full documentation is forthcoming. I will notify everyone when that's available.

For now, please have a look at the asset on the marketplace. There is enough information there to get you started and, as mentioned, if you have any questions on its use, all you need to do is ask! I will be more than happy to help.

Thank you!
Hello everyone!

Just a quick note to let you know that all documentation for the PRState extension has been posted on The site may undergo some minor visual enhancements over time, but everything you need to learn to use the extension is there now!

Please let me know if you encounter any issues or if any of the documentation is unclear. Comments are most welcome.

Thank you for your patience.
Hello again!

I just wanted to let everyone know that our PRState extension has been updated to v 1.0.2 and is available on the marketplace! A small update that adds a very useful function. Enjoy!

Release Notes
-Added PRStateSetPrev function.

If you have any requests for adding features to this extension, please let me know!

Hi all.

Our PRState extension has been updated to v 1.1.0 and is now available on the marketplace.

Release Notes
* None
* Verbose output log messaging improved. Now includes contents of Data1, Data2 and Data3 when changing states.
* Added groups to segregate all assets in this extension from the rest of your GMS project. All future
Prismatic Realms extensions and packages will use the same group naming conventions so that any assets
imported from them will all be placed neatly and out of the way into these groups.
* Added notes containing release notes history and documentation.
* Renamed extension resource file to PRState.gml to keep inline with PR naming conventions.
* Replaced the previous example assets demonstrating how to use this extension with much better ones.
All code is now commented with useful information and directions.
* None

PRState is a small but very handy extension that enables you to easily implement a finite state machine in your GMS2 projects.

Thanks for your support!