Home
Download

Nightbreed

Nightbreed is a fast and furious deathmatch mod for NetQuake and QuakeWorld with a vampiric theme. It is also highly configurable, allowing you to play many different variations.

The basic currency of nightbreed is health. You gain health by damaging other players, and your level of health determines the amount of damage that you inflict. Health is capped at 400.

If your health is greater than 100, the amount of damage that you inflict is multiplied by your health divided by 100. So, if your health is at the maximum level (400) you effectively have quad damage.

If your health is greater than 200, you glow. This gives other players a warning of what they're up against. If your health is less than 300, you glow red (like invincibility), when your health is greater than 300, you glow blue (like quad damage).

Since it doesn't make much sense to get health from yourself, there is no self-damage. This also makes rocket-jumping an extremely useful tactic.

In keeping with the vampire myth, when your health is greater than 300 you can turn into a scrag and fly - however, as a scrag your only weapon is scrag goo! It is pretty devastating scrag goo, though. Each "missile" has a base damage of 50, and you fire two at once up to twice a second. So basically, with a health of above 300, it is very easy to gib a weaker adversary. Nevertheless, being a scrag is something of an art. It's fairly easy for a newly respawned player to double his health by sniping a scrag with the shock-rifle - but I'm getting ahead of myself...

Weapons

Players in nighbreed start out with all weapons and unlimited ammo. Normally, this would bring the game down to lightning gun and rocket launcher and not much else. However, the weapons in nightbreed are balanced. Rocket Launcher and Lightning Gun inflict less damage than normal, and the nailguns and double-barrel shotgun inflict more damage. The idea here is to make all weapons viable - use the right weapon for the situation.

Nightbreed replaces the shotgun with a "Shock Rifle" (ala Unreal Tournament). It looks very much like your father's shotgun, but fires a single, highly damaging bolt of lightning, which will often take out other players in a single shot. The catch is, much like the Quake 2/3 railgun, your aim has to be dead on, and you can only fire one shot per second. This is the sniper's weapon of choice!

Both nailguns inflict equivalent damage, the only difference is how they look and sound.

The lightning gun can be used underwater in the same way that it can be used in the air (otherwise, with no self damage, you could just camp underwater and immediately fry anyone who came in after you!)

A new, experimental weapon has been added as of version 1.2: the Helldog. The helldog is similar to the Quake 3 BFG except there's no waiting for the missile to get there: whatever you point at instantly explodes. It replaces the nailgun (which was basically useless) and fires shotgun shells (three of them per round). The helldog is disabled by default - see Configuration Options for information on how to turn it on.

Becoming a Scrag

If your health is greater than 300, you can become a scrag using impulse 23. Bind it to your key of choice from your command line or autoexec.cfg file like so:

   bind "v" "impulse 23"

You can return to human form by hitting the impulse 23 key a second time.

As a scrag, you will be able to fly as if you were swimming through the air. You will also be able to survive underwater indefinitely, and be impervious to harm from slime and lava.

Bots

Nightbreed 1.1 used zeusbots. As of nightbreed 1.2, these have been replaced with Frickbots. Zeusbots were ok, but they didn't bounce! Frickbots get kicked around when they take damage, just like the rest of us. But beware, Frickbots are frickin' awesome at nightbreed!

All of the impulse commands are disabled. Bot skill level is set with the " bot_skill" info variable, and the number of bots can be configured using the "minplayers" variable. As it's name implies, "minplayers" is used to configure the minimum number of players (including both bots and clients) that must be in the game. So if minplayers is 4, and there are two clients connected, 2 bots would be spawned.

The following quakeworld commands configure bots to skill level 1 and add up to 4 bots.

   localinfo bot_skill 1
   localinfo minplayers 4

The Teleporter

Another nifty experimantal feature for version 1.2 is the personal teleporter. It's not quite the same as the personal teleporter in Unreal Tournament: instead of tossing it somewhere and teleporting to that location, you "lock on" to your current coordinates and then teleport back there from some other location.

The following commands are used to control the teleporter:

impulse 24

Lock on to your current coordinates.

impulse 25

Teleport to the last locked coordinates.

impulse 26

"Teleswap" This is a nifty trick that takes some getting used to. What it does is to lock onto your current coordinates while teleporting you back to your previous locked coordinates. This effectively allows you to bounce between two positions on the map. It is useful as a close combat tactic - bouncing between two positions in the same room to teach that that bunny-hopping blue freak some humility - or as a means of dominating a small map by bouncing between the main gathering points.

