Instantiating child sceen and enabling editable children

Hello, this is the first real roadblock I have encountered since starting this course. The video is “Adding Lava Pools” in the Godot 3D course.

I followed along with the instructions and enabled “editable children” for the Lava instance in the Main_Level scene. While I can see all the properties, when I look at the properties for the mesh in MeshInstance3D, the fields are all greyed out and uneditable. Interestingly, the other child node’s properties can be edited. Furthermore, other properties of this node are also editable. It is just the properties for the mesh (which can be edited in the original scene).

I am using Godot 4.2 and I’m aware I should use the same version used in the lecture, but up until now I have not had much trouble in recognizing and implementing the instructions despite some minor differences.

I have a suspicion that I might have done something wrong in the last lecture but I really cannot see what. I tend to follow the instructions carefully.

If you have any idea, please let me know where I can begin troubleshooting. Thank you in advance!

In the Inspector, I think you’re missing Mesh–>Resource–>Local To Scene. This needs to be ticked in the Lava object scene itself in order to allow each instance to have its own “version” of this mesh, and therefore be able to edit its properties.

I just tested unticking this and it reproduced what you’re experiencing, so give that a go =)

Thanks so much for your reply, but this does not seem to be it.

I had “Local to Scene” already selected, but I tested it again with and without - both give me the same issue.

That’s interesting.

The only properties that are non-default on the MeshInstance3D in my Lava object scene are the Mesh being filled as a plane, the Material and Shader being filled, the Size (set to 10mx10m), and Local To Scene being ticked. Only the last of those should have any impact at all on this issue, and we’ve pretty much ruled that out, so I can only imagine the problem is somewhere else.

I’ve done some further researching and testing, and I can’t make the Mesh read-only without unticking Local To Scene. Doesn’t make sense. Until someone more experienced can offer some more insight, I would say your best bet is to work around it like this:

  • In the Lava object scene, delete the MeshInstance3D (but make sure you have your material saved as a .tres file first). You could also choose to do this for each individual instance instead - because the material is saved and the plane is resized each time as it is, it doesn’t make a huge difference.
  • In your level, when you instantiate a Lava object, give it a child MeshInstance3D and set the Mesh resource to a new Plane.
  • Apply the saved material as this Plane’s material.

A little annoying, but doesn’t take long, and the collider is added similarly anyway. At the very least it will allow you to continue with the course, especially since you’re so close to finishing! Good luck =)

Wonderful! Thank you again! I will try this out a little later once I get some time and report back.

1 Like

Hi! Wanted to update you. So, I think in the end you were right. I decided to revisit the previous lecture and check everything one by one. The only thing I really changed was to delete and create a new Node3D for the lava. When I instantiated it this time, it worked… not sure what to chalk that one up to. It might be a bug but I’m sure I just missed something. In any case, thanks for putting me on the right path - at least now I know something to check if it happens again. Cheers!

2 Likes

In the back of my mind, I was thinking “Apply the golden rule of IT; shut down, restart, and try again”, but I figured there had to be something more going on. I guess we both learned something!

Congratulations, and good luck with the rest of the course =)

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.

Privacy & Terms