Ability to use parameter names instead of _PARAM#_ in events sheet sentence

You create extension and have parameter 1 which is object and parameter 2 which is number JUST FOR EXAMPLE

In events sheet sentence field you would type
For _PARAM1_ change animation by number to _PARAM2_

Which would in events sheet look like
For my object change animation by number to 5

We can move any parameter below or above another
And that change their index number
Cause of that we need to update our sentence in events sheet

Before

After

You see that Object become param2 where text param1
Imagine we have many params and we need to re arrange them and then again write whole sentence for events sheet

How about allow us to use _ParamNameHere_

So for example in case of this screenshot
Instead of
Pick clones of _PARAM1_ with identifier _PARAM2_
We could go with
Pick clones of _Object_ with identifier _ID_

Now we could move params up and down without affecting sentence in events sheet

And i did check
Parameters cannot have same names even if they are different type

So we cannot have parameter named Player which is object/sprite
And another parameter also named Player which is text or number or whatever

Same logic as with objects in object list
One named more recently will get 2 next to its name

I love this suggestion. But there is one problem, it breaks a lot of already existing Gdevelop extensions.

Nowhere i ask to remove/replace old functionality
But add new functionality

No I mean its going to be hard to add _Object _ to the already existing _PARAM1 _ because that is now:

  1. Searching for all PARAMX
  2. Checking object names for

Still this all can obviously be worked out, and it is a nice suggestion.

And you looked trough gdevelop source code and you checked how params are being picked that you know it will be hard?
Or am i reading assumption?

And that was rhetorical question
Think how animations are being picked by name
Or actually in what order they are being displayed even if you don’t give them names (you still can select them somehow i bet its black magic)

My understanding is this wouldn’t be feasible without a complete rework.

From what I remember, parameter names aren’t instantiated until they’re used in the project. The Param sentences are needed for functionality/dynamic data at all.

Not saying it’s impossible, but it would be very difficult for very little return, since after you set up your extension you never have to mess with the paramater names again.

Is like saying “once you finish your game you will never need to work on it again
So why make your life easier”

Many of us gonna make many extensions and not gonna stop on one
While messing up order of params on the way
So problem will not end on finishing extension cause there will be another and problem will return

And keep in mind some of us make complex extensions with A LOT to configure

This is old screenshot and now i bet it would be longer
But this is action from my friends extension

I cannot speak for him but i bet that this feature would NOT be for him

Nothing you have in your screenshot makes sense to me for a single event sentence.

Half of what’s here seems like it belongs in a behavior or extension backend function rather than an event sheet action, and many of them seem like they should be separate event actions beyond that.

I don’t know that the devs would ever make changes to match this use case. Again, I’m not saying it’s impossible, but your use case seems very unusual.

take the Noise extension for example…if it were all one action, it would look like this:

Create a noise generator with the name [name] and seed of [seed], limited to 15 digits maximum, in dimension of [dimension], with base frequency of [frequency], octave depth of [octaves], lacunarity of [lacunarity] and persistence of [persistence]. The looping period of the noise generator on the X axis is [loopingx], and [loopingy] on the Y axis.

Does it make sense to do that? no…
and so it doesnt, it uses actions to set each one, and if theyre not set, it has a reasonable default value.

and i feel like youre using the event sentence as a description, when its not. You should make each of those an action, and explain indepth what it is in the action description.

Actually should be totally possible given the fact that GDevelop is built off of GDJS. How you call parameters in GDJS is calling the actual name of the parameter, not _PARAMX_.

Have you ever started building an extension just to realize you need another parameter added, but if you want it to flow neatly in the event sentence without having to rename everything? It’s honestly a coding fundamental, and it’s really easy to forget that in a visual engine that encourages you not to use these fundamentals. Extensions are considered advanced work for a reason, but honestly they shouldn’t be. If they were just slightly more user friendly, with little bits of polish like this, I could guarantee more users would be open to learning it.

