Project lifecycle functions

I was thinking about some potential advanced features for gdevelop but a problem comes often, it’s that they require some sort of logic from the user. An example would be multiplayer: it would be very handy to be able to have some events limited to the server and some limited to the client. Sure, it would be possible through a condition “is the current platform is server” , but that would include the server code on the client, wich is not always wanted (example: the server has a secret key that to do stuff and the client can do bad stuff with it).

So after thinking for a bit, I thought “Well we would need to have additional event sheets”. We already do through extensions functions. But while they are handy and modular, they are not always adapted. What if you want to execute some events at the beginning of the game (example: load a save, initailize some SDK…)? You can either use global variables and an event in your first scene, but that is kinda unclean. You could use the lifecycle function from an extension, but having to set up an extension just for your project is not really good as they are made to be modular, while you don’t want them to be but you want them to be adapted?

I think the solution would be to add some sort of “Project Functions”, wich are basically the lifecycle functions made available for the project, and to make it possible for extenions to define their own lifecycle functions.