Asset - Extension PRAction: Take your tweening to the next level with this full featured action system.

Greetings everyone!

My company, Prismatic Realms Inc. and I would like to introduce a new extension just released on the marketplace! It's called PRAction.

This extension will save you tons of time and greatly reduce your code line count when programming any sort of animations such as those found in UI, cut-scenes, logos, in-game object movement, background animations, transitions and anything else that you can think of. It can also be used to trigger non-graphical elements such as playing audio, calling scripts and events and more. And to top it all off, it's super-easy to use! It works in both VM and YYC.

Please note, this isn't just another set of tweening / easing functions. It is a full blown action system that can take your animating to the next level, and in less time too!

You can do almost everything you need with the extension as is. But as powerful as it is now, it will continue to improve as time goes on with new features being added all the time. I welcome all comments and questions and will do my best to address your needs. 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. It is currently 20% off until the new year. 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 again!

I just wanted to let everyone know that v 1.1.0 of PRAction is available on the marketplace. Here is a demo video highlighting the compound actions available in this release.

Release Notes
-Added PRActionMoveXTo, PRActionMoveXBy, PRActionMoveYTo, PRActionMoveYBy functions.
-Added PRActionBlendTo, PRActionBlendBy, PRActionCustomColorVar and PRActionCustomColorScript functions.
-Added PRActionSetData2 function.
-Added PRActionSequenceArr function.
-Added 11 new compound action creation functions: PRActionQBlink, PRActionQAlphaFlash, PRActionQBlendFlash,
PRActionQFlipXY, PRActionQWobble, PRActionQBreathe, PRActionQHeartbeat, PRActionQBounce,
PRActionQJumpBounce, PRActionQPopIn, PRActionQPopOut
-Minor changes to a few function JDOC descriptions.
-Instead of erroring out, a negative duration provided to function parameters will now be treated as 0 duration.
-PRActionGroup was not working well. Fixed.
-Minor bug fixes/enhancements.

The Prismatic Realms website is still undergoing construction, but will be available soon. All documentation will be found there when ready. Until then, please feel free to ask any questions or make any comments.

Thanks for stopping by!
Last edited:
Hello everyone!

Just a quick note to let you know that all documentation for the PRAction 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 all!

Just a friendly reminder for those that may have an interest in purchasing our PRAction extension, the sale price will expire in about 2 weeks.

Hello again!

I just wanted to let everyone know that our PRAction extension has been updated to v 1.2.0 and is available on the marketplace! Grab it now while it's still on sale.

Release Notes
-Added PRActionSetVar function and corresponding PRActionTypeSetVar constant.
-Added PRActionStopAllAction function and corresponding PRActionTypeStopAllAction constant.
-Added PRActionIsPlaying function.
-Changed PRActionPlayCount function. Now has 1 argument for the object instance to return the play count for.
-Action types PRActionTypeCustomScript1 and PRActionTypeCustomScript2 now support string values when action duration is 0.
-Removed PRActionCustomVar function and associated PRActionTypeCustomVar constant. Replaced with PRActionCustomVarTo and PRActionCustomVarBy functions and associated PRActionTypeCustomVarTo and PRActionTypeCustomVarBy constants.
-Removed PRActionCustomColorVar function and associated PRActionTypeCustomColorVar constant. Replaced with PRActionCustomColorVarTo and PRActionCustomColorVarBy functions and associated PRActionTypeCustomColorVarTo and PRActionTypeCustomColorVarBy constants.
-Fixed bug in PRActionUpdate function that caused crash sometimes.
-Minor (non-impactful) internal changes.
-Minor changes to a few function JDOC descriptions.

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



The library's great, wish I discovered it sooner!
An issue I've been running into...
Looks like the docs on your website didn't get the update for PRActionCustomVar and PRActionCustomColorVar into their To/By versions (along with a few other new ones that are missing). It's unclear to me how to pass in the custom variable for PRActionCustomVarTo. I've tried the variable and the variable wrapped in single and double quotes. The quoted versions cause compile issues.
When I just use the variable name like the following, I get a FATAL ERROR.
var animationAction = PRActionCustomVarTo(animationPercent, toPercent, PRActionEaseIdSinusoidalInOut, 1.0);
DoSub :1: undefined value
 at gml_Script__PRActionUpdateCalcDeltas (line 42) -
action[@ 10] = action[8] - action[6];
If there's a better place to submit bug reports/feature requests and find the latest documentation, let me know.
Last edited:
@GhostMaple, thanks for your message. I apologize for the delay in my response. I was out of town on business until 2 days ago and I only now just got to your message.

I'm glad you are enjoying the library!

Seems like you are correct. The docs are out of date with regards to those two commands. I will update them the first chance I get. To use the varName parameter for the PRActionCustomVarTo or PRActionCustomVarBy functions, you'll need to enclose it with double-quotes as it is a string parameter.

So, for example:

var action = PRActionCustomVarTo("myCustomVar", 9, PRActionEaseIdCubicIn, 4)
PRActionPlay(myObject, action)​

Make sure you have defined your custom variable name in your object's Create event with a line like so:

// In my object's Create event.
myCustomVar = 0​

If you have tried this and are still getting an error message, please let me know. I will be happy to assist further.

As for reporting bugs, you have the option of clicking on the "email orb" in the upper-right area of our website to email us directly. But sending us a message here on the YoYo forums works just as well as we are notified when we have a pending message.

Please let me know if you've made progress on this issue. Would love to hear about it!