UNGODLY

Mod Series — Installation Manual

UngodlyAI v2.17.0 · UngodlyBallistics v3.0.0 · UngodlyGFX v1.0.0 · Killstreak Announcer v1.1.0

by StixsworldHD (StixsmasterHD4k)

Phase Two · Companion Plugin

Killstreak Announcer v1.1.0

KILLSTREAK ANNOUNCER v1.1.0 — Unreal-Tournament / Quake-Style Killstreak Announcer
Plugin DLL
EasyRed2.KillstreakAnnouncer.dll
GUID
com.stixsworldhd.easyred2.killstreakannouncer
Config file
com.stixsworldhd.easyred2.killstreakannouncer.cfg
In-game window
None by design — the .cfg file is the whole control surface

An Unreal-Tournament / Quake-style killstreak announcer for Easy Red 2. Every kill, multi-kill, spree, headshot, capture, lead change and match result fires a punchy voice callout pulled at random from a library of 701 announcer clips across 50 event categories, so it never feels repetitive. Pure flavor, zero gameplay changes — it only listens to the game and plays sounds, through hooks verified against the v2.0.6 decompile, so callouts fire exactly when the matching thing actually happens to you — not your squadmates, not the enemy.

New in v1.1.0 — a much bigger sound library

REQ

Requirements: Easy Red 2 v2.0.6 (the build this was reversed against) with all DLC, and BepInEx 6 (IL2CPP, x64) already installed and run once — a BepInEx folder must already exist in your game root. This mod does not include BepInEx; if you don't have it yet, do the loader install first.

Install

01

Field Order 01

Know the two destinations

The archive holds the plugin, the voice library, and the README:

EasyRed2-KillstreakAnnouncer-v1_1_0.rar
|- EasyRed2.KillstreakAnnouncer.dll     <- the mod (59 KB)
|- KSounds\                             <- the voice library: 701 WAVs
|  |- Sounds1\ ... Sounds11\
'- README.txt                           <- full event + settings reference

Two things must be true after installing:

Easy Red 2\
|- Easy Red 2.exe
|- BepInEx\
|  '- plugins\
|     '- EasyRed2.KillstreakAnnouncer.dll
'- KSounds\                             <- NEXT TO BepInEx, not inside it
   |- Sounds1\
   |- Sounds2\
   '- ...
02

Field Order 02

Launch and verify

Start the game and check BepInEx\LogOutput.log (or the console). A healthy load shows the mod's banner and the index line:

EasyRed2 Killstreak Announcer v1.1.0   <- the banner
Indexed 701 sound files across 50 event categories (0 unmapped)

Then go earn one: your first enemy kill of a battle calls First Blood.

03

Field Order 03

Tune it — in the .cfg, on purpose

There is no in-game menu and no console commands by design — the config file is the whole control surface:

Easy Red 2\BepInEx\config\com.stixsworldhd.easyred2.killstreakannouncer.cfg

It's plain text: edit with Notepad while the game is closed, then relaunch. Every entry carries a built-in description, its default, and an allowed min/max; a pre-filled copy generates on first launch, and deleting the file regenerates factory defaults. Highlights:

What triggers what

The mod reacts to real in-game events for the locally controlled player. When several things happen at once, a small priority queue plays the big moment first (a Monster Kill beats lead chatter) and drops minor lines rather than overlapping them.

You do this in-gameYou hear
First enemy kill of the battleFirst Blood
2–9+ kills in quick successionDouble → Triple → Mega → Ultra → Monster → Ludicrous → Wicked Sick → Holy Shit
Kill milestones without dyingKilling Spree → Rampage → Dominating → Unstoppable → GodLike → Berzerk
Lethal helmet headshotHeadshot (and Headhunter every N headshots)
Grenade / explosive kill streaksExplosive spree (Flak Monkey / Combo)
Kill while sprintingAdrenaline / Speed (rare, on a cooldown)
Kill while injured / low HPClutch / Last Man Standing
Destroy a vehicle + its crew (new)Road Kill, Road Rampage, Pancake… — crew also feeds your multi-kills & sprees
Capture an objective / collect a dog tag / reviveCapture / Nice Catch / Assist
Your faction takes or loses the leadTaking the Lead / Lost the Lead
Die repeatedly with no killsLosing Badly
Battle starts / endsPrepare / Begin · Victory (Flawless Victory if you never died) · Defeat
(optional) Match-clock warnings5/4/3/2/1-min, 30/20-sec, final 10…1 countdown

The bundled README lists the complete sound-to-event mapping — all 50 categories with per-event clip counts and representative file names, from 12 First Blood takes to 80 countdown clips.

Performance & behavior

MP

Multiplayer & the Ungodly trio: this mod is a pure listener — it hooks the game's own kill / score / battle events, plays a sound, and writes nothing back, so there is no gameplay change to sync and nothing for other players to see. It reacts to the locally controlled player only, and it stacks cleanly alongside UngodlyAI, UngodlyBallistics and UngodlyGFX.

Engineering footnote — the IL2CPP war stories

Two early crashes in this mod's history are documented in the README because they're classic IL2CPP traps. v1.0.2: the injected MonoBehaviour exposed methods taking the mod's own enum; Il2CppInterop converts all instance methods of an injected type and waves every value type through its check, then throws resolving a non-existent IL2CPP class for the enum — fixed for good by splitting into a paper-thin injected shell plus a separate non-injected logic class the engine never sees. v1.0.3: the kill hook sat on a method taking Nullable<Vector3>; Harmony's trampoline must box every original parameter, and for a generic value-type instantiation the cached class pointer resolves to zero, throwing on every call — fixed by moving to the parameterless GameStatistics.OnPlayerGetKill() and the clean BattleManager.OnWin. If you mod IL2CPP games yourself, those two paragraphs in the README are worth the download alone.

Turning it off / uninstalling

  1. Mute everything, keep installed: set MasterEnabled = false in the .cfg.
  2. Uninstall: delete the plugin DLL (or its subfolder) from BepInEx\plugins\, and optionally the KSounds folder and the .cfg.

Get the archive on the Downloads pageRun the full post-install checklist