A downloadable tool

Download NowName your own price

UTILS is a free addon adding a bunch of utilities to Construct 3 (no-code game engine)

It aims to be that one Plugin that can be useful in any project :

  • ✅ by adding a bunch of powerful and flexible Actions, Conditions and Expressions
  • ✅ enhancing the capabilities of Vanilla C3 features (Picking system, Hierarchy, Colors, Layers, Math expressions etc) 

Also, thanks to this tool :

  • ❌ no need to copy paste and edit manually all our "utilities" functions in every single project we make
  • ❌ no need for each of us to figure out and repeat the same tedious event tricks / complex math shenanigans, on our own, again and again

NEW : UTILS 2.0 just released 🎉🎉
Thanks to everybody who already downloaded and donated to this project !
We're just amazed.

Here are some features of the Utils addon (I probably forgot some of them) :


  • [Condition] : Transfer Picking from one Family/ObjectType to an other
  • [Condition] : Powerful condition to pick Parents and Children of any instances at any Hierarchy Level under and above !

Example of Transfer Picking :


  • [Math Expressions] : a LOT of handy expressions such as :
    • offsetXAtAngle & offsetYAtAngle
    • angle360 - convert an angle in degrees to the range [0,360]
    • degreesToRadians & RadiansToDegrees
    • snap
    • remap - remap a value from a source range to a target range.
    • remapClamped
    • wrap - wrap a value x between min and max.
    • dt1 - Delta-time in seconds, but not affected by timescale.
    • lerpDt - framerate independant lerp
    • anglelerpDt - framerate independant anglelerp


  • [Condition] : Chance : x %
  • [Condition] : Chance : x out of y
  • [Expressions] : 
    • asPercent
    • dice
    • randomInt


  • [Condition] : Is Object on parent layer of another layer 
  • [Condition] : Is Object on sublayer of another layer 
  • [Condition] : Is Object on visible & interactive layer 
  • [Action] : Toggle Layer Visibility 
  • [Action] : Move all objects from layer A to layer B


UTILS introduce an awesome feature called "Color Templates". It comes with a bunch of default color templates ("blue", "red", "aquamarine", "sandybrown" etc...). You can even set your own custom color templates or override default color templates.
You can also easily use Hex Values for your colors in addition to this Color Template feature allowing you to use them by their names.

  • [Action] : Set color Template
  • [Action] : Remove color Template
  • [Expressions] : colorToValue(color) : allow to convert a Color Template Name or a Hex Value to a color value that can be interpreted by C3.


  • [Expressions] : 
    • BBCodeBold(String)
    • BBCodeColor(String, Color) Color can either be a C3 Color Value, a Hex Value or a Color Template Name (see the Color Template feature detailed below on this page)
    • BBCodeItalic(String)
    • BBCodeUnderline(String, thickness) Thickness is optional
    • BBCodeTag(String, Tag) C3's new BBCode Tag feature
    • o(multiple params) turns arguments into a string joined with "." characters, useful for JSON+ Path


Enhance the flexibility and usefulness of String Variables in many ways thanks to new Conditions & Expressions. Any string value from any context (global/local/instance variable) (or even any dict or JSON string value) can become a powerful 1D array/List/Queue.

  • [Condition] String has Token
  • [Condition] For each Token in String
  • [Expressions] : 
    • tokenAt - better than the vanilla as it works with negative index to count from the end
    • tokenCurrent
    • tokenLoopindex
    • tokenDedup
    • tokenFirst
    • TokenLast
    • tokenSetAt
    • tokenInsertAt
    • tokenRemoveAt
    • tokenRandom
    • tokenPush 
    • tokenRemoveAll 
    • tokenShuffle
    • tokenSortAsc
    • tokenSortDes


  • [Action] : Find and Replace Text in String Local or Global Variable

More will come :D

This free plugin required a lot of effort and R&D accross several months to be made, if you want to support the development of this Tool empowering the whole C3 community : please consider donating !

An other way to support my addon-dev work is by buying my other Tool made for Construct 3. I also believe they will provide great value to your game productions, as they are game-changers is mine !

The development of this Tool is funded by our generous backers !


SPONSORS (20-100€) :

  • Bilge Kaan (50€)
  • fredriksthlm (20€)

🙏 BACKERS (5-20€) :

  • Salman Shurie (10€)

We are also truly thankful for the contributions of our anonymous supporters
(if you donated & don't want your pseudo/name to appear here, please DM me ;) )


Feedbacks, Questions & Contact in the Community Discord
I'm also doing Construct 3 consulting, feel free to DM me if you're interested


Updated 26 days ago
Rated 5.0 out of 5 stars
(10 total ratings)
Tags2D, construct, Construct 2, construct-3, free, Game Design, gamedev, Game engine, tool, utility


Download NowName your own price

Click download now to get access to the following files:

Construct3_Utils (2.4).c3addon 114 kB


Log in with itch.io to leave a comment.

(1 edit) (+1)

Great tools! Congrats! I bought your Data+ and it's great.
Btw, Utils.remap and Utils.o is freezing c3 XD

(1 edit) (+1)

Thanks a lot Rafael ! I'm glad you find my addons useful !

I pushed a 2.4 version fixing the stupid typos I made that caused issues with the o() and the snap() expressions (as we said on Discord, the remap() expression was already working fine).

Thanks a lot for reporting those issues :)


just bought ur bundle for the other plugins, Awesome! impressive dev work. Can we get an example c3p with use cases for this? im struggling to understand  "Transfer Picking from one Family/ObjectType to an other"; seems like pick by uid does the same. need some visuals to understand its greatness i am missing


pick by UID would require you to do a for each loop if you have multiple instances picked (which is very expensive).
This transfers all possible picked instances, so it doesn't require the for each loop.

(6 edits) (+1)

Hi Thank you so much ! I'm glad you find those addons useful :)
As Federico said, one of the big benefits of this Condition is to avoid expansive "For Each" loops in some situations.

Here is a visual example of "Transfer Picking" in Action VS the vanilla way we have to it :

It allows you to pick several instances of any Family/ObjectType from the currently picked instances of any other Family/ObjectType :)


so will this work in Construct 2 as well or i mean you add a # for Construct 2 as well so

(3 edits) (+2)

Hi ! No sadly this is made for Construct 3 only. I know some devs are still using Construct 2 but this version isn't maintained and was officially retired by the Construct Team more than 3 years ago. Some ACEs of the Utils plugin are related to features that only exist in C3 (Hierarchy and Sublayers for example) and the way addons were written wasn't the same back to C2 era.

The only reason i had to add the "Construct 2" tag is because it is the only tag related to the Construct Engine that is officially supported by itchio. But you're right, I'll ask the itchio team if they can add official support for a "Construct 3" tag as it would be helpful :) 


well thanks for the info i gussie i must learn how to code my plugins for C2 with the jave scrip then ugh ….. thanks anyway love you games they inspired me a lot


Thank you very much ! 
Sorry i couldn't help, I never wrote plugins for C2 :/
Good luck on your projects 💪




Brilliant work


Thank you Samuel !! 🙏
And huge thanks for your unbelievable donation to the project ❤️
I'm just amazed.