The New Variable Update is the WORST thing to happen to Developers and should be removed right now

This topic continues here with 4ians post:

If you have something to say about it, please do it on that thread :slight_smile:

…also, i wrote this post in the morning after finding out about the update and trying it for myself, i was extremely annoyed and didnt really put any thought about it other than venting. Tbh i hate this post, even tho i still feel strongly against the changes, but ill leave it as it is… i can be an idiot some times and should learn to think more before typing, so ill just leave it as is.

Added a video talking about how ridiculous this whole thing is at the bottom of the post.

Ever since i started working on GDevelop iv had nothing but good things to say about the development team because they seemed to really have their vision figured out.

GDevelop took every step to make a developers work simple, easy, effortless, so that the work flow and creativity didnt stop.

They also seemed to make sure that GDevelop wasent just a gimmick, but an actual engine to worked the same as all other, you used a different method of programming, but what you could actually do didnt change.

I take it all back…

This Variable update is the single, dumbest, out of touch, vision breaking change they could possibly make.

What the hell happen? Who decided this? …get rid of that person.

As far as im aware, in programming you dont have to declare variable unless you want an initial value. This is useful, because id say 90% of the variables you use dont need to be declared and can simply be created when theres a need in the code.

…but some one at GDevelop had the genius idea to make you have to declare every, single one of your variables.

This KILLS WORKFLOW completely! Do you even use your own engine at this point?!

I have so many boolean derived states in my coding and before the patch i could simply add condition/action, typy “scene bool…” pretty quick, select it, type the name, and hit save if i dint want to change the value.

This was simple and super quick.

If i ended up not wanting to use this variable, because thats what you do in development, some times you just try stuff, i could simply select and hit the delete key.

NOW… after the update…

I have to leave the event sheet, open the variable page that i want, either scene which has a bunch more steps, or global variables, then add in the variable, select the name, select the type, add value, hit save, go back to the event sheet, select condition or action, type in change variable, type in my variable, select parameter, hit save…

If i want to get rid of that variable because i didnt want to use it afterall, well i have to delete it both in the event sheet and leave said event sheet to delete it at the corresponding variable page…


You had such an amazing system, WHY THE HELL CHANGE?

“If it aint broken, dont fix it.”

Are you guys serius? is this a joke?

This goes against everything iv learned about GDevelop and all its claims.

I remember Luni saying they were making improvement to the UI so that people wouldnt think it was a toy, for people to take it seriously, and this is what you do?

You dumbed down a single part of the process so people wouldnt see a bunch of “Variable” options when searching “Variables”, but you made everything else far more complicated to the point you actually destroyed, actual developers work flow.

What the actual heck?!

Please explain to me the logic behind this and how this will making working in GDevelop better, how will this making working on it easier and more intuitive?!


I’m not going to argue. People like what they like.

I’ve been using the setup screen for variables for a long time. So, the latest changes aren’t that different for me.

I love setting up the variable once and then being able to pick the name from the autocomplete. Choosing the name from the list reduces the chance of having typos and mismatched cases. Even better you don’t need to use VariableString() and Variable().

A+B*C is much easier than

I get it. People work in different ways but I don’t see many down sides.

Having just 1 action for scene and global variables of any type just makes it easier. The different types could be marked clearer. Although, since the app handles the different types in a more automatic way. Once they’re setup it isn’t as important.

I think a variable tab might be nice or maybe a keyboard shortcut for the event sheet.

I’m all for making the app better. Everything can be improved. I don’t like change either but I don’t see many downsides.

They also added local (temporary) variables that only exist during the event and direct sub-events. They finally added function varaibles.


The thing is, you could do it both ways.

You dont have an issue because you liked doing that before and the extra steps dont seem to bother you, you could of kept doing this and you would of been happy.

I got to do things my way, i liked being able to quickly create variables on the spot to make big chunks of code without ever having to stop, i found the way it worked far better.

The issue is, i no longer have that option, your method was forced on me without any need to.

Can you imagine if my method was forced on you? and then i said, i see no downsides to it, just adapt.

I know completly changed the way you approach game developing, gave you no other choice (other than roll back), and the worse of it… there was no need to.

I could do my work, you could do yours, neither stepped on each others toes, there was no need for the change, no reason why this had to happen.

…my un educated guess, is that while doing their shinny new multiplayer they came across some non sense where variables had to be declared, so they made a bad decision.

Heres the real question tho: Why?

Who asked for this? Theres so many useful, community driven feature requests… this wasent one of them.

Who asked for this? Who said this is so importante it has to change?

This wasent a simple change to variables, this was the equivalente to an Overhaul.

I see your side and meant no disrespect. “I see no downsides” is how I see it. It was not meant to diminish your viewpoint in the least.

Other than undoing it, which is unlikely because it was a major redesign. What can be changed? I would like to easily pull up the variable screen at anytime and over any screen. Maybe even as another tab or sidebar. Maybe something in the copy/paste popup menu that made a variable from the selected text? IDK.

Oh mate dont worry i didnt take it that way, dont worry, its all good :slight_smile:

I was just clarifying my point.

…and heres the thing, it can easily be undone, 100% sure of this, you know why? Because the old code is still there, nothing has changed if you already have a project.

If you open a project with un declared variables, they work just fine, no error, no red letters, in fact you can even change these variables to new ones and they work just like before, you can duplicate them and make even more, still with no issue.

Thats the maddening part, its all still there, they just added a bunch of new steps if you try to make a completely fresh one.

This can be rolled back pretty quick.

Ill be posting a video very soon showing all of this nonsense, ill post it here in a bit.

1 Like

This expresses and highlights my opinion and issues with the whole thing pretty well…
Please excuse the whole “pissed off” thing, but i take it you understand why

Keith there may be no downside…but this updated kicked in the ass who is far in his own projects and who already learnt a pretty solid (imo) method.
It wasn’t better as Zerox said here Different visual representation for NONE declared variables get both worlds?..(but at this point idon’t think it was possible)

Bouh said you can copy and paste with both methods (losing features that will comes) but the problem is still there for undeclared…this may looks easy for ppl who just do simple things…but not for others.
I would like to post a screen of my undeclared vars…you gonna laugh…:slight_smile:

Man the more i look into it the worse it gets…

What both worlds? They didnt create anything new, thats the thing thats driving me nutts.

All they did was remove the different options when searching for variables and to access them, you have to declare the variable, so that the “Change Variable” condition/action can then “smart change” into the old option.

Nothing mechanical changed, undeclared variables still work, except now you have extra steps and they become red and almost unreadable.

For example, you can:

  • Declare a Scene Boolean called “Template”
  • Go trough the “Change Variable” and create it in the Event Sheet so that it becomes a boolean
  • Now you can copy paste it as many times as you want to make undeclared booleans that work just like before.

What was the point? What changed really? other than making me jump trough hoops and getting a variable in red font that i can barely read?

Nothing, absolutly nothing.

Thats the worst part of it, its that they wasted all these resources and time doing something that = 0, well actually =-10 because none was complaining before, and now people are upset.

This wasent a change with a purpose, something that had to be change for the greater good, this was just changed because… because why? just because bad idea.

As you probably know it is what we’re discussing here Different visual representation for NONE declared variables.
About the usefulness of the update we’re on the same page.

to summarize…

At the moment i refuse to update since i don’t think it worth…
but if they made this choice with something “useful” in mind i may be turn back and update…if u have problem you should do the same…

…Are you developing something that needs the new system?

I only see an improvement to my work flow. Before I used to have to choose between too many options - change a scene number, change a scene text, change a global number, change an object number… now it is much faster to just either select Variable or Object Variable.

Also, they now have local variables: Local variables - GDevelop documentation

Many programming languages do require you to declare variables, and it could be argued that the ones that don’t are expecting you to be more than a beginner programmer. Because when you don’t declare all your variables in one place it is a little bit harder to keep track of them. GDevelop is meant to be accessible to non-programmers. With that in mind it makes sense to stick to a more structured approach.

One big advantage of the way it is now done in GD is that you can rename a variable in the variable editor, and it will change the name across the entire event sheet.

They had to make it so that undeclared variables would still work, otherwise all old projects would be broken.

1 Like

Nothing against it…if your started a new project or if you have not done your own game system…even the new vars system is not a problem.

But what about ppl who are already far in their projects? …(to be clear it’s not that i can’t get all of my 50 undeclared vars and turn em to the new “locals”…but why i should if i have already a solid/working system? i get any improvement?)…
that said i’ll stay with the old ver…and it’s perfectly fine…as long as i don’t see something i need…but thaz a personal choice

Yeah I see how that could be an issue. To be fair though, they did warn about this many updates ago, basically they said “start declaring variables now because it will become mandatory later”

Also, if you really have that many variables in the events sheet, that would be an indication that those variables should probably be contained in an object or at least an array/structure. I fall into this trap because when I’m prototyping it is easy to just throw variables in without thinking much about how they are organized. But then, down the line I realize “I’m not taking advantage of objects.” And, that is even more true now that the typing has been shortened.

This a stretch of an argument made to defending something that you for some reason want to make excuses for.

From the moment i started working in GDevelop this was never an issue, unless you dont like typing, but that dosent seem to be the case.

Want a scene boolean? Type in “scene boo”, and the result is right there.

You make it sound like you have to go trough a bunch of options to get to the one you want when that is not true at all, its right there, with the same amount of efforth as you have right now with the updated version.

Your workflow has not changed one bit, ours has.

…and for what?

Its what @RMDB said, whats the use? Its what iv asked, what was the point?

Whats the reason for this change?

It wasn’t a major problem or anything, I’m just saying it feels a little faster and easier now.

By the same token, you’re making it sound like you have to jump through hoops (actually I think you literally wrote that) in order to use variables. But really it only takes a second to declare them, instead of spending that second typing GlobalVariableString or whatever, you spend it declaring the variable. To me it seems that the overall time spent is about the same, but the organization and cleanliness of the events sheet is much better.

Again… im not picking on you, but its quite literally the same, you type in variable, you still have to clique on the variable option, and then do the rest as usual, no difference in your case.

Not even close! Did you even think about the number of steps between those two?

The heck kind of argument is that?


  • type “global boo”
  • Select Global Boolean (usual right there at the top, im literally blind and i never had an issue spotting it=
  • Type Variable name
  • Select Value
  • Hit apply


  • type “vari”
  • Select Change Variable Value
  • Type in Variable Name
  • Select “Add or Edit Variables”
  • oops thats for scenes it dosent work for globals :stuck_out_tongue:

Lets try again

  • Open Project Properties (or what ever the menu is called)
  • Select Global Variables
  • Clique add variable
  • Add Name
  • Change vairbale type
  • Set value if needed
  • Hit save
  • Open conditions
  • Search “Vari”
  • Select Variable
  • Type in Name
  • Change value if needed
  • Hit Save

Thats seems like its the same to you? You mad?

…and what if you looking at the event sheet, trying to work out a problem, then you go “oh yeah ill add a variable there thats missing, that will work”

Go trough it again.

Ends up you dont need said variable…

Well go back in and deleted then come back… or take a mental note for later, that will work…

The old way was amazing, it worked, it was an awesome workflow and easy to use.

What was the bloody reason to change?!

1 Like

Reason i made a new post about this, its because that one seemed to be about getting rid of the red text but living with the change.

Which would just sorta bring it back to how it was but with extra steps.

My point was that there was no need for this and that this change shouldnt of happen in the first place, there was no need for it, no need to make declaring variables mandatory,

At least, to date, i see no actual reason why variables had to be changed to mandatory, thats probably the most annoying part.

Fair enough, didnt realize that tab was there, like i said, my eyes are bad.

Point still stands tho, take away the opening the properties for changing tabs and the number of steps are still higher than the old way by a few.

Heck, even if you had global variables as its own option when selecting the condition / action, it would still be more steps and more work.

It would be nice if the add variables window was more integrated with the events sheet, like in the drop-down menu there could just be an “add variable” option

Or, here’s an idea, what if when you enter a variable that isn’t already listed, it gets automatically declared with a default value? I guess typos could be an issue here but maybe it could be a toggleable option.

1 Like

Added a better and shorter video explaining how this affects my workflow with less anger lol

1 Like