A Quake mod for adding bots, blood, guts, and gore to the game. Designed for the multiplayer enthusiast, sate your bloodlust w/ heart-pumping multiplayer games on demand.
Every feature in this mod is optional and configurable.
- Multiplayer Bots - add robot players to deathmatch, teamplay, and coop games
- Blood & Gore - bathe in the blood of your enemies w/ scalable gore setting
- Copper Tweaks - all the vanilla improvements from Copper mod (v1.20)
- Perfect Balance - find the perfect balance w/ configurable weapons
- Item Resupply - force items to respawn in singleplayer and coop games
- Name Tags - see other player names Halo-style when aiming at them
- Foot Steps - hear your boots touch the ground as you stalk your prey
- Score Keeper - make teamplay games combine scores to achieve fraglimit
- Death Timeout - when you die you have to sit out until timeout is over
- Persistent Corpses - player corpses stick around for a bit before disappearing
- No Autoswitch - picking up new weapons won't autoswitch anymore
- Visible Weapons - force weapons to drop visibly outside the backpack
- Nail Speed - make nails travel instantly, like a gun instead of a water hose
- Melee Attacks - perform a melee attack w/out switching weapons
- Hand Grenades - toss a hand grenade w/out switching weapons
- Custom Loadouts - play Rockets only, Shotguns only, Chaingun only, Railgun only
- Killing Spree - game announces when you're on a killstreak and when it ends
- Stimpacks - ease your wounds w/ stimpacks that drop from the dead
- Glory Kills - melee attacks and killstreaks grant extra stimpack rewards
- Highlander Games - higher their killstreak, greater the reward for taking their head
- Random Powerups - every kill has a chance to drop a random powerup
- Shield Recharge - survive the battle and your shield begins to recharge
- February 2024
- Add option to make grenades not detonate on touch
- Fix death alerts in chat to match axe melee or hand grenade
- Make bot priority ranking for powerups customizable in settings
- Re-enable melee lunge feature
- Add no spam feature to limit chat text
- Fix bug w/ nails causing bullet blood gore
- Allow armor pickup even at full strength
- June 2023 -
v1.4.x
- Added deaths count to scoreboard (assuming you have HUD)
- Bots no longer trigger next game from intermission
- Melee attack will now spam multiple times when pressed
- Number of grenades in a backpack now limited
- Fix bug in Perforator damage (my fault)
- Add lunge to melee attack (disabled due to engine bug)
- May 2023 -
v1.3.x
- Added new shards feature on kills
- Added new killstreak feature
- Weapons will switch to best on empty ammo
- Weapons now visibly drop outside the backpack
- Added custom weapon loadouts feature
- Weapons kick can be customized
- Nail speed over 2000 becomes hitscan
- Added melee attack and grenade toss
- Weapons crates now customizable
- Fixed old bug where bots shoot ground
- Taught bots how to use grenades
- Respawn timer forces timeout
- Player corpses stick around for a bit
- Made buttons shootable (for
ultrav
) - Added shield recharge feature
- Made hand grenades come from backpacks
- Added server/client communcation to use w/ HUD
- April 2023 -
v1.2.x
- Gore system overhauled and is now scalable
- Added option to disable weapon autoswitch
- Weapon damage now configurable
- Weapon bullets-per-shell now configurable
- Weapon rate of fire now configurable
- Weapon spread now configurable
- Weapon projectile speed now configurable
- Random bots will now be closer to
skill
- Thunderbolt range now extended to infinite
- Thunderbolt can now have a rate of fire
- Upgraded to Copper v1.20
- August 2022 -
v1.1.x
- Bots now choose from over 500 random names
- Bots now know if they are losing and become depressed
- Team bots now report when they pickup important items
- Bots can now teleport to your location in coop
- Added nametags, footsteps, and gore
- July 2022 -
v1.0.x
- Merged FrikBot w/ Copper v1.19
- Bots
skill
now scales linearly from0
to3
- Bots can now be spawned w/ random
skill
levels - Bots no longer crowd together in team games
- Bots no longer spam teleporters repeatedly
- Bots now wear proper team color in coop games
- Bots now recover from fool's errand more quickly
- Added item respawn for singleplayer and coop
- Find your Quake install directory
- Download this zipfile and unzip to
C:/path/to/quake/scarlet/
- Make sure your
C:/path/to/quake/id1/maps/
folder has all your map files - Make sure your
C:/path/to/quake/id1/maps/
folder has all your waypoint files - Run the game w/
-game scarlet -particles 99999 -listen 16 -condebug
See my other repository where I've uploaded my Quake directory, which includes all the best multiplayer maps and waypoint files to use w/ Scarlet. The reason I created this mod is so I can customize the game to my tastes, and this file is where I make it happen.
Control the following features using cvars in your autoexec.cfg
file or via console:
scarlet_dialogue
- enable random comments from bots in the game (0
or1
, default is1
)scarlet_footsteps
- enable footstep sounds for players (0
or1
, default is1
)scarlet_nametags
- display player names on screen when aiming at them (0
or1
, default is0
)scarlet_respawn
- seconds to wait before bots respawn (default is5
)scarlet_resupply
- force items to respawn on singleplayer and coop (0
or1
, default is1
)scarlet_teamscores
- combine players' scores (ifteamplay 1
) to achieve fraglimit (0
or1
, default is1
)scarlet_autoswitch
- set if the game will autoswitch weapons (0
or1
, default is1
)scarlet_visible
- enable weapons drop outside of backpack (0
or1
, default is0
)scarlet_limited
- remove Shotgun and Nailgun from the game (0
or1
, default is0
)scarlet_chat_backpacks
- disable chat notices for backpacks (0
or1
)scarlet_chat_killstreaks
- disable chat notices for killstreaks (0
or1
)scarlet_chat_deaths
- disable chat notices for deaths (0
off1
normal2
generic)
scarlet_shards
- enable health/armor shards on kills (0
or1
, default is0
)scarlet_shards_powerups
- include powerups in shards dice rolls (0-3
, default is1
)scarlet_shards_multiplier
- how many shards to drop per killstreak (default is20
)scarlet_shards_chance
- chances that each shard will actually drop (default is0.4
)scarlet_shards_armor
- amount of armor gained per shard (default is0
)scarlet_shards_health
- amount of health gained per shard (default is2
)scarlet_shards_expire
- seconds until all shards have disappeared (default is15
)
scarlet_gore
- multiplier for bleed effects (default is3
)scarlet_gore_chance_bullets
- how likely will a bullet cause bleeding (default is0.3
)scarlet_gore_multiplier_bullets
- how many drops of blood per bullet (default is1
)scarlet_gore_chance_nails
- how likely will a nail cause bleeding (default is0.6
)scarlet_gore_multiplier_nails
- how many drops of blood per nail (default is1
)scarlet_gore_chance_rockets
- how likely will a rocket cause bleeding (default is0.8
)scarlet_gore_multiplier_rockets
- how many drops of blood per rocket (default is12
)scarlet_gore_chance_cells
- how likely will lightning cause bleeding (default is0.6
)scarlet_gore_multiplier_cells
- how many drops of blood per lightning (default is6
)scarlet_gore_limit_shot
- roll chance to bleed for the entire shot (0
or1
, default is0
)scarlet_gore_limit_drop
- roll chance to bleed for each individual blood drop (0
or1
, default is1
)scarlet_football
- make enemy heads kickable like a football (0
or1
, default is1
)
scarlet_dmg_axe
- set the damage done by axes (default is24
)scarlet_bullets_in_shell_sg
- set # bullets in a shell from a Shotgun (default is6
)scarlet_bullets_in_shell_ssg
- set # bullets in 2 shells from a Super Shotgun (default is14
)scarlet_dmg_bullets
- set the damage done by bullets (default is4
)scarlet_dmg_nails
- set the damage done by nails (default is9
)scarlet_dmg_rockets
- set the damage done by rockets (default is120
)scarlet_dmg_cells
- set the damage done by lightning (default is30
)scarlet_dec_shells
- set the ammo consumption of bullets (default is1
)scarlet_dec_nails
- set the ammo consumption of nails (default is1
)scarlet_dec_rockets
- set the ammo consumption of rockets (default is1
)scarlet_dec_cells
- set the ammo consumption of cells (default is1
)scarlet_max_shells
- set the max amount of bullets (default is100
)scarlet_max_nails
- set the max amount of nails (default is200
)scarlet_max_rockets
- set the max amount of rockets (default is100
)scarlet_max_cells
- set the max amount of cells (default is100
)scarlet_shells_big
- set the amount of shells in a big crate (default is40
)scarlet_shells_small
- set the amount of shell in a small crate (default is20
)scarlet_nails_big
- set the amount of nails in a big crate (default is50
)scarlet_nails_small
- set the amount of nails in a small crate (default is25
)scarlet_rockets_big
- set the amount of rockets in a big crate (default is8
)scarlet_rockets_small
- set the amount of rockets in a small crate (default is4
)scarlet_cells_big
- set the amount of cells in a big crate (default is12
)scarlet_cells_small
- set the amount of cells in a small crate (default is6
)scarlet_rof_axe
- set axe rate of fire delay in seconds (default is0.49
)scarlet_rof_sg
- set Shotgun rate of fire delay in seconds (default is0.5
)scarlet_rof_ssg
- set Super Shotgun rate of fire delay in seconds (default is0.7
)scarlet_rof_ng
- set Nailgun rate of fire delay in seconds (default is0.095
)scarlet_rof_sng
- set Perforator rate of fire delay in seconds (default is0.095
)scarlet_rof_rl
- set Rocket Launcher rate of fire delay in seconds (default is0.8
)scarlet_rof_gl
- set Grenade Launcher rate of fire delay in seconds (default is0.6
)scarlet_rof_tb
- set Thunderbolt rate of fire delay in seconds (default is0
)scarlet_spr_sg
- set spread of bullets from Shotgun (default is4
)scarlet_spr_ssg
- set spread of bullets from Super Shotgun (default is14
)scarlet_spr_ng
- set spread of bullets from Nailgun (default is0
)scarlet_spr_sng
- set spread of nail from Perforator (default is2
)scarlet_spd_ng
- set speed of nails from Nailgun (default is1996
,2000+
becomes hitscan)scarlet_spd_sng
- set speed of nails from Perforator (default is1020
,2000+
becomes hitscan)scarlet_kick_sg
- set weapon kick for Shotgun (default is2
)scarlet_kick_ssg
- set weapon kick for Super Shotgun (default is4
)scarlet_kick_ng
- set weapon kick for Nailgun (default is2
)scarlet_kick_sng
- set weapon kick for Perforator (default is2
)scarlet_kick_gl
- set weapon kick for Grenade Launcher (default is2
)scarlet_kick_rl
- set weapon kick for Rocket Launcher (default is2
)scarlet_kick_tb
- set weapon kick for Thunderbolt (default is2
)
weapons
- replace all weapons and ammo in the game (1
thru8
for each weapon, default is0
)
scarlet_melee
- allow melee attack (0
or1
, default is0
)scarlet_melee_spam
- number of times to melee when pressed (default is3
)scarlet_melee_lunge_dst
- how close must target be to lunge at him (rec250
, default is0
)scarlet_melee_lunge_hor
-how fast do you lunge horizontally at target (rec250
, default is0
)scarlet_melee_lunge_ver
- how far off the ground do you leap when you lunge (rec0.25
, default is0
)scarlet_grenades
- allow grenade toss (0
or1
, default is0
)scarlet_grenades_min
- number of grenades that you spawn with (default is2
)scarlet_grenades_max
- number of grenades that can be thrown (default is4
)scarlet_grenades_fuse
- seconds before grenade will explode (default is1.5
)scarlet_grenades_touch
- do grenades detonate when touched (default is0
)scarlet_rof_hg
- set Hand Grenade rate of fire delay in seconds (default is0.6
)scarlet_grenades_chance
- chance a bot will throw a grenade (default is0.5
)scarlet_grenades_cooldown
- seconds a bot will wait before throwing again (default is8
)scarlet_grenades_maxpack
- max number of grenades potentially found in backpack (default is2
)scarlet_grenades_restock
- seconds until game will restock all your grenades (default is0
)
The issue is how to add a new item to a game when you can't edit old maps. A restock time of 0
will spawn grenades in backpacks, a restock time greater than or equal to 1
will restock your grenades based on time.
scarlet_recharge
- enable recharge feature (0
or1
, default is0
)scarlet_recharge_cooldown
- seconds to wait after being attacked (default is5
)scarlet_recharge_health
- amount of health recharged per second (default is0
)scarlet_recharge_armor
- amount of armor recharged per second (default is10
)
Utilize melee and grenade abilities by binding keys:
impulse 120
- melee attackimpulse 121
- grenade toss
Control bots via these console commands:
skill
- set the bot skill level (0
to3
)teamplay
- turn on teamplay mode (0
or1
)deathmatch
- turn on deathmatch mode (0
or1
)coop
- turn on coop mode (0
or1
)impulse 100
- add a bot to the gameimpulse 101
- add a bot to the other teamimpulse 102
- remove most recently added botimpulse 103
- spectate other playersimpulse 104
- enter dev mode for editing waypointsimpulse 110
- add a bot to the game of random skill level (up toskill
)impulse 111
- add a bot to the other team of random skill level (up toskill
)impulse 113
- teleport bots to your location in coop (only once per minute)
Reference the included instructions.html
file from FrikaC for detailed information about the bots.
- Original Copper mod by Lunaran
- Original FrikBot mod by FrikaC, Igor9, and JLaw
- Original waypoint files by LightningHunter
- Original nametag code by BenVanCitters
- Original corpse gibbing code by Kryten
- Original head kicking code by Ivana
- Original enemy bleeding code by Maniac
- Original footsteps code by Seven
- Original models provided by Quoth
- Slipseer - where all the cool Quake kids hangout
- Intro to QuakeC - nice intro to what QuakeC is and it's history
- FTEQCC - the QuakeC compiler I used to compile this code
- FTEQCC Docs - the difficult to find docs about FTEQCC
- QuakeC Manual - helpful list of available functions
- QuakeC Tutorials - a list of tutorials for modding QuakeC
- Level Book Design - some modding instructions from a slick website
- Quake Bot Archive - an archive of all Quake bot versions w/ a little history
- FrikBot Waypoint Files - an archive of all the bot waypoints files
- Tome of Preach - not using anything from here but might someday
- PointerStat Explanation - useful tips on sending
globalstat()
to the client