Skip to content

Rainyan/sourcemod-nt-anti-ghosthop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

sourcemod-nt-anti-ghosthop

SourceMod plugin for Neotokyo that limits the max movement speed while bunnyhopping with the ghost:

velocity vector plot

where:

  • v0 = initial lateral velocity
  • Δv = velocity impulse (inverse of current overspeed)
  • vf = final lateral velocity, clamped within max ghost carry speed.

The overspeed limiter only triggers at the moment of the player's feet touching the ground; air strafes are unaffected.

Example videos:

Walking cap with max speed (about 14 seconds), and ghost hop blocked by the plugin, side by side:

hop_example.webm

Unrestricted ghost hop (about 9 seconds):

hopex2.webm

Some background

NT has a max speed limitation for the ghost carrier to make rushy quick capping less effective. However, players could circumvent this limitation by bhopping and/or using the recon AUX jump (dubbed "ghost hopping").

For a long time, there's been a sort of gentlemen's agreement not to abuse ghost hopping, and anti-ghosthop rules have also made their way into many competitive rulesets.

This plugin suggests a different approach, whereby ghost hopping is restricted programmatically, rather than by ambiguous case-by-case rulings.

Gameplay changes

  • Attempting to ghost hop becomes fully allowed
    • The plugin will enforce max ghost hop speed limits, adjusted for competitive gameplay balance. Whatever ghost movement you can get away with, is by definition allowed.

Motivations

  • Encourage skill based movement, but strike a balance with not breaking game timings.
  • Make tournament rulings less ambiguous — the server will automatically decide what is too fast, instead of relying on subjective human admin intervention.

Thanks for attending my ted talk.


More info for server operators

Build requirements

  • SourceMod version 1.9 or newer
  • The Neotokyo include .inc file (place inside scripting/includes)

Plugin requirements

Cvars

  • sm_nt_anti_ghosthop_verbosity How much feedback to give to the players about ghosthopping. 0: disabled, 1: notify when being limited in text chat. Default: 0
  • sm_nt_anti_ghosthop_speed_scale Scaling for the mx allowed ghosthop speed before slowdown begins. 1.0 means class specific max ghost movement speed, 0.0 means no speed limit. Minimum: 0.0, Default: 1.0
    • This cvar replaces the old, removed cvar sm_nt_anti_ghosthop_scale, which was a divisor instead of the current multiplier.
  • sm_nt_anti_ghosthop_n_extra_hops How many extra ghost hops to tolerate before limiting speed. Resets at the end of the bhop chain. Minimum: 0, Default: 0.
    • This cvar replaces the old, removed cvar sm_nt_anti_ghosthop_n_allowed_hops, which counted from the initial hop. If you had a value of 1, it should be changed to 0 for similar behaviour.

What happened to the older versions?

The old versions are still available from the tags. Note that any tags older than the newest one are no longer supported.