0.8.6 is finally here and HOO BABY it’s a big one. I promise I’m not trying to say this every update, but this one’s really covering a lot of ground, and is probably second to 0.8.0 in terms of size so far. It always amazes me just how much this game has grown. We went from not really knowing what we were doing, to planning with regular meetings, to solidifying the brand and vision of Momentum, to getting a freakin’ Steam Store page and 1.0.0 release date. It makes me really happy that others are seeing the value in this project, being absolutely patient with us and even helping us out! And I’m so proud to be part of a team that’s going to deliver a kickass game!!

Anyways, enough sentimental thoughts (what is this, 1.0.0’s release?), and onwards to the goodies!

What's In Your Drawers?

0.8.6 introduces yet another major piece of UI: the menu drawer panel.

This panel lives off to the right hand side of the main menu, sliding (like a drawer) out to show additional information regarding you, your lobbies, and our changelog.

Starting with the “Profile” tab, you can keep up with your cosmetic level, XP to the next level, recently submitted runs and stats. This will be fleshed out more in the future, especially the stats sub tab!

Next, the tab I’m really excited about, “Lobby”. This tab now lets you browse public and friends lobbies when not currently in one:

As well as letting you see your lobby’s members and chat, even from the menu!

This did replace the in-game lobby members panel from before, in order to centralize and hopefully simplify our UI and UX. We also moved the changelog list to this panel as its own tab, as part of that simplification:

You may have also noticed the main menu background has been converted to use a model panel instead of a background map. This is because the background map, which even when just a texture and a model, took a significant amount of time to load every boot, just to effectively only show a rotating model. Switching it out with a model panel that asynchronously loads a model on game startup has significantly improved our game’s load times. It also gives us way more control over the model that shows there:

The user component in the bottom right replaces the old lobby buttons, as a quick overview of your current level and XP. We plan to be updating this component with more information and customization options in the future!

Accelerate Your Hops

Teased at the end of our previous version recap video, 0.8.6 officially introduces the Accelerated Hop game mode!

What’s Ahop? Accelerated Hop comes from the movement found in the New Engine (Steam) version of Half-Life 2. This mode is quite literally backwards compared to others in the game; you gain speed by jumping either completely backwards or pressing the back movement key at the right time. You can learn more about the origins of ABH and its variants on the SourceRuns wiki page for it.

Ahop holds a special place in my heart; before Momentum Mod I used to heavily speedrun new engine Half-Life 2, even holding the World Record in the Any% category for a while. I got my goal time and moved on, but that doesn’t mean I don’t want any more Ahop in my life!

With 0.8.6 comes six Accelerated Hop maps of varying difficulty:

  • ahop_timescale by Ninja Cookie
  • ahop_reptile by Chili_N_Such
  • ahop_easy by TraZox
  • ahop_gocazon by KeagenExtremeGaming
  • ahop_coast by Imbellis (and Valve)
  • ahop_orange by Mac

We plan to add more Ahop maps in the future, including yet another familiar face from Half-Life 2...


A Future For Tricksurf

Ever since the fateful day that Z closed his servers over two years ago, the Tricksurf community hasn’t seen a proper revival for its beloved mode. Starting with 0.8.6, we hope to finally step towards rekindling the fire to a once truly awesome game mode.

What’s Tricksurf? Beetle made an excellent video that explains the mode pretty well:

But for those in a hurry or something: Tricksurf is a spinoff mode from Surf that has a more abstract goal. Instead of having a map defining a static start and end point, Tricksurf maps are usually old combat surf maps that have triggers placed all around them; on every ramp, platform, and some even in mid air. Players can define “Tricks” which are just paths of triggers to surf through, and maps can have any number of Tricks in them. The goal when playing the mode is to complete every trick for a given map, which have varying difficulty depending on the required conditions to meet or perform. Tricksurf still offers leaderboards, but for time as well as average speed of the player.

As a side note, Tricksurf is perfect for our game since we don’t plan on supporting combat surf, yet still allows us to add otherwise unused classic combat surf maps from the era!

I’d also love to take some time to outline our plan for Tricksurf and how we plan to make it even better than before.

Tricksurf’s base implementation comes with 0.8.6, including the initial Trick zone trigger, the Trick system which includes creating and tracking Tricks, as well as the skeleton of the UI for selecting tricks to track as well as teleporting to map teles.

The next thing to tackle is updating Momentum’s VBSP to read zones from a VMF and to spit them out into the needed .zon file, have the timer properly run when tracking a trick, and properly record replays for tricks. Any necessary UI updates will also come around here.

After that comes the initial work to get the Community tricks tab working. The goal of the Community tab is to streamline the Trick submission process, basically making it the “Steam workshop” for Tricks, allowing others to create, submit, play and +1 the tricks that they complete and really like, in order to make it easier for Trick Editors to see fan favorite, yet unofficial tricks.

Then comes the Official tricks tab, which holds officially-added tricks that have leaderboards and grant XP upon completion. Alongside this tab come community-appointed Trick Editors, who have the ability to say which tricks from the Community are good and become Official, and which tricks aren’t so great and need tweaking before being accepted. This is probably the last step we’ll need to take for a full 1:1 feel of Tricksurf from the era of Z’s servers.

Then comes the future of this system. Being able to acknowledge the requirements of the mode from the start means we’ve been designing it to be as abstract as possible in the codebase. This allows us to potentially expand it to other gamemodes, and perhaps pull the system out to an overarching “Tricks” game mode, with the sub-game mode chosen for movement (Tricksurf, Trickhop, Trickjump, etc). Exciting stuff!

We’ll have more information regarding the Tricks system, how tricks are created and defined, and more in future updates, but please feel free to drop into our Discord server and contribute to the discussions taking place in the Tricksurf channels!

Hardcore Parkour

Did you know that Titanfall 2 runs on a heavily modified version of the Source engine? And did you know that Titanfall 2-inspired movement is going to be making its way into Momentum Mod under the "Parkour" game mode?

What’s Parkour? Parkour is the... you know what, just go play Titanfall 2. Seriously, just buy the game if you don’t have it, it’s on Steam, and play the campaign. Titanfall 2 has one of the best single-player campaigns I’ve played since Portal 2. Absolutely underrated gem of a game. Our Parkour mode is aiming to be like Titanfall 2’s movement, with wallrunning, slide hopping, and maybe even some damage boosting.

But that’s right, 0.8.6 adds the stubbed Parkour game mode, and the implementation really got a fantastic kick start thanks to the other really awesome MMod. No not that MMod, I’m talking about the Half-Life 2 Mobility Mod by rob! And with some extra love put in by Fzzy from the Titanfall 2 Speedrunning community, we have a wonderful barebones implementation!

Note that I said “stubbed” and “barebones” implementation. What this means is that 0.8.6 is not officially adding the full mode, but rather introducing the skeleton of the code, ripe for tweakers and tinkerers to mess around with to make it as 1:1 as possible.

The goal with stubbing modes is allowing people in the community to progress the mode further while the core Momentum dev team focuses on much-needed features for the game, thus parallelizing the development of gamemodes. The goal here would be to add/prioritize the modes only if the community gets it so far along to where it’s trivial for us to. If this sounds familiar, it’s because it’s exactly what happened with the Rocket and Sticky Jump modes and their community! Otherwise, the mode is punted further back until we get time to work on it, most likely after 1.0.0.

Concing and Defragging Like It's 1996

Speaking of “stubbed” and “barebones” implementations, 0.8.6 also introduces the stubbed skeletons of the Conc and Defrag gamemodes.

Squeek, the lead dev from the Fortress Forever game has given us full permission to use their implementation of the TFC Concussion grenade and TFC-like movement to get the ball rolling on our Conc game mode. Hat Kid did an excellent job bringing in the initial conc grenade and some of the movement, and we plan to further our compatibility with TFC style movement in future updates!

And as for Defrag, we’re aiming to strike a balance between the original Quake mode and modified CS:S-like movement we already have. It’s the most underdeveloped/barebones mode so far, and we can’t wait to update you more on the direction we’re choosing to take for it in future updates!

Now That's a Shiny Gun!

0.8.6 also features the initial re-working of our weapons by Vortex to use our wonderful PBR shader and more of Monolith’s beautiful sounds. You can get a quick overview of some of the changes here:

Full Changelog

This update brings a whopping 418 commits from 15 (!!!) lovely contributors:


  • Run safeguards (814, 829, 54, 977, 993)
  • Full Ahop gamemode support
  • Stubbed tricksurf implementation (999, 1029)
  • Stubbed parkour game mode & movement by rob and fzzy (841, 1015, 1027)
  • Conc stubbed implementation (1044)
  • Defrag stubbed implementation (1045)
  • Added Ahop & the other stubbed gamemodes to the website (website/420)
  • Added sprint binding to keybinds (863)
  • Added ability to have subdivision markings for any progress bars through res file (originally suggested to be for sticky charge meter). Off by default. (880)
  • Added checkbox in gameplay settings that toggles viewmodel visibility (896)
  • Added (back) menu background blur (908, 963)
  • Tree sway, Lightmapped generic flashlight-based phong shader (901)
  • Added the ability to turn off speedometer autolayout in the speedo VDF and added easy layout overriding functionality within the VDF (899)
  • Added NetBeans project for Linux building & made it possible to compile without sudo (894)
  • System for recording a history surface interactions for the player (893)
  • Added missing tooltips throughout the settings panel (853, 845)
  • Added documentation of various entities (docs/59)
  • Added a command for resetting to the last progress trigger (904)
  • Catapults! (trigger_momentum_catapult entity) (926, 964, 965)
  • Togglable inputs; toggle_jump, toggle_speed, toggle_walk, and toggle_duck for all gamemodes (929)
  • Viewmodel offset commands (945)
  • Main menu drawer (953, 1042)
  • Depth of field effects (967)
  • Momentum capture point assets (997)
  • More tool textures (1004, 1006)
  • Added cvar for whether the settings remember last opened tab (1007)
  • Cvar for auto-untoggling toggle_* inputs when hitting a fail teleport (980)
  • “Fail” bool property for momentum teleports (980)
  • Added toggle inputs to saveloc state (980)
  • System for adding your own HUD menus (1033)
  • Add flag for end zones to not submit run (just cancel timer) (1040)


  • Fixed broken TF2 fire particles. (839)
  • Fix bug where player would get stuck when closing the settings panel (854)
  • Fixed chat not accepting non-ascii characters (856)
  • Fixed timer not resetting its color on map change (857)
  • Fixed camera bug related to ducking while teleporting via saveloc (860)
  • Inverted logic on the “allow overlapping keys” setting; checked means “on” now (863)
  • Fixed settings panel having a deadzone on the vertical scrollbar (863)
  • Fixed last weapon (lastinv) not being defaulted to the secondary weapon on map load (876)
  • Prevented leaderboards panel from being togglable when spamming m2 on game load (888)
  • Fixed trails stacking when changing your trail while spectating someone (889)
  • Fixed view jumping to header when clicking about/gamemodes/links for the first time (website/434)
  • Fixed a rare case where stickybombs weren’t firing (right at the end of the buffer) (913)
  • Fixed autocomplete for long replay names (903)
  • Properly loading the engine-default backup skybox for when a map’s skybox is missing (900)
  • Put the player on ground on mom_restart, fixing players getting stuck on map restart on certain start zones (895)
  • Fixes to some odd lobby bugs revolving around not properly checking whether a player was in your lobby. Upped ghost update rate from 25 to 40. (873)
  • Prevented crashes when there are more than 4096 static props (861)
  • Fixed incorrect noto sans regular font (840)
  • Fixed missing shaders causing crashes (missing wireframe_dx8 fallback shader) (831)
  • Stopped sticky charge sound on weapon switch (830)
  • Fixed a rare crash on map change (825)
  • Prevented multiple publish docker actions happening together (website/429)
  • Fixed color of GitHub/Twitter icons on docs site (docs/55)
  • Fixed in-game texture browser (916)
  • Fixed shader issue on linux caused by the shader override (925)
  • Fixed crash when jumping/interacting with func_train without a weapon (927)
  • Fixed a crash when enabling viewport downscaling (927)
  • Fixed a run submission failure; solved by removing sv_alternateticks (927)
  • Fixed charge animation not being reset to idle when charging is disabled (938)
  • Fixed the momentum icon on the taskbar being shown as the HL logo on linux (948)
  • Fixed water fog problem on PBR shader (955)
  • Fixed light calculation in PBR shader (955)
  • Fixed “undefined base class Toggle” error in hammer (966)
  • Fixed softlock on main menu (985)
  • Disallowed muzzle flash when viewmodel is hidden (998)
  • Fixed PBR not respecting render alpha (1001)
  • Fixed settings on different tab being in focus (1011)
  • Fix shotgun cock sound being played every 8 shots when viewmodels are off (1016)
  • Fix color for PBR materials on models (1020)
  • Fixed “Use Defaults” button for keybinds list causing softlock (1019)
  • Fix speedmod’s disabled buttons not resetting when saveloc teleporting outside of it (1025)
  • Fixed hud menus overlapping chat (1037)
  • Fixed crash when opening & closing map info panel too quickly (1039)
  • Fix slide for RJ/SJ and non-autohop gamemodes (1055)


  • Renamed mom_reset to mom_restart_stage & merged mom_stage_tele into mom_restart_stage (826, docs/52)
  • Consolidated all automatic weapons down to 1; removed rifle & lmg, renamed smg to machinegun. For mappers, it is now “weapon_momentum_machinegun” (836)
  • New stickybomb and rocket effects, moving away from relying on TF2 particles (862, 974)
  • Migrated credits to use a VGUI frame instead of a map (rip credits.bsp). Also updated credits (871, 875)
  • Improved the website’s gamemode gallery (website/426, website/431)
  • Removed paintgun & moved paint settings to gameplay settings tab (890, 968)
  • Replaced website logging with Bunyan + Seq (website/432)
  • More intuitive start marking; create/clear on settings page, printouts alongside savelocs, start mark creation when savelocing in a start zone with a hud hint of the bind for it (905)
  • WVT support for PBR, PBR using mrao/emission scale for 20b; fix for LightMappedGeneric when using lighting preview (901)
  • Improved some error outputs in map compile tools (898)
  • Spelling fixes in many source code files (881)
  • Improved CSS and TF2 file mounting, fixing ambient sounds not loading properly on Linux (874)
  • Moved main menu to client (872)
  • Allowed fps_max to be changed in-game (869)
  • Unmount many unneeded TF2 particles (858)
  • 0.8.5 website cleanup; updated footer links, fonts, logo, images, & twitch strategy (website/418)
  • Update website’s main page gamemodes section; new rj/sj webms & circle timer (website/431)
  • Lowered docker image size from 1.3GB+ down to ~200MB (website/423)
  • Updated documentation website’s images, logo, and favicon (docs/51, docs/56)
  • Show start zone exit speedometer on linear maps (920)
  • Improved loading of speedometer data (924, 975)
  • Removed all pause commands (927)
  • Increased autocomplete length for commands (927)
  • Redirected the “retry” command to “reload” (944)
  • Allow WVT PBR to have parallax (955)
  • Improved stickybomb count hud element (935, 975)
  • Replace main menu map with model panel (962, 984, 1008)
  • Improved weapon models, animations, and sounds. Most retextured with PBR (933, 954)
  • Improved glow effects (969)
  • Replaced “airborne_only” field in func_nogrenades with a prevention type, allowing for sticky fizzle on land and rocket/sticky fizzle on trigger entrance (961)
  • Let escape key & other leaderboard binds close leaderboards (994)
  • Update Steamworks to v150 (1000)
  • Less machine gun recoil when strafing/on ground (1022)
  • Add [Development Build] to the version number when game is in debug mode (1038)
  • Save start marks to savelocs file (1046)
  • Prevent teleporting to a stage while in it - stops abuse of the command (1052)
  • Ability to draw zone faces, not just outlines (986)

Key Priority Update (Calling All Mappers!)

Are you a mapper, or do you know any mappers that could utilize Momentum to help make maps? Do you want to test our custom version of Hammer that has things like working Lighting Preview and built-in Hammerpatch? 0.8.7 is going to be a big mapping update, and we need all the help we can get testing our improved Hammer, as well as all the new and improved entities we’re going to be adding! Please PM me (Gocnak) on Discord with proof of your mapping chops and I’ll get you a key!

As we’re getting ever-closer to that 1.0.0 release, I want to thank everyone for wishlisting and spreading the word about our Steam Store page, as we have over 1700 wishlists and counting!! It’s really exciting for us to see this, and really motivates me personally to make this the best game it can be!

For those who haven't already, please consider joining our Discord server to stay up with our very active progress!

And as always, thanks for watching reading, and until 0.8.7,
Nick (Gocnak) K.
Momentum Mod Project Lead