It seems that Gray Matter has put out a little FAQ to help with the transition to Call Of Duty United Offensive. It is not much - but at the same time it is more than IW ever gave us
Call of Duty™: United Offensive™ Mod FAQ
(v0.1)
The purpose of this FAQ is to help map makers/modders
who are currently working with multiplayer Call of Duty™ to migrate over
to Call of Duty™: United Offensive™. This FAQ is most likely incomplete since it is being written at the end
of our year long development cycle and I do not remember all of the changes
that we have made over the course of the year. I am going to try to update this as I hear more specifically what people
are interested in knowing.
Index:
1. Whats New
2. cvars
2.1
Code cvars
2.2 Script cvars
2.2.1 Common script cvars
2.2.2 Weapon cvars
2.2.3 Vehicle cvars
2.2.4 Base Assault cvars
2.2.5 Capture the Flag cvars
2.2.6 Domination cvars
3. Mapping
3.1 LMG
mount areas
3.2 Vehicles
4. Scripting
5. Weapons
5.1 Weapon Types
5.1 Weapon
Settings Changes
5.1.1 Bullet Weapons
6. Modeling
6.1
Weapons
6.2
Vehicles
6.3
Characters
7. Animating
7.1
Weapons
7.2
Vehicles
7.3
Characters
1. Whats
New:
9/14/04: (whats new in Call of Duty: United
Offensive)
· Sounds:
Changed
the way sounds are loaded for the game. Instead of loading all sound alias files and determining which sound
aliases should be loaded from the loadspec column a new loadspec csv was
introduced to determine which sound alias files should be looked at. These can be found in the soundloadspecs
folder.
· Weapons:
Upped
the maximum weapon limit to 128. Call
of Duty: United Offensive is currently using about 64. Weapons have been modified so you are going
to have to update your weapon files with the new fields. You will need new weapon gdf’s and converter
to make these files.
· Scripting:
Some
of the base script files (_team.gsc, etc.) have been modified so if you have made
a new one for original Call of Duty you are going to need to change over to the
new version. Several new script
commands have been added.
· CVARS:
Several
new cvars have been added. Look here for information on the additions.
· Downloading:
HTTP
redirect has been added. Having a pak
file with “_svr_” in the name will prevent the client from downloading it.
· Menu Files:
Upped
the limit of in game menu files to 100. Call of Duty: United Offensive is using around 64 of these.
2. cvars
2.1 Code cvars
cg_tracerchanceLMG
[percent] – Controls
the frequency of tracers for light machine guns and vehicle weapons.
cg_tracerwidthLMG
– Sets
the width of the tracers for light machine guns and vehicle weapons.
cg_tracerlengthLMG
– Sets
the length of the tracers for light machine guns and vehicle weapons.
cg_tracerNightScale
[percent] – Sets
the scaling of all of the night time versions of the tracers. Will only be used if sv_night is set to 1
for the map in question.
cl_autocmd
[0/1] – If
this is zero then anything typed in the console will be treated a “say”. If this is 1 (default) then anything typed
in the console will be treated as a command.
g_allowvotemaprestart
[0/1] – If
set to true then clients can vote on map restart. Defaults on.
g_allowvotemaprotate
[0/1] – If
set to true then clients can vote on rotating to the next map. Defaults on.
g_allowvotetypemap
[0/1] – If set
to true then clients can vote on changing the gametype and map (using the
“/vote typemap” command or the vote menu). Defaults on.
g_allowvotemap
[0/1] – If
set to true then clients can vote on changing the map (using the “/vote map”
command or the vote menu). Defaults on.
g_allowvotegametype
[0/1] – If
set to true then clients can vote on changing the gametype (using the “/vote
g_gametype” command). Defaults on.
g_allowvotekick
[0/1] – If
set to true then clients can vote on kicking a client (using the “/vote kick”
command or the vote menu). Defaults off.
g_allowvoteclientkick
[0/1] – If
set to true then clients can vote on kicking a client by id(using the “/vote
clientkick” command). Defaults off.
g_allowvotetempbanuser
[0/1] – If
set to true then clients can vote on temporarily banning a player (using the
“/vote tempbanuser” command or the vote menu). Defaults off.
g_allowvotetempbanclient
[0/1] – If
set to true then clients can vote on temporarily banning a player (using the
“/vote tempbanclient” command). Defaults off.
g_inactivityspectator
[secs]– Functions
the same as g_inactivity except is works for spectators. When this cvar is set to some number of
seconds any spectator who is idle for that period of time will automatically be
kicked from the server. Zero (default) is off.
sv_wwwDownload
[0/1] –
Turns on and off http/ftp client downloading. Off is default.
sv_wwwDlDisconnected
[0/1] – If
on then clients will be disconnected from the server when they are performing a
http/ftp download. The client will
automatically reconnect when downloading is done.
sv_wwwBaseURL
[http/ftp URL] – This is the url the clients will use to download map/mod paks. The url needs to point to a directory one directory
below the directory where the pak files are kept.
sv_night
[0/1] –
This controls the current map being treated as a night map or not. Night maps get bigger tracers. Nighttime maps should set this cvar in their
gsc file.
sv_obituary
[0/1]– This
allows the server to control the clients seeing obituary (death/kill)
notifications. Default is on.
2.2 Script cvars
2.2.1 Common
script cvars
scr_battlerank
[0/1] – Turns battle rank on and
off. Default is on.
scr_drawfriend
[0/1] – When battle rank is on this
shows the rank symbols over the head of all of your teammates. If battle rank is off it shows the team icon
as in original Call of Duty. Default is on.
scr_drophealth [0/1] – If drop health is on then
when a player is killed health will be dropped. Default is on.
scr_shellshock
[0/1] – If this is on then explosions will cause the shell shock effect.
Default is on.
2.2.2 Weapon cvars
scr_allow_gewehr43
[0/1] – Allows the Gewehr 43 to be
used. Defaults on.
scr_allow_svt40 [0/1] – Allows the Tokarev SVT40 to be used. Defaults on.
scr_allow_30cal [0/1] – Allows the M1919A6 .30 cal to be used. Defaults on.
scr_allow_mg34 [0/1] – Allows the MG34 to be used. Defaults on.
scr_allow_dp28 [0/1] – Allows the Degtyarev DP28 to be used. Defaults on.
scr_allow_panzerschreck [0/1] – Allows the Panzerschreck to be used. Defaults on.
scr_allow_bazooka [0/1] – Allows the Bazooka to be used. Defaults on.
scr_allow_artillery [0/1] – Allows the artillery strikes to be used. Defaults on.
scr_allow_grenades [0/1] – Allows the grenades to be used. Defaults on.
scr_allow_smoke [0/1] – Allows the smoke grenades to be used. Defaults on.
scr_allow_satchel [0/1] – Allows the satchel charge to be used. Defaults on.
scr_allow_pistols [0/1] – Allows pistols to be used. Defaults on.
scr_allow_flamethrower [0/1] – Allows the flamethrower to be used. Defaults on.
2.2.3 Vehicle cvars
scr_allow_willyjeep
[0/1] – Allows the American jeep to
be used. Defaults on.
scr_allow_gaz67b
[0/1] – Allows the Russian jeep to be
used. Defaults on.
scr_allow_horch
[0/1] – Allows the German car to be
used. Defaults on.
scr_allow_sherman
[0/1] – Allows the American tank to
be used. Defaults on.
scr_allow_t34
[0/1] – Allows the Russian tank to be
used. Defaults on.
scr_allow_panzeriv
[0/1] – Allows the German tank to be
used. Defaults on.
scr_allow_elefant
[0/1] – Allows the German heavy tank
to be used. Defaults on.
scr_allow_su152
[0/1] – Allows the Russian heavy tank
to be used. Defaults on.
scr_allow_flak88
[0/1] – Allows the Flak88 to be
used. Defaults on.
2.2.4 Base Assault cvars
scr_bas_clearscoreseachround [0/1] – If set to 1 (default) the player scores will reset
each round (also resets the rank). If 0 the scores will carry over to the next
round.
scr_bas_endrounddelay [seconds] – Delay at the end of the round before the next round
starts.
scr_bas_respawn_wave_time [seconds] – How long from when the first person who dies on a team
to when everyone who is currently dead respawns.
scr_bas_roundlength [seconds] – Time allowed to play during one round before round
ends.
scr_bas_roundlimit [count] – Amount of rounds on one map allowed before map
automatically rotates.
scr_bas_scorelimit [count] – Maximum team score allowed before map automatically
rotates.
scr_bas_startrounddelay [seconds] – Delay before round starts when there is at least one
person on each team.
scr_bas_timelimit
[seconds] – Time allowed to play on
one map before map automatically rotates.
2.2.5 Capture the Flag cvars
scr_ctf_clearscoreseachround [0/1] – If set to 1 (default) the player scores will reset
each round (also resets the rank). If 0 the scores will carry over to the next
round.
scr_ctf_endrounddelay [seconds] – Delay at the end of the round before the next round
starts.
scr_ctf_roundlength [seconds] – Time allowed to play during one round before round
ends.
scr_ctf_roundlimit [count] – Amount of rounds on one map allowed before map
automatically rotates.
scr_ctf_scorelimit [count] – Maximum team score allowed before map automatically
rotates.
scr_ctf_showoncompass
[seconds] – If this is set then after
the given number of seconds the flag positions will appear on the radar ala
Behind Enemy Lines. Default is 0 (off).
scr_ctf_startrounddelay [seconds] – Delay before round starts when there is at least one
person on each team.
scr_ctf_timelimit [seconds] – Time allowed to play on one map before map
automatically rotates.
2.2.6 Domination cvars
scr_dom_clearscoreseachround [0/1] – If set to 1 (default) the player scores will reset
each round (also resets the rank). If 0 the scores will carry over to the next
round.
scr_dom_endrounddelay [seconds] – Delay at the end of the round before the next round
starts.
scr_dom_respawn_wave_time [seconds] – How long from when the first person who dies on a team
to when everyone who is currently dead respawns.
scr_dom_roundlength [seconds] – Time allowed to play during one round before round
ends.
scr_dom_roundlimit [count] – Amount of rounds on one map allowed before map
automatically rotates.
scr_dom_scorelimit [count] – Maximum team score allowed before map automatically
rotates.
scr_dom_startrounddelay [seconds] – Delay before round starts when there is at least one
person on each team.
scr_dom_timelimit [seconds] – Time allowed to play on one map before map
automatically rotates.
3. Mapping
No major changes have been made in regards to
mapping. There are a few new things to
consider when making maps but for the most part it is the same.
3.1 LMG mount areas
There are two new common
textures for LMG setup areas, one for standing and one for crouching. Anywhere you would like a player to be able
to set up a LMG you just need to create a brush to signify that the gun can be
setup in this spot. The players will
get an icon when they enter into these areas. Care should be taken with the placement and size of these brushes, as it
is best if they are only allowed to set up on an object and not in space
somewhere around the object. The point
on the player that needs to be inside of this brush before the player can setup
is a point about 16 units in front of the player. This is to allow you to directionalize the setup. You should be careful not to make the brush
to high as it may allow the player to stand on the object and still be able to
setup in a standing or crouching pose. This can look rather silly to say the least.
3.2 Vehicles
There is not much that needs
to be done to add vehicles to a map. You just need to add a script_vehicle entity to the map and set its
model and vehicletype. You can look in
the vehicles subdirectory to find valid vehicletype names. Unfortunately the vehicles have to be
compiled into the map and cannot be spawned on the fly in script. This is due to the collision hulls needing
to be in the BSP.
4. Scripting
There is quite a lot of new scripting functionality,
which has been added. Too much for me
to go into or remember right now. Hopefully sometime soon I can compile a list of the new script
functions. If you are interested in the
changes the best way to know what is new/different is to look through the
script files in the maps\mp and maps\mp\gametypes directory. You should be aware however that if you have
a mod which has modified any of the base multiplayer script files (_teams.gsc,
_loadout.gsc, etc.) that you will have to update/redo your files to take into
account changes that were made in UO.
Here are a couple useful
things, which I can remember right now:
- Added
the ability to know when a script_model is being shot at/damaged. If you use the new settakedamage([0/1])
function the model will send out damage notifies when it has been shot. The model will NOT do any form of health or
dying. If you want this functionality
you will have to implement it yourself in script. A good example of this is the bases in Base Assault.
- Several
more parameters are now returned on the damage notify. Now the damage notify will return the amount,
the attacker, the direction of damage, the point of damage, the mod (means of
death), and the inflictor (not necessarily the same as the attacker). If you look in maps\mp\_tankdrive_gmi.gsc
you can see examples of this new functionality.
- script_gameobjectname
– This cvar
has been modified to allow multiple gametypes to be specified. If for example you had a script_model set
with “script_gameobjectname tdm dom” then the script_model would be deleted in
every game type except for tdm and dom.
- You can now modify the hud elements UV coordinates on the right hand edge
and the bottom. There are now two more
optional parameters at the end of the setshader command. Look at maps\mp\gametypes\dom.gsc for an
example of how this is used. The
domination icons at the bottom of the screen use this.
5. Weapons
Weapons have been fairly heavily changed. If you have already setup your own
weaponsettings_mp.gdt file you will need to remake it using the Call of Duty:
United Offensive version as a template. Several new weapon types and a bunch of new fields have been added. Major changes to the bullet weapons include
a damage falloff over distance scheme, different accuracies for all ads
stances, and different sets of particles for different weapon types.
5.1 Weapon Types
Two new weapon types have been added in Call of
Duty: United Offensive:
- gasweapon – For flamethrowers.
- spotterweapon – For binoculars.
5.1 Weapon
Settings Changes
5.1.1
Bullet Weapons
- ammotype – This allows you to
specify what type of particle effects get played for the weapon. Instead of having just large and small
bullet effect types we changed it so there are now a different set of particle
effects for each weapon class (pistol, rifle, smg, lmg).
- damageInnerRadius – This is part of the
damage fall off over distance scheme. Inside of this radius the weapon does full damage. The damage fall off is linear between the
inner and outer radius.
- damageOuterRadius – This is part of the
damage fall off over distance scheme. Outside of this radius the weapon does minimum damage. The damage fall
off is linear between the inner and outer radius.
- minDamagePercent – This is part of the
damage fall off over distance scheme. This the percentage of the damage that is the minimum damage that the
weapon will do. Outside of the
damageOuterRadius this is the damage that will be applied.
- lmgDeployedAnim – This is the first person
idle animation that is used when you are deployed with a lmg.
- lmgDeployAnim – This is the first person animation
used when a player is deploying a lmg.
- lmgBreakdownAnim – This is the first person
animation used when a player is breaking down a lmg.
- adsSpread – This is the minimum
spread value used when the player is standing ads.
- adsSpreadDucked – This is the minimum
spread value used when the player is crouching ads.
- adsSpreadProne – This is the minimum
spread value used when the player is prone ads.
- adsSensitivity – This is a scalar that
gets applied to the mouse movement when the weapon is in ads.
- pickupModel – Optional model specified
for the weapon while it is lying on the ground. If no model is specified the model will default to the world
model.
- loopFireSound – Optional looping sound
which can be use while firing instead of the fireSound. This is for machine guns that sound better
looping.
- stopFireSound – This is the tail end of
the loop sound which gets played after the firing is done.
- deploySound – The sound that gets
played on an LMG when deploying.
- breakdownSound – The sound that gets
played on an LMG when breakingdown.
- sprintMoveF – This is the amount the
first person gun model will be moved forward while sprinting.
- sprintMoveR – This is the amount the
first person gun model will be moved right while sprinting.
- sprintMoveU – This is the amount the
first person gun model will be moved up while sprinting.
- sprintRotF – This is the amount the
first person gun model will be rotated forward while sprinting.
- sprintRotR – This is the amount the
first person gun model will be rotated right while sprinting.
- sprintRotU – This is the amount the
first person gun model will be rotated up while sprinting.
- sprintMoveMinSpeed – This is the minimum speed
at which the gun will move to its offsets while sprinting.
- sprintRotMinSpeed – This is the minimum speed
at which the gun will rotate to its offsets while sprinting.
5.1.2
Grenade Weapons
- minDamagePercent – This really has no
meaning for the grenades and is simply there to provide the code with a default
of 100 percent damage.
- vehiclescale – This gets applied to the
damage done against a vehicle. This
allows you to make a grenade more or less damaging to vehicles.
- takedamage – This means that the
grenade will blow up when shot if set to 1.
- adsSensitivity – This really has no
meaning for the grenades and is simply there to provide the code with a default
of 100 percent.
- pickupModel – Optional model specified
for the weapon while it is lying on the ground. If no model is specified the model will default to the world
model.
- cloth – Specifies that the grenade
is cloth (satchel) and causes it to use a different bounce sound.
- sprintMoveF – This is the amount the
first person gun model will be moved forward while sprinting.
- sprintMoveR – This is the amount the
first person gun model will be moved right while sprinting.
- sprintMoveU – This is the amount the
first person gun model will be moved up while sprinting.
- sprintRotF – This is the amount the
first person gun model will be rotated forward while sprinting.
- sprintRotR – This is the amount the
first person gun model will be rotated right while sprinting.
- sprintRotU – This is the amount the
first person gun model will be rotated up while sprinting.
- sprintMoveMinSpeed – This is the minimum speed
at which the gun will move to its offsets while sprinting.
- sprintRotMinSpeed – This is the minimum speed
at which the gun will rotate to its offsets while sprinting.
5.1.3
Projectile Weapons
- damageInnerRadius – This is part of the
damage fall off over distance scheme. Inside of this radius the weapon does full damage. The damage fall off is linear between the
inner and outer radius.
- damageOuterRadius – This is part of the
damage fall off over distance scheme. Outside of this radius the weapon does minimum damage. The damage fall
off is linear between the inner and outer radius.
- minDamagePercent – This is part of the
damage fall off over distance scheme. This the percentage of the damage that is the minimum damage that the
weapon will do. Outside of the
damageOuterRadius this is the damage that will be applied.
- adsSpread – This is the minimum
spread value used when the player is standing ads.
- adsSpreadDucked – This is the minimum
spread value used when the player is crouching ads.
- adsSpreadProne – This is the minimum
spread value used when the player is prone ads.
- adsSensitivity – This is a scalar that
gets applied to the mouse movement when the weapon is in ads.
- adsSensitivity – This really has no
meaning for the grenades and is simply there to provide the code with a default
of 100 percent.
- pickupModel – Optional model specified
for the weapon while it is lying on the ground. If no model is specified the model will default to the world
model.
- cloth – Specifies that the
grenade is cloth (satchel) and causes it to use a different bounce sound.
- sprintMoveF – This is the amount the
first person gun model will be moved forward while sprinting.
- sprintMoveR – This is the amount the
first person gun model will be moved right while sprinting.
- sprintMoveU – This is the amount the
first person gun model will be moved up while sprinting.
- sprintRotF – This is the amount the
first person gun model will be rotated forward while sprinting.
- sprintRotR – This is the amount the
first person gun model will be rotated right while sprinting.
- sprintRotU – This is the amount the first
person gun model will be rotated up while sprinting.
- sprintMoveMinSpeed – This is the minimum speed
at which the gun will move to its offsets while sprinting.
- sprintRotMinSpeed – This is the minimum speed
at which the gun will rotate to its offsets while sprinting.
5.1.1
Turret Weapons
- ammotype – This allows you to
specify what type of particle effects get played for the weapon if this is a
bullet weapon. Instead of having just
large and small bullet effect types we changed it so there are now a different
set of particle effects for each weapon class (pistol, rifle, smg, lmg).
- projExplosionType – This allows you to
specify what type of particle effects get played for the weapon if this is a
projectile weapon. There is a different
set of particle effects for each projectile weapon type (none, grenade, rocket,
mortar, artillery).
- damageInnerRadius – This is part of the
damage fall off over distance scheme. Inside of this radius the weapon does full damage. The damage fall off is linear between the
inner and outer radius.
- damageOuterRadius – This is part of the
damage fall off over distance scheme. Outside of this radius the weapon does minimum damage. The damage fall
off is linear between the inner and outer radius.
- minDamagePercent – This is part of the
damage fall off over distance scheme. This the percentage of the damage that is the minimum damage that the
weapon will do. Outside of the
damageOuterRadius this is the damage that will be applied.
- minSpread – This is the minimum
spread value used applied to the weapon. The spread will be somewhere randomly between the min and max.
- maxSpread – This is the maximum
spread value used applied to the weapon. The spread will be somewhere randomly between the min and max.
- projectilemodel – This is the model which
gets used for the projectile.
- turret_fov – This sets the players FOV
while they are on the turret.
- fireHeat – This is how much heat
percentage get added each time the gun gets fired. When the gun reaches 100 percent the gun will no longer fire.
- cooldownRate – This is how quickly the
gun will cool off.
6. Modeling
6.1 Weapons
Weapons for the most part
remain the same. The only change is now you can specify a pickup model as well
as a world model for third person use. The pickup model will be used to represent the weapon when it is on the
ground. If no pickup model is defined
then the game will default to using the world model as before.
6.2 Vehicles
Vehicles require several new
nodes/tags in addition to the original Call of Duty single player vehicle
skeleton. Not every tag needed is
listed below. All original Call of Duty
sp tags/bones are also needed in the vehicles (wheels, turret, etc).
“tag_aimdownbarrel” – Optional tag. This is that tag that is used on the artillery pieces for the ads view
on the gun. Otherwise the view defaults
to “tag_barrel”.
“tag_coaxel” – This is for the drivers melee machine gun on tanks.
“tag_secondary_view” – Optional tag. This is for the machine gun mounted on top of the tanks or the 4
wheel vehicles. This represents the
view position of the gunner. If this is
not specified then the view defaults to a fixed offset from the tag the gunner
is attached to.
“tag_secondary_base” - This
is the point the gunner player model is attached to on the 4 wheel vehicles.
“tag_secondary_player” – This is the point the gunner player model
is attached to on the tanks.
“tag_secondary_gun” – This is the rotation point for the gunner
gun. The gun mesh should be attached to
this so it can be correctly rotated.
“tag_passenger” – This is the point where the passenger is
attached. This tag is only necessary if
you plan on allowing a passenger in the vehicle (other then the gunner).
“tag_turret” – This is the point that the driver is attached to in
the 4 wheel vehicles and artillery.
“tag_chasecam” – This is the camera point for the third person
vehicle camera.
“tag_flash” – This is the point where the particle effect plays for
the main gun on the tanks.
“tag_altfire” – This is the point where the particle effect plays
for the driver melee gun on the tanks.
“tag_secondary_flash” – This is the point where the particle effect
plays for the gunner gun on the tanks and 4 wheel vehicles.
Please let me know if any of the preceding is
incorrect. It has been a while and
there are so many tags I am getting confused just trying to write this doc. J
6.3
Characters
There are no changes from Call of Duty.
7. Animating
For
the most part the animations are exactly the same as in Call of Duty. There are a few differences in regards to
the new weapons and the vehicles.
7.1 Weapons
The
new LMG (mg34) and spotter weapon (binoculars) types do not follow the standard
format for animating weapon viewmodels. First there are no ads animations for these weapon types. Three new
animations have been added to complete the functionality of these weapon types:
lmgDeployAnim - Used when the gun is being set up or in the
case of the binoculars it raises them to the eyes.
lmgBreakdownAnim – Used when the gun is being broken down or
undeployed.
lmgDeployedAnim – Idle animation which is used while the gun is
deployed.
7.2
Vehicles
The vehicles do not animate. The passengers who are visible in the vehicle are animated
however. You can see examples of the
way the animations are set up by looking in the “multiplayer.atr” file, which
is located in the animtrees directory. This file can be loaded with a text editor.
7.3 Characters
The only new thing for character animation are the new
weapon classes (LMG and spotter) and the deploy and breakdown animations. You can see examples of the way the
animations are set up by looking in the “multiplayer.atr” file, which is located
in the animtrees directory. This file
can be loaded with a text editor.