A Zombie/Infection Survival Mod for Medal of Honor: Allied Assault
Originally created 2004-2006 by Ophis (with help from Falco) Completely refactored and modernized in 2025
28 Frags Later transforms MOHAA's Team Deathmatch into an intense asymmetric horror survival experience. Inspired by zombie/infection game modes, players face off in three distinct game modes where survival is everything.
One survivor vs everyone else - with dynamic scoring
- One player is randomly selected as the Survivor (Allied team)
- Survivor gets a shotgun and must survive to win
- All other players are Infected (Axis team) with pistols
- Dynamic Survival Time: Base time is 5 minutes, reduced by 5% per infected player
- Minimum survival time is 1 minute (even with many infected players)
- If survivor survives the full time, they win the round
- If infected kill the survivor, new survivor is selected
- Fair selection algorithm ensures everyone gets a turn
Multiple survivors, work together or die alone
- 3 random players selected as survivors
- Survivors must work together against the infected horde
- Requires minimum 4 players
- Round ends when all survivors are eliminated
- Cooperative gameplay encouraged
Classic infection - one infected spreads the plague
- One "Patient Zero" selected as first infected
- All players start with pistols (infected and survivors)
- Survivors must survive for 5 minutes to win
- When a survivor is killed, they become infected on respawn
- Late joiners automatically become infected
- Round ends when all survivors are infected OR time expires
- Survivors win if any survive the 5-minute timer
- Infection spreads exponentially
- Download/clone this repository
- Copy the contents to your MOHAA mod folder
- Set
g_gametype 2(Team Deathmatch) - Set
28FragsLaterto desired mode:0= Off (normal TDM)1= Outbreak Mode2= Infection Mode3= Survival Mode
- Dynamic storm effects with lightning flashes
- Fog/farplane settings for eerie atmosphere
- Custom survivor and infected player skins
- Dynamic Survival Time - Time adjusts based on infected player count (5% reduction per infected)
- Custom Scoring System - Survivor wins by surviving the full duration; time scales with difficulty
- Fair survivor selection - Tracks how many times each player has been survivor
- Proximity messages - Anti-camping system shows graduated distance hints to infected players after 1 minute of no contact:
- HOT (within 10m) - Resets proximity timer
- WARM (within 25m) - Getting closer
- COLD (within 50m) - On the trail
- Nothing shown beyond 100m
- Timer display - Color-coded countdown (white → yellow at 30s → red at 10s)
- Auto team enforcement - Players automatically placed on correct teams
- Survivor Skin: Police-themed Allied model
- Infected Skin: Prisoner-themed Axis model
- Weapons: Shotgun for survivors, Colt 45 for infected
- Sounds: Ambient thunder effects
All gameplay settings can be easily adjusted at the top of global/28fragslater.scr:
// Dynamic Survival Time (Option 3 Scoring System)
local.DEFAULT_SURVIVAL_TIME = 300 // Default 5 minutes
local.TIME_REDUCTION_PERCENT = 5 // 5% reduction per infected player
local.MIN_SURVIVAL_TIME = 60 // Minimum 1 minute
local.MIN_PLAYERS = 2 // Minimum players to start
// Proximity message system (prevents camping)
local.PROXIMITY_TIMEOUT = 60 // Seconds before showing hints (1 minute)
local.PROXIMITY_HOT = 10 // Distance for "hot" indicator
local.PROXIMITY_WARM = 25 // Distance for "warm" indicator
local.PROXIMITY_COLD = 50 // Distance for "cold" indicator
local.PROXIMITY_NONE = 100 // Show nothing beyond this distance
local.TIMER_WARNING_YELLOW = 30 // Yellow warning threshold
local.TIMER_WARNING_RED = 10 // Red warning threshold
The original 598-line script from 15+ years ago has been completely refactored:
✅ Eliminated goto statement anti-pattern
✅ Removed massive code duplication (~50 lines duplicated)
✅ Removed 50+ commented debug statements
✅ Replaced magic numbers with named constants
✅ Fixed race conditions in survivor selection
✅ Fixed memory leaks with trigger cleanup
✅ Optimized proximity checking (O(n²) → O(n))
✅ Proper function separation and modularity
✅ Outbreak Mode - Fully implemented (was just a stub) ✅ Infection Mode - Fully implemented (was just a stub) ✅ Comprehensive documentation ✅ Consistent code style and formatting ✅ Reusable utility functions ✅ Better error messages and logging
See REFACTORING_NOTES.md for complete details.
- Language: MOHAA script language
- Required Gametype: Team Deathmatch (g_gametype 2)
- Minimum Players: 2 (4 for Outbreak mode)
- Script Version: 1.0.0 (refactored) / 0.7.3 (original)
MOHAA-28FragsLater/
├── global/
│ ├── 28fragslater.scr # Main game logic (820 lines, refactored)
│ ├── dmprecache.scr # Asset pre-loading
│ └── localization.txt # UI text strings
├── models/
│ ├── player/ # Custom survivor/infected skins
│ ├── weapons/ # Weapon models
│ └── ...
├── sound/
│ └── amb/ # Thunder sound effects
├── README.md
└── REFACTORING_NOTES.md # Detailed refactoring documentation
Original Author: Ophis Original Help: Falco Refactored: 2025 Contact: ophis@daphi.co.uk Website: www.28fragslater.co.uk
Same as original 28 Frags Later mod.
This is an archived mod from 2004-2006, now refactored for modern maintainability. Feel free to fork and create your own variations!
Created sometime back around 2004 to 2006 and pushed to GitHub for storage! Completely refactored and modernized in 2025 with two new fully-functional game modes.