Concept: Import Community Event Modules

We have Extensions and Behaviors… how about community made “Event Modules”?

Even tho Extensions and Behaviors impact your game Logic, what im talking about is something specific to Events in the Event Sheet.

For example, i can make an “Event Module”, which is just another word for “Event Group”, that has logic for enemy AI.

I made these events in a way that are very easy to adapt to other projects, and because id like to share them with people, i upload them to GDevelop “Event Modules”.

I add in the name of this “Module”, the description, some tags to be searched by and some instructions on how to use if needed.

Now if some body else needed logic to make enemy AI but they werent quite sure where to start, they would have this “Option” in the “Event Sheet”, that says something like “Event Modules”.

He can select it and get a search menu just like for Behaviors or Extensions.

He searches “Enemy AI” and finds my modules, clikes on it and selects “add to current Event Sheet”.

The “Event Group” is now pasted in at the top or at a previous selected place in the event sheet.

This would be awesome to quickly build a games logic, to share complex events, or to just have some sort of starting point.

You can even go a step further and add in the “Search and Replace a word” feature into it.

For example, i just did something like this for top down movement logic.

The way i prepared the project for other people to easily copy / paste it into their project, was to change the name of the main object to “Player”.

Now all people need to do before importing into their projects is to “search and replace” the word “Player” for their character name, for example “Hero”.

After “Player” is changed for “Hero”, they can just copy it in and everything works!

If you could add this feature in to the “Event Module”, that would make it even more awesome!

Like, when you hit the “add to current Event Sheet”, a new pop up happens and asks “Change these parameters?”, and “Main Object” would be one of them, or something like that.

I hope this all made sense… i know its kinda a big wall of text…

Well, you can share these events as an extension.

  • Go to Extension Store and create one, add a unique name.
  • Create a function (action) with a unique name (hard to change).
  • Add 2 parameters (objects/sprites) with unique name (hard to change), one for them is for enemies and the other is for player, if there are other required paramenters like values add it.
  • Copy paste your events and set objects to the two paramenters.
  • Add descriptions, icon, editor name and your username.
  • Export the extension and drop it here.
    You might submit it.
    If you are busy, DM me (or drop your events here if you want others to use it) and I will make the extension for you and send it via DM if I could.

Thats pretty awesome and all, but what im talking about is something a bit more flexible.

Its sort of like “templates” for your events, but made by other people.

…and instead either being rigid, only doing one thing, or being bloated trying to accommodate to multiple things… events can easily be changed and adapted to what you want.

A good example of this is the “Health” extension, even tho its handy an all, its very expensive on performance because it has so many features.

I stopped using it and now i make all the systems that i can trough events, the performance increase is massive.

I thought this whole thing might be a really cool addition, but maybe i was cought in the moment or something…

…also, thanks bud :smiley: Much appreciated <3

2 Likes

There is something called external events, Maybe export/import of external events should be added :thinking:

Thats kinda the idea, but im thinking “simple” ya know?

For example…

Every time i make a game and i decide that i want the character to shoot a buller… well i do the same thing i always do…

Press a button
Check variable
Check facing direction

then…

Create bullet
Add force in desired direction

There isnt much to it…

Now you can say… “Make it into an Extension, in fact, theres already an extension that does that”, but thats not it…

If this was a “module” instead that i could just “paste in”, i can then mod it to suit the game im working on… sorta like having “event templates”.

But we could go nutts with these “event templates” and easily share them… does that make sense?

Again, maybe im making too much out of this and probably no one other than me would use it, so idk… no body else seem to show any interest, so probably just me being a mad scientist… lol :smiley:

1 Like

Something similar to what you desire is present in GDevelop. It does work as an extension but the process is a whole lot easier than what you might expect.

Right click on the main event (the beginning of the module?) > Replace > Extract Events to a Function. Now, configure everything, and you’re left with an action that you can use on anything, anywhere.

That might as well be what you’re looking for, I would say.

1 Like

Well kinda…

…and yes, the feature that i want does kinda already exist but with extra steps.

For example…

  • You can go into the Extensions menu
  • Search for an extension that does something you want
  • Open the Extension and Edit
  • Copy the “Events” from the Extension and Paste them into the Event Sheet
  • Done

…honestly, uintill today, i didnt even know you could just open the extension and take out the events that you wanted.

But now imagine if you had way less steps and it the option was on the event sheet.

  • You clique on the “Event Modules”
  • Search something that you want, like my “SNES Style Stop Down Movement”
  • Hit “Add Events”
  • And the event group gets added to your event sheet

Nothing fancy, quick and simple.

Im not talking about squishing things into a single event, like making things into a funtion.

Im saying, straight up just “paste” a premade event group into your event sheet.

I suggest you watch the video I linked. It doesn’t look too far off from what you’re saying. Also, the steps I mentioned above are all it takes to extract any event into a function. And after that, you just need to call the function with an action. That’s all that it takes, literally.

Wait, you want events to get added? And not like, call the module with necessary data? Then, it’s an entirely different thing. If it’s just “pasting events” then wouldn’t pasting them just work?

1 Like

Now your starting to get it :slight_smile:

I dont want this function for myself…

I can make my own library of useful event groups and store them somewhere…

What i am talking about, is having a “shareable” place within GDevelop for event groups.

For example… i made this group… or “module”.

This is pre made logic to move and animate a top down character in the style of old SNES games.

If i want to share it… i have to upload the file to something like itch.io, then people download it, open it, copy the event group, open their own project and then past it in.

What i suggest is cutting a bunch of steps to have the same result, all within GDevelop…

Now you might say… “just make it into an Extension, same thing”.

…and its not, not even close.

It is, if you open the extension and copy the events out of it, and thats why i agree that the system that i want already exists, its just complicated to get there, sort of… more like people might be unaware like me.

More to the point.

Behaviors can be expensive on performance or be too rigid on the flexibility, reason for this is that the more people you try to acomodate things for, the more bloated the extension gets.

What i suggest tho… is pretty simple, paste it in, delete the stuff you dont want and ta-daa! Done.

You can even go the extra step and add in the “search and replace words” feature in before pasting the event group to your project.

…AND MORE IMPORTANTLY… theres a big difference between events in Behaviors and just Event Groups.

My buddy @EyadMahm0ud tried making that event group i just showed into an extension… i tried it, it didnt work, so i messed with it, and it didnt work, i did some more changes and finally it worked.

Reason was, Behaviors are far more regid in execution. While just using the event group alone would work just fine even with animations missing from the player character… the Extension would not work unless every single requierment was met.

Making something that was extremely flexible and that didnt need to be changed, into a 2 hour adventure trying to get stuff to work in multiple ways as an extension…

Theres plenty of benefits for this thing im asking, but if no one else seems to find use for it, maybe im just being crazy :stuck_out_tongue:

Sorry bout the wall of text…

1 Like

You know what…

First time i thought about this, i was looking at the “How do i…” section… I was thinking if there was some sort of event modules or template system for specific action, some people might have an easier time working on GDevelop untill they learn more…

…but just after my last post, i gave myself the chanllange to try and think of as many ways this system could help untill i finished taking a shower…

Im not exactly very eco friendly with my showers and i still couldnt come up with a great amount of uses for this…

So im back to thinking i was just cought up in the idea… but that all in all its still a dumb idea lol :slight_smile:

Im just gonna let this post die now, was fun thinking this stuff over but i got a game to finish! :smiley:

1 Like