Like the Helldog, the teleporter is disabled by default. Unlike the helldog (and everything else) it has its own infokey. Set "nb_teleporter" to 1 to enable it.

Installation and Running

Version 1.2 of nightbreed runs only in quakeworld - sorry, but I just didn't have the motivation to keep the netquake and painbreed variations up to date.

To set up a quakeworld server, Create a "nightbreed" directory in your quake directory, and copy the enclosed qwprogs.dat file to it. You'll want to create a server.cfg file, probably with some of the configuration options identified in the next chapter.

For best results, use the QuakeForge QuakeWorld server - it's the only one that supports flying, and its handling of the bots is less of a hack and hence less error prone.

You can start the server as follows:

   qwsv +gamedir nightbreed

Replace "qwsv" with the name of your server. For quakeforge, use "qw-server".

Configuration Options

Nightbreed is highly configurable through a set of flags. These flags are set in the "gamecfg" local info key. The value of "gamecfg" is the value of the flags you want to specify added together. The flags are as follows:

NB_CFG_NO_SHOCK_RIFLE (1)

Disables the shock rifle. Players will get a normal shotgun unless NB_CFG_NO_SHOTGUN is also set.

NB_CFG_NO_SUPER_SHOTGUN (2)

No free super shotgun.

NB_CFG_NO_NAILGUN (4)

No free nailgun.

NB_CFG_NO_SUPER_NAILGUN (8)

No free super nailgun.

NB_CFG_NO_GRENADE_LAUNCHER (16)

No free grenade launcher.

NB_CFG_NO_ROCKET_LAUNCHER (32)

No free rocket launcher.

NB_CFG_NO_LIGHTNING_GUN (64)

No free lightning gun.

NB_CFG_NO_UNLIMITED_AMMO (128)

No unlimited ammo for any weapons. Ammo will be distributed in its normal positions on the map.

NB_CFG_NO_VAMPIRE (512)

Disable vampire health. This disables stealing health by damaging others and also disables the damage boost associated with super health.

This also makes health, quad damage, and invulnerability items appear on their normal positions on the map.

NB_CFG_FREE_METAMORPH (1024)

Players are free to morph into a scrag at any level of health.

NB_CFG_FOUND_WEAPONS (2048)

Distribute all weapons that aren't "free" in their normal positions on the board. Allows players to find weapons like in the normal game.

NB_CFG_NO_ITEMS (4096)

Don't put any items on the map, even if they would be appropriate given some of the other options (e.g. found weapons, no unlimited ammo...).

NB_CFG_SUPER_SHOCK_RIFLE (8192)

Doubles the power of the super shock rifle (useful mainly for instagib).

NB_CFG_NO_SCRAG_WEAPON (16384)

When metamorphed to a scrag, don't limit the weapon to scrag goo.

NB_CFG_NO_SCRAG_FORM (32768)

When metamorphed to a scrag, retain normal player appearance.

NB_CFG_NO_BALANCED_WEAPONS (65536)

Disables weapon balancing. All weapons do the same damage as in the normal game.

NB_CFG_NO_SHOTGUN (131072)

No free shotgun.

NB_CFG_NO_HIGH_JUMP (262144)

This disables the "high jumping" of nightbreed (by default, nightbreed jumps are higher than normal quake jumps).

NB_CFG_BACKPACKS (524288)

Enable throwing of backpacks when you die (disabled by default).

NB_CFG_HELLDOG (1048576)

Enable the helldog (see Weapons above).

"Free weapons" are the weapons that you get by default at the start of the game or upon respawning. Disabling a weapon effectively removes it from the game unless NB_CFG_FOUND_WEAPONS is also set.

The game configuration defaults to 0. Flags are set by adding (or'ing, actually) the flag values together. For example, to disable all weapons but the shotgun, one would use a value of 127 (NB_CFG_NO_SHOCK_RIFLE + NB_CFG_NO_SUPER_SHOTGUN + NB_CFG_NO_NAILGUN + NB_CFG_NO_SUPER_NAILGUN + NB_CFG_NO_GRENADE_LAUNCHER + NB_CFG_NO_ROCKET_LAUNCHER + NB_CFG_NO_LIGHTNING_GUN. You'd probably want to add NB_CFG_NO_BALANCED_WEAPONS to that for a value of 65663).

If all of this binary math seems a little intimidating, check out the nbmode script, which provides a nice little graphical calculator to help you compute the value (see the downloads section).

Here are some configurations that my original beta-testers and I used to enjoy:

Mode Name gamecfg Description
painbreed 2112 "Crusty likes little boys"* Especially useful for the painbreed hybrid. No free lightning gun, and special weapons are available on the map
shotgun_vamp 65663 Only weapon is the shotgun
super_shotgun_vamp 65661 "To START press any key, Where's the ANY key?" Only weapon is the super shotgun
nailgun_vamp 65659 "mindhog is a pillow bitter!"** Only weapon is the nailgun
super_nailgun_vamp 65655 "I got to take a wicked YES" Only weapon is the super nailgun
grenade_vamp 65647 "sweater cows" Only weapon is the grenade launcher
rocket_vamp 65631 "PURPLE! purple is a fruit" Only weapons is the rocket launcher
lightning_vamp 65599 Only weapon is the lightning gun
shock_rifle_vamp 126 "ROASTBEEF CURTAINS!!!" Only weapon is the shock rifle
instagib 12926 "Beer is the cause of AND solution to all of life's problems!" Classic instagib. Only weapon is the shock rifle - one shot gibs your opponent
air_combat 50176 "me fail English? thats unpossible!" Instead of metamorphing into a scrag, impulse 23 makes you fly, and you can do so at any level of health.
scrag_wars 132223 "take it in the face bitch" You can change into a scrag at any level of health, and you pretty much have to because your only other weapon is an axe!!
mortal 4736 "BRETT fucken ROCKS!!" Start out with all weapons, limited ammo. No weapons, ammo or powerups on the board, and no backpacks - use your ammo wisely!
axe_vamp 147583 "YOU ARE GETTING BITCH SLAPPED!!!" Only weapon is the axe

*boobies' alternate descriptions for the games are italicized
**boobies can't spell very well.

Recently I decided that, since I'm not maintaining the netquake ports anymore, it makes sense to start using more than just one infokey to configure nightbreed (truth be told, the numbers were also getting too big to be stored in a single value). So unlike everything else, the teleporter is enabled with the infokey "nb_teleporter". Set it to 1 to enable the teleporter.

In addition to the configuration infokeys, nightbreed defines two variables - "nb_end_game" and "nb_start_msg" that allow you to cycle through game modes.

"nb_end_game" can be set to a string that is to be run at the end of the game. "nb_start_msg" can be set to either a variable or a message to be displayed at the beginning of a game. If it is set to a variable, the variable should contain the message to be displayed (sounds complicated, but it's really not).

For example, if we wanted to cycle between plain nightbreed, instagib and air combat, we might use the following configuration:

   alias md0 "localinfo gamecfg 0; localinfo nb_start_msg msg0; localinfo nb_endgame md1"
   localinfo msg0 "Game is nightbreed"
   alias md1 "localinfo gamecfg 12926; localinfo nb_start_msg msg1; localinfo nb_endgame md2"
   localinfo msg1 "Game is instagib"
   alias md2 "localinfo gamecfg 50176; localinfo nb_start_msg msg2; localinfo nb_end_game md0"
   localinfo msg2 "Game is air combat"
   md0

The first line defines an alias that sets the game configuration to 0 (standard nightbreed), sets the start message to the value of the "msg0" variable, and sets the command to be run at the end of the game to "md1". "md1", in turn, is another alias which sets the game up for instagib and sets the endgame command to "md2". "md2" completes the cycle by setting up air combat and finally looping back around to "md0".

The final "md0" kicks it all off at the beginning.

As you may have guessed, the ability to associate the start message with another variable is what allows us to change it in an alias.

Configuring Bots

See above in Bots for information about configuring bots in the quakeworld server.

Special considerations for the QuakeForge server

If you're using the quakeforge server, be sure to set the "playerfly" server variable:

   serverinfo playerfly 1

If you're not using the quakeforge server, flying will suck no matter what you do. Sorry. If anybody can advise me as to a server-independent way to do flying, I'm all ears.

Credits

Thanks go out to the following:

  • my original beta-testers: Brian, Sir Smelly, boobies and Ladiezman, hope you're still out there fraggin' on company time!

  • The CiC clan - notably denim, pan, and clone - who started showing up at House of the Hog and smacking me around. Version 1.2 goes out to you!

  • [cic]rocketman, author of the awesome Rocketland mod, for lots of great thoughts on the internals of the game.

  • To LaserLeague and Don QBert - who kept the games going during the slow times.

  • To the writers of painkeep and Rocket Arena, whose code taught me how to make this mod.

  • And, of course, to Id software for creating Quake and making the source code available.