Overboy's Tools for Construct 3 (Plugins and Behaviors Addons)

6 favourites
From the Asset Store
Casino? money? who knows? but the target is the same!
  • OVERBOY'S TOOLS FOR CONSTRUCT 3

    Helloooo !

    • I've been making games for 10 years using various engines including Construct.
    • They were played by millions of people and showcased by the biggest gaming youtubers of the world. (Markiplier 35M subs, Jacksepticeye 30M subs, DanTDM 27M subs, just to name a few).
    • I'm also a big game jam lover and won the Ludum Dare 3 times.
    • I'm doing consulting/freelancing on Construct 3 projects.

    My Games, Tools and Asset Packs : overboy.itch.io

    I'm currently working on SECRET ROGUELIKE™, for which I created a bunch of tools to extend the features of Construct 3.

    Recently I decided to release some of them and was overwhelmed by the positive response it got, so I'm also sharing this here :D

    • Each tool is detailed on their own page listed below.
    • I'll update this list when i'll release new plugins (You can follow this topic if you want to get notified about major updates and new addon releases)
    • I hope it will help other ambitious C3 devs to achieve their games.

    Enjoy !

    DATA+ 2.0 (Previously JSON+)

    overboy.itch.io/construct-3-json-plus

    The Best Data Management solution for Construct 3 (1 Plugin & 3 Behaviors) :

    • JSON+ allows you to create all kind of variables, arrays and data structures (even at runtime !) for your game objects and comes with a lot of additional ACEs, Utilities and QOL enhancements, to make the whole process as fast and enjoyable as possible
    • It comes both with a JSON+ Plugin and a JSON+ Behavior
    • Example/documentation Construct Project (.c3p), which also includes a few tips and tricks I found
    • (2.0 Bonus) Array as a Behavior !
    • (2.0 Bonus) Dictionary as a Behavior !
    • Everything is detailed on the page.

    ADVANCED SIGNALS & CUSTOM EXPRESSIONS

    overboy.itch.io/construct-3-object-signals-custom-expressions

    Create your own Behaviors using Events : Custom Expressions, Signals and Triggers (3 Behaviors) :

    • ADVANCED SIGNALS Behavior (Per-Instance Functions on steroid, supporting parameters, multiple trigger eventblocks and polymorphism)
    • CUSTOM EXPRESSIONS Behavior, create your own expressions and getter functions for your Objects and Families. You can even execute logic each time you use those expression and thanks to the polymorphism feature, the same expression could work differently for each Object member of the same Family.
    • SIMPLE TRIGGER Behavior
    • It basically allows you to create your own behaviors only using eventsheet. (In fact it's even more powerful than Behaviors on some aspect thanks to the polymorphism feature)
    • All those behaviors also support polymorphism, making the Family feature way more powerful.
    • Everything is detailed on the page.

    UID TO ANYTHING

    overboy.itch.io/construct-3-uid-to-anything

    • Act on your instance and get/set their properties, expressions and variables without needing to pick them first, only thanks to their UID ! (Unique Identifiers)
    • Share logic between objects even if they're not from the same Family and even if they are from different Object Category for example (that's right you can share the same code for Text, Sprite, 9Patch and TiledBackground for example !!)
    • Act differently on 2 or more instances from the same Family or ObjectType within the same event block without doing weird tricks
    • Also allows you to work around a lot of Family and Eventsheet limitations, as detailed further on the page

    UTILS (Free Plugin)

    overboy.itch.io/construct-3-utils

    Good Luck on your projects 💪

  • Wow these look extremely powerful! With the JSON as a behaviour, can you add as many JSON behaviours to 1 object and they all act as separate JSON "files" so to speak?

    I've been burnt from past addons being abandoned where I've had to redo huge amounts of events, so I'll give it a think before buying. But yes, you've certainly tempted me with both addons, I can see myself modifying all my through all my events to use JSON+ instead of original JSON just to lessen the picking I do.

  • Bought the JSON+ add-on, being able to have JSON data on the instance as an behavior is amazing, it simplifies picking and also allows to write more performant events as you don't require event sheet loops or picking overhead in a lot of cases. Recommended!

  • Also really tempted to buy, especially UID to anything, but i got burned with ProUI. C3 changes so much its hard to rely on 3rd party extensions.

  • Yeah, and also sometimes official plugins might appear, much like dynamic layers when there was skymen's 3rd party layer addon - Assuming the features were identical, the 3rd party addon is probably more likely to be abandoned after this, thus needing to invest time replacing events over to a different addon (especially if an update breaks the abandoned addon). That's just the way it is I suppose, weigh up the risk and reward.

    Smaller addons or effects aren't a big deal to use if they lost support, but I could see myself using both these plugins deeply within my JSON-heavy picking-heavy project, making it a big commitment. Though being a paid addon gives you more hope it will be supported for a long time.

    None of this is a prediction of how Overboy will handle things, but just mixed with excitement and apprehension.

  • Thanks for your comments everyone, i'm glad you find those addons useful !!

  • Great detail, very good points raised, thanks! The temptation increases.

    Yeah you're right, sorry to have made a random point about addons on your post since its indeed a different topic, upon reflection it's probably very unlikely anything would somehow break these two plugins, even if the recent UID shuffle option was just added, I'm guessing would have still worked fine after (and ofcourse you're deeply interested in C3 so you'd be there to sort it out if it broke). I'm sure these two particular addons are probably not deeply interwoven with weird hacks or anything.

    Back to the topic: Does it work when you add multiple JSON+ behaviours onto 1 object? I am guessing it will work which would be excellent news, but I understand some other behaviours don't work this way (e.g. Physics shares collision filtering choices amongst multiple physics behaviours on 1 object).

  • I'm not sure how UID to everything works. If I don't ever mention the object/family how would I know/ensure the UID is the one I need? Kinda confused about this tool's proposition. Prints of a more practical use cases would help a lot to know upfront. I'm tempting to buy it because instance picking can be quite troublesome and repetitive, even using functions in order to not repeat some of the picking process can be weird to work with but still too much work when you need more complex instance picking. The per class family limitation is also not so convenient.

    I'm considering buying the JSON+ too because I just use array/dictionary for every piece of data. My process to get all the data without too extensive expressions is to initially feed all data into an array and then, a one time event which pass all this data to the family instance variable. The data would be accessed using global variables for the coordinates in order to not hardcode it. Without this, I'd have to mention the array using variables for the coordinates every time I need to get some data and this process seams too ineffective but that's the only way I found to mix the use of a powerful data management and the accessibility of instance variable and avoiding extensive calls.

  • Jase00

    UID is one of the safest feature you could imagine in the whole C3 engine. The UID shuffle option didn't break UID TO ANYTHING in any way.

    The example c3p included in the addon explains the best practices and tips and tricks about using UID in general by the way.

    You can add several JSON+ behaviors onto 1 Object Type but i'm not sure why I would do that in my games. JSON+ allow you to nest as many level of data as you want under the same JSON+ Plugin/Behavior. Let's say you want a JSON+ behavior to handle both the Inventory and the Relationships/Factions of a same object : you would just nest everything related to Inventory under a dedicated "Inventory" Key, like Inventory.EquippedHelmet = "Legendary Helmet", and same for relationship, for example : Relationship.Faction3.Admiration = 0.75. Everything could be under the same JSON+ behavior.

    The main usecase where i would have several JSON+ behaviors on the same Object is if those JSON+ behaviors were inherited from different Families allowing me to make common logic between different sets of Objects.

    For example : if I have an "Entities" Family (with data like Health, Damage Resistances) + a "Characters" Family (with data like Inventory or Relationship), both would have JSON+ behaviors, so an objet that is part of both Families would have 2 JSON+ behaviors

  • RafaelMatos

    In Construct 3, UID are the unique identifiers of your instances. It means that this number is guaranteed to be associated to only one instance in your game. Even Objects from different Families / Object Classes are guaranteed to never share the same UID. Even just created instances can't have the same UID as old instances that were destroyed long before. (instances of Text1, SpriteObject1, SpriteObject2 and FamilyX can't have the same UID.)

    It has always been a really handy feature of Construct for multiple reasons, i probably used them in 90% of my event blocks even before I created UID To Anything that makes them even more powerful.

    The main usecase is that they can act as "Instance Reference".

    You can "store an instance reference" in a number variable "MyUID", and then easily pick that specific instance thanks to the action "Pick by UID".

    To store the UID you want to retrieve later, you need to pick the right instance only once (and set it in a Global/Local/Instance variable for example). "Set MyUID to MyInstance.UID"

    UID TO ANYTHING allow you to do much much more thanks to the UID of your instances, as explained on the page. With this tool, you can do a bunch of actions and conditions but also retrieve expressions or instance variables of your instances only thanks to their UID. (even if you didn't pick those instance in your eventblock, as long as you stored the UID). It also solves a bunch of annoying limitations of the Family features and the Eventsheet in general.

    The UID feature (and, by extension, UID To Anything) can be useful in almost any system you could imagine in Construct.

    For example, let's say you have the "People" Family in your TopDown game, one of this Family feature is that People can target other People (their target). A "People" instance (Instance A) can store a reference of their targeted "People" instance (Instance B) thanks to a number variable called TargetUID.

    If you want to know the distance between Instance A and its target Instance B, you could just use the expressions UIDTo.DistanceTo(People.UID, People.TargetUID). Here People.UID and People.TargetUID are 2 expressions of the Instance A, but they return respectivelly the unique identifier of Instance A and Instance B. Which means you were able to get the data of Instance B without even needing to pick it ! UIDTo.DistanceTo is one of the many expression of the plugin, it allows you to get the distance between 2 objects only thanks to their UID.

    An other interesting thing is with UIDToAnything is that your Target could be an instance from any ObjectType/Family and even any Object Category.

    You could set the TargetUID to an instance of a Props Object (such as a barrel) by setting People.TargetUID to Barrel.UID and it would still work, even if it isn't part of the People Family !

    You could even set People.TargetUID to a Text instance (Text.UID) and your code that get the distance between your people and its target would still work ! Imagine how useful it is for a UI System to be able to share logic between Sprite, 9Patch, TiledBackground, Text and SpriteFonts for example.

    The goal of this plugin isn't to replace everything you were doing in C3 before, but it's an powerful additional toolbox to enhance the capabilities of eventsheet, that can be handy in many common situations and that allow you to work around annoying limitations of the engine.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • RafaelMatos

    Yes JSON+ would definitely help for that purpose, not only because it would be far easier and efficient to pick and to use, but also thanks to all the enhancements that are provided in JSON+ and listed in the addon page.

    As I explained 2 messages above, it allow you to nest any amount of data under the same behavior. You could replace most if not all your Arrays and Dictionarries with a single JSON+ Object or Behavior if it makes sense in your Project.

    You can create/nest JSON arrays at any Path and JSON+ comes with handy Quality of Life enhancements and ACES for Arrays.

  • Gonna get the UID one right now. I'm clowning around with families and UIDs all day long because I'm exclusively working on puzzle games where multiple instances of the same object interact with each other non-stop. Where has this been all my life?

    Whatever, bought both. They both sound fantastic.

  • Oh wow, now those are some banger addons :O

    It really shows that they are designed by someone with hands on experience, who knows how C3 ticks, and where its shortcomings are.

    Thanks for making these, and I hope you'll do more in the future.

  • Very awesome, C3 could surely use more dedicated devs and stand alone - straight to the point addons, that don't try to implement 1 million different things (like ProUI, which I used, and got burned as well)

  • Overboy Thanks for the explanation

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)