Instanced NPCs Share Resource Properties in Action Game Maker

Hello,

  • OS: Windows 11

  • CPU: i7-13700k

  • GPU: RTX 3060 12G

  • Memory size: 64GB

  • Symptoms: I’m not sure if this is a bug or intended behavior. It seems like the properties stored in BaseSettings and VariableSettings are referencing the same resource across all instances. As a result, any changes made to one instance affect all others.

  • Steps to reproduce: Let’s say I have a zombie NPC scene. When I add multiple instances of this zombie into the main scene and try to change the HP of just one of them, the HP value changes for all of them—including the original (parent) zombie scene.

This makes it difficult to create slight variations of the same NPC. If I want to tweak one instance (e.g., give one zombie more HP), I currently have to create a whole new scene or game object from scratch, which isn’t very efficient.

Is there a recommended workaround for this behavior? Or is there a way to make these settings unique per instance?

Thanks!

Hello!

Out of curiosity are you duplicating the instances via CTRL+D or right-click duplicate? If so, can you delete the duplicates and, instead of duplicating, instantiate scenes either by:

  1. Dragging out the scene from the File System to the scene
  2. Right-clicking on the node you want it under and click Instantiate Child Scene

Unfortunately Godot resource properties share by default on duplication. While we have provided ways around it in the visual scripting, we don’t have ways around it while placing the objects onto the scene.

I have tried all the methods above. The end result is the same.

The issue is that the Variable Settings come with a Local to Scene option. Even when using the option the result is the same. The Local to Scene option does nothing. The variables are … not variable… :slight_smile:

From what I understand those variables become unique on run time. However if you cannot modify them individually in the editor then what is the point?

Have you tried with that ‘Local to Scene’ unchecked and it still happened? When I did Bazelot Quest sample I was able to even duplicate my zombies in the forest levels and they still worked. I didn’t have that option checked though.

Yes and I get the same issue.

I am trying to reproduce your report as well, and I am unable to do so.
Are you able to recreate the issue by doing the following?

  1. Create a new object. Do not make any changes to it.
  2. Drag it into a scene from the FileSystem tab. Call it something like Test1.
  3. Drag a 2nd instance into the scene from the FileSystem tab. Call it something like Test2.
  4. Save the project & reopen.
  5. Edit any variable on Test1, such as setting max HP to 10.
  6. Switch to the Test2 object and see if the max HP variable changed.

Action Game Maker 2025.07.09 - 07.51.55.08

Here is the example. The parent scene was modified as well. Same thing happens with both Local to Scene checked or unchecked.

Same thing happens to the HP. I have tried to close and reopen the project but no luck.

I am running Action Game Maker v1.0.12.stable [861d96a50] downloaded from Steam.

Ok, this makes more sense of what’s going on. I’ll check and see if this is desired or not.

Until then, in a setup state you can ‘Apply To Instance’ a variable with ChangeObjectProperty and set that action individually in the scene you place them on and they won’t share (you cannot duplicate them though):


「いいね!」 1

IT WORKS for both HP or any variable. Many many many thanks!!! This changes everything.

「いいね!」 2

Good news! They are fixing the Sw/Var Setting nodes to be unique when using Editable Children. Not sure what patch it will come out in, but keep your eye out for it.

「いいね!」 1

Thank you! I can’t wait for the update to go live.

「いいね!」 1