There’s a lot you realize that GDevelop is missing when you get further and further into development. It’s a great engine, don’t get me wrong. I’ll use it till I die. All engines have their issues and quirks though. This is definitely one of those quirks.

And most of it don’t make any sense to me at all

But isn’t idea of this forum section to make users life easier?
So either we wanna help ppl or we do not care that we can and we should?

I do not know why Jak did it this way even after his reply
But for some reason he did which seems it was easier/right way for him
So maybe if this feature would help ppl like Jak
It would not be “very little return” after all

Take my words as genuine request
Not as attack or diminishing your point but as actual honest request

I would wish you to stop replying to my messages in any topic until you learn to
A - do your research
B - start putting logical sense into what you came up with

I genuinely feel offended by the fact to what low level you try to drag down any logical sense

This is from Animate shadow clones extension

I could find more for you but that is something you should do before you even try to use it as argument

Again take it as honest request

Would you say the same about Silver-Streak? because i merely expanded on their point.
also it doesnt matter that another extension does it if its still a poor way of doing it

Oh I just did it that way so it can be a single call. Realistically it’s broken down into several different commands in the extension, and could (and realistically should be) broken into separate commands. It hasn’t even hit polish stage yet with the other stuff I’ve been working on. Only one tool from that whole project has seen love recently sadly enough

also, i think this might literally be off topic. Your original feature request also makes sense… i didnt say it didnt make sense, i was trying to make a point that it doesnt make sense to pack everything into one action.

in most extensions, theres already actions to do the exact same thing for each one of those parameters you put in. So why make a giant action with all of them when you can just use the ones you probably already need there?

And i told you to not reply to my messages until you do your research and start putting logical sense into your arguments

At the same time features we request should be justified by need/use case
You have so little faith in your argument you are diminishing it yourself

Ok now tell me

How you would split/trim/optimize it
Considering you gonna need to use each param for each set of hearts
And keep in mind some ppl will make multiplayer games
Some will use it for other stuff since you can make health bar out of it
Or even spectrum analyzer and more

Scroll mouse wheel down and hover cursor over player

If you will fail to give me response that makes logical sense
Then i will just block you cause its not worth my time to read such messages

Last I looked extension parameters were an ordered array of objects in the extension json, with the parameter name being an attribute of the object index. If that’s changed or my memory is wrong, great!

But otherwise I don’t know how you’d make the sentence attributed/parameters work without the number first as the attribute name doesn’t exist until the index is called.

The number of parameters in a function is a common software metric because past a certain number, it makes a code hard to read.
There is no exact maximum, but I think that, for GDevelop, when you read the sentence to someone, they should be able to understand it right away and not take a pen and ask you to repeat.

I guess there is a matter of taste involved when choosing between 1 action with everything versus the smallest action + properties, but that said there is a balance to be found and in my opinion if you need several sentences or 10+ parameters, there is probably a better solution.

In the case of the animated shadow clones, a behavior would allow to only keep the 2 objects parameters and move all the other parameters to behavior properties.

Some extension were merged without any peer review because some users wrote a lot of good extensions and it was hard to keep up.
I should probably rework some of them if it avoids some confusion about good practices.

Which still does not change the fact this feature could help ppl

And on top of that i suggest to any1 go and use one shape painter to draw different things with different outline color fill color line and outline thickness fill and outline opacity

And see how cool it is to do something where its the same thing for different things and you need to copy/paste same amount of actions each time

And then we can wonder if that is better and looks more fun or it would be better to have it all in one single action

How about solving this issue with numbering parameters by creation order instead of numbering by order in the list? That way even if you change the order parameter number will stay the same. It’s a quick thought maybe it will cause other problems.

Ideally it would be better to have tag system like Zero suggested instead of getting the parameter by their order in the list.

The best would be instead of just text, we should have unique button like things for each parameter in that event sentence area.

Even under the hood gdevelop needs to read it like _PARAM1_ , what is preventing the build something that will transfer the parameter number automatically when we just write _PARAMNAME_