Preamble and credits
====================
Mod created by Rroff (all coding, models, etc. original work unless credited otherwise)
Alpha release for 8th April 2020
Originally started a mod to replace monsters in the maps with harder ones but ran into some issues
then started adding features for my own amusement but thought I'd release what I've done
This is very much an alpha release - I'm no C programmer and have limited potential to test
Many models, item names, descriptions and icons are placeholders and lack RTX feature/material integration
additionally many limitations due to sticking with the game logic code (game dll) rather than implementing
at engine level so as to avoid having to keep updating the main exe when new RTX updates are released.
Intention in the longer term to use this as a base for creating a custom coop campaign.
Most features are created with the intention of using the skill level 3 (nightmare) ingame and not tested
with lower skill levels.
Can ignore or use most features as you like.
The main features of the mod is an attempt to make the AI a little less static and increase the difficulty
of many maps with more monsters, new monster attacks and some randomness to spawns and generally
shake up the experience a little. Some maps have additional set piece fights or doors that need a security
key dropped by a monster elsewhere to open.
Also some additional items and powerups/modifiers that change up the gameplay - these can be activated from
the inventory when acquired.
Monsters will try to be more mobile and some can jump (currently a bit glitchy and silly but kind of fun)
they will also in some cases try to use alternative paths to the player or avoid friendly fire, etc. (also glitchy).
There are some additional features for coop including a hud to show the status of other
players (due to misusing a menu feature to make it work you need to hit escape twice to get to the main menu while it is
active and things like the help screen might be a little delayed opening/closing).
Respawn flares that can be selected by touching them or +use key.
Optional player classes which are intended for future use really as they are likely unbalanced with the stock maps.
Due to the scale of the mod there are probably things I've forgotten to mention here.
Credits:
While not directly involved in the creation of this mod I'd like to mention the following who have generally
helped me with quake modding in the past
Jah Raphael (formerly id software) for general quake related coding advice
Argh! (Tim Wright) - code used to modify id player model assets without having to redistribute
David Hyde, Mad Dog and the rest of the Lazarus team
Keybinds and setup
==================
Extract and place the moros folder in the quake 2 folder where q2rtx.exe resides.
Use either +game moros in the command line or \game moros in the ingame console to start the mod
You will need a key bound to +use (i.e. \bind mouse3 +use) for some features:
- activating certain items and actions
- selecting respawn flares in coop
- collecting items from monster/soldier bodies with some modifiers
- destroy player turrets
- shove monsters
- make friendly NPCs follow/unfollow the player
Additional shortcut binds for coop player classes:
ability1 - medic station, turret, taunt
ability2 - stim, ammo station
ability3 - explosive box
You should start a map at least once with g_patchgrunt set to 1 to copy over and modify the files
needed for friendly NPC feature to work. Your baseq2 folder will need a populated players folder
for this to work correctly. (Due to legal reasons the files needed for this can't be distributed
as part of this mod).
New cvars and commands
======================
g_ejectbrass - 0, 1, 2
Some weapons eject spent casings when fired - 0 disables, 1 uses a limited amount, 2 doesn't remove
spent casings until the game needs resources.
(Warning might break the game, not recommended for network play)
g_healthbars 0, 1
Players have a health bar over their heads, 0 disables - main use coop mode, disabling in single player
might avoid possible issues due to the additional modelindex it uses
g_doacidfx 0, 1
Certain projectile weapons (mostly the mutant acid spit) will update their angles more frequently when
set to 1 but uses more network bandwidth so might be useful to disable in coop
(Warning might break the game, not recommended for network play)
g_coophud 0, 1
Adds an overlay in coop mode showing other player's status uses more network bandwidth and a little
glitchy in implementation due to the limits of Quake 2. You will have to press escape/menu key
twice while it is showing to get to the main menu, once to clear the coop hud and again to open the main menu
cl_hudfix 0, 1
Client side variable - coop hud normally sends player icons for all models/skins if not all clients have
the same files you will get a bunch of errors - set to 1 to avoid and display all players with default icon
g_sillygore 0, 1, 2
Enables additional gore decals, weapon impact decals and doesn't free them unless the game needs resources
can break things in coop, etc. very heavy on network bandwidth.
set to 2 turns some settings up to higher levels
(Warning might break the game, not recommended for network play)
g_coopflags 0, 1
Currently not used for flags, setting to 1 enables spectators in coop that can take some control of monsters
current implementation is very crude and broken - not very useful just done for testing
g_moremonsters 0, 1
Removes some limits on how many monsters are spawned on a map but might break things recommended 0
(Warning might break the game)
g_hardmonsters 0, 1
Sets coop level roaming monsters spawns to a harder difficulty
g_patchgrunt 0, 1
Used to control the patching of player models into the mod folder to use as friendly NPCs - this will need to be
performed at least once [offline] to generate the assets initially and possibly after any mod update afterwards you
can disable but doesn't hurt to leave on
sv_maxreuse 0, 8 - 300
Recommend leaving at 0 (automatic) - overrides automatic allocation of a pool of disposable entities
g_hordemode 0, 1
Enables mini-horde mode on certain maps you need to beat to progress
You can jump to these with the commands:
map base2
map "mine2$mine1"
map fact1
map "waste1$power2"
(quotes around the mapname are important when spawn target is provided)
g_gibcount 3 or higher, default 12
Additional gibs created when a monster is gibbed when sillygore is used - leave on 12
noflare - clears out any selected flare spawn point in coop so you respawn at the start of the map
Changes specific to monsters
============================
Berserk - Is now faster moving, attacks on the move and can jump, re implemented jumping slam attack when target has low health.
Brain (technician) - Chest opening tentacle attack has additional tentacles for medium range, launches a decapitated head as a projectile attack.
Chick - Can teleport in and out of combat, has power shield for extra defense, able to jump
Float (head in a jar) - Re implemented lightning zap attack.
Gunner - Now aim their grenades a bit rather than just spam them horizontal.
Hover (Icarus) - Has active defense that can destroy hostile rockets and grenades.
Infantry - Faster moving, can jump.
Medic - Spawns a hovering heal bot to heal itself and other monsters, has parasite style drain attack which also leaches health from target to heal itself.
Mutant - Has new rock flinging and acid attacks.
Parasite - Drain attack pulls player towards it and leaches health to heal itself.
Soldier - Basic strafing when attacking, can jump. Machinegun variant has an underslung grenade attack.
Supertank - Additional grenade launcher attack
Tank Commander - Ability to bonus itself (red blinking colour shell) and nearby monsters so they are more durable and do higher damage, has an emergency power shield when health gets low.
Tank - Machinegun attack does higher damage.
New items and changes to existing items
=======================================
Silencer - While activated and shots remaining will make it harder for monsters to spot you making it easier to get surprise kills.
Additional keys - security tag and Strogg head which are dropped by some monsters and used to open certain doors or to use certain buttons.
Sling Pack and Resupply Pack - dotted around some maps to try and keep player from running out ammo with the higher number of monsters on the map.
New powerup/modifier items (which can be found around various maps in secret places, etc.):
Blaster Mod - Uses cells when available for a faster, higher damage energy blast.
Machinegun Mod - Machinegun fires incendiary rounds which do a little damage over time.
Regen Mod - Health pickups are increased by 25% but go into a pool instead of direct healing that heal you over time as needed.
Tombstone - Gibbing a monster drops an armour shard.
Grenade Mod - Grenades actively seek targets - crude implementation as game has no navigation/pathfinding data and had to break some physics stuff to make them work as I wanted.
Gambler - Every kill is a gamble between losing some health or gaining a short quad damage - won't reduce you below 1 health, kills at 1 health have a chance to gain you 15% of victim's max health.
Edge - You deal an extra 75% damage but take double damage yourself.
Solar - Regenerate a small amount of cells when in bright areas.
Sabot - Combat shotgun fires slugs which do extra damage against bosses, tanks and gladiator.
Berserk - Shotgun kills activate berserk mode - while using a shotgun damage is increased and short range damage to you is reduced a lot, all other damage to you reduced by half.
Reaper - Kills get you 2% of victims max health, surprising a monster doubles the health bonus. Railgun shots take 20% of your max health (won't take you below 1 health) but do 1.5x damage.
Railgun shots activate the reaper kills within the timer get you extra health.
GLauncher Mod - Grenade launcher fires further and does higher radius damage + small damage over time.
Tripmines - Turns grenades into tripmines.
Scavenger - Using dead monster/soldier bodies gains a small amount of ammo or other resources.
Active Defense - Detonates incoming rockets and grenades but uses cells to do so - short cooldown between activations.
Stim - Health pickups give you a 15 second bonus to agility and you take half damage.
Bouncer - Hits with the chaingun give you a little healing and damage resistance, misses drop time from the bonus and take 1 health. Chaingun does increased knockback.
Some of these items are acquired by doing certain things while playing:
Reaper - kill 10 monsters before they notice you
Berserk - kill 10 beserks within melee range
Gambler - get 30 kills with quad damage
Edge - get 10 kills while under 10 health
Bouncer - every 3 kills while constantly firing the chaingun get a point - need 5 points to get mod
(Alternative you can also spawn them from the console)
Most of these have limited balance testing, etc.
Horde mode
==========
Some maps have a a horde mode where you have to defeat 10 waves to progress through the rest of the map. It is activated by pressing +use
on a computer terminal found within the map. While horde mode is active health and ammo items in the map will respawn after awhile.
Experimental/misc features
==========================
Friendly grunt NPC (give grunt to add it to inventory then use grunt while pointing at a clear spot to spawn) very basic features/incomplete.
With g_coopflags 1 you can use spectator 1 in the console in a coop game to take control over monsters - this is very rough and unfinished.
Controls are the fire button, jump button and use button. Inventory prev/next buttons also swap between which is the selected monster.
Jump will select next monster, use key connect and disconnect from selected monster, fire button will detach view from monster.
When you have selected a monster and detached view then the fire button then can be used to set a waypoint for the selected monsters or a target to fire at.
Pressing the +use key on a monster will attempt to shove it out the way (larger monsters won't move much or at all).
Landing on a monster from height will deal some damage.
Knockback or landing on a monster in some cases will knock a monster to the ground.
Known issues
============
- Monsters running on the spot (various causes)
- Monsters unable to jump off boxes, etc.
- Monsters sometimes ignore player and run around aimlessly
- Monsters sometimes get stuck in mid air (usually due to invisible monster clip brushes)
- In rare instances the hyperblaster will continue firing even when the player is out of ammo
putting ammo count negative (possibly fixed)
- Made changes to random number generation which might cause some network prediction issues (untested)
- Deathmatch not supported
- Grunt NPC has frame lerping disabled on animations due to weapon model incorrectly moving with character otherwise
- Larger enemy might try to use ladders which looks silly especially monsters with tracks instead of legs
- Sounds sometimes are positioned incorrectly or wrong sound is played for an action usually after a save game reload
or returning to a previous map
- Seeking grenades have gliched movement sticking on surfaces, going slowly or going crazy up the walls
- Tripmines have poor detection when used vertically
- Possible crashes on city3 map "PF_FindIndex: overflow" due to too many model indexes
- Damage over time implementation is very basic
- Monster kill count off a little
- Some monster spawns are bugged (in solid, etc.) but usually sort themselves out or are in silly places due to automated level population