Skip to content

MuffMode v0.21.87

Choose a tag to compare

@ozy24 ozy24 released this 23 Feb 17:28
· 409 commits to main since this release
  • Clan Arena/spectator: clear eliminated when switching to true spectator team so unteamed spectators can enter and use chasecam/follow normally.
  • Spectator/chasecam: allow eliminated players to receive and process queued follow targets (killer/leader auto-follow), reducing cases where they remain stuck in freecam after death.
  • Clan Arena: reset per-player damage carryover counters on round reset (dmg_scorer/dmg_team) so damage-based scoring does not leak across rounds.
  • Arena self-damage: clarified in-code behavior/docs that self-health damage is always blocked in arena modes, and g_arena_dmg_armor only controls self-hit armor absorption.
  • Clan Arena: fix round-timeout winner checks to use fresh live-player counts at timeout, preventing incorrect winner calls from stale team-living counters.
  • Fix end-of-match team score HUD showing stale tied values in TDM/CTF; now displays the final score.
  • g_ruleset 4 balance: reverted machinegun and chaingun spread overrides to defaults, reverted shotgun RS_VANILLA_PLUS override to default behavior, and increased rocket speed from 720 to 750.
  • Fix crash: P_Menu_Close now clears inmenu flag alongside menu = nullptr, preventing ClientThink from dereferencing a freed menu handle after menu close.
  • Fix sporadic end-of-map crash (seen on maps like q64/dm4): screenshot filenames now sanitize map names/path separators before screenshot command enqueue, and ExitLevel logs raw vs sanitized map names plus final screenshot command for diagnosis.
  • Harden end-of-map screenshot flow: validate duel sorted-client indices before entity access, require follow_target to be inuse before name reads, cap screenshot filename length, and guard against empty screenshot command enqueue.
  • AutoDoc tech: fixed armor regeneration cadence for non-MM rulesets to match health regen timing (500ms), while preserving MM's 1s cadence.
  • Fix crash: close any open player menu in MoveClientToIntermission to prevent stale svc_layout writes after match end, which caused a renderer double-begin-frame assertion (g_bInValidFrame).