I was going to write a tutorial on how to do this awhile ago, but never got around to it and then I saw this tutorial awhile back and thought it would just be better to use this one since it is really detailed and good. GPD modding for Black Ops is mostly pointless right now, but you can always just play offline and have fun with it.
You can use all of the left and middle frames of Xero for writing code and it will work in zombies. The right side frame is for multiplayer.
After downloading Xero, download a gpd. This is my latest modded gpd, you can just delete everything in it and start writing your own code.
First we start with this:
Code:
set gpad_buttonsConfig "null"
Now, I'm going to assume you're COMPLETELY new to all this, so I'll explain what this does.
set is a command that sets the value of a dvar - which is basically a setting in the game. For example, a simple dvar is start_in_mp . It only has two values, "0", and "1". If you change the options so the game doesn't start in multiplayer, the value would be "0". Likewise, if you have the game set to load in mulitplayer, the value would be "1".
The dvar being set here is none other than gpad_buttonsConfig - the dvar that tells the game what controls to load.
The third part of that code is the dvar's value, "null" . It doesn't actually have to be set to "null", it can be set to anything that isn't already a preset button layout. If we made its value "asdfgh", it would serve the same purpose.
Now we add a couple more lines of code:
Code:
set gpad_buttonsConfig "null"
set zombiefive_discovered "1"
set clanName "walk"
These two are pretty self-explanatory. zombiefive_discovered tells the game whether or not the zombie map "Five" is unlocked, and clanName is, obviously, the clan tag. I've set it to "walk" so that people know that they inejcted the correct gpd into their profile. You can change it to any four digit alphanumeric combination.
Now we get to the fun part.
Code:
set gpad_buttonsConfig "null"
set zombiefive_discovered "1"
set clanName "walk"
bind DPAD_UP "god"
bind is the command that tells the game what to do when a certain button is pressed. In this case, DPAD_UP is binded to "god". "God" is a command in the game that gives you godmode. A full list of commands and the names of the buttons are at the end of this tutorial.
So lets add a few more binds...
Code:
set gpad_buttonsConfig "null"
set zombiefive_discovered "1"
set clanName "walk"
bind DPAD_UP "god"
bind DAPD_DOWN "dropweapon"
bind DPAD_RIGHT "give ray_gun_upgraded_zm"
bind BUTTON_RSHLDR "noclip"
You SHOULD be able to figure out MOST of what was added, but of course, I will explain. dropweapon will drop your current weapon... give is a command that gives the player a certain gun, in this case the raygun. A full list of the guns for Kino and Five will be at the end of the tutorial. noclip is like spectating in free mode, you can fly around and go through the walls, it's pretty fun.
If you understand all that, then the rest won't be too hard...
When making one button do more than one thing, we do the following:
Code:
set gpad_buttonsConfig "null"
set zombiefive_discovered "1"
set clanName "walk"
bind DPAD_UP "god"
bind DAPD_DOWN "dropweapon"
bind DPAD_RIGHT "give ray_gun_upgraded_zm"
bind BUTTON_RSHLDR "noclip"
bind BUTTON_LSHLDR "notarget ; ai axis delete"
Take a look at the last line of code I put in. There are two commands there. notarget will make you invisible to the zombies, they will utterly ignore your existance; unfortunately, it also doesn't give you points for killing them... ai axis delete is all one command. It just deletes all the bots at the time it is activated. As you can see, the two commands are separated by a semicolon. That is how you give something multiple values. You can add as many functions as space permits, so long as you separate them with semicolons. You'll notice that there is a space before and after the semicolon; these spaces are unneccessary and just added to make the code easier to read.
Now what if we want something like super speed?
Code:
set gpad_buttonsConfig "null"
set zombiefive_discovered "1"
set clanName "walk"
bind DPAD_UP "god"
bind DAPD_DOWN "dropweapon"
bind DPAD_RIGHT "give ray_gun_upgraded_zm"
bind BUTTON_RSHLDR "noclip"
bind BUTTON_LSHLDR "notarget ; ai axis delete"
bind DPAD_LEFT "set g_speed 400"
g_speed sets the player speed (walking and sprinting). This MIGHT confuse you a little. Normally we put quotes around the value of a dvar, but in this case, the dvar is being set within a bind, so the quotes go around the value of the bind.
Now, we bind a dvar and a command to one button
Most of the users on 7s probably know most of this anyway, so this is just a very basic tutorial on modding GPDs.
Contrary to what I thought before, you can COMPLETELY empty the frames in Xero and fill them with nothing but mods. So, open up Xero and get ready to follow along.
First we start with this:
Code:
set gpad_buttonsConfig "null"
Now, I'm going to assume you're COMPLETELY new to all this, so I'll explain what this does.
set is a command that sets the value of a dvar - which is basically a setting in the game. For example, a simple dvar is start_in_mp . It only has two values, "0", and "1". If you change the options so the game doesn't start in multiplayer, the value would be "0". Likewise, if you have the game set to load in mulitplayer, the value would be "1".
The dvar being set here is none other than gpad_buttonsConfig - the dvar that tells the game what controls to load.
The third part of that code is the dvar's value, "null" . It doesn't actually have to be set to "null", it can be set to anything that isn't already a preset button layout. If we made its value "asdfgh", it would serve the same purpose.
Now we add a couple more lines of code:
Code:
set gpad_buttonsConfig "null"
set zombiefive_discovered "1"
set clanName "walk"
These two are pretty self-explanatory. zombiefive_discovered tells the game whether or not the zombie map "Five" is unlocked, and clanName is, obviously, the clan tag. I've set it to "walk" so that people know that they inejcted the correct gpd into their profile. You can change it to any four digit alphanumeric combination.
Now we get to the fun part.
Code:
set gpad_buttonsConfig "null"
set zombiefive_discovered "1"
set clanName "walk"
bind DPAD_UP "god"
bind is the command that tells the game what to do when a certain button is pressed. In this case, DPAD_UP is binded to "god". "God" is a command in the game that gives you godmode. A full list of commands and the names of the buttons are at the end of this tutorial.
So lets add a few more binds...
Code:
set gpad_buttonsConfig "null"
set zombiefive_discovered "1"
set clanName "walk"
bind DPAD_UP "god"
bind DAPD_DOWN "dropweapon"
bind DPAD_RIGHT "give ray_gun_upgraded_zm"
bind BUTTON_RSHLDR "noclip"
You SHOULD be able to figure out MOST of what was added, but of course, I will explain. dropweapon will drop your current weapon... give is a command that gives the player a certain gun, in this case the raygun. A full list of the guns for Kino and Five will be at the end of the tutorial. noclip is like spectating in free mode, you can fly around and go through the walls, it's pretty fun.
If you understand all that, then the rest won't be too hard...
When making one button do more than one thing, we do the following:
Code:
set gpad_buttonsConfig "null"
set zombiefive_discovered "1"
set clanName "walk"
bind DPAD_UP "god"
bind DAPD_DOWN "dropweapon"
bind DPAD_RIGHT "give ray_gun_upgraded_zm"
bind BUTTON_RSHLDR "noclip"
bind BUTTON_LSHLDR "notarget ; ai axis delete"
Take a look at the last line of code I put in. There are two commands there. notarget will make you invisible to the zombies, they will utterly ignore your existance; unfortunately, it also doesn't give you points for killing them... ai axis delete is all one command. It just deletes all the bots at the time it is activated. As you can see, the two commands are separated by a semicolon. That is how you give something multiple values. You can add as many functions as space permits, so long as you separate them with semicolons. You'll notice that there is a space before and after the semicolon; these spaces are unneccessary and just added to make the code easier to read. Also, the case of the letters doesn't matter. You can write "BiND BuTTOn_LsHlDr NOtARget" and it will be the same thing.
The dvar ai_disablespawn is pretty obvious... it disables the ai spawning... "BUTTON_RSTICK" is the right thumbstick when pressed. With this bind, when we press the right thumbstick, it will delete all the zombies and stop them from spawning. Unfortunately, if you press it again, it won't enable their spawning because it's setting ai_disablespawn to 1 every time it's pressed. So what if we want to TOGGLE the dvar between values?
Code:
set gpad_buttonsConfig "null"
set zombiefive_discovered "1"
set clanName "walk"
bind DPAD_UP "god"
bind DAPD_DOWN "dropweapon"
bind DPAD_RIGHT "give ray_gun_upgraded_zm"
bind BUTTON_RSHLDR "noclip"
bind BUTTON_LSHLDR "notarget ; ai axis delete"
bind DPAD_LEFT "set g_speed 400"
bind BUTTON_RSTICK "ai axis delete;toggle ai_disablespawn"
I've replaced "set" with "toggle" and removed the value. ai_disablespawn only has two values, so "toggle" will set it to whichever value it wasn't. If the value was "1" and we toggle it, it becomes "0".
timescale is the speed the game is running. Its highest value is 2, which will make everything happen twice as fast. When we press the left thumbstick, it will activate the toggle. The value is already "1" by default, so it goes to the second value, "2". The first time you press the left thumbstick, it will make the game go twice as fast (it will probably lag though). When you press it again, it goes to the next value, ".2", which will make the game go in slow motion (bye bye lag). A third press sets it back to normal. For some reason, if the default value isn't the first of the toggled values, it will get stay at the last value. I HAVE NO IDEA WHY.
If you understand all of this, you can use the commands and dvars below to make your own modded GPD!!! For a more advanced GPD, see my tutorial on using "vstr", also shown below.
Commands, Dvars, Buttons, and weapons. (thank you "Watch How I Mod" for all but a few of them!)
Commands:
god \\ Enables godmode (you can't die)
ai axis delete \\ Deletes the zombies (they will continue to spawn though)
give all \\ It's supposed to give you all the guns. The game has a limit though, so you only get some of them
noclip \\ Fly through walls
notarget \\ Zombies ignore you (no points for killing them)
take all \\ Takes everything from you (including your health, knife, grenades, and claymores)
dropweapon \\ Drops your current weapon
ufo \\ Similar to noclip, but you move up and down with the left and right triggers.
give ammo \\ Replenishes all ammunition
demigod \\ Increased health
kill \\ Kills you
fast_restart \\ Restarts the map
setviewpos \\ Teleports you to the defined coordinates. Ex: **bind DPAD_DOWN "setviewpos x y z"** the code is in the astericks, and x, y, and z are what the coordinates would be. To get the coordinates, you either have to have the PC version with the console, or you can start at 0 0 0 and move from there...
Dvars:
g_speed 400 \\ Increased player speed (includes walking and sprinting)
r_fog 0 \\ Disables fog
timescale 2 \\ Controls the game speed (1 is default, 2 is the highest, and numbers between 0 and 1 can be used for slow motion)
player_meleeRange 999 \\ Controls the range of melee attacks (in this case, extremely far)
player_clipSizeMultiplier 999 \\ Controls your clip size (in this case, extremely large)
perk_weapratemultiplier 0 \\ Increases the speed of double tap when it is bought
perk_armorvest 0 \\ Increases health bonus from juggernaut when bought
perk_weapReloadMultiplier 0.001 \\ Instant reload when sleight of hand is bought
phys_gravity 99 \\ Makes zombies float when they die
Revive_Trigger_Radius 99999 \\ Controls the range you can revive someone from (in this case, extremely far)
player_lastStandBleedoutTime 400 \\ Controls the bleedout time when downed (EXTREME)
magic_chest_movable 0 \\ Controls whether or not the mystery box will move (1 for yes, 0 for no)
player_burstFireCooldown 0 \\ No delay between burst fire weapon's burst.