Skip to content

[Request] Add a survivor emergency-rescue plugin: teleport + health/incap-count restore #1012

Description

@apples1949

[Request] Add a survivor emergency-rescue plugin: teleport + health/incap-count restore

Is your feature request related to a problem? Please describe.

During a match, on top of normal fighting and teamwork, there are various unintentional accidents that make the game impossible to continue normally. The common cases (not limited to these) are:

  1. A survivor gets stuck somewhere by a bug and cannot get out
    • For example: stuck inside a map-model gap, stuck on geometry where the player cannot stand, pinned by a door/lift, etc.
    • The player cannot move and cannot free themselves, so they can only wait or disconnect. The team ends up a player short, which affects fairness for both sides.
  2. A survivor takes a huge amount of damage from a bug and is immediately incapped or killed
    • For example: an abnormal damage source, broken collision/fall damage, or a bug in a script or entity causing a large instant damage spike.
    • This damage does not come from a normal special-infected or opponent attack, yet it costs the survivor team health, incap counts, or even a whole player.

All of these accidents interrupt the normal flow of the game: they cannot be reasonably undone through in-game mechanics, and they easily cause disputes (one side thinks it was robbed, the other thinks it gained an unfair advantage). Today the only options are to restart the round or have both sides negotiate something on the fly.

Describe the solution you'd like

A new server plugin (SourceMod plugin), intended for admins/referees, providing the following to handle the accidents described above:

  1. Teleport
    • Teleport a survivor to a specified position
      • Support teleporting to the position the admin is currently aiming at (so the admin can simply walk/look at the target spot).
      • Support teleporting to preset saved coordinates (key map positions), to respond quickly to common stuck spots.
    • Teleport a survivor next to a specified teammate
      • Let the admin pick a target teammate and move the stuck player next to that teammate.
      • The destination should be safety-checked (do not teleport into walls, into the void, or into a group of special infected, which would cause a second accident).
  2. State restore
    • Set a survivor's health
      • Allow specifying the player and the target health (e.g. restore to 100, or an emergency amount).
      • Preferably also support restoring temporary health / health while incapped.
    • Set a survivor's incap count
      • Allow specifying the player and the target incap count.
      • Useful when a bug causes an extra incap to be counted: the value can be rolled back to the state before the accident.
  3. Supporting requirements (suggested)
    • Permission control: all commands restricted to admins/referees (ADMFLAG_*), so ordinary players cannot abuse them and break balance.
    • Action log: every teleport / health change / incap-count change written to a log (who did what to whom, old value and new value), for post-match review and dispute resolution.
    • Immediate feedback: a clear success/failure message for the operator (e.g. unsafe destination, target does not exist, invalid parameter).
    • No impact on normal flow: when unused, the plugin should be completely inert and must not modify normal game values or event logic.

Describe alternatives you've considered

  • Handling it entirely with existing admin commands (e.g. kicking/reconnecting the affected player, or an admin slay/teleport command). This is unreliable: it loses the player's state, cannot restore health or incap count, and some teleports can land the player in an unsafe spot.
  • Restarting the round or the whole match. This is disruptive and wastes a large amount of match time for a single stuck or bugged player.
  • Relying on players to negotiate and play on with a disadvantage. This is not standardized and frequently leads to disputes.

Additional context

  • Example scenarios:
    • Survivor A is stuck in the terrain near the Tank room door; the admin teleports that player next to teammate B and the match continues.
    • Survivor C falls and gets incapped because of a map bug; the admin restores their health to the pre-accident value and rolls back the extra incap count.
    • Survivor D takes an abnormally large amount of damage from an entity bug and dies; after confirming the death was not normal, the admin restores their state to keep the teams even.
  • The core purpose of this feature is accident recovery, not combat assistance, so it is strongly recommended that it be admin-only by default and that a full log be kept.
  • The exact command names, parameter format, and destination safety-check implementation can follow the existing code style and architecture of the plugins already in this repository.
  • Thank you to the maintainers for the continued work on competitive L4D2 plugins. I hope this can be considered, so that bug-induced interruptions have a more standardized way to be recovered from.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions