Sign in

Mikael Hermansson

@mikael.hermansson.io
1.1K followers 415 following 26 posts

🇸🇪 Developer at W4 Games, working on #GodotEngine. Previously at Frostbite, Avalanche and others.

PostsRepliesMedia
Mikael Hermansson @mikael.hermansson.io · 28/02/2026
This might very well be the same as the rigid body workaround you've tried already, but if you're willing to accept the slight performance hit of having your static body be an always awake kinematic body instead then this should also work.
extends StaticBody3D

func _ready() -> void:
    PhysicsServer3D.body_set_mode(self, PhysicsServer3D.BODY_MODE_KINEMATIC)
    PhysicsServer3D.body_set_max_contacts_reported(self, 10)
    PhysicsServer3D.body_set_state_sync_callback(self, _on_state_sync)

func _on_state_sync(state: PhysicsDirectBodyState3D) -> void:
    if state.get_contact_count() > 0:
        print("Contact!")
130 0