Godot Version
Godot 4.5
Question
Hi everyone, I need help with a physics issue after migrating a 2D project from Godot 3 to Godot 4.
I have a hill-climbing truck game where the truck body is a RigidBody2D and the two wheels are also RigidBody2D nodes connected with PinJoint2D.
In Godot 3 everything worked perfectly:
The truck could move right/left
It could climb slopes normally
It could rotate and flip while climbing, even moving on the ceiling (closed terrain)
After moving the exact same setup to Godot 4, the truck no longer climbs slopes or moves upward. It only moves right and left along the bottom. When it reaches any edge, it simply falls instead of going up.
The original game uses gravity-changer areas (bottom, bottom-right, bottom-left, top-right, etc.).
Inside each Area2D, the gravity direction changes and a force is applied to the truck and wheels.
In Godot 3, the project gravity direction was set to 0, 0.
But in Godot 4, when I tested this, the truck floated and didn’t fall at all.
So I changed gravity to 0, -1. Now the truck falls normally and moves right/left on the ground, but still cannot move upward or climb slopes.
Nothing changed in my script, but physics changes did happen:
Godot 4 removed weight, so all bodies now have mass = 1 by default
In Godot 3 the wheels used gravity_scale = 30, now it’s back to 1.0
The wheels have no script; only the truck receives torque
If anyone can help me figure out which Godot 4 physics changes might be breaking this behavior, I would really appreciate it.
These are the project files:
Thanks in advance! ![]()