godotengine / godotengine/godot-docs

Clarify usage of FREEZE_MODE in RigidBodies

Open
#11,208 1 comment 1 reaction 0 assignees View on GitHub
area:class reference topic:physics
Dominant language
reStructuredText
Stars
5.7k
Forks
3.8k
Avg merge
1d 20h
Merged PRs (30d)
25

Description

- *Production edit: See https://github.com/godotengine/godot-docs-user-notes/discussions/311#discussioncomment-14115387.*

**Your Godot version:**
4.4

**Issue description:**
RigidBody2D/3D's documentation on [freeze_mode](https://docs.godotengine.org/en/4.4/classes/class_rigidbody3d.html#enumerations) `FREEZE_MODE_STATIC` states:

> It can be only moved by user code and doesn't collide with other bodies along its path.

This doesn't specify where the body may be moved (process vs. physics_process). My assumption now is, that in STATIC it can be moved wherever seems appropriate (e.g. I rotate the body directly using _input)

Then in FREEZE_MODE_KINEMATIC it says:

> Similar to [FREEZE_MODE_STATIC](https://docs.godotengine.org/en/4.4/classes/class_rigidbody2d.html#class-rigidbody2d-constant-freeze-mode-static), but collides with other bodies along its path when moved.

I got confused here for quite some time, because I tried to move a body in _input while frozen in `FREEZE_MODE_KINEMATIC`.

It now seems logical to me, that it should be moved in _physics_process when in `FREEZE_MODE_KINEMATIC`, because how could it collide otherwise, but I feel that this should be pointed out in the docs to avoid confusion.
Additionally I think STATIC should say that the restriction on moving the body only be applying forces does no longer apply when frozen in this mode, if my assumption is correct on this.

**URL to the documentation page (if already existing):**
https://docs.godotengine.org/en/4.4/classes/class_rigidbody3d.html#enumerations

[minimal_example.zip](https://github.com/user-attachments/files/21794091/minimal_example.zip)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.