## BubbleMod for Half-Life Version 2.2.3 - Revision 7/19/2003
Contents
Introduction Installation Server Requirements Downloading Upgrading Linux Windows Metamod Uninstalling Building the Source Software License Unpacking the Source Building the Linux Shared Object Building the Windows Library Understanding the Mod Source General Gameplay Features Spectator Mode Spawn Protection Type Protection Player ID Starting Weapons/Ammo Spawn Mines/Satchels Map Voting Damage Messages Match Kills Multi-Kills Auto-Kick/Banning Map Customization | Weapon Mods Crowbar MP5 Shotgun Crossbow RPG Bubblegun Tau Cannon Hornetgun Tripmines Snarks Runes Super Crowbar Mega Grenade Super Magnum Extra Health Extra Armor Super Shotgun Custom Map Configurations Player Command Reference Server Command Reference Server CVAR Reference
indicates changes since 2.2.2. The latest revision of this document can be found at www.bubblemod.org
Introduction
Welcome to BubbleMod! BubbleMod is a server side only mod for Half-Life. What does that mean? That means that you do not have to download and install it to play it. All you have to do is find an HLDM server running it and join in. Why did we create this mod? Well, um... because... we could? That sounds good. This mod was an evolving project over several years. It is no longer developed by the original author, and the source code has now been released for public consumption. Basically this mod started out as a way to change the standard Half-Life game to make it more challenging. The big damage weapons were weakened, and key things were changed to allow a more skillful game. The tau/grenade/RPG bind combo is easily countered. Some new weapon modes were introduced to expand teamplay. I'd like to thank the following players for their input, help, bug hunting, and just being fun to play with. Sorry if I've missed anyone, it just gets hard to remember all the names! Old skool greetz to: Acproductions, Alidoe, Azure, Big, [T-S]*BlackWidow*, Blondie, Blork, BootyLiciousHootyHo, Brat, [K9]Bulldog, CBF, Cpt._Ferrel, Chris_Redfield, Creepingdeath, Danny Glover, DarkStar, Doo, Dr.FeelGood, Dr.Form, Dr Monkeybone, Dr.Seuss, Dr.Sexy, Ducky, DWIZARD, GaylordFocker, Gulls, Hawk, Heidi Klum, !KeyholeFamily, Jaguar, Jerry Blade, Lady Spider, Laurence Fishburne, Maggothead, Merlinmast, Miss Fire, Mr. Anderson, Mr. Proliant, Nurse GoodBody, Ozzie, PitBull, Puppy Love, Redeyexpress, [T-S]*Robotic*, Ron_Post, Sammy, Scoob, Scut Farcus, Sgt Baker, Sgt.Fury, Shark (cartilaginous), Smoker, Sophocles, soupy release, [K9]Sparky, Spleen, Supafly!, Toe, Tin Weasel, Tyrian, Underdog[K-9], /UPsMaN/, Vestigal, WorldCraft, and anyone else I've missed - Eggplant! 7/2003
Installation
> NOTE: You DO NOT need to install BubbleMod if you only wish to play on other BubbleMod servers.
> Server Requirements
> > BubbleMod 2.2.3 requires at least Half-Life x.1.1.0 or LATER to run. BubbleMod does not require any additional resources above regular HLDM. ** METAMOD USERS ** If are running any Metamod plugins with BubbleMod (admin_mod, HLGuard, etc.) You will need an updated version of the Metamod .dll/.so. To function properly, BubbleMod requires special entity definitions that are not (yet) included in the Metamod distribiution. For your convenience, an up to date drop-in Metamod dll/so can be obtained from the files section at bubblemod.org. If you find that archive out of date, ask Eggplant to make a new one. :) If you would rather compile your own based on the source code from metamod.org, you should include the following entities in the metamod/ents folder and rebuild linkgame.cpp by running the mklinkgame.sh script:
> >     // BubbleMod
> >     //    http://www.bubblemod.org
> >     //
> >     // Version 2.2.3
> >     //
> >     boxmarker
> >     bmod_squidspit
> >     campoint
> >     flying_crowbar
> >     item_rune
> >     item_CrowbarRune
> >     item_GrenadeRune
> >     item_HealthRune
> >     item_BatteryRune
> >     item_357Rune
> >     item_ShotgunRune
> >     monster_tripsnark
> >     zaprift
> >     zapbounce
> Downloading
> If you want to run a server or play the mod on your local LAN, the last stable version can be downloaded from the files section at bubblemod.org. That archive contains both the Windows and Linux versions. Be sure to use the -a option under Linux when unzipping to convert the ASCII files.
> Upgrading
> Simply copy the bubblemod .dll or .so file over the old one, add the cvars you need to your bmod.cfg file, and you are done! If you are running Metamod, be sure you are running a version that is compatable with this version of BubbleMod. You may have to grab an updated Metamod .dll or .so from the bubblemod site.
> Linux Installation
> 4. Unzip the archive into a warm, safe place. (under Linux be sure to use -a) Copy the bubblemod_i386.so file into valve/dlls. Copy any maps or map.cfg files you want into your maps folder. Edit the liblist.gam file in the valve directory. Copy the "gamedll_linux" line and modify it so it looks like this:
>        //gamedll_linux "dlls/hl_i386.so"
>        gamedll_linux "dlls/bubblemod_i386.so"
> Copy the bmod.cfg file into your valve directory, add "exec bmod.cfg" to the end of your server.cfg (or listenserver.cfg if you plan on playing and serving from the same machine) and edit the CVARs to your taste. Make any changes to the MOTD that you wish (it now supports 960 characters max) If you are running metamod, see the metamod section for installation tips. Be SURE you have a BubbleMod compatable version of metamod! Run the server. You do not need to specify any game type at the command line.
> Windows Installation
> 4. Unzip the archive into a warm, safe place. Copy the bubblemod.dll file into valve\dlls. Copy any maps or map.cfg files you want into your maps folder. Edit the liblist.gam file in the valve directory. Copy the "gamedll" line and modify it so it looks like this:
>        //gamedll "dlls\hl.dll"
>        gamedll "dlls\bubblemod.dll"
> Copy the bmod.cfg file into your valve directory, add "exec bmod.cfg" to the end of your server.cfg (or listenserver.cfg if you plan on playing and serving from the same machine) and edit the CVARs to your taste. Make any changes to the MOTD that you wish (it now supports 960 characters max) If you are running metamod, see the metamod section for installation tips. Be SURE you have a BubbleMod compatable version of metamod! Run the server. You do not need to specify any game type at the command line.
> Metamod Installation
> There's one trick to getting BubbleMod working with Metamod. First, be sure to read the Metamod installation instructions located at metamod.org. Since BubbleMod is a replacement for the regular hl.dll and hl_i386.so, you must specifically tell Metamod to load the new object. (Metamod apparently does not read the liblist.gam file). To accomplish this, you need to use the "localinfo" feature when starting your server. For Linux, add "+localinfo mm_gamedll dlls/bubblemod_i386.so" to your command line options when running the game. An easy way to keep from having to remember that every time you run the server is to edit the hlds_run script to add it for you. Change line 10 of the script to read HL="./hlds +localinfo mm_gamedll dlls/bubblemod_i386.so" For Windows, just add the string +localinfo mm_gamedll dlls/bubblemod.dll to the target field of your hlds shortcut.
> Uninstalling
If you wish to revert back to the standard Half-Life game, simply edit the liblist.gam file. Comment out the "bubblemod" line and enable the old "hl" line.
Building From Source
> BubbleMod is no longer under active development, and the source code is freely available from bubblemod.org. This section provides some notes on building the mod from the source code and some hints on how it is structured. The sourcecode is based on the unmodified Half-Life 2.2 SDK, and there are a few limitations and other potential problems you may face when trying to build the mod. Under Linux, the source will not build on any gcc later than egcs-2.91. This is because of the less than ANSI style in which the original SDK was written. There are patches to get the SDK to compile under more modern compilers, but I've never had the time or patience to patch them into the current build of BubbleMod. A Makefile to build both generic i386 and i686 optimised shared objects is provided. Under Windows, I have successfully compiled this with Visual C++ 5 with current service packs. A VC++ 5 workspace is provided. I've never tried compiling this under VC++ 6.0. Good Luck. Since this is a server side only mod, you only need to build the server object. Only the dlls section of the source code is provided and you will need a copy of the 2.2 or 2.3 SDK to build the mod. I highly recommend you read through the FAQ and SDK sections at Botman's Bots if you are new at this. It will answer many of your questions and avoid a huge number of potental problems.
> License
> Permission is granted to anyone to use this software for any purpose on any computer system, and to redistribute it in any way, subject to the following restrictions: The author is not responsible for the consequences of use of this software, no matter how awful, even if they arise from defects in it. The origin of this software must not be misrepresented, either by explicit claim or by omission. Altered versions must be plainly marked as such, and must not be misrepresented (by explicit claim or omission) as being the original software. It would be nice if I got a copy of your improved version. This notice must not be removed or altered.
> Unpacking the Source
> Only the server side dll code is provided in the archive. It contains both a MSVC++ 5.0 workspace and a Makefile for Linux. You will need a copy of the 2.2 SDK to build the server object. After unpacking the 2.2 SDK, replace the dlls directory in the source tree with the one provided in the BubbleMod source archive.
> Building the Linux Shared Object
> The source will not build on any gcc later than egcs-2.91. The Makefile supplied with the mod can build both a generic i386 version that will run on any Intel architecture and an i686 optimised version that will run on any Pentium Pro chip or better. To build the i386 version simply cd into the dlls directory of the SDK source tree and execute the following commands:
>     $ make clean
>     $ make
> To build the i686 optimised version, you should set an environment variable OPT. Under a bash shell you could do the following:
>     $ export OPT=opt
>     $ make clean
>     $ make
> This will produce a bubblemod_i386.so or bubblemod_i686.so file in the dlls directory. Simply copy this file to your game server and follow the installation instructions found elsewhere in this document.
> Building the Windows Library
> A MSVC++ 5.0 workspace is provided, and the source should build if you have the latest MSVC++ 5.0 service packs from Microsoft. To build, simply open the workspace file found in the dlls directory and choose "Build" from the build menu, or press F7. If you have HL installed in C:\SIERRA (the default) the bubblemod.dll file will be copied to your game directory. Otherwise you will get an error on the last step, and have to copy the file manually. Again, just follow the installation instructions found elsewhere in this document.
> Understanding the Mod Source
> Parts of the mod are documented in comments within the source. Some parts are documented in detail, while others are not documented at all. The forums on bubblemod.org are the best place to ask any questions about the source code. Several classes and files were added to the source. Any source or header files that are completely new have BMOD_ prefixed to the filename. For example: BMOD_flyingcrowbar.cpp BMOD_flyingcrowbar.h BMOD_snarkmine.cpp BMOD_snarkmine.h Are new files completely seperate from the original SDK. Sections of the original SDK that are changed, or sections added to existing files are enclosed in comments and labeled indicating their function. For example:
>         // BMOD Begin - no trip spawn mines and flashbang
>         if (m_bIsFlashbang)
>         {
>             m_pBeam->SetColor( 120, 180, 180 );
>             m_pBeam->SetBrightness( 25 );
>         }

>         if (BMOD_IsSpawnMine())
>         {
>             pev->owner = m_pRealOwner;
>             pev->health = 0;
>             Killed( VARS( pev->owner ), GIB_NORMAL );

>             UTIL_SpeakBadWeapon();

>             if (m_bIsFlashbang)
>                 UTIL_ClientPrintAll( HUD_PRINTTALK, UTIL_VarArgs( "%s tried to place a spawn flash mine!\n",
>                     STRING( VARS( pev->owner )->netname ) ) );
>             else
>                 UTIL_ClientPrintAll( HUD_PRINTTALK, UTIL_VarArgs( "%s tried to place a spawn mine!\n",
>                     STRING( VARS( pev->owner )->netname ) ) );
>         }
>         // BMOD Begin - no trip spawn mines and flashbang
Is a section in tripmine.cpp that handles the detection and notification of spawn mines when a tripine or flashbang mine arms.
General Gameplay Features
> There are a few things that have been fixed or altered in standard gameplay. I won't go over the bug fixes. The idea being that a bugfix would be a welcome addition.
> Spectator Mode
> | When you first enter the game you will be in Spectator Mode. This is to allow you time to read the MOTD without getting fragged. Which you should seriously consider doing, as there is often important stuff in the MOTD you'll want to know about. There are two submodes: Free Roam and Chase Cam. Free Roam allows you to roam the map in a no-clip mode. Chase Cam will lock you onto a player of your choice. Spectator mode controls: Fire - Spawn into the game. Jump - Toggle between submodes. Alt. Fire - Cycle through players while in Chase Cam mode. If you wait long enough after you die, you will automatically be placed back into Spectator Mode.
> Spawn Protection - Optional: see bm_spawnkilltime, bm_maxspawnkills, bm_bantime, bm_spawneffects
> | When you first spawn into the game, you may have several seconds of protection from getting Spawn Killed. A small message and a countdown of your remaining spawn time will appear in the top left corner. Your Spawn Protection will remain in effect until one of the following occurs: You switch to ANY other weapon from the one you spawn with. Fire any weapon. Use a func_tank entity. Your spawn protection counter runs out. Players that have Spawn Protection will appear holographic to other players, and a "DO NOT SHOOT" message will appear in Player ID. Spawn Killing - Spawn killing is the weak practice of killing a spawning player before they have a chance to defend themselves. If a player spawn kills, a nasty message will be broadcast to all players telling of the evil deed, and there will be no points awarded for the kill or death. If a player continually spawn kills, they may be banned from the server.
> Type Protection - Optional: see bm_typekills, bm_typecam, bm_maxtypekills, bm_bantime
> | You can invoke Type Protection by switching to the crowbar weapon and facing a wall for more than 4 seconds. While in type mode, bubbles and lights will swirl around your player. If someone tries to kill you while in type mode, there will be no score, no weapon dropped, and a ban warning will be issued. You will remain in type mode until one of the following occurs: You switch to ANY other weapon from the crowbar. Swing the crowbar. Walk in any direction. Pick up any item. Press your "use" key.
> | While in type mode, players can use a back-facing fisheye camera to make sure the coast is clear before they come back into the game.
> Player ID
> | Player ID - Holding the crosshair over another player will print their name and model info in the center of your HUD. In teamplay, you can also see the health / armor levels of your teammates, and in observer mode you can see all of this info for any player. If you look at a player who is under Spawn Protection or Type Protection, a special message will appear warning you not to shoot them.
> Starting Weapons/Ammo - Optional: see bm_guns, bm_ammo
> | Starting Weapons - By default, when you spawn you have in your arsenal the following: Crowbar (now more powerful, see below) 9mm Glock - 17 bullets in the clip, 34 extra. 357 Magnum - 6 bullets in the clip, 12 extra.
> Spawn Mines/Satchels - Optional: see bm_spawnmines, bm_spawnsatchels
> | Spawn Mines - Spawn mines are the cowardly way some players like to place tripmine beams across spawn points so that newly spawning players die immediately. If a player attempts to place a spawn mine, the mine will automatically detonate when the beam arms, and a message will be broadcast to all other players informing them that there is a dorkus on the server. This also applies to Snark Mines, Flash Mines, and Satchel Charges.
> Map Voting - Optional: see bm_voting, bm_votetime, bm_maxtime, bm_maxfrags
> | Map Voting - Players can vote on what map they would like to play. Voting is initiated with the "rockthevote" player say command. Once voting starts, players can vote for their map choice with the "vote" player say command. Voting continues for three minutes, or until a map wins the majority vote. A map needs 75% of the votes to win. If no map wins, then the map stays the same, otherwise the map is changed immediately to the winning map. Players can also vote to extend the current map by 30 minutes and 25 frags by saying "vote extend"
> Damage Messages - Optional: see bm_dmg_messages
> | Damage Messages - Damage done to you or by you is displayed in the top corner of your screen. If you kill someone while using the same weapon, it announces a match-kill, and if you kill more than one person at a time, a message is broadcast to all players informing them of your accomplishment.
> Match-Kills - Optional: see bm_matchkills
> | Match-Kills - Match kills will appear in the damage messages section when you kill someone holding the same weapon you are using and you do not have a rune active. Match-kills do not have any effect in game, but they are logged and may have an effect in stats generated from the logs.
> Multi-Kills
> | Multi-Kills - If a player gets multiple frags with a single shot, the server will announce that fact and log it. This has no effect on the game being played, but may be parsed with stat scripts.
> Auto-Kick/Banning
> | Auto-Kick/Banning - Players that exceed the server setting for maximum spawn kills, type-kills or spamming can be automatically kicked or banned from the server for a period of time.
> Map Customization
> | Map Customization - BubbleMod allows server admins to add, remove, or replace most of the 'entities' on any map. Valid entities are: 1. Weapons and ammo. 2. Armor batteries and health kits. 3. Long jump modules. 4. Spawn points. The server admin can create a separate config file for each map indicating what (if any) entity changes will be made. The config file can also change any of the other global server settings for just that map. For example, weapon mods can be changed, values like the fraglimit or gravity can be changed for only that map. See the Custom Map Configurations section for more information.
Weapon Mods
> Several weapons have been altered, or have new abilities. Many also now have tracer effects to more easily tell where an attack is coming from. The 357, shotgun, crossbow (both modes), and snarks (what the hell) all leave a smoke trail or tracer. All weapon mods are completely optional. If a server you are playing on has a particular weapon mod turned on, details of the mod will appear in the center bottom of your HUD in green text.
> Crowbar - bm_cbar_mod
> | Flying Crowbar - The crowbar now has an alternate fire mode. The alternate fire mode on the crowbar will now throw the crowbar at your intended target. Tricky to use, but it will deal 90 base damage to the target. The crowbar will drop to the ground and can be picked up again after hitting an object. You can only carry one crowbar at a time.
> MP5 - bm_mp5_mod
> | MP5 (9mm Assault Rifle) - The mp5 has been weakened in a few ways. First, contact grenades do slightly less damage (80 down from 100). Also, the recycle time (rate of fire) on the contact grenades has been lengthened to 1.5 seconds. (The same as the double barrel shotgun). And last the maximum number of grenades you can carry is five and you only get one for each pack you pick up.
> Shotgun - bm_shotty_mod
> | Shotgun - By default, the shotgun is the normal HLDM shotgun. But server admins have the option of making all shotguns "super" shotguns that fire faster and reload in one clip. These super-shotguns do not fire as fast as the shotgun rune.
> Crossbow - bm_xbow_mod, bm_xbowtracers
> | Crossbow - The crossbow bolt now leaves a tracer and the sniper damage has been lowered to 90 from 120.
> RPG - bm_rpg_mod
> | RPG - The RPG damage has been lowered to 100 points from 120 points of explosive type damage.
> BubbleGun - bm_gluon_mod, bm_thrust
> | Gluon Gun (Bubble Gun) - The gluon gun is now the Bubble Gun. The bubble gun has two fire modes: Primary: The primary fire mode will shoot a stream of bubbles in front of the user. The bubbles are completely harmless, but can be used to replenish your air under water. Be sure to point and laugh at people who don't read the MOTD on this one. Alternate: The alternate fire mode can be used to heal yourself and any players (friend or foe) nearby. This works much like the charged attack on the tau cannon. You must hold down alt fire, and charge the bubble gun for 50 energy units (about 5 seconds). When the gun discharges, you and anyone close by will be healed 70 health points. If you have the armor rune active, the bubble gun will give armor instead of health. This fire mode is disabled for 30 seconds after use.
> Tau Cannon - bm_tau_mod
> | Tau Cannon - The Tau cannon works exactly the same as it always has with one tiny exception. When firing through walls, it only does 2 points of area effect damage, instead of 200. In the original game, the Tau did 200 points of area effect damage, plus whatever charged damage if you got a direct hit through a wall. Potential damage was 400-1200 points in one shot! This modification allows you to still kill through walls, but you have to be just as accurate as shooting someone dead on. You can't just randomly blast walls hoping for kills.
> Hornet Gun - bm_hornet_mod, bm_freezetime
> | Hornet Gun - The hornet gun has been completely replaced. The gun now has five fire modes and is sort of the swiss army knife of the game. Use the secondary fire button to switch modes, and the primary fire button to fire. The ammo used depends on the mode, but most will use hornets which will recharge themselves over time. Squid Spit - Fire mode one is spit. This fires the bull squid acid spit from the single player game. Each "loogie" does 30 points of damage, and uses 3 hornets. Zap Gun - The second mode is a lightning attack much like the alien slaves from single player. This is VERY powerful, dealing 90 points of base damage to the target, and using 4 hornets to fire. NEVER fire the lightning attack while standing in water... didn't your parents teach you anything? Multizapper - The multizapper is similar to the zap gun, execpt it will fire a bolt that will randomly fork and bounce off of walls. The damage in each fork will decrease slightly, but the potential for getting multiple hits in one shot with this mode can mean instant death for even the most armored players. Unlike the zap gun, this mode has a limited range. Each shot costs 12 hornets. Freeze Ray - The fourth fire mode is the freeze ray. The freeze ray uses all 12 hornets and will freeze a target for about four seconds if you hit them. A frozen player cannot be hurt with any weapon. But... that doesn't mean you can't kill them... use your imagination. You can use the freeze ray to get away, or even protect teammates from damage. Snark Launcher - The fifth mode will launch high velocity snarks (if you have any). Chuck them over buildings for random acts of snark.
> Tripmines - bm_trip_mod
> | Tripmines - Tripmines now have a secondary fire mode. Using the secondary fire button will place a Flash Mine. Flash mines have a less distict beam than regular tripmines, and will blind any players that can see them within a certain distance. The closer the victim is to the mine when it goes off, the worse the blinding effect. Flash mines will also set off any nearby tripmines or snark mines.
> Snarks - bm_snarks_mod, bm_snarktrails
> | Snarks - The snarks now have an alternate fire mode. Using the alternate fire on snarks will place a Snark Mine. Snark mines work a lot like tripmines, but will spawn snarks instead of exploding. Placing a snark mine uses 5 snarks. Note that a single nearby explosion will trigger snark mines, but will not kill the snarks. Use this to build very nasty traps by placing one explosive (tripmine or satchel) in a group of snark mines.
Runes
> We have also added Rune Objects. Rune Objects give you temporary powers while you have the rune active. Touching a rune object will pick it up an allow you to wreak havoc until the rune wears off. The rune will then spawn in a new location randomly on the map. Anyone who has an active rune will glow the same color as the rune. Runes spawn around player spawn points, so look for them there.
> Super Crowbar - bm_rune_cbar
> | Super Crowbar - The super crowbar rune will make your crowbar a one hit, one kill weapon when used in primary fire mode. The secondary fire mode will throw unlimited Flying Crowbars. Life Span: 30 seconds. Respawn: 1 minute.
> Mega Grenade - bm_rune_gren
> | Mega Grenade - This rune makes hand grenades explode into very powerful, very satisfying explosions. We recommend throwing them VERY FAR away from yourself. Life Span: 30 seconds. Respawn: 2 minutes.
> Super Magnum - bm_rune_357
> | Super Magnum - The super magnum will deal 100 points of bullet damage to your foes while active. The regular magnum does 40 points. Life Span: 30 seconds. Respawn: 1 minute.
> Extra Health - bm_rune_health
> | Extra Health - The extra health rune doubles the health you get from medkits and first aid machines for as long as the rune is active. Life Span: 30 seconds. Respawn: 1 minute.
> Extra Armor - bm_rune_armor
> | Extra Armor - The extra armor rune doubles the armor you get from batteries and HEV chargers for as long as the rune is active. Having this rune active will also make the bubblegun give you armor instead of health. Life Span: 30 seconds. Respawn: 1 minute.
> Super Shotgun - bm_rune_shotty
> | Super Shotgun - This is a very powerful rune. It triples the fire rate of the shotgun (in both primary and secondary modes) and reloads only take one "click." Life Span: 30 seconds. Respawn: 3 minutes.
Custom Map Configurations
> You can now add a custom configuration file for each map. When a map loads, it will attempt to execute a config file called "(mapname).cfg" in your maps directory. In this file you can modify CVARs, or issue any special commands to customize gameplay for that map. Note that if you modify a CVAR in a map.cfg file, you MUST have the CVAR listed in your server.cfg as well. If you do not, the map.cfg file will change the cvar when the map loads and the variable will remain changed for all maps that follow it. BubbleMod adds some special server side commands to help you customize maps. See the new entity commands create, remove, delete, and replace. Example 1: This config will override the mp_timelimit set in the server.cfg to 45 minutes. It will also add several 357 ammo packs and snarks to the surface area and a hornet gun in the tunnels of gasworks.

>     // gasworks.cfg
>     // config file for gasworks.bsp
>     //
>     mp_timelimit 45
>     create ammo_357 -1100 713 36 -1
>     create ammo_357 -1200 713 36 -1
>     create ammo_357 -164 1684 -651 -1
>     create weapon_snark -453 1705 -651 -1
>     create weapon_snark -95 978 36 -1
>     create weapon_snark -329 363 36 -1
>     create weapon_hornetgun 643 1036 -651 270
> Example 2: This config file will lower the gravity to 600, replace all the crossbow weapons and ammo with shotguns and shotgun ammo, and add a longjump (with random facing) on the bridge in boot_camp. Be sure that you have "sv_gravity 800" in your server.cfg file so that gravity gets reset back to normal after the next map loads.
>     // boot_camp.cfg
>     // config file for boot_camp.bsp
>     //
>     sv_gravity 600
>     replace ammo_crossbow ammo_buckshot
>     replace weapon_crossbow weapon_shotgun
>     create item_longjump 2258 -113 64 -1
> Example 3: This config will disable the frag limit, remove all the crossbows and gluons, replace all the satchels with NEW gluons (commands are executed in order!), create one longjump, one battery and one health pack on the bridge, and overide all rune settings to create three random runes limiting them to crowbar and grenade runes.
>     // boot_camp.cfg
>     // config file for boot_camp.bsp
>     //
>     remove ammo_crossbow
>     remove weapon_egon
>     replace weapon_satchel weapon_egon
>     create item_longjump 2258 -113 64 0
>     create item_healthkit 2258 -163 64 0
>     create item_battery 2258 -213 64 0
>     mp_fraglimit 0
>     bm_rune_cbar 0
>     bm_rune_gren 0
>     bm_rune_357 0
>     bm_rune_health 0
>     bm_rune_armor 0
>     bm_rune_shotty 0
>     bm_rune_rand 3
>     bm_runemask 3
Player Command Reference
Player commands fall into two categories. "Console" commands and "say" Commands. Console commands are always entered on the console display. Say commands are issued by saying keywords with the "say" or "say_team" commands.
Player Console Commands
Command | Description
--- | ---
locate | This will enable the coordinate locator on your HUD display. This is only useful if you are trying to find places to spawn new items.
leetspeak | Setting this to 1 will put you in "L33t$p34K" mode. Everything you say will be translated into leet-speak. Set to 0 to disable.
Player "say" Commands
Command | Description
--- | ---
timeleft | Will echo the time remaining on the current map.
fragsleft | Will echo the frags that the lead player or team need to win the current map.
map | Will echo the names of the current and next maps.
status | Will echo timeleft, fragsleft, and map names all on one line.
rockthevote | Will enable map voting. Saying this while a map vote is in progress will echo the time remaining in the current vote, and which map is winning.
vote <map name> | Will vote for a map. This command only works if there is a vote in progress. You can change your vote as many times as you wish.
vote extend | While a vote is in progress, voting for "extend" will extend the current map by 30 minutes and 25 frags.
time | Will echo local server time.
Server Command Reference
These are new server side commands added to BubbleMod. You can get player UID numbers from the "stat" or "users" commands.
Server Console Commands
Command | Description
--- | ---
s "say text" | Admin say command. This works just like the original "say" command, except that it will handle longer lines, the messages will appear to come from "<ADMIN>" and the say lines will be logged.
w <UID> "say text" | Admin whisper command. Just like the "s" command, but you can specify which player will hear you.
markspawnpoints | This command will mark all player spawn points with a green box. This is mainly for debugging purposes, and was used when developing the anti-spawn-mine code.
sspeak "vox sentence" | sspeak will speak in the vox voice to all players. For a list of words that vox knows, use a pak viewer to look in pak0.pak sound/vox. For example sspeak "deedoo warning, hostile idiot detected in sector alpha" will say that sentence (with the horn effect and a pause after the warning) to all players using the vox wav sounds.
info <UID> | This command will give you some additional info on a player.
create <entity> <x pos> <y pos> <z pos> <facing> | This server command will create the specified entity at the supplied coordinates and facing. You'll generally only want to use this command in a map.cfg file. Allowed entities are any weapon_ or ammo_ entity, item_healthkit, item_battery, item_longjump, or info_player_deathmatch. If you specify a "-1" for the facing, the facing will be randomized. Example: create item_longjump 2258 -113 64 -1 in the file maps/boot_camp.cfg will spawn a long jump module on the bridge in boot_camp. The module will be facing in a random direction every time the map loads.
remove <entity> | This server command will completely remove the specified entity from the map. Place this in your server.cfg file to banish the entity from your server, or in the map.cfg to remove them from just a single map. Allowed entities are any weapon_ or ammo_, item_healthkit, item_battery or item_longjump. Example: remove ammo_crossbow in your server.cfg file will banish all crossbow ammo from your server. Crossbows will still be there, but there will be no ammo to pick up.
delete <entity> <x pos> <y pos> <z pos> | This server command will delete the specified single entity from a map. The coordinates supplied must be within 64 units of the entity you want to delete, and the command will delete the first entity it finds in that radius. Place this in the map.cfg to remove a particular entity from a map. Allowed entities are any weapon_ or ammo_, item_healthkit, item_battery, item_longjump, or info_player_deathmatch. Example: delete weapon_hornetgun -199 1923 60 in your boot_camp.cfg file will delete the hornet gun weapon near the longjump in Boot Camp.
replace <entity1> <entity2> | This server command will replace all instances of entity 1 with entity 2. Allowed entities are any weapon_ or ammo_, item_healthkit, item_battery or item_longjump. Example: replace weapon_satchel item_battery will replace all satchels with armor batteries.
llama <UID> | Llamafies a player. Llamafied players will drop weapons (they have no thumbs) and can only speak in bleats and snorts. The llama status will stick to the WONid of that player until the map changes, so even if they reconnect they will still be llamafied.
unllama <UID> | This will remove the llamafied status from a player.
Server CVAR Reference
Weapon Mods
Variable Name | Default | Description
--- | --- | ---
bm_gluon_mod | 1 | Turn on/off the bubblegun. 0=off, 1=on
bm_mp5_mod | 1 | Turn on/off the MP5 modifications. 0=off, 1=on
bm_rpg_mod | 1 | Turn on/off the RPG modifications. 0=off, 1=on
bm_tau_mod | 1 | Turn on/off the tau cannon modifications. 0=off, 1=on
bm_snarks_mod | 1 | Turn on/off the snark modifications. 0=off, 1=on
bm_cbar_mod | 1 | Turn on/off the crowbar modifications. 0=off, 1=on
bm_hornet_mod | 1 | Turn on/off the hornet modifications. 0=off, 1=on
bm_trip_mod | 1 | Turn on/off the tripmine modifications. 0=off, 1=on
bm_shotty_mod | 0 | Turn on/off the shotgun modifications. 0=off, 1=on
bm_xbow_mod | 1 | Turn on/off the crossbow modifications. 0=off, 1=on
Weapon Variables
Variable Name | Default | Description
--- | --- | ---
bm_freezetime | 4.5 | Sets the freeze duration (in seconds) on the hornet gun freeze ray.
bm_thrust | 0 | Experimental. This value will add thrust to the bubblegun, allowing players to use it as a mode of transport. Note that this feature still needs work, and may be dropped in future versions. Some players may get more thrust out of this than others. Try values around 40-45.
bm_snarktrails | "0AE00AC8" | Controls the color of the trails left by snarks. The color format is RGBA (Red, Green, Blue, Alpha), where each component is a two digit hexadecimal number. This effect is independant of the snark mod. To disable snark trails set Alpha to 00.
bm_xbowtracers | 1 | Turns on and off the tracers left by explosive and sniper crossbow bolts.
Mod Features
Variable Name | Default | Description
--- | --- | ---
bm_url | "" | Sets the URL used to link to the server's web pages on the bubblewatch page. If left blank, then no link will be created.
bm_dmg_messages | 1 | Turns on and off damage messages and match kill notifications.
bm_spawneffects | 1 | Turns on and off the particle and sound effects for spawning players.
bm_matchkills | 1 | Turns on and off match-kill notifications. Does nothing if bm_dmg_messages is 0.
bm_voting | 1 | Turns on and off player map voting.
bm_votetime | 180 | This is the maximum time (in seconds) that a vote is allowed to run.
bm_maxtime | 120 | This is the maximum time (in seconds) a map can be extended to using the "vote extend" feature.
bm_maxfrags | 100 | This is the maximum frags a map can be extended to using the "vote extend" feature.
bm_spawnmines | 0 | By default, the game will not allow spawn mines or spawn snark mines to be placed. If they are, the mine will detonate upon arming, and a nasty message will be broadcast to all players announcing who tried to place the spawn mine. This feature can be turned off by setting "bm_spawnmines 1"
bm_spawnsatchels | 0 | By default, the game will not allow satchels to be piled up on spawn points. If they are, the satchel will detonate as soon as it stops moving, and a nasty message will be broadcast to all players announcing who tried to place the spawn satchel. This feature can be turned off by setting "bm_spawnsatchels 1"
bm_guns | "crowbar;glock;357" | This var sets the starting weapons for spawning players. All guns come with a full clip of ammo (if applicable). This is a semicolon-delimited list of start weapons. Valid, case sensitive weapon names are: crowbar 9mmhandgun, glock 357, python 9mmAR, mp5 shotgun egon (gluon) gauss (tau) rpg hornetgun tripmine satchel handgrenade snark crossbow The last weapon in the list will be selected at spawn. The second to last weapon will be the previous weapon. Example: bm_guns "crowbar;egon;357;9mmhandgun" The player will start with the crowbar, 357, bubblegun, and glock with the glock selected and the 357 on the previous weapon key.
bm_ammo | "9mmclip;9mmclip;357;357" | bm_ammo is a semicolon-delimited list of start ammo. For each name in the list, one clip of the appropriate ammo will be added. Valid, case sensitive ammo names are: 9mmclip (9mm sized for glock) mp5clip (9mm sized for MP5) 9mmbox (200 9mm rounds) 357 (magnum ammo) buckshot (shotgun ammo) ARgrenades (contact grenades for the MP5) gaussclip (uranium sized for tau) egonclip (uranium sized for gluon) rpgclip (rockets) crossbow (crossbow bolts) Other types of ammo like tripmines, snarks, and satchels can be given by adding multiple weapons to bm_guns. Example: bm_ammo "ARgrenades;9mmclip;9mmclip;buckshot" Will give each starting player 2 extra clips for the glock, a pack of contact grenades, and a box of buckshot.
Auto Kick / Banning
Variable Name | Default | Description
--- | --- | ---
bm_spawnkilltime | 10 | This variable sets the time frame (in seconds) for spawn kill determinations. This is the maximum time a player is allowed to run around before they are no longer considered "spawn kill" material. A player is a spawn killed if: They are killed within this time frame, AND they did not fire, AND they did not switch from the 9mm pistol, AND they did not use a func_tank. Spawn kills are announced to all players in game and spawn kills are marked with the "(spawn)" boolean in the logs. Setting this variable to 0 will disable the spawn kill feature.
bm_maxspawnkills | 3 | This variable sets the maximum number of spawn kills a player is allowed before they are automatically kick/banned from the server. The length of the ban is equal to bm_bantime. Setting this to 0 and enabling bm_spawnkilltime will allow players to spawn kill forever without being kicked. This cvar has no effect if bm_spawnkilltime is zero.
bm_typekills | 1 | Setting this to 1 will enable type mode. To enter type mode, players must switch to the crowbar weapon, face a wall, and not move for 4 seconds. Players will be thrown out of type mode if they: switch to any other weapon, OR move, OR pick up any item, OR press their USE key.
bm_typecam | 1 | This variable will enable a back-facing fisheye camera for players in type mode. This has no effect if bm_typekills is set to zero.
bm_maxtypekills | 3 | This variable sets the maximum number of type kills a player is allowed before they are automatically kick/banned from the server. The length of the ban is equal to bm_bantime. Setting this to 0 and enabling bm_typekills will allow players to type kill forever without being kicked. This cvar has no effect if bm_typekills is zero.
bm_bantime | 30 | This is the ban time (in minutes) that players will be banned from the server if they reach the bm_maxspawnkills or bm_maxtypekills value. WARNING! Setting this cvar to zero will result in PERMINANT bans. To disable banning set bm_maxspawnkills and/or bm_maxtypekills to zero.
bm_antispam | 1 | This will enable the anti-spam auto-kick feature. It is HIGHLY recommended that you keep this enabled. It is possible for players to crash the server by using spam scripts to repeat say messages over and over.
bm_spamlimit | 4 | The is the maximum say or team_say messages per second that players are allowed to spam before they are auto-kicked.
Runes
Variable Name | Default | Description
--- | --- | ---
bm_rune_rand | 0 | This is the number of randomized runes that will be added to the game. Random runes will choose to be a different rune every time they spawn.
bm_runemask | 63 | Defines which runes the random runes are allowed to choose from. This is a bitwise value. Add up the following to calculate this CVAR: 1 - crowbar rune 2 - grenade rune 4 - 357 rune 8 - health rune 16 - armor rune 32 - shotgun rune The default is 63, which is all runes.
bm_rune_cbar bm_rune_cbar_t bm_rune_cbar_r | 1 30 60 | This set of variables determine the number of Super Crowbar runes that will be spawned, the amount of time the rune will stay active on a player, and how long it takes a rune to respawn after is has been picked up.
bm_rune_gren bm_rune_gren_t bm_rune_gren_r | 1 30 120 | This set of variables determine the number of Mega Grenade runes that will be spawned, the amount of time the rune will stay active on a player, and how long it takes a rune to respawn after is has been picked up.
bm_rune_357 bm_rune_357_t bm_rune_357_r | 1 30 60 | This set of variables determine the number of Super Magnum runes that will be spawned, the amount of time the rune will stay active on a player, and how long it takes a rune to respawn after is has been picked up.
bm_rune_health bm_rune_health_t bm_rune_health_r | 1 30 60 | This set of variables determine the number of Extra Health runes that will be spawned, the amount of time the rune will stay active on a player, and how long it takes a rune to respawn after is has been picked up.
bm_rune_armor bm_rune_armor_t bm_rune_armor_r | 1 30 60 | This set of variables determine the number of Extra Armor runes that will be spawned, the amount of time the rune will stay active on a player, and how long it takes a rune to respawn after is has been picked up.
bm_rune_shotty bm_rune_shotty_t bm_rune_shotty_r | 1 30 180 | This set of variables determine the number of Super Shotgun runes that will be spawned, the amount of time the rune will stay active on a player, and how long it takes a rune to respawn after is has been picked up.