OFFICIAL 2.3.3 Stable Release Thread

Status
Not open for further replies.

Dan

YoYo Games Staff
YYG Staff
This topic is for the discussion of issues relating to the update of GameMaker Studio 2. However, this does not replace our normal bug reporting system and you should report all bugs as normal using https://accounts.yoyogames.com/contact-us

As ever, PLEASE check the Required SDKs FAQ before/during updating and ensure your antivirus/OS permissions are correct after you do the new install - User Permissions and Internet Access Required by GMS2 - before you submit any bug reports or post issues here.

You should post here if:
  • Something has changed between the previous version and this one, breaking your game (i.e.: code that worked previously now does not)
  • Something reported as fixed in the release notes is not actually fixed
  • You are having IDE or system issues related to something new in this update
  • You are having issues with new features introduced in this version
  • You are having issues updating to this version
  • Everything works and you want to tell us we are great (seriously, let us know if it all works correctly for you)
When reporting issues to the Helpdesk, please try to add as much information as possible, for example:
  • If the issue is with the IDE, then please give a screenshot if you can to help illustrate the problem
  • If there are error windows, then a link to the "ui.log" file found via the "Open Log in ..." Help menu command inside GMS2
  • If it is a code issue, then link to or attach a YYZ showing the most basic project possible which exhibits the behaviour
  • If you receive any error dialogues, please screenshot them
  • If it is a system issue (like compiling to a specific target) then please provide details of the PC being used as well as the software versions involved
Again: posting a comment in these release threads is not a replacement for filing a bug!


Release Notes

Runtime Release Notes


Current Release - IDE v2.3.3.574 Runtime v2.3.3.437 (July 22, 2021)


Please see the two release notes links just above for the updated changes at the top of each page.

Since 2.3.2.570 there were 4 further small Beta releases to quickly fix some of the commonly-reported issues in this thread, so you will see these mentioned below. There is no change between this new 2.3.3 and the fourth Beta (IDE 322/runtime 325). If you wish to get more information on Beta releases ahead of 2.3.4, etc., then please see How-To-Install-GameMaker-Studio-2-Beta-Releases (however, be aware the "current beta release thread" is effectively currently this page you're on right now).


Current Release - IDE v2.3.3.570 Runtime v2.3.3.434 (July 13, 2021)

Please see the two release notes links just above.


 
Last edited:

Dan

YoYo Games Staff
YYG Staff
Okay... I have now found an issue where if you have an object which exists for only 1 frame of a Sequence and this is at frame 0 to 1, then in 2.3.3 its Create event will not perform, but that did work in 2.3.2.

We'll look into this and get it fixed asap, however you can very easily fix right now by simply extending the asset track to last for 2 frames:

1626192113725.png

OR by moving the track to start+end 1 frame later:
1626192743580.png


You don't need to report a ticket, as I have filed the bug now. (If you have already filed one, then awesome, thanks.)
 

Shut

Member
Okay... I have now found an issue where if you have an object which exists for only 1 frame of a Sequence and this is at frame 0 to 1, then in 2.3.3 its Create event will not perform, but that did work in 2.3.2. We'll look into this and get it fixed asap, however you can very easily fix right now by simply extending the asset track to last for 2 frames.

View attachment 41286

You don't need to report a ticket, as I have filed the bug now. (If you have already filed one, then awesome, thanks.)
I've already reported it, thanks for the quick response!

It also looks like the event is not being triggered if you move the starting position from frame 0 no matter if the frame length is longer than 1 or not.

 
Last edited:

Dan

YoYo Games Staff
YYG Staff
Hmm, that bit definitely works in my little project (as I had edited my post above to say), so we will take a look at your ticket and see if something additional is going on for you.

We have also just found that it can also be fixed by making your sequence FPS lower than your game speed - so if you were to set that speed there to 59 it will probably fix it all (but obvs that's not suitable in many cases):
1626193453056.png
 

Shut

Member
Hmm, that bit definitely works in my little project (as I had edited my post above to say), so we will take a look at your ticket and see if something additional is going on for you.

We have also just found that it can also be fixed by making your sequence FPS lower than your game speed - so if you were to set that speed there to 59 it will probably fix it all (but obvs that's not suitable in many cases):
View attachment 41288
Hmm, I've just attached the project to the ticket. Hope you can find the issue and thanks a lot again for the support!
 

kupo15

Member
Seems like a good update! Just from reading, I'm not sure I'm a fan of the new undo method now. I really enjoy all the windows being decoupled from each other. So many times I would be doing multiple things across several scripts that had to fit together and I could easily undo things that I didn't do well without undoing the new changes that worked. Plus, it allowed me if I really needed to undo any entire script change back to where it was originally without affecting other new changes.

I'm not sure what the reasoning behind this change and it seems like a major downgrade to me

EDIT: Misread, ignore
 
Last edited:

Jman

Member
asset_get_index() doesn't work properly on the html5 export when used on a tileset name. It always returns -1 on html5, but returns a correct index on windows. I've submitted a bug report.
It doesn't seem to work on the GMS2 version just before this one either.
 
@Dan I think sequence_instance_override_object() is now broken, it's triggering the create event of the replaced object overriding any set variables. It did not do this before.
 

gnysek

Member
I'm pretty disappointed the inspector can't be used to change properties of objects in the room editor
Yet.
There will be 2 more updates for inspector this year! https://help.yoyogames.com/hc/en-us/articles/231719448-RoadMap
I don't know what's going be in 2.3.4 (probably all other resources), but for 2.3.5 (or maybe it will be 2.4 ?) with new workflow, inspector wil for sure integrate with new optional/alternative project edition style (I believe this will be something similar to Visual Studio, so there will be no workspaces anymore, all editors in middle, asset tree/inspector on both sides - no more chains for sure, but current way of editing projects will be still available).
 

beanflip

Member
My project no longer launches after the update, even into an empty room. Here's what's in the output window. Any idea what's happening here?

Igor complete.
[Run] Run game
Options: Z:/My_game_F0791C7A\MainOptions.json
X://windows/Runner.exe -game "Y:/My_game_158865FB_VM\My game.win"
Executing:wmic process call create "X:\\windows\Runner.exe -game "Y:\My_game_158865FB_VM\My game.win"","Y:\My_game_158865FB_VM"
Invalid format.

Hint: <paramlist> = <param> [, <paramlist>].

Edit: I removed the space from the file name of my project. This fixed it.
 
Last edited:

rwkay

YoYo Games Staff
YYG Staff
@Dan I think sequence_instance_override_object() is now broken, it's triggering the create event of the replaced object overriding any set variables. It did not do this before.
and

asset_get_index() doesn't work properly on the html5 export when used on a tileset name. It always returns -1 on html5, but returns a correct index on windows. I've submitted a bug report.
It doesn't seem to work on the GMS2 version just before this one either.
Please file a bug (Use Help -> Report a bug) and attach a project that illustrates the problem

Russell
 

Khao

Member
Seems like a good update! Just from reading, I'm not sure I'm a fan of the new undo method now. I really enjoy all the windows being decoupled from each other. So many times I would be doing multiple things across several scripts that had to fit together and I could easily undo things that I didn't do well without undoing the new changes that worked. Plus, it allowed me if I really needed to undo any entire script change back to where it was originally without affecting other new changes.

I'm not sure what the reasoning behind this change and it seems like a major downgrade to me
Wait, is that how it works now?

Like... if I open a script, make changes, then make a whole bunch of changes in other assets through the rest of the project... I can't just undo the changes to the script anymore?

...why would this be better? It honestly sounds painful if you're working with multiple objects/events/scripts at the same time. If the only real benefit is being able to undo a change to a resource you already closed, this is just... not worth it.

Am I misunderstanding something here?
 

kupo15

Member
Wait, is that how it works now?

Like... if I open a script, make changes, then make a whole bunch of changes in other assets through the rest of the project... I can't just undo the changes to the script anymore?

...why would this be better? It honestly sounds painful if you're working with multiple objects/events/scripts at the same time. If the only real benefit is being able to undo a change to a resource you already closed, this is just... not worth it.

Am I misunderstanding something here?
It seems to me the example you described would not be possible anymore as you can currently do this now. Your reaction is exactly the same I had when I read this change, unless I'm completely misunderstanding the undo change that is coming. I don't understand how this change is any better

1626205970270.png


I want to be able to work on multiple scripts at the same time and independently undo the actions within each script without being forced to undo the actions in another script. If this is all to be able to undo changes in scripts etc after you've closed them, I don't think losing the current flexibility is worth it all

.why would this be better? It honestly sounds painful if you're working with multiple objects/events/scripts at the same time. If the only real benefit is being able to undo a change to a resource you already closed, this is just... not worth it.
Precisely. I work on multiple assets at a time to progress a particular system or overhaul or fix things. Having all the changes in a strict queue instead of the current branches sounds terrible. I read that post and don't see benefits, rather mostly downsides
 

chamaeleon

Member
I want to be able to work on multiple scripts at the same time and independently undo the actions within each script without being forced to undo the actions in another script. If this is all to be able to undo changes in scripts etc after you've closed them, I don't think losing the current flexibility is worth it all
I created two scripts.

1. Wrote "abc" in script 1. Ctrl+S.
2. Wrote "def" in script 2. Ctrl+S.
3. Deleted "abc" from script 1. Ctrl+S.
4. Switched script 2 and deleted "def". Ctrl+S.
5. Went back to script 1 and pressed Ctrl+Z. => Got "abc" back in script 1 (the script currently selected)
6. Switched to script 2 (still blank) and pressed Ctrl+Z => Got "def" back

So "despite" deleting "def" last, I did get "abc" back when I undid the change in script 1, as one would hope (I think?).
 

kupo15

Member
I created two scripts.

1. Wrote "abc" in script 1. Ctrl+S.
2. Wrote "def" in script 2. Ctrl+S.
3. Deleted "abc" from script 1. Ctrl+S.
4. Switched script 2 and deleted "def". Ctrl+S.
5. Went back to script 1 and pressed Ctrl+Z. => Got "abc" back in script 1 (the script currently selected)
6. Switched to script 2 (still blank) and pressed Ctrl+Z => Got "def" back

So "despite" deleting "def" last, I did get "abc" back when I undid the change in script 1, as one would hope (I think?).
That is correct and what I can do now, I have not upgraded yet btw.

Did you do this in the current 2.3.3? In your example prior to 2.3.3, I would be able to put either script 1 or 2 in focus, press cntr+z and get back "abc" or "def" depending on my choosing. The description of the change implies to me that in your example, you would be unable to get back "abc" from script 1 until you got back "def" from script 2.

Am I'm mistaken? The posting even says that pressing undo will auto focus on a window that currently isn't in focus or pop up a previously closed asset to undo that action...presumably because its in the end of the queue. Why else would it refocus a different window away from what you are working on otherwise?
 

chamaeleon

Member
That is correct and what I can do now, I have not upgraded yet btw.

Did you do this in the current 2.3.3? In your example prior to 2.3.3, I would be able to put either script 1 or 2 in focus, press cntr+z and get back "abc" or "def" depending on my choosing. The description of the change implies to me that in your example, you would be unable to get back "abc" from script 1 until you got back "def" from script 2.

Am I'm mistaken? The posting even says that pressing undo will auto focus on a window that currently isn't in focus or pop up a previously closed asset to undo that action...presumably because its in the end of the queue. Why else would it refocus a different window away from what you are working on otherwise?
Yes, I updated a few hours ago. I tried to write down exactly what I did so it would be easy for anyone to verify my experience. Just pressing ctrl z will undo in the script I'm currently in, it wouldn't do anything in another script until I switched to it.

Can't say if it is relevant but I have set scripts to open as tabs in the workspace instead of as windows within it.
 

kupo15

Member
Yes, I updated a few hours ago. I tried to write down exactly what I did so it would be easy for anyone to verify my experience. Just pressing ctrl z will undo in the script I'm currently in, it wouldn't do anything in another script until I switched to it.

Can't say if it is relevant but I have set scripts to open as tabs in the workspace instead of as windows within it.
Hmm that is very peculiar, very relieved to hear that it seems like that is unchanged! I have my scripts set as tabs too, not sure if that is relevant or not. Rereading it, I wonder if its just improving the current system. It says "per asset history" which makes me assume that script 1 and 2 are different assets? However, it seemed like its always been "per asset history" to me. The example of the image editor really confused me and made me interpret that behavior being applied elsewhere. I can't imagine they would downgrade the undo system from what it is now.

@Dan I would like more clarification on the new undo changes. It seems like the way its described completely contradicts the test chamaeleon performed, unless its just worded in a strange way. What has been improved about it?
 

Vusur

Member
@kupo15 I think you missundersood the new undo.
The key point is "per-asset history" and not "asset history".
Script A and script B are two different assets. Each has it's own history.
Sprite Editor and Image Editor affects the same asset (the thing you have in your asset browser), so the history is connected instead of independent.
So they still have different histories, while working with spr_A an spr_B.

So far 2.3.3 Undo system works fine and as expected. Or I didn't notice somthing strange in my current workflow. But for now I didn't undo stuff I didn't want to. Can change, thou.
 

kupo15

Member
@kupo15 I think you missundersood the new undo.
The key point is "per-asset history" and not "asset history".
Script A and script B are two different assets. Each has it's own history.
Sprite Editor and Image Editor affects the same asset (the thing you have in your asset browser), so the history is connected instead of independent.
So they still have different histories, while working with spr_A an spr_B.

So far 2.3.3 Undo system works fine and as expected. Or I didn't notice somthing strange in my current workflow. But now I didn't undo stuff I didn't want to.
Thanks for that, I think you are right. I always thought it was per asset before because all my scripts had their own history. I guess its further improved in that they can be closed and still retain their history which is a plus. Seems like maybe the image editor is a special case.

If you haven't noticed any major downside changes while working then I guess I have nothing to worry about. GM nearly gave me a heart attack haha False alarm :)
 

rwkay

YoYo Games Staff
YYG Staff
The new undo system keeps the undo history for a single asset (does not matter if the change happened in the image editor or the sprite editor (for example)) previously the undo was per editor and that caused lots of issues where an undo happened in one but the change was not reflected properly in the other.

With Inspectors coming this was an even bigger problem as that was effectively a new editor (and would have had its own undo stack) and this became untenable as the IDE was being extended.

Russell
 

Tpot

Member
Love the new inspector, and compile times are definitely much improved!
But for some reason my game seems to be running at (roughly) 30 fps now instead of 60 (It worked fine in 2.3.2)
The actual fps reported in the Debugger hasn't changed (around 800 fps), but I noticed in the profiler, that draw & step events are only being called about 30 times a second.
I checked the game options, and 'Game frames per second' is still set to 60.
I honestly can't figure out what's going on here.

Edit:
Original test was done in Windows VM, problem persists in Windows YYC.
Also tested macOS VM and HTML5, and they both run fine at the proper speed.

Edit 2:
Used Fraps to figure out the exact framerate and noticed it's rapidly flip flopping between 37 and 38 fps, which I realized is half of my monitors refresh rate (75hz display).
So I found that forcing my display to 60hz fixes the issue, as does disabling synchronization in Windows graphics game settings.
But this wasn't an issue in 2.3.2, and I figure this problem would be consistent with any monitors with refresh rates not divisible by the game's framerate.
Anyway hope this info helps, besides this hiccup, 2.3.3 is an excellent update, the per-asset undo is great, and I'm really looking forward to future Inspector updates
 
Last edited:
When I import multiple images through this window, only one image is imported.
Capture.PNG


When I import multiple sprites through the Sprite editor, the sprites are out of order. This was also reported by @Zhanghua and I thought was fixed.
1626221143723.png
 

Zhanghua

Member
When I import multiple images through this window, only one image is imported.
View attachment 41297

When I import multiple sprites through the Sprite editor, the sprites are out of order. This was also reported by @Zhanghua and I thought was fixed.
View attachment 41299
???? In the latest beta, it fixed this now, this issue comes out again?
It exists in the first figure illustrated.
And non-exist in the beta for the way on second figure. ( Ordered normally by the file name in latest BETA, I haven't update the latest release now....)
 

kingyo

Member
I'm not sure if it's a bug or what, but it seems that sprite animations have changed their behavior.
In my project, for some reason, I set the image_speed to 0 and added the image_index in the step event when I implemented the animation.

In a sprite with 4 frames
If you set image_index += 0.1; in the step event,
the value will be looped as follows
0.10
0.20
0.30
...
3.90
4.00
3.10
3.20
...
3.90
4.00
3.10
3.20
...


The part in red, looping from 4.00 to 3.10, is wrong. This causes the animation to stop.
 

basementApe

Member
Thanks for the update!

Just a quality of life-thing I've wanted to bring up since I upgraded to 2.3.x. It used to be that sprites and other assets being duplicated would be placed directly beneath the asset they were duplicated from. In 2.3.x though, a duplicated asset goes all the way down to the bottom of the list. Can you bring back the way it worked in 2.2.x please? Or at least provide an option for it?

It would also be a very nice thing to have for rooms. If I copy-paste existing objects inside a room, the new object gets put on top of everything else (at the very bottom of the object list in the room editor). This is rarely what I want to happen, and in rooms with a ton of objects I then need to click-drag-hold the new object for forever to put it in the correct order in the list. Again, an option to put the new object directly beneath the old one would be great.
 
Not sure if this is the right place to mention this and I apologize if it isn't, but it looks like with this new update, my CSV files are not getting imported at the start of the game. I have some Team data in a CSV file which I import as grid using a global variable, and the grid does not even exist as it shows a -1 in the debugger. Hence, when I use it runs the remaining code where it uses this grid, it gives the error "Data structure with index does not exist."

When I change back to 2.3.2 in Steam and run the same project, everything works buttery smooth as intended.
 
Last edited:

Slyddar

Member
Just a quality of life-thing I've wanted to bring up since I upgraded to 2.3.x. It used to be that sprites and other assets being duplicated would be placed directly beneath the asset they were duplicated from. In 2.3.x though, a duplicated asset goes all the way down to the bottom of the list. Can you bring back the way it worked in 2.2.x please? Or at least provide an option for it?

It would also be a very nice thing to have for rooms. If I copy-paste existing objects inside a room, the new object gets put on top of everything else (at the very bottom of the object list in the room editor). This is rarely what I want to happen, and in rooms with a ton of objects I then need to click-drag-hold the new object for forever to put it in the correct order in the list. Again, an option to put the new object directly beneath the old one would be great.
It is a quality of life thing, but I can so get behind both of these requests. They seem minor, but they would make things much easier, and faster, when working on larger projects.
 

nicster

Member
Hi,

I have a very odd issue with new release. I have a splash screen on start (simple room showing game name), where i call audio_group_load (on two groups sfx & music) in the create event and then in step event i check for audio_group_is_loaded on both, so i can move to a main menu room once loaded. When running in debug i get a false returned from audio_group_load, so audio_group_is_loaded never return true and i'm stuck. works fine in release. Rolled runtime back to 2.3.2.426, same issue. Only when i run previous IDE (2.3.2.560), with 2.3.2.426 runtime i can debug again.

I'll sort out a test project, and submit a bug report, but thought i'd post this here, just in case i've always been doing something obviously wrong with loading audio groups.

cheers, nic
 

FoxyOfJungle

Kazan Games
[HTML5]
Ticket number:
185666

Hello!

There is a very strange bug that the entire game goes black and unresponsive when entering a room (keyboard and mouse stop responding, but the audio continues), and this only happens in the HTML5 module.
  • I don't use Javascript extensions
  • There is only 1 object in the room, with only GML code written, and it's simple code.
  • The problem occur through the play button or the compiled game on a web server, like Itch.io.
  • As you can see I cleared the cache on the video and the error persists.
  • I tried to reproduce the error several times and it always happens.
  • Happens in any browser (tested on Chrome and Edge).
  • This worked before this update.
  • Nothing appears on the console while the game goes black.
What I use to enter the room is simply this:
GML:
if keyboard_check_pressed(ord("V")) {
    room_goto(rm_ending);
}

In this video I show the reproduction of the problem, I also showed the object code, the room and others:



Edit:
The problem also happens when I try to enter the highscore screen (everything goes black):
  • I don't change rooms this time.

In HTML5:


On Windows (it works normally):


And it's not a problem in the code because the difference between the "settings" button and the "highscores" is this:

Create Event:


Draw Event:



And there is also another problem, notice in the video that whenever I reload the Itch.io page with the game opened, the audiogroups sound stop working. (logo sound does not play at first).

I submitted the bug with the project and this topic.


---------------------------------
Apart from this problem, I have tested my biggest projects in this version and they have worked perfectly, so far. Thanks for the update!

Cheers.
 
Last edited:

nicster

Member
Hi,

I have a very odd issue with new release. I have a splash screen on start (simple room showing game name), where i call audio_group_load (on two groups sfx & music) in the create event and then in step event i check for audio_group_is_loaded on both, so i can move to a main menu room once loaded. When running in debug i get a false returned from audio_group_load, so audio_group_is_loaded never return true and i'm stuck. works fine in release. Rolled runtime back to 2.3.2.426, same issue. Only when i run previous IDE (2.3.2.560), with 2.3.2.426 runtime i can debug again.

I'll sort out a test project, and submit a bug report, but thought i'd post this here, just in case i've always been doing something obviously wrong with loading audio groups.

cheers, nic
Standalone version of GMS2.3.3 works, something's wrong with the steam update. Just reinstalled steam version still an issue. Guess i'll switch to standalone at moment.
 

yeo

Member
Hello.

I tried all this: https://help.yoyogames.com/hc/en-us...missions-and-Internet-Access-Required-by-GMS2

But still I can't read files using file_text_open_read (sometime it says the file exists with file_exist, sometimes not exists). After one of attempts for "Build > Clean" it started to read some files suddenly (but not all) and then again starter to not read.

Please, help.

I'm using Steam version, trying to build on Windows 10. And it doesn't work on previous runtime either.
 
Last edited:

FoxyOfJungle

Kazan Games
Hello.

I tried all this: https://help.yoyogames.com/hc/en-us...missions-and-Internet-Access-Required-by-GMS2

But still I can't read files using file_text_open_read (it sees the file with file_exist). After one of attempts for "Build > Clean" it started to read some files suddenly (but not all) and then again starter to not read.

Please, help.

I'm using Steam version, trying to build on Windows 10. And it doesn't work on previous runtime either.
Well, try activating this:



Read this page on the manual.
 

yeo

Member
> Well, try activating this:

It didn't help.

UPDATE: And sometimes it says file doesn't exist with file_exists.
 
Last edited:

Shut

Member
We are investigating reports just now and evaluating if we need to release a hotfix or not

Russell
Please release a hotfix for the sequence issues, I'm currently stuck between downgrading to previous version or taking a big break until things get fixed.
 

kingyo

Member
This is what it looks like after duplicating dozens of assets in the asset browser.
The memory usage is now over 5GB.
memory usage.png

I consider this to be an unusual amount of memory usage. My PC almost stopped working.

By the way, the memory usage just after starting GMS and loading the project is 635MB.
 

Crypto137

Member
I have a problem with inheritance in the Create event in the new version. I have a parent menu object that has an initialize() function that checks if variables (such as width) exist using variable_instance_exists. In the child objects I first inherit this function using event_inherited and then assign variable values. At the end of the create event I call the inherited initalize() function to check for all unassigned variables using variable_instance_exists and set them to default values. The code worked before, but for some reason updating from 2.3.2.560 to 2.3.3.570 introduced a bug where variable_instance_exists seems to return false when it should be true, causing the code to assign default values when it shouldn't.

Parent object code example
GML:
initialize = function()
{
    /// Visuals
    // Background
    if (!variable_instance_exists(id, "background_color_unselected")) background_color_unselected = c_white;
    if (!variable_instance_exists(id, "background_color_selected")) background_color_selected = c_orange;
    if (!variable_instance_exists(id, "background_width")) background_width = 300;
    if (!variable_instance_exists(id, "padding")) padding = 12;
}
Child object code example
GML:
event_inherited();

background_color_unselected = c_white;
background_color_selected = c_orange;
background_width = 1024;
padding = 8;

initialize();
background_width ends up being 300 in 2.3.3.570, while in 2.3.2.560 it was 1024 (as designed).
 
Last edited:

Crypto137

Member
After doing some more testing I've discovered that my problem seems to be related to the variable name I use, background_width. When I use other variable names (such as width) everything seems to work as intended. The same problem appears when I use the name background_height.
 

chamaeleon

Member
I have a problem with inheritance in the Create event in the new version. I have a parent menu object that has an initialize() function that checks if variables (such as width) exist using variable_instance_exists. In the child objects I first inherit this function using event_inherited and then assign variable values. At the end of the create event I call the inherited initalize() function to check for all unassigned variables using variable_instance_exists and set them to default values. The code worked before, but for some reason updating from 2.3.2.560 to 2.3.3.570 introduced a bug where variable_instance_exists seems to return false when it should be true, causing the code to assign default values when it shouldn't.

Parent object code example
GML:
initialize = function()
{
    /// Visuals
    // Background
    if (!variable_instance_exists(id, "background_color_unselected")) background_color_unselected = c_white;
    if (!variable_instance_exists(id, "background_color_selected")) background_color_selected = c_orange;
    if (!variable_instance_exists(id, "background_width")) background_width = 300;
    if (!variable_instance_exists(id, "padding")) padding = 12;
}
Child object code example
GML:
event_inherited();

background_color_unselected = c_white;
background_color_selected = c_orange;
background_width = 1024;
padding = 8;

initialize();
background_width ends up being 300 in 2.3.3.570, while in 2.3.2.560 it was 1024 (as designed).
Looks like you're using a name that has some internal meaning, perhaps.
Child create event
GML:
event_inherited();

foo = "child";
bar = "child";
background_width = "child";
backgrond_width = "child";
pre_background_width = "child";
background_width_suf = "child";

initialize();
Parent create event
GML:
initialize = function() {
    if (!variable_instance_exists(id, "foo")) foo = "parent";
    show_debug_message("foo = " + foo);
    if (!variable_instance_exists(id, "bar")) bar = "parent";
    show_debug_message("bar = " + bar);
    if (!variable_instance_exists(id, "background_width")) background_width = "parent";
    show_debug_message("background_width = " + background_width);
    if (!variable_instance_exists(id, "backgrond_width")) backgrond_width = "parent";
    show_debug_message("backgrond_width = " + backgrond_width);
    if (!variable_instance_exists(id, "pre_background_width")) pre_background_width = "parent";
    show_debug_message("pre_background_width = " + pre_background_width);
    if (!variable_instance_exists(id, "background_width_suf")) background_width_suf = "parent";
    show_debug_message("background_width_suf = " + background_width_suf);
}
Output
Code:
foo = child
bar = child
background_width = parent
backgrond_width = child
pre_background_width = child
background_width_suf = child
Some remnant from GMS 1.4 perhaps, background_width, which is no longer supposed to be a thing, I think.
 
Last edited:

Alice

Toolmaker of Bucuresti
Forum Staff
Moderator
Yeah, background_width it's one of the forbidden struct variable names, and presumably also forbidden instance variable names. See this Manual Page for reference.

(I heard it's possible to use these names indirectly, i.e. by variable_struct_set(struct, "name", value) or struct[$ "name"] = value notation, but I didn't have an opportunity to test it properly yet)
 
Having two issues with my 2 year project (imported from 1.4 several months ago) on newest version. I'll file a report in a few.
  1. Any audio files using Compressed - Streamed fail to load/play in-game. Switching to any other option works.
  2. All show_debug_message's don't work, under any circumstances.
  3. Lots of people on the GM discord are having the above listed Hint: <paramlist> = <param> [, <paramlist>] error.
 
Status
Not open for further replies.
Top