What is Defrag? # Defrag is considered the grandfather mode for all of Momentum Mod’s supported modes. Defrag is based on the movement found in Quake, specifically Quake 3 Arena, and is broken into two modes, “VQ3” and “CPM”.
History of Defrag # TODO gotta whip out the VCR tapes
How Defrag Works # TODO
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.
func_slick # The func_slick entity is a brush entity that will give the slick effect to the player when they stand on it. This entity has no special properties.
...
Creates a solid slick surface. This entity has no additional keyvalues.
{:.notice–info} This entity is always forced to use BSP collision, overriding any mapper-set value.
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.
...
Defrag physics mode (0 = VQ3, 1 = CPM).
This entity gives the player the damage boost effect in defrag.
Keyvalues # Reset Time (ResetTime<float>)
The amount of time in seconds before the powerup can be picked up again. If this value is negative, then the powerup can only be picked up once.
Damage Boost Time (DamageBoostTime<float>)
The amount of time in seconds for the damage boost effect to last. If this value is negative, then the effect is indefinite and will last until changed to be finite or 0.
...
This entity gives the player the haste effect in defrag.
Keyvalues # Reset Time (ResetTime<float>)
The amount of time in seconds before the powerup can be picked up again. If this value is negative, then the powerup can only be picked up once.
Haste Time (HasteTime<float>)
The amount of time in seconds for the haste effect to last. If this value is negative, then the effect is indefinite and will last until changed to be finite or 0.
...
Before you start, you should know that maps with simple geometry work best for porting. Complex geometry can cause invalid solids as vertices tend to shift around if they are off grid, and you will be forced to recreate a lot of the brushes manually. Patches and props cannot be ported across either, so choose maps without those or you will have to spend a lot of time manually replacing them in Hammer.
...
Defrag CPM aircontrol multiplier.
Defrag CPM airstrafe acceleration for A/D movement.