SUCC - SurfsUp Character Controller¶
A first and third-person character controller for Godot 4 with Quake and Source engine movement: bunnyhopping, surfing, air strafing, smoothly rendered stair stepping and crouch-jumping.
Written in statically typed GDScript, based on the Quake movement code and Valve's Source SDK 2013.
This is the controller from SurfsUp, open-sourced under the MIT License.

Features¶
- Quake-lineage movement. Air acceleration, bunnyhopping, slope surfing and Source-accurate stair stepping, ported from the original engine source.
- Smooth first- and third-person traversal. The camera and player model glide up and down stairs at walking or sprint speed instead of following the body's discrete steps.
- Configurable crouch transitions. Linear smoothing or an immediate snap. Air crouches raise the legs without moving the head.
- Five movement presets. Half-Life, Quake, Quake 2, Half-Life 2 or SurfsUp, assigned as a resource file. Swap at runtime with one call.
- Tuning without code. Gravity, speed, friction, jump height, hull size, eye height and
crouch smoothing all live in a
SUCCConfigresource you edit in the Inspector. - A test gym. A demo level that exercises every feature, with a speedometer reading both metres and engine units.
- Extension points. Signals and override hooks for your game's health, weapons and states, without editing the controller.
- Multiplayer-ready. Authority checks throughout and a lightweight
SUCCPawnfor remote players.
What it isn't¶
SUCC is only the controller. There's no health, ammo, scoring, checkpoints, UI, chat,
VOIP or leaderboards - those belong in your game code extending SUCC.
Example games and game modes will live in the separate SUCC Demos repository. That project is a work in progress. It will be open-sourced under the MIT License once it's ready, with attribution required.
Install¶
Godot Asset Store (recommended): install SUCC from the asset store, or search for "SUCC" in the editor's AssetLib tab.
Manual: download the latest release zip
and copy addons/SUCC/ into your project's addons/ folder.
Either way, the scripts use class_name, so Godot registers them automatically. There is
no Plugins toggle.
Requires Godot 4.6 or newer.
Where to start¶
New to SUCC? Work through the tutorial. It gets a character walking, then compares the five engine presets.
Know what you want?
Want to understand it?
- How the movement works - why holding jump makes you faster
- How accurate are the presets? - where the values come from
- The demo gym - what each lane tests
Looking up a value?