godotengine / godotengine/godot

`Area2D` `monitorable`, `monitoring` and `area_enter` logic flaw

Open
#100,346 0 comments 1 reaction 0 assignees View on GitHub
topic:2d topic:physics
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

v4.3.stable.official [77dcf97d8]

### System information

Godot v4.3.stable - Windows 10.0.22621 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 4060 Laptop GPU (NVIDIA; 31.0.15.2887) - 13th Gen Intel(R) Core(TM) i7-13700H (20 Threads)

### Issue description

There are two area2d,we call them A and B, make A can check B. make A's area_enter connect to a function to observe.

When they are overlaping, turn A' monitoring(true -> false -> true), A' area_enter will emit. (It is right)

However, turn B' monitorable(true -> false -> true), A' area_enter wouldn't emit. ( I think it should emit)

Additionally, every change on B's monitoring (true -> false or false -> true) will makes A' area_enter emit. ( I think it shouldn't emit according to the principle)

I hope that a appropriate change will happen on there and make them liked described.

### Steps to reproduce

1. open the function "display collision area"
2. press "D" until the small area overlap with the big .
3. change B'monitoring and monitorable,then oberve

### Minimal reproduction project (MRP)

[test.zip](https://github.com/user-attachments/files/18120274/test.zip)

Contributor guide

Open the contributing guide

Research direction

Start by opening the attached test.zip and reproducing the Area2D overlap scenario using the “display collision area” function and the D key. Inspect the monitoring, monitorable, and area_enter behavior described in the report; done means signal emission matches the expected behavior for each property change.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, godot
Domain
game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.