Half-Life Cheat Codes

Advanced Cheats
I'm assuming you already know how to use the console and basic cheats -- if not, please read the information at those two links before continuing. 

Ready to have a little fun with the Half-Life characters? Ever wonder how many Barneys would be required to take out the Osprey at the end of Surface Tension? Do you know how long it would take for a barnacle to kill 10 scientists? The answers to these questions and anything else you might come up with are easy enough to find -- just spawn the characters you want and watch them go at it! Here's how:
 

  1. Load Half-Life with the console enabled and start a new game. 

  2.  
  3. Open the console and enable cheats by typing sv_cheats 1 into the console. Note that cheat mode is not enabled until you load a new map. 

  4.  
  5. Load one of the single-player maps with the map mapname console command. Replace mapname with any of the following: c1a1, c0a0, c0a0a, c0a0b, c0a0c, c0a0d, c0a0e, c1a0, c1a0a, c1a0b, c1a0c, c1a0d, c1a0e, c1a1a, c1a1b, c1a1c, c1a1d, c1a1f, c1a2, c1a2a, c1a2b, c1a2c, c1a2d, c1a3, c1a3a, c1a3b, c1a3c, c1a3d, c1a4, c1a4b, c1a4d, c1a4e, c1a4f, c1a4g, c1a4i, c1a4j, c1a4k, c2a1, c2a1a, c2a1b, c2a2, c2a2a, c2a2b1, c2a2b2, c2a2c, c2a2d, c2a2e, c2a2f, c2a2g, c2a2h, c2a3, c2a3a, c2a3b, c2a3c, c2a3d, c2a3e, c2a4, c2a4a, c2a4b, c2a4c, c2a4d, c2a4e, c2a4f, c2a4g, c2a5, c2a5a, c2a5b, c2a5c, c2a5d, c2a5e, c2a5f, c2a5g, c2a5w, c2a5x, c3a1, c3a1a, c3a1b, c3a2, c3a2a, c3a2b, c3a2c, c3a2d, c3a2e, c3a2f, c4a1, c4a1a, c4a1b, c4a1c, c4a1d, c4a1e, c4a1f, c4a2, c4a2a, c4a2b, c4a3, c5a1, t0a0, t0a0a, t0a0b, t0a0b1, t0a0b2, t0a0c, t0a0d 

  6.  
  7. Spawned entities (monsters, barneys, etc.) will appear in the same position you are in when you create them, so you must disable clipping or you'll be stuck inside them. Use noclip to toggle clipping on and off. When off, you can fly around and move through walls, which is also handy for recording demos of the action you create. 

  8.  
  9. You may also want to enable no-target mode and invincibility. No-target mode (use notarget to toggle this mode) will cause enemies to ignore you and focus instead on whatever other characters are in the area (barneys or scientists). Invincibility (use god to toggle this one) will make sure you're not injured by the crossfire. 

  10.  
  11. Note that you can only spawn a character that you have previously seen on the current map! To see the list of currently loaded and available characters, type entities into the console. Use PageUp/PageDown to scroll the list -- the available characters are listed in the form "models/character_name.mdl". To spawn a new character, type give monster_XXX into the console, but replace XXX with the name of the character you wish to create. If you try to spawn a character that you have not yet seen on the current map (and it's not in the entities list), attempting to spawn it will exit the game and give you a "Bad Entity" error. The following is a list of characters you can spawn only if they are on your current entities list: alien_slave, alien_grunt, apache, barnacle, barney, barney_dead, bigmomma (gonarch), bullchicken, cockroach, furniture, flyer_flock, gargantua, generic, gman, grunt_repel, headcrab, hevsuit_dead, hgrunt_dead, human_grunt, human_assassin, houndeye, scientist, scientist_dead, sentry, miniturret, turret, ichthyasaur, leech, tentacle, zombie, hgrunt, nihalinth, osprey. 

  12.  
Important Note: It's important to check the entities list (just type entities into the console) to make sure a character is available before attempting to spawn one. If you try to spawn a character that's not in your list, the game will exit. If the character you want is not on your entities list, load a different map until you find it. If anyone knows how to get around this, please let me know.

Additional Notes About Spawning Characters:

  • Spawned characters appear in your exact position when you use the give command. You must use noclip to disable clipping or you will be stuck inside the character you spawn.

  •  
  • After spawning, characters will fall down to the ground or solid object below. If you are in a solid object (such as a wall, the ground, or another player) when you spawn a character, he (or it) will be surrounded by a sphere of swirling yellow particles and may be immobile. To avoid this, spawn characters from slightly above the ground (but not in the ceiling) and away from other characters. 

  •  
  • It's easier to spawn a lot of characters quickly if you bind keys to the give command(s) for the entities you have available. For example: bind x "give monster_scientist"

  •  
  • If you're recording demos of your spawned characters, bind keys to record, stop and appenddemo mydemo commands to make it easy to pause and resume recording. If you record a demo to submit here, please try to pause recording (stop) during lulls in the action and resume (appenddemo) when there's something interesting to see again. Try to keep demos under 500kb or so (which should end up around 100k zipped), and be sure to read the submission guidelines first.

  •  
  • Check out the Demos page if you'd like to download and watch the demo I recorded after spawning several Barneys and Zombies. It's pretty amusing, but I'm sure you can come up with better. If you do record a good demo (make sure you use the latest version of Half-Life), send it in and I'll post it on the demos page. (Read the submission guidelines first).

  •  
Ongoing Work
I'm looking for a way to spawn any character anywhere, or at least force any model to be loaded onto the entities list. I'm not sure that this is even possible (the spawn command is not avialable from the console and can only be executetd by a map), so I will try to put together a list of which entites are available on each of the single-player maps listed above. This should make it easier to find maps containing the characters you want to mess with. Another possible solution would be to use a single-player map with all entites spawned at least once. If you can help make such a map, or the list mentioned above, or if you have more information on this subject, please let me know!

Thanks to Suefoll for this information!