godotengine / godotengine/godot-docs

Add a mention of multilevel call removal in Godot 3 -> 4 transition guide (for _ready(), _process(), _enter_tree(), etc.)

Open
#7,321 1 comment 1 reaction 0 assignees View on GitHub
area:manual enhancement
Dominant language
reStructuredText
Stars
5.7k
Forks
3.8k
Avg merge
1d 20h
Merged PRs (30d)
25

Description

**Your Godot version:**
Godot 4.0 docs

**Issue description:**
While converting my project from 3.5 I discovered that `_ready()` call was not triggered on my base class. After digging in Godot issues a bit, I eventually found a commit that removes these calls and makes built-in functions obey the traditional inheritance laws (thus requiring a `super()` calls.

https://github.com/godotengine/godot/pull/40670/commits/2b9d9bc3644de19b291c16b2facc418f3d64d4fc

I think the docs on upgrading from Godot 3 to Godot 4 need to mention this, since in big inheritance chains multilevel calls were most definitely an important architectural feature.

Judging from the commit above, I assume the following functions were were affected:

- `_notification`
- `_enter_world`
- `_exit_world`
- `_draw`
- `_process`
- `_physics_process`
- `_ready`
- `_enter_tree`
- `_exit_tree`
- `_gui_input`

Am I forgetting something? Would be great if someone from the core team could provide an exact list.

**URL to the documentation page (if already existing):**
https://docs.godotengine.org/en/stable/tutorials/migrating/upgrading_to_godot_4.html

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.