Pulse Works Studio
Function blocked during in/out signal. Use set_deferred("monitoring", true/false).
Area2D will not change monitoring while a body_entered or body_exited callback is running.
Cause
Area2D locks itself while it emits enter and exit signals. Setting monitoring or monitorable directly from those callbacks hits this error. set_deferred changes the property after the physics query flush finishes.
Fix
extends Area2D
func _ready() -> void:
body_entered.connect(_on_body_entered)
func _on_body_entered(_body: Node2D) -> void:
set_deferred("monitoring", false)
Related
Godot Dev Tools is a Pulse Works Studio project. All error explainers.