The official SDK for creating custom levels for SurfsUp on Steam.
SurfsUp is a free-to-play multiplayer game inspired by Counter-Strike surf.
- Easy level creation with pre-built ramp prefabs
- Built on Godot 4.5+ game engine
- Import and port Source engine BSP maps
- Custom texturing with included materials
- Hot reload testing with in-game developer console
- One-click export to SurfsUp installation
- Godot 4.5.1+ - Game engine (required)
- Blender LTS - For advanced BSP porting (optional)
- SurfsUp - Installed on Steam
git clone https://github.com/bearlikelion/SurfsUpSDK.git
cd SurfsUpSDKOr download and extract the latest release from GitHub.
- Download and install Godot v4.5.1 or newer
- Launch Godot and click "Import"
- Navigate to the
SurfsUpSDKfolder and selectproject.godot - Click "Import & Edit"
- Duplicate
Levels/test_level.tscnand rename it - Drag ramp prefabs from
Levels/Ramps/Parts/into the Level node - Position, rotate, and scale your ramps
- Apply textures from
Assets/Textures/
- Go to
Project → Tools → [SurfsUp] SDK Tools → Set Maps Directory - Point to your SurfsUp installation's
Mapsfolder - Click the Export Map button in the top-right corner
- Launch SurfsUp and press ~ to open the console
- Type:
map <your_map_name>
Note: The exported PCK filename must match your scene path: /Levels/<map_name>.tscn
Pre-made ramp GLB files are in Levels/Ramps/Parts/. Drag them into your scene's Level node.
- Right-click on a ramp prefab and enable Editable Children
- Drag a StandardMaterial from
Assets/Textures/onto the ramp mesh
- Decompile BSP to VMF with bspsrc
- Import VMF into Blender using Plumber
- Export as GLB to
Levels/<level>/folder - Import into Godot and scale to (2.5, 2.5, 2.5)
SurfsUpSDK/
├── Assets/
│ ├── Characters/ # Y-Bot reference character for scale
│ └── Textures/ # Standard materials
├── Levels/
│ ├── Ramps/Parts/ # Pre-made ramp prefab GLB files
│ └── test_level.tscn # Example level template
├── docs/ # Documentation site
└── project.godot # Godot project file
Join the SurfsUp Discord Server and ask your questions in the #mapping-help channel, share your custom maps, download others, and receive feebdack from the community on your creation in the #custom-maps channel.
Contributions are welcome:
- Submit bug reports and feature requests via GitHub Issues
- Fork the repository and submit pull requests
- Share custom prefabs and textures with the community
This project is provided as-is for creating custom maps for SurfsUp. Please respect map creators' work when porting or modifying existing content.
When porting BSP files, always ask for the original map maker's permission.
- Game: SurfsUp on Steam
- Website: surfsup.website
- Documentation: bearlikelion.github.io/SurfsUpSDK
- Discord: surfsup.website/discord
