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.