Area3D overlap detection - signals not working for my case

Godot Version



I am currently building a modular level generator, that builds a level out of some submodules (other scenes). Every level module has an Area3D that I want to use for collision checking; Meaning that when I add a new module to the level, I want to check whether it overlaps with previously existing modules.

However, the area_entered and area_exited signal functions only get called after my placement script is run through. I want to avoid something convoluted like: Place the new module, wait for a frame, delete the module if it now overlaps etc. Is there a method to check if two Area3Ds are overlapping instead of working with Signals or is something like this not possible in Godot?

EDIT: Examples would be something like IsOverlappingActor from Unreal Engine or Physics.OverlapBox from Unity3d

instead of area3d, can you try by checking if there’s collision? characterbody3d can detect collision from the physics process code line, if it collide, then just delete/queue_freed itself

You have two options:

I have no idea why I didn’t find has_overlapping_areas(), that is exactly what I need. Thank you very much!