EVERYONE IS WELCOME TO BUILD UP ON THIS PROJECT AND CONTRIBUTE. ISSUES ARE DISABLED FOR THE TIME BEING
Please join the Discord: https://discord.cs.surf
Core plugin for CS2 Surf Servers. This project is aimed to be fully open-source with the goal of uniting all of CS2 surf towards building the game mode.
Center HUD Speedometer
Different time formatting is available in the code base but not implemented for players to change it themselves. Refer to PlayerTimer.TimeFormatStyle in codebase
- Map
Shown while player starts their Map Run from the map start zone (!r)
- Checkpoints
Only shown during Map Run after exiting a Checkpoint/Stage zone
- Stages
Only shown while in Stage Mode, accessed through !s X or !stage X commands
- Bonuses
Only shown while in Bonus Mode, accessed through !b X or !bonus X commands
Replays
Currently only accessible through the !spec command and cycling the players. Different time formatting is available in the code base but not implemented for players to change it themselves. Refer to PlayerTimer.TimeFormatStyle in codebase
Replays are saved for all types of runs Map/Stage/Bonus (and future Styles) regardless if they are a World Record or just a Personal Best. No functionality is implemented for replaying PB replays yet, feel free to add and Pull Request it
- Map
- Stages
- Bonuses
Bonus Replays are also available but no screenshots at the time of writing.
- Scoreboard
Chat Messages
Player Commands
We recommend making binds using the Console commands, chat commands may flood the server and not always work.
- Saveloc (Practice Mode)
Save the current location
Chat: !saveloc
Console: css_saveloc
Teleport to the last saved location
Chat: !tele
Console: css_tele
Teleport to the previous saved location
Chat: !teleprev
Console: css_teleprev
Teleport to the next saved location
Chat: !telenext
Console: css_telenext
- Spectate
Enter Spectator Mode
Chat: !spec
Console: css_spec
Exiting Spectator Mode
No command currently available to go back to Play Mode (time may NOT be reset and you will loose your progress post entering Spectator Mode)
Open team choosing menu M and select CT
Main list with tasks (more details can be found here):
Note: This is not definitive/complete and simply serves as a reference for what we should try to achieve. Subject to change. Bold & Italics = being worked on.
- Database
- MySQL database schema (Design Diagram)
- Plugin auto-create tables for easier setup?
- Base database class implementation
- Maps
- Implement map info object (DB)
- Zoning
- Hook zones from map triggers
- Map start/end zones
- Stage zones
- Checkpoint zones (this is each stage for a Staged map)
- Bonus zones
- Support for stages/checkpoints
- Hook to their start/end zones
- Save/Compare checkpoint times
- Save Stage times
- Support for bonuses
- Hook to their start/end zones
- Save Bonus times
- Start/End trigger touch hooks
- Load zone information automatically from standardised triggers: https://github.com/CS2Surf/Timer/wiki/CS2-Surf-Mapping
- Support for stages (
/rs
, teleporting with/s
) - Support for bonuses (
/rs
, teleporting with/b #
) - Start/End touch hooks implemented for all zones
- Hook zones from map triggers
- Surf configs
- Server settings configuration
- Plugin configuration
- Database configuration
- Timing
- Base timer class implementation
- Base timer HUD implementation
- Prespeed measurement and display
- Save/load times
- Map times
- Checkpoint times
- Stage times
- Bonus times
- Practice Mode implementation
- Announce records to Discord
- Stretch goal: sub-tick timing
- Player Data
- Base player class
- Player stat classes
- Profile implementation (DB)
- Points/Skill Groups (DB)
- Player settings (DB)
- Replays
- Personal Best
- Map Record
- Stage Record
- Bonus Record
- World Record
- Map Record
- Stage Record
- Bonus Record
- Personal Best
- Style implementation (SW, HSW, BW)
- Paint (?)
- API Integration (Repo can be found here)