In Source, a player can only stand on a angled surface if it is less than 45.573° from the horizontal. If the slope is greater than this, the player slides down it. However, if the player holds the direction key pointing into the slope, they can stall themselves from falling and remain “airborne” without actually moving downwards. This can be exploited by increasing the air acceleration value to allow the player to convert their downwards speed into horizontal speed, and their horizontal speed into upwards speed.
A spinoff mode formed from the Surf game mode, players can create and complete sequences of locations to surf to, known as tricks, for XP and bragging rights.
Unlike regular surf, tricksurf typically has loosely defined goals that are not intentionally placed by the author of the surf map. Sometimes the most fun part of tricksurf is developing new tricks that are flashy and difficult, and then challenging your friends.
Slick is a defrag mechanic that gives frictionless ground movement. Slick is distinct from the slide mechanic that func_slide provides. There are three ways to add slick to a map: the func_slick brush entity, the %compileSlick material paramater, and the SetSlick player input.
The ammo system allows mappers to control how many shots the player can fire from weapons that use ammo. All defrag weapons, the RJ rocket launcher, the sticky bomb launcher, and concs can be controlled with separate ammo types. The default state for the player is infinite ammo, but the player’s ammo can be changed with player IO inputs and entities. Additionally, an ammo limit can be set that doesn’t allow the player to have more than a certain amount.
This guide covers all of the supported chat commands and potential inputs they have. These commands can be entered in chat at any time regardless of being in a lobby or not.
All commands are activated by using "/" or "!" or "." and then the trigger keywords listed below. Example: "/spec" or ".spec" or "!spec" all trigger the "Spectate Player" command.
Do not make "say binds"!! Instead, prefer to create binds to the linked commands. There will never be any exclusive chat commands; they all directly tie to console commands/variables!
Collectibles are any entity that the player must interact with to continue in the map. They can be thought of like pickups, but any entity can be a collectible, so long as the player can interact with it to “collect” it. The entity filter_momentum_collectibles is used to control entities based on how many collectibles the player has gathered.
Content on the site is written using Markdown, a simple and lightweight markup language. This allows docs pages to be written in a much more accessible format than HTML.
If you're having trouble with any parts of this guide, please feel free to ask for help in the `#docs` channel on our [Discord](https://discord.gg/momentummod). It's completely fine if you've not used a command line or Git before, we're happy to help you through the process.
Before you start to create your ramps in hammer, there are a few factors you should consider:
How steep do I want the ramps to be?
A ramp that is too steep / wide may be considered awkward to board.
People tend to use a 5:4 ratio for the dimensions of their ramps
What size do I want for my ramps?
People may find themselves sliding off the bottoms of small ramps.
They may feel like they are going slow on oversized ramps, it is important to find a balance.
How do I want to detail my ramps?
Will models be needed to achieve the visual style, or can it be brushes?
These characteristics of your ramps will inevitably be refined through testing, but it is a good idea to start off with a plan for how you want the surf to feel.
Look at different surf maps that you enjoy and try to get an idea of how exactly you want yours to pan out.
When the game loads into a map of a known gamemode, a specific config file located in momentum/cfg/ is executed if it exists.
The names of these config files correspond to the gamemode prefixes found in map names.
For instance, momentum/cfg/sj.cfg will be executed when loading a sticky jump map, such as sj_amazon.
Two powerups are implemented: Haste and Damage Boost. They can be given or removed with these inputs:
SetHaste (time in seconds)
SetDamageBoost (time in seconds)
If time = 0, the effect will be removed. If time < 0, then the effect will last indefinitely until removed.
There are also powerup entities: momentum_powerup_haste and momentum_powerup_damage_boost. They both take a ResetTime key like the weapon spawner entity. The haste powerup takes a HasteTime key, and the damage boost powerup takes a DamageBoostTime key. They are both specified in seconds the same way as the inputs.