

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.zeroy.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Randallphillips</id>
	<title>COD Modding &amp; Mapping Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.zeroy.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Randallphillips"/>
	<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Special:Contributions/Randallphillips"/>
	<updated>2026-04-18T07:30:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_duty_4:_Import_models&amp;diff=15877</id>
		<title>Call of duty 4: Import models</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_duty_4:_Import_models&amp;diff=15877"/>
		<updated>2011-06-24T12:05:52Z</updated>

		<summary type="html">&lt;p&gt;Randallphillips: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Warning_forpro}}&lt;br /&gt;
&#039;&#039;By NovemberDobby&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|This tutorial will show you the basics of importing a new weapon model into Cod4. Below is my example, which you will hopefully be able to use.}}&lt;br /&gt;
{{Warning_advanced}}&lt;br /&gt;
&lt;br /&gt;
[[Image:shot0097.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;You will be needing:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Maya 7.0 or 8.5 (not the Personal Learning Edition)&lt;br /&gt;
*Maya 8.0 requires a little hack (see below)&lt;br /&gt;
*The Cod4\bin\maya folder from the mod tools&lt;br /&gt;
*Texture(s) for your model: The dimensions have to be a power of two. (256*256, 512*512, etc), and the file must be a .jpg, .tga, or .dds. TGA and DDS textures can both have alpha channels, and can both be natively edited using Paint.net. (www.getpaint.net)&lt;br /&gt;
*My example weapon model, from [http://www.modsonline.com/Downloads-full-4308.html HERE]&lt;br /&gt;
&lt;br /&gt;
*In this tutorial, I will assume you know Maya&#039;s basic controls. Firstly, I recommend you follow this tutorial, written by mdS [http://www.modsonline.com/Downloads-full-4254.html HERE]&lt;br /&gt;
&lt;br /&gt;
*It shows you how to export a rigid model from Maya, and get it into the game using Asset Manager. It also shows you the first two steps needed to set up Maya to use the plugins. As these two steps are necessary, I&#039;ll explain them here, courtesy of Infinity Ward&#039;s Wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maya 8.0 Fix ==&lt;br /&gt;
&lt;br /&gt;
You can use the Maya 8.5 plugins (xmodel, xanim) which come with the CoD4 Mod Tools, in Maya 8.0. Just open the two MLL files with a [http://mh-nexus.de/en/hxd/ hex-editor], do a text search for &#039;850&#039; and replace it with &#039;800&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Change  850 (hex 38 35 30 )&lt;br /&gt;
To --&amp;gt;  800 (hex 38 30 30 )&lt;br /&gt;
&lt;br /&gt;
Offsets:&lt;br /&gt;
XAnimExport.mll  - 0x2B10B&lt;br /&gt;
XModelExport.mll - 0x350EC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
850 is the version number v8.50, the Maya version the plugins are designed for. Maya v8.00 won&#039;t accept them, but if you change the version requirement like described above it will load the plugins. The Maya scripting engines probably didn&#039;t change a lot, thus you shouldn&#039;t experience any problems with the hacked plugins.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MAYA Setup==&lt;br /&gt;
&lt;br /&gt;
Create a Maya.env file in: C:\Documents and Settings\My Documents\maya\&lt;br /&gt;
and add the two lines below into it.&lt;br /&gt;
&lt;br /&gt;
 MAYA_SCRIPT_PATH = C:\Program Files\Activision\Call of Duty 4 - Modern Warfare\bin\maya\tools&lt;br /&gt;
 MAYA_PLUG_IN_PATH = C:\Program Files\Activision\Call of Duty 4 - Modern Warfare\bin\maya\tools&lt;br /&gt;
&lt;br /&gt;
This folder location will be different if you have the Steam version, or have installed Cod4 somewhere else. You also need to make a file called usersetup.mel in C:\Documents and Settings\\My Documents\maya\\scripts\&lt;br /&gt;
and add the following three lines to it:&lt;br /&gt;
&lt;br /&gt;
 source CODToolsMenu;&lt;br /&gt;
 CODStartup;&lt;br /&gt;
 CODToolsMenu;&lt;br /&gt;
&lt;br /&gt;
Lastly, you need to extract the corret plugins for your version of Maya. Go to Cod4\bin\maya\tools, and open up either Maya7_plugins.zip or Maya8_plugins.zip. Extract the two files from that zip into the Cod4\bin\maya\tools folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==In MAYA==&lt;br /&gt;
&lt;br /&gt;
* Ok, start up Maya, and you should see a Call Of Duty 4 menu at the top. Open my example weapon, and then save it as a Maya file in a folder called Cod5\model_export\maya_ex. Maya_ex is the name of your model for now, it can be anything as long as there are no spaces in the name. You can save the actual Maya file under any filename. Also, copy the textures out of my example file into the same folder you saved this into.&lt;br /&gt;
&lt;br /&gt;
* To view and edit the texturing in this model, you need to use Hypershade. In Maya, go to {{Color|Window &amp;gt; Rendering Editors &amp;gt; Hypershade|yellow}}. You will be presented with a dialog box which shows you the textures in use along with some other stuff. In the top dark section, you should see four textures. The one called {{Color|&#039;demo_wep_skin&#039;|orange}} is the one we&#039;re interested in, the other three are there by default and you cannot remove them. You may have to re-locate the actual .tga texture which is being used, so double click on the demo_wep_skin, and you should see the main right hand side panel change in Maya. There should be a &#039;file1&#039; tab there now, click on it. About halfway down this new page, you should see &#039;Image name&#039;. Click on the folder icon to browse to the skin image, demo_weapon_skin.tga, and open it. &lt;br /&gt;
&lt;br /&gt;
* There is one step that you need to do for each model that you export, otherwise they will appear totally black in Radiant and the game. Go to {{Color|Edit &amp;gt; Select All|yellow}}, and then to {{Color|Color &amp;gt; Apply color|yellow}}, but don&#039;t click on the menu button; click the small box to the right of it. In the {{Color|&#039;Color Value&#039;|orange}} frame, click on the coloured box, and select a full white colour from the colour selector that comes up. Click {{Color|&#039;Apply color&#039;|orange}}, and you should see your model become marginally brighter in the 3D window. You need to do this for every new model, or again if you add geometry to an existing model.&lt;br /&gt;
&lt;br /&gt;
* This model has already been rigged with the correct joints needed to work as a weapon in Cod4, so, navigate to the Call Of Duty 4 menu, and click on Model Exporter. When the dialog box comes up, click on the &#039;Add new Entry&#039; button. Tick the checkbox called &#039;Entry1&#039;, and then choose where you will export your model. This should be in the same folder as your Maya model, and should have a similar (if not the same) name.&lt;br /&gt;
&lt;br /&gt;
* Next, in Maya&#039;s menus, go to Edit&amp;gt;Select All. Back in the Cod4 dialog, click on Set Exports in Entry1. This has set the polygons and joints that you want to export to the Cod4 model, and it&#039;s very rare that you won&#039;t want to export everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MAYA: Convert==&lt;br /&gt;
&lt;br /&gt;
You&#039;re now ready to convert the model to a useable format. In the Cod5 Model Export Window, click &#039;Select Exports&#039;, and &#039;Export Selected Entries&#039;. If all goes well, a progress bar should pop up and reach 100%. It won&#039;t work unless you have clicked &#039;Select Exports&#039; (or selected everything in Maya). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;You sould now have a .xmodel_export file in your model&#039;s folder in Cod5\model_export. If you do, continue to the steps below.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Asset Manager== &lt;br /&gt;
&lt;br /&gt;
*Close Maya, and open up Cod4\bin\asset_manager.exe. You will see several buttons in the top left corner, along with a list. Scroll down to &#039;xmodel&#039;, and click &#039;New Entry&#039;. You now need to enter the name of the model that you will use to access it ingame, and in Radiant. It can&#039;t have any spaces, and try not to make it too generic, pick something which will definitely be unique, e.g. db_laser_cannon. You will see a list of options for your model appear on the right hand side now, select &#039;animated&#039; from the first drop-down menu. In the &#039;filename&#039; field, click the browse (three dots) button to the right. Use this to locate and open your xmodel_export file that you made before.&lt;br /&gt;
&lt;br /&gt;
*Save your Asset Manager file in Cod4\model_export. Anywhere else and it won&#039;t convert, but it won&#039;t have any errors.&lt;br /&gt;
&lt;br /&gt;
To convert the xmodel_export, you need to edit the export file. Go to Cod4\model_export\modelfolder\, and open up the .xmodel_export in a text editor like notepd. You will see &#039;VERSION 8&#039;, this needs changing to &#039;VERSION 6&#039;. Save and close it. &lt;br /&gt;
&lt;br /&gt;
*Go back to Asset Manager, and click on your entry in xmodel. Go to PC Convert&amp;gt;Current Asset Only, and if it works, you should see &#039;Conversion done, hit key to continue&#039;.&lt;br /&gt;
&lt;br /&gt;
In the left hand scroll list, go to &#039;material&#039;, and click new entry. This entry must be the same name as the weapon texture you used in Hypershade, in this example, &#039;demo_wep_skin&#039;. Change these properties of the material:&lt;br /&gt;
&lt;br /&gt;
 Materialtype = world phong&lt;br /&gt;
 surfacetype = none&lt;br /&gt;
 sort = default*&lt;br /&gt;
 usage = not in editor&lt;br /&gt;
&lt;br /&gt;
*Click the three dots symbol next to the &#039;Color map&#039; box, and navigate to your .tga skin. If you want the skins to have a specular map aswell, you have to create a texture for that and browse for it, using &#039;Specular color map&#039;. Do not use a Normal Map on your texture, because it&#039;ll stop the specular from working properly, on scopes and reflections.&lt;br /&gt;
&lt;br /&gt;
*Re-save the Asset Manager file, it will only convert entries that are in the saved version.&lt;br /&gt;
&lt;br /&gt;
*Select your material from the list on the left, and go to PC Convert&amp;gt;Current Asset Only. If all goes well, a black box should appear, and it&#039;ll eventually read &#039;Conversion done, hit key to continue&#039;. You&#039;ve now converted the texture for use with your model.&lt;br /&gt;
&lt;br /&gt;
*If both your texture and your model have converted properly, you can now package them in your mod. I&#039;m assuming you can use .csv files and know how to make a basic mod.ff. All of the textures must go in the mod&#039;s IWD, and if it doesn&#039;t have one, it needs one. The file structure is: IWD\images\, and the converted iwi images can be found in Cod4\raw\images.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating the weapon&#039;s file==&lt;br /&gt;
&lt;br /&gt;
For this example, we&#039;ll mod a stock weaponfile. (rpg_mp)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WEAPONFILE \weaponType\projectile\weaponClass\rocketlauncher\impactType\rocket_explode\guidedMissileType\None\inventoryType\item\maxSteeringAccel\3000\displayName\Laser thingy\AIOverlayDescription\\modeName\\playerAnimType\rocketlauncher\gunModel\db_laser_cannon\gunModel2\\gunModel3\\gunModel4\\gunModel5\\gunModel6\\gunModel7\\gunModel8\\gunModel9\\gunModel10\\gunModel11\\gunModel12\\gunModel13\\gunModel14\\gunModel15\\gunModel16\\handModel\viewmodel_base_viewhands\isHandModelOverridable\0\idleAnim\viewmodel_rpg_idle\emptyIdleAnim\viewmodel_rpg_idle_empty\fireAnim\viewmodel_rpg_fire\lastShotAnim\viewmodel_rpg_fire\meleeAnim\viewmodel_M4m203_knife_melee_1\meleeChargeAnim\viewmodel_M4m203_knife_melee_2\reloadAnim\viewmodel_rpg_reload\raiseAnim\viewmodel_rpg_pullout\dropAnim\viewmodel_rpg_putaway\firstRaiseAnim\viewmodel_rpg_pullout\altRaiseAnim\viewmodel_rpg_pullout\altDropAnim\viewmodel_rpg_putaway\quickRaiseAnim\viewmodel_rpg_pullout\quickDropAnim\viewmodel_rpg_putaway\emptyRaiseAnim\viewmodel_rpg_pullout\emptyDropAnim\viewmodel_rpg_putaway\sprintInAnim\viewmodel_rpg_sprint_in\sprintLoopAnim\viewmodel_rpg_sprint_loop\sprintOutAnim\viewmodel_rpg_sprint_out\nightVisionWearAnim\\nightVisionRemoveAnim\\adsFireAnim\viewmodel_rpg_fire\adsLastShotAnim\viewmodel_rpg_fire\adsUpAnim\viewmodel_rpg_ads_up\adsDownAnim\viewmodel_rpg_ads_down\moveSpeedScale\1\adsMoveSpeedScale\1\sprintDurationScale\1\lowAmmoWarningThreshold\0.33\damage\1000\meleeDamage\135\fireDelay\0\meleeDelay\0.13\meleeChargeDelay\0.16\fireTime\0.33\meleeTime\0.8\meleeChargeTime\1.16\reloadTime\3.292\reloadShowRocketTime\0.1\reloadAddTime\1.17\dropTime\0.467\raiseTime\0.73\altDropTime\0.467\altRaiseTime\0.733\quickDropTime\0.25\quickRaiseTime\0.75\firstRaiseTime\0.73\emptyDropTime\0.467\emptyRaiseTime\0.73\sprintInTime\0.3\sprintLoopTime\1\sprintOutTime\0.3\nightVisionWearTime\0\nightVisionWearTimeFadeOutEnd\0\nightVisionWearTimePowerUp\0\nightVisionRemoveTime\0\nightVisionRemoveTimePowerDown\0\nightVisionRemoveTimeFadeInStart\0\clipOnly\0\adsTransInTime\0.5\adsTransOutTime\0.5\adsZoomFov\55\adsZoomGunFov\40\adsZoomInFrac\0.5\adsZoomOutFrac\0.1\adsOverlayShader\\adsOverlayReticle\none\adsOverlayInterface\none\adsOverlayWidth\240\adsOverlayHeight\240\adsBobFactor\1\adsViewBobMult\0\hipSpreadStandMin\5\hipSpreadDuckedMin\3.5\hipSpreadProneMin\2\hipSpreadMax\6\hipSpreadDuckedMax\6\hipSpreadProneMax\6\hipSpreadDecayRate\2.5\hipSpreadFireAdd\0.4\hipSpreadTurnAdd\0\hipSpreadMoveAdd\2.3\hipSpreadDuckedDecay\1.375\hipSpreadProneDecay\1.6\hipReticleSidePos\0\adsSpread\1.7\adsIdleAmount\25\hipIdleAmount\80\hipIdleSpeed\1\adsIdleSpeed\1\idleCrouchFactor\0.5\idleProneFactor\0.15\gunMaxPitch\30\gunMaxYaw\30\adsAimPitch\0\adsCrosshairInFrac\1\adsCrosshairOutFrac\0.2\adsReloadTransTime\0.6\adsGunKickPitchMin\-30\adsGunKickPitchMax\-20\adsGunKickYawMin\-17\adsGunKickYawMax\17\adsGunKickAccel\250\adsGunKickSpeedMax\1000\adsGunKickSpeedDecay\10\adsGunKickStaticDecay\1\adsViewKickPitchMin\20\adsViewKickPitchMax\95\adsViewKickYawMin\-10\adsViewKickYawMax\30\adsViewKickCenterSpeed\2500\hipGunKickPitchMin\-5\hipGunKickPitchMax\-3\hipGunKickYawMin\-15\hipGunKickYawMax\15\hipGunKickAccel\250\hipGunKickSpeedMax\500\hipGunKickSpeedDecay\15\hipGunKickStaticDecay\1\hipViewKickPitchMin\100\hipViewKickPitchMax\150\hipViewKickYawMin\-50\hipViewKickYawMax\-80\hipViewKickCenterSpeed\1500\swayMaxAngle\30\swayLerpSpeed\6\swayPitchScale\0.1\swayYawScale\0.1\swayHorizScale\0.1\swayVertScale\0.1\swayShellShockScale\5\adsSwayMaxAngle\30\adsSwayLerpSpeed\6\adsSwayPitchScale\0.1\adsSwayYawScale\0.1\adsSwayHorizScale\0.1\adsSwayVertScale\0.1\hudIcon\hud_icon_rpg\killIcon\hud_icon_rpg\dpadIcon\hud_icon_rpg_dpad\ammoCounterIcon\hud_icon_rpg\hudIconRatio\4:1\killIconRatio\4:1\dpadIconRatio\1:1\ammoCounterIconRatio\4:1\ammoCounterClip\Rocket\flipKillIcon\1\worldModel\weapon_rpg7\worldModel2\\worldModel3\\worldModel4\\worldModel5\\worldModel6\\worldModel7\\worldModel8\\worldModel9\\worldModel10\\worldModel11\\worldModel12\\worldModel13\\worldModel14\\worldModel15\\worldModel16\\worldClipModel\\rocketModel\viewmodel_rpg7_rocket\knifeModel\viewmodel_knife\worldKnifeModel\weapon_parabolic_knife\ammoName\rpg\maxAmmo\2\startAmmo\2\clipName\rpg_mp\clipSize\1\dropAmmoMin\1\dropAmmoMax\2\viewFlashEffect\muzzleflashes/at4_flash\worldFlashEffect\muzzleflashes/at4_flash\shellEjectEffect\\lastShotEjectEffect\\worldClipDropEffect\\pickupSound\weap_pickup\pickupSoundPlayer\weap_pickup\ammoPickupSound\\ammoPickupSoundPlayer\\projectileSound\weap_rpg_loop\fireSound\weap_rpg_fire_npc\fireSoundPlayer\weap_rpg_fire_plr\lastShotSound\\lastShotSoundPlayer\\emptyFireSound\weap_dryfire_rifle_npc\emptyFireSoundPlayer\weap_dryfire_rifle_plr\meleeSwipeSound\melee_swing_ps_large\meleeSwipeSoundPlayer\melee_rpg_swing_plr\rechamberSound\\rechamberSoundPlayer\\reloadSound\\reloadSoundPlayer\\reloadEmptySound\\reloadEmptySoundPlayer\\reloadStartSound\\reloadStartSoundPlayer\\reloadEndSound\\reloadEndSoundPlayer\\altSwitchSound\\altSwitchSoundPlayer\\raiseSound\weap_rpg_raise_npc\raiseSoundPlayer\weap_rpg_raise_plr\firstRaiseSound\\firstRaiseSoundPlayer\\putawaySound\weap_rpg_drop_npc\putawaySoundPlayer\weap_rpg_drop_plr\bounceSound\\nightVisionWearSound\\nightVisionWearSoundPlayer\\nightVisionRemoveSound\\nightVisionRemoveSoundPlayer\\reticleCenter\reticle_flechette\reticleSide\\reticleCenterSize\32\reticleSideSize\24\reticleMinOfs\17\enemyCrosshairRange\1000\crosshairColorChange\1\altWeapon\\boltAction\0\aimDownSight\1\rechamberWhileAds\1\adsViewErrorMin\0\adsViewErrorMax\0\adsFire\1\noAdsWhenMagEmpty\0\avoidDropCleanup\0\cancelAutoHolsterWhenEmpty\0\suppressAmmoReserveDisplay\0\blocksProne\0\noPartialReload\0\reloadAmmoAdd\1\autoAimRange\0\aimAssistRange\1000\aimAssistRangeAds\1000\fightDist\720\maxDist\1400\aiVsAiAccuracyGraph\\aiVsPlayerAccuracyGraph\\standMoveF\0\standMoveR\0\standMoveU\-1.7\standRotP\0\standRotY\0\standRotR\0\duckedOfsF\-2\duckedOfsR\0.8\duckedOfsU\-0.2\duckedMoveF\-1\duckedMoveR\0\duckedMoveU\-1.7\duckedRotP\0\duckedRotY\0\duckedRotR\0\proneOfsF\-2\proneOfsR\1\proneOfsU\-1\proneMoveF\-160\proneMoveR\3\proneMoveU\-120\proneRotP\0\proneRotY\300\proneRotR\-300\posMoveRate\6\posProneMoveRate\25\standMoveMinSpeed\110\duckedMoveMinSpeed\60\proneMoveMinSpeed\0\posRotRate\6\posProneRotRate\30\standRotMinSpeed\110\duckedRotMinSpeed\60\proneRotMinSpeed\0\explosionRadius\300\explosionInnerDamage\160\explosionOuterDamage\30\damageConeAngle\180\projectileSpeed\1500\projectileSpeedUp\500\projectileActivateDist\0\projectileLifetime\5\projectileModel\projectile_rpg7\projExplosionType\rocket\projExplosionEffect\\projExplosionEffectForceNormalUp\0\projExplosionSound\\projDudEffect\\projDudSound\\projImpactExplode\1\projTrailEffect\smoke/smoke_geotrail_rpg\projectileDLight\200\projectileRed\0.75\projectileGreen\0.3\projectileBlue\1\projIgnitionDelay\0\projIgnitionEffect\\projIgnitionSound\\destabilizationRateTime\0.4\destabilizationCurvatureMax\10\destabilizeDistance\300\parallelDefaultBounce\0.5\parallelBarkBounce\0.5\parallelBrickBounce\0.5\parallelCarpetBounce\0.5\parallelClothBounce\0.5\parallelConcreteBounce\0.5\parallelDirtBounce\0.5\parallelFleshBounce\0.5\parallelFoliageBounce\0.5\parallelGlassBounce\0.5\parallelGrassBounce\0.5\parallelGravelBounce\0.5\parallelIceBounce\0.5\parallelMetalBounce\0.5\parallelMudBounce\0.5\parallelPaperBounce\0.5\parallelPlasterBounce\0.5\parallelRockBounce\0.5\parallelSandBounce\0.5\parallelSnowBounce\0.5\parallelWaterBounce\0.5\parallelWoodBounce\0.5\parallelAsphaltBounce\0.5\parallelCeramicBounce\0.5\parallelPlasticBounce\0.5\parallelRubberBounce\0.5\parallelCushionBounce\0.5\parallelFruitBounce\0.5\parallelPaintedMetalBounce\0.5\perpendicularDefaultBounce\0.5\perpendicularBarkBounce\0.5\perpendicularBrickBounce\0.5\perpendicularCarpetBounce\0.5\perpendicularClothBounce\0.5\perpendicularConcreteBounce\0.5\perpendicularDirtBounce\0.5\perpendicularFleshBounce\0.5\perpendicularFoliageBounce\0.5\perpendicularGlassBounce\0.5\perpendicularGrassBounce\0.5\perpendicularGravelBounce\0.5\perpendicularIceBounce\0.5\perpendicularMetalBounce\0.5\perpendicularMudBounce\0.5\perpendicularPaperBounce\0.5\perpendicularPlasterBounce\0.5\perpendicularRockBounce\0.5\perpendicularSandBounce\0.5\perpendicularSnowBounce\0.5\perpendicularWaterBounce\0.5\perpendicularWoodBounce\0.5\perpendicularAsphaltBounce\0.5\perpendicularCeramicBounce\0.5\perpendicularPlasticBounce\0.5\perpendicularRubberBounce\0.5\perpendicularCushionBounce\0.5\perpendicularFruitBounce\0.5\perpendicularPaintedMetalBounce\0.5\fireRumble\\meleeImpactRumble\\adsDofStart\0\adsDofEnd\0\requireLockonToFire\0\notetrackSoundMap\weap_rpg_raise_plr weap_rpg_raise_plr weap_rpg_drop_plr weap_rpg_drop_plr melee_knife_stab melee_knife_stab weap_rpg_lift_plr weap_rpg_lift_plr weap_rpg_insert_plr weap_rpg_insert_plr weap_rpg_twist_plr weap_rpg_twist_plr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*I have changed the display name of the weapon, and it&#039;s viewmodel. It will look like your model in first person view, but will still be an rpg in other people&#039;s hands and thirdperson. For more info on modding weaponfiles, Shadowlance194 wrote a tutorial here: http://www.modsonline.com/Tutorials-read-466.html&lt;br /&gt;
&lt;br /&gt;
*This weaponfile needs to go in the mod IWD\weapons\mp folder, and also needs to be referenced in the mod csv:&lt;br /&gt;
&lt;br /&gt;
 weapon,mp/rpg_mp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outline of updating model process:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Save model in Maya&lt;br /&gt;
*Open Cod4 export plugin, tick &#039;entry1&#039; &amp;amp; Select Exports, Set Exports if the geometry has changed&lt;br /&gt;
*Edit version number in .xmodel_export&lt;br /&gt;
*Convert model &amp;amp; materials in Asset Manager&lt;br /&gt;
*Put textures in IWD, re-build fastfile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Warning|&#039;&#039;&#039;NOTES AND WARNINGS:&#039;&#039;&#039;}}&lt;br /&gt;
*This is quite complicated, with a lot of things that can go wrong.&lt;br /&gt;
*There is no way to reverse the conversion; you can&#039;t get an xmodel_export from an xmodel file. You also can&#039;t re-import the xmodel_export into Maya, like in old versions of Cod, so don&#039;t lose the source!&lt;br /&gt;
*You will find that the weapon model looks very small in thirdperson view, or if you are looking at someone else who has it. You need to create a separate worldmodel for it, because for some reason they are on different scales. On estimate, the worldmodel needs to be around twice as large.&lt;br /&gt;
*There are three joints on this model. The one at the front, tag_flash, defines where the muzzleflash effect will be.&lt;br /&gt;
*The actual position of the weapon in your hand is the position of the weapon model relative to 0,0,0 in Maya, none of the joints control it.&lt;br /&gt;
*If you only edit a stock weaponfile, you don&#039;t need to worry about precaching it. However, if it&#039;s not stock, you need to add a line in your mod scripts: PrecacheItem(&amp;quot;weaponfile_name&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
[http://customcollegeessays.com/index.php college essay]&lt;br /&gt;
&lt;br /&gt;
[[Category:Call of Duty 4]]&lt;br /&gt;
[[Category:Call of Duty 5]]&lt;br /&gt;
[[Category:Modtools]]&lt;br /&gt;
[[Category:Radiant]]&lt;br /&gt;
[[Category:Advanced Editing]]&lt;br /&gt;
[[Category:Modelling]]&lt;br /&gt;
[[Category:Maya]]&lt;/div&gt;</summary>
		<author><name>Randallphillips</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_Gametypes&amp;diff=15876</id>
		<title>Call of Duty 4: Gametypes</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_Gametypes&amp;diff=15876"/>
		<updated>2011-06-24T12:05:32Z</updated>

		<summary type="html">&lt;p&gt;Randallphillips: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;by Tally&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|Adding CTF/CTFB to your new map is easy. The only level requirement is that you must have SAB spawn points. (if you dont have SAB spawns, it can still be done)}}&lt;br /&gt;
&lt;br /&gt;
Essentailly, I spawn a &#039;&#039;&#039;trigger_radius&#039;&#039;&#039; for each team&#039;s flag. I give each team&#039;s trigger_radius a &#039;&#039;&#039;targetname&#039;&#039;&#039; which the code in the CTF/CTFB gametypes looks for. It then dynamically spawns a flag model onto that trigger_radius.&lt;br /&gt;
&lt;br /&gt;
All you have to do is copy the level GSC template below and use it for your own map:&lt;br /&gt;
&lt;br /&gt;
*Here is the level GSC from mp_backlot used in AWE4 for CTF and CTFB:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;main()&lt;br /&gt;
{&lt;br /&gt;
	maps\mp\mp_backlot_fx::main();&lt;br /&gt;
	maps\createart\mp_backlot_art::main();&lt;br /&gt;
	maps\mp\_load::main();	&lt;br /&gt;
	&lt;br /&gt;
	maps\mp\_compass::setupMiniMap(&amp;quot;compass_map_mp_backlot&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	//setExpFog(500, 2200, 0.81, 0.75, 0.63, 0);&lt;br /&gt;
	//VisionSetNaked( &amp;quot;mp_backlot&amp;quot; );&lt;br /&gt;
	ambientPlay(&amp;quot;ambient_backlot_ext&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	game[&amp;quot;allies&amp;quot;] = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	game[&amp;quot;axis&amp;quot;] = &amp;quot;opfor&amp;quot;;&lt;br /&gt;
	game[&amp;quot;attackers&amp;quot;] = &amp;quot;axis&amp;quot;;&lt;br /&gt;
	game[&amp;quot;defenders&amp;quot;] = &amp;quot;allies&amp;quot;;&lt;br /&gt;
	game[&amp;quot;allies_soldiertype&amp;quot;] = &amp;quot;desert&amp;quot;;&lt;br /&gt;
	game[&amp;quot;axis_soldiertype&amp;quot;] = &amp;quot;desert&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	setdvar( &amp;quot;r_specularcolorscale&amp;quot;, &amp;quot;1&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
	setdvar(&amp;quot;r_glowbloomintensity0&amp;quot;,&amp;quot;.25&amp;quot;);&lt;br /&gt;
	setdvar(&amp;quot;r_glowbloomintensity1&amp;quot;,&amp;quot;.25&amp;quot;);&lt;br /&gt;
	setdvar(&amp;quot;r_glowskybleedintensity0&amp;quot;,&amp;quot;.3&amp;quot;);&lt;br /&gt;
	setdvar(&amp;quot;compassmaxrange&amp;quot;,&amp;quot;1800&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	&#039;&#039;&#039;if( getDvar(&amp;quot;g_gametype&amp;quot;) == &amp;quot;ctf&amp;quot;)&#039;&#039;&#039;&lt;br /&gt;
	{&lt;br /&gt;
		&#039;&#039;&#039;addobj(&#039;&#039;&#039;&amp;quot;allied_flag&amp;quot;, [color=yellow](-486, 1998, 64)[/color], (0, 0, 0));&lt;br /&gt;
		&#039;&#039;&#039;addobj(&#039;&#039;&#039;&amp;quot;axis_flag&amp;quot;, [color=yellow](630, -2067, 64)[/color], (0, 0, 0));&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	&#039;&#039;&#039;if(getDvar(&amp;quot;g_gametype&amp;quot;) == &amp;quot;ctfb&amp;quot;)&#039;&#039;&#039;&lt;br /&gt;
	{&lt;br /&gt;
		&#039;&#039;&#039;addobj(&#039;&#039;&#039;&amp;quot;allied_flag&amp;quot;, [color=yellow](-486, 1998, 64)[/color], (0, 0, 0));&lt;br /&gt;
		&#039;&#039;&#039;addobj(&#039;&#039;&#039;&amp;quot;axis_flag&amp;quot;, [color=yellow](630, -2067, 64)[/color], (0, 0, 0));&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;addobj(name, origin, angles)&lt;br /&gt;
{&lt;br /&gt;
   ent = spawn(&amp;quot;trigger_radius&amp;quot;, origin, 0, 48, 148);&lt;br /&gt;
   ent.targetname = name;&lt;br /&gt;
   ent.angles = angles;&lt;br /&gt;
}&#039;&#039;&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;U&amp;gt;Use the code above for CTF and CTFB&amp;lt;/U&amp;gt; (not all of the level code, of course - just the relevant CTF, and CTFB bits. You dont want mp_backlot code in your map), and copy/paste it into your own map&#039;s GSC file.&lt;br /&gt;
&lt;br /&gt;
*Notice the coordinates in yellow? You have to change them to suit your map.&#039;&#039;&#039;Here&#039;s how:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Go into your map, and go to the point that you think the allied flag should go.&lt;br /&gt;
&lt;br /&gt;
*Drop down console and type:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;/viewpos&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Close&lt;br /&gt;
&lt;br /&gt;
*Go to the next place, you think the axis flag should go, and do the same viewpos.&lt;br /&gt;
&lt;br /&gt;
*Come out of your map.&lt;br /&gt;
&lt;br /&gt;
*Look in the fs_game mod folder for the mp_console.log file, and open it. &lt;br /&gt;
&lt;br /&gt;
*Find the viewpos coordinates you just did, and copy/paste them into the relevant teams code.&lt;br /&gt;
&lt;br /&gt;
*Once in your map GSC file, &#039;&#039;&#039;subtract 60&#039;&#039;&#039; from the &#039;z&#039; corodinate ( they are listed like this - (x, y, z)). This is because viewpos is taken from the players eye level, and floor level is 60 units less than the eye level.&lt;br /&gt;
&lt;br /&gt;
{{Warning|&#039;&#039;&#039; Make sure the right coordinates go with the right team - remember: allies have the &#039;&#039;&#039;&amp;quot;allied_flag&amp;quot;&#039;&#039;&#039; targetname; axis the &#039;&#039;&#039;&amp;quot;axis_flag&amp;quot;&#039;&#039;&#039; targetname.}}&lt;br /&gt;
&lt;br /&gt;
*You can now either compile your map&#039;s GSC file into your map&#039;s fast file, or simply include it in your map&#039;s IWD file.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CTF/CTFB is now included in most mods, such as AWE4, ACE and X4.&lt;br /&gt;
&lt;br /&gt;
[[Category:Call of Duty 4]]&lt;br /&gt;
[[Category:Gametypes]]&lt;br /&gt;
[[Category:Modding]]&lt;br /&gt;
[[Category:AWE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://essaywritingservices.org/prices.php write my essay]&lt;/div&gt;</summary>
		<author><name>Randallphillips</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_HUD/Key_description&amp;diff=15875</id>
		<title>Call of Duty 4: HUD/Key description</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_HUD/Key_description&amp;diff=15875"/>
		<updated>2011-06-24T12:04:41Z</updated>

		<summary type="html">&lt;p&gt;Randallphillips: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:call-of-duty-4-modern-warfare-3.jpg|center|800px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
--[[User:Zeroy|Zeroy.]] 12:30, 27 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Category:Call of Duty 4]]&lt;br /&gt;
&lt;br /&gt;
[http://essaywritingservices.org/prices.php write my paper]&lt;/div&gt;</summary>
		<author><name>Randallphillips</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_FastFile_Format&amp;diff=15874</id>
		<title>Call of Duty 4: FastFile Format</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_FastFile_Format&amp;diff=15874"/>
		<updated>2011-06-24T12:04:31Z</updated>

		<summary type="html">&lt;p&gt;Randallphillips: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Under Construction Small.png‎]] &#039;&#039;&#039;*** Article and investigation in early progress ***&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Preface ==&lt;br /&gt;
&lt;br /&gt;
Be aware, FF files are little endian, so swap those bytes &#039;round!&lt;br /&gt;
&lt;br /&gt;
The data block types (also called &amp;quot;index identifier&amp;quot;) are written in big endian in this article, e.g. 00 00 00 1F is actually 1F 00 00 00 in ff, although ints and floats in the examples are kept little endian!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The global file layout starts with a header. After which you get a string list (model tag names, animation notetracks, maybe more; not always present). Followed by an index list. This list gives information about the rest of the file, which is a concatenation of compiled files (reinterpreted and linked data generated from source files like d3dbsp and stringtables, hereinafter referred to as data blocks).&lt;br /&gt;
&lt;br /&gt;
* Header&lt;br /&gt;
* String list index&lt;br /&gt;
* String list&lt;br /&gt;
* Data block index&lt;br /&gt;
* Data blocks&lt;br /&gt;
&lt;br /&gt;
Each file is separated by the separation key: 0xFFFFFFFF. But be aware, each file itself can also contain such a sequence which is not meant to be the separation key! So it is necessary to understand each data type in the FF file.&lt;br /&gt;
&lt;br /&gt;
Edit: The latest research led to the assumption, that it&#039;s no real separation key but an address pointer (which is 0xFFFFFFFF if the data follows or 0x??????4? if the content is located elsewhere).&lt;br /&gt;
&lt;br /&gt;
It seems to be 0xFFFFFFFF replaces pointers used during compilation, leading to the following data block structure in case of some data blocks (at least rawfile):&lt;br /&gt;
&lt;br /&gt;
* Block header (containing one or more 0xFFFFFFFF pointers, size needs to be known to properly read files)&lt;br /&gt;
* Block data (one for each 0xFFFFFFFF data, can be anything from a string to raw binary data, possibly a 00 marks the end for strings?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Header ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Note: not up to date and not generalized)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Byte 0-3: decompressed fastfile size minus 44 (0x2C)&lt;br /&gt;
*Byte 4-7: about the total size of referenced data, e.g. the required memory for IWI textures if material files are in the ff&lt;br /&gt;
*Byte 8-11: &#039;&#039;unknown&#039;&#039;, might be a flag&lt;br /&gt;
*Byte 12-23: &#039;&#039;unknown&#039;&#039;&lt;br /&gt;
*Byte 24-27: somehow related to ff size?&lt;br /&gt;
*Byte 28-43: &#039;&#039;unknown&#039;&#039;&lt;br /&gt;
*Byte 44-47: equal to number of entries in &amp;quot;1st index&amp;quot; and amount of (model tag/joint/notetrack) strings (times 4 for index length)&lt;br /&gt;
*Byte 48-51: separator? (FF FF FF FF)&lt;br /&gt;
*Byte 52-55: number of records* (&amp;quot;2nd index&amp;quot;, times 8 for index length)&lt;br /&gt;
*Byte 56-63: separator? (FF FF FF FF FF FF FF FF)&lt;br /&gt;
*Byte 64-x: string list (xmodelsurfs?) --&amp;gt; not always, depends on the content (required offsets are in the FF header)*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; under re-investigation &amp;lt;!-- If a file was missing on ff compile, it does not count but the error message is added to the end of the file. There are usually more index entries than the number of records in the header. The given number of records is not equal to the entries in the assetinfo or assetlist file, it&#039;s usually higher. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Example: smallest possible fastfile (mod.ff) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
29 00 00 00  decompressed fastfile size minus 44 &lt;br /&gt;
00 00 00 00  &lt;br /&gt;
1C 00 00 00  unknown&lt;br /&gt;
&lt;br /&gt;
00 00 00 00 00 00 00 00 00 00 00 00&lt;br /&gt;
&lt;br /&gt;
0D 00 00 00  data size in memory (?)&lt;br /&gt;
&lt;br /&gt;
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br /&gt;
&lt;br /&gt;
01 00 00 00  one index entry&lt;br /&gt;
&lt;br /&gt;
FF FF FF FF 1F 00 00 00  a rawfile&lt;br /&gt;
&lt;br /&gt;
FF FF FF FF  index end&lt;br /&gt;
&lt;br /&gt;
FF FF FF FF  start separator&lt;br /&gt;
00 00 00 00  rawfile length (empty, no errors occured during compilation)&lt;br /&gt;
FF FF FF FF  separator&lt;br /&gt;
6D 6F 64 00  fastfile name as rawfile name&lt;br /&gt;
         00  rawfile string (empty)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Example: mp_backlot_load.ff ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contains:&#039;&#039;&#039;&lt;br /&gt;
*2x shaders &lt;br /&gt;
*3x materials&lt;br /&gt;
*(1x fastfile name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Materials:&lt;br /&gt;
# $victorybackdrop - mile_high_victory_screen.iwi (699,092 bytes)&lt;br /&gt;
# $defeatbackdrop - (none)&lt;br /&gt;
# $levelbriefing - loadscreen_mp_backlot.iwi (524,316 bytes)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-----------  [start of file and header]&lt;br /&gt;
&lt;br /&gt;
71 03 00 00  Decompressed file size - 44 (hex: 371 + 2C = 39D; dec: 881 + 44 = 925)&lt;br /&gt;
&lt;br /&gt;
B8 AA 12 00  Size of both IWI&#039;s the materials in FF point to - 56 (2x28, 28 bytes = IWI header)&lt;br /&gt;
             0x12AAB8          = 1,223,352&lt;br /&gt;
             699,092 + 524,316 = 1,223,408&lt;br /&gt;
             difference:                56&lt;br /&gt;
&lt;br /&gt;
A4 00 00 00  Might be a flag&lt;br /&gt;
&lt;br /&gt;
00 00 00 00  Unknown&lt;br /&gt;
00 00 00 00  Unknown&lt;br /&gt;
00 00 00 00  Unknown&lt;br /&gt;
E5 00 00 00  Size of fastfile in memory (that is at least without header and separators, and maybe more)&lt;br /&gt;
00 00 00 00  Unknown&lt;br /&gt;
00 00 00 00  Unknown&lt;br /&gt;
00 00 00 00  Unknown&lt;br /&gt;
00 00 00 00  Unknown&lt;br /&gt;
&lt;br /&gt;
-----------  [end of header] (44 bytes), [start of index]&lt;br /&gt;
&lt;br /&gt;
00 00 00 00  Unknown, is sometimes FF FF FF FF&lt;br /&gt;
&lt;br /&gt;
06 00 00 00  Number of records in index (6)&lt;br /&gt;
&lt;br /&gt;
FF FF FF FF  05 00 00 00  1st: shader&lt;br /&gt;
FF FF FF FF  05 00 00 00  2nd: shader&lt;br /&gt;
FF FF FF FF  04 00 00 00  3rd: material&lt;br /&gt;
FF FF FF FF  04 00 00 00  4th: material&lt;br /&gt;
FF FF FF FF  04 00 00 00  5th: material&lt;br /&gt;
FF FF FF FF  1F 00 00 00  6th: rawfile&lt;br /&gt;
&lt;br /&gt;
FF FF FF FF  end separator (the following FF FF FF FF is the start seperator of the next data block!)&lt;br /&gt;
&lt;br /&gt;
-----------  [end of index]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Index ==&lt;br /&gt;
&lt;br /&gt;
Starts with an int telling the number of dword couples. Such a couple is composed of 2 ints:&lt;br /&gt;
&lt;br /&gt;
4 byte offset (FF FF FF FF = -1, meaning right after the previous block?)&amp;lt;br&amp;gt;&lt;br /&gt;
4 byte identifier (data block type)&lt;br /&gt;
&lt;br /&gt;
Separator (FF FF FF FF) after last couple&lt;br /&gt;
&lt;br /&gt;
=== Types ===&lt;br /&gt;
&lt;br /&gt;
*        xmodelpieces = 0,&lt;br /&gt;
*        physpreset = 1,&lt;br /&gt;
*        xanim = 2,&lt;br /&gt;
*        xmodel = 3,&lt;br /&gt;
*        material = 4,&lt;br /&gt;
*        pixelshader = 5,&lt;br /&gt;
*        techset = 6,&lt;br /&gt;
*        image = 7,&lt;br /&gt;
*        sndcurve = 8,&lt;br /&gt;
*        loaded_sound = 9,&lt;br /&gt;
*        col_map_sp = 0x0a,&lt;br /&gt;
*        col_map_mp = 0x0b,&lt;br /&gt;
*        com_map = 0x0c,&lt;br /&gt;
*        game_map_sp = 0x0d,&lt;br /&gt;
*        game_map_mp = 0x0e,&lt;br /&gt;
*        map_ents = 0x0f,&lt;br /&gt;
*        gfx_map = 0x10,&lt;br /&gt;
*        lightdef = 0x11,&lt;br /&gt;
*        ui_map = 0x12,&lt;br /&gt;
*        font = 0x13,&lt;br /&gt;
*        menufile = 0x14,&lt;br /&gt;
*        menu = 0x15,&lt;br /&gt;
*        localize = 0x16,&lt;br /&gt;
*        weapon = 0x17,&lt;br /&gt;
*        snddriverglobals = 0x18,&lt;br /&gt;
*        impactfx = 0x19,&lt;br /&gt;
*        aitype = 0x1a,&lt;br /&gt;
*        mptype = 0x1b,&lt;br /&gt;
*        character = 0x1c,&lt;br /&gt;
*        xmodelalias = 0x1d,&lt;br /&gt;
*        rawfile = 0x1f,&lt;br /&gt;
*        stringtable = 0x20&lt;br /&gt;
&lt;br /&gt;
== Content ==&lt;br /&gt;
&lt;br /&gt;
Since there is a FF FF FF FF separator (respectively pointer) in front of every block and none at the very end (after last 1F-block), we can assume that each block has a start separation and no end separation. Thus, any FF FF FF FFs you find after data blocks are actually the start separators of the next block. This means the index end separator is rather FFFFFFFF than FFFFFFFFFFFFFFFF!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 00 00 00 04 (material) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-----------  [block start]&lt;br /&gt;
&lt;br /&gt;
00 2B 01 01  First 4 bytes seem to be 4 (unsigned) char&#039;s.&lt;br /&gt;
             1st byte is so far always 0x00 (perhaps it&#039;s a short together with the second byte).&lt;br /&gt;
             2nd byte so far either 0x2B or 0x00, I think this is a length.&lt;br /&gt;
             3rd byte so far 0x01, when 0x00 (all 4) the content is only a number of 0x00&#039;s, then the filename (0x00 termination)&lt;br /&gt;
             4th byte either 0x00 or 0x01. Can be a length or a bool.&lt;br /&gt;
             Then 0x10 bytes of more header.&lt;br /&gt;
FF FF FF FF  Separator&lt;br /&gt;
00           When fourth byte is 01, there&#039;s a 0x00 following?             &lt;br /&gt;
             Then there&#039;s garbage (0xFF) and some shorts it looks of length in the second byte.&lt;br /&gt;
             Then more information...&lt;br /&gt;
02 00 0E E0  Often ends with this&lt;br /&gt;
&lt;br /&gt;
-----------  [block end]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 00 00 00 05 (shader) ===&lt;br /&gt;
&lt;br /&gt;
A shader consists of 3 levels. One, the top level, consists of a header (with a name inside). Then the next level is a pack of shaders, it has a header, shaders and at the end a name. Then the bottom level is the shader itself, it has a header (containing a name of the source file and the length of the data) and the raw shader data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-----------  [block start]&lt;br /&gt;
&lt;br /&gt;
             36 pointers (0x90 bytes) (bytes 0x19 up to 0x22 say if we get any content at all?)&lt;br /&gt;
?? ?? .. 00  Then techset file name (0x00 termination) if pointer is 0xFFFFFFFF?&lt;br /&gt;
&lt;br /&gt;
-----------  [start of shader pack]&lt;br /&gt;
&lt;br /&gt;
             pointer&lt;br /&gt;
             1 dword of some character-length options / flags?&lt;br /&gt;
             3 pointers&lt;br /&gt;
             1 dword of some character-length sizes&lt;br /&gt;
FF FF FF FF  Separator&lt;br /&gt;
             0x64 bytes of some short length options / flags? If the second pointer above is 0xFFFFFFFF&lt;br /&gt;
&lt;br /&gt;
-----------  [start of shader]&lt;br /&gt;
&lt;br /&gt;
             pointer, if not 0xFFFFFFFF, no filename is further on&lt;br /&gt;
             pointer, often 00 00 00 00&lt;br /&gt;
FF FF FF FF  Separator&lt;br /&gt;
?? ?? 00 00  2 shorts, first short multiplied by 4 gives the length of the shader, second is a flag?&lt;br /&gt;
?? ?? .. 00  String if first pointer is 0xFFFFFFFF, 0x00 terminated (name of shader source file)&lt;br /&gt;
             Raw shader file (except the first 4 bytes, which, in the shader file, denotes the length of the file)&lt;br /&gt;
FF FF 00 00  which ends with this (always?)&lt;br /&gt;
&lt;br /&gt;
-----------  [end of shader]&lt;br /&gt;
&lt;br /&gt;
             Can either have more shaders (go back to [start of shader]) or shaders have ended&lt;br /&gt;
&lt;br /&gt;
             Variable length of &#039;stuff&#039; (technique commands?)&lt;br /&gt;
41 10 AB A0  which ends with this (always?)&lt;br /&gt;
?? ?? .. 00  String, 0x00 terminated (technique file name)&lt;br /&gt;
&lt;br /&gt;
-----------  [end of shader pack]&lt;br /&gt;
&lt;br /&gt;
             Can either have more shader packs (go back to [start of shader pack]) or shader packs have ended&lt;br /&gt;
&lt;br /&gt;
-----------  [block end]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 00 00 00 06 (image) ===&lt;br /&gt;
&lt;br /&gt;
Stores some information about the specified IWI in fastfile. Does not include the actual image data.&lt;br /&gt;
Length is 52 bytes + IWI name (+1 for string termination).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-----------  [block start]&lt;br /&gt;
&lt;br /&gt;
03 00 00 00&lt;br /&gt;
FE FF FF FF  separator?&lt;br /&gt;
00 00 00 00&lt;br /&gt;
00 00 00 00&lt;br /&gt;
&lt;br /&gt;
70 55 01 00  IWI size minus 28 (0x1C)&lt;br /&gt;
70 55 01 00  same&lt;br /&gt;
&lt;br /&gt;
00 01 00 01&lt;br /&gt;
01 00 03 00&lt;br /&gt;
FF FF FF FF  separator?&lt;br /&gt;
&lt;br /&gt;
73 70 .. 00  IWI name without file extension (string + termination, variable size)&lt;br /&gt;
&lt;br /&gt;
00 00 00 01&lt;br /&gt;
00 01 01 00&lt;br /&gt;
&lt;br /&gt;
44 58 54 35 00 00 00 00  fixed size char[] for type? (here: DXT5....)&lt;br /&gt;
&lt;br /&gt;
-----------  [block end]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 00 00 00 13 (font) ===&lt;br /&gt;
&lt;br /&gt;
See also [[Call of Duty: Font System]]. Implicitly adds shaders.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-----------  [block start] 216 byte + 2 strings&lt;br /&gt;
18 00 00 00  int font_size&lt;br /&gt;
BF 00 00 00  int number_of_records&lt;br /&gt;
FE FF FF FF  ?&lt;br /&gt;
FE FF FF FF  ?&lt;br /&gt;
FF FF FF FF  separator&lt;br /&gt;
66 6F .. 00  string font_name (e.g. fonts/bigFont.)&lt;br /&gt;
FF FF FF FF  separator&lt;br /&gt;
00 2B 01 01  ?&lt;br /&gt;
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br /&gt;
FF FF FF FF 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF&lt;br /&gt;
FF FF 01 00 01 00 03 00&lt;br /&gt;
0D 00 00 40  pointer?&lt;br /&gt;
FF FF FF FF&lt;br /&gt;
00 00 00 00&lt;br /&gt;
FF FF FF FF&lt;br /&gt;
66 6F .. 00  string font_material (e.g. fonts/gamefonts_pc.)&lt;br /&gt;
41 10 AB A0 63 70 EB 00  ?&lt;br /&gt;
&lt;br /&gt;
-----------  [image block] 112 bytes + 1 string&lt;br /&gt;
&lt;br /&gt;
FF FF FF FF  start separator / pointer&lt;br /&gt;
03 00 00 00&lt;br /&gt;
FE FF FF FF  separator?&lt;br /&gt;
00 00 01 00  ?&lt;br /&gt;
00 00 00 00&lt;br /&gt;
D0 AA 0A 00  IWI size minus 28 (0x1C)&lt;br /&gt;
D0 AA 0A 00  same&lt;br /&gt;
00 02 00 04&lt;br /&gt;
01 00 03 00  ?&lt;br /&gt;
FF FF FF FF  separator&lt;br /&gt;
67 61 .. 00  IWI name&lt;br /&gt;
00 00 00 02&lt;br /&gt;
00 04 01 00  ?&lt;br /&gt;
44 58 54 35&lt;br /&gt;
00 00 00 00  compression (here: DXT5....)&lt;br /&gt;
&lt;br /&gt;
-----------  [unknown block] 168 bytes&lt;br /&gt;
&lt;br /&gt;
65 91 28 19&lt;br /&gt;
02 00 0E E0  ?&lt;br /&gt;
FF FF FF FF  separator?&lt;br /&gt;
00 04 01 01  ?&lt;br /&gt;
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br /&gt;
FF FF FF FF 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF&lt;br /&gt;
01 00 01 00 03 00  ?&lt;br /&gt;
0D 00 00 40  pointer? (same as above)&lt;br /&gt;
FF FF FF FF  separator?&lt;br /&gt;
00 00 00 00&lt;br /&gt;
&lt;br /&gt;
-----------  [font block] 48 bytes + 1 string + number_of_records * 24 bytes&lt;br /&gt;
&lt;br /&gt;
FF FF FF FF  separator/pointer&lt;br /&gt;
66 6F .. 00  font effect name? (e.g. fonts/gamefonts_pc_glow.)&lt;br /&gt;
41 10 AB A0&lt;br /&gt;
63 70 EB 00&lt;br /&gt;
95 06 00 40&lt;br /&gt;
25 91 28 19&lt;br /&gt;
02 00 0E E0  ?&lt;br /&gt;
&lt;br /&gt;
?? ?? ?? ??  font file entries (24 bytes each)&lt;br /&gt;
&lt;br /&gt;
-----------  [block end]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 00 00 00 16 (localized string asset) ===&lt;br /&gt;
&lt;br /&gt;
A localized string asset consists of an alias name and a translated string. During compilation, it takes the given alias name (REFERENCE) from *.str file and prepands the *.str file&#039;s name in upper-case plus an underscore. Example:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;example.str&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;VERSION             &amp;quot;1&amp;quot;&lt;br /&gt;
CONFIG              &amp;quot;C:\trees\cod3\cod3\bin\StringEd.cfg&amp;quot;&lt;br /&gt;
FILENOTES           &amp;quot;&amp;quot;&lt;br /&gt;
//--------------------------------&lt;br /&gt;
&lt;br /&gt;
REFERENCE           MARINES_NAME&lt;br /&gt;
LANG_ENGLISH        &amp;quot;US Airforce&amp;quot;&lt;br /&gt;
&lt;br /&gt;
//--------------------------------&lt;br /&gt;
ENDMARKER&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod.ff&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ÿÿÿÿ&lt;br /&gt;
ÿÿÿÿ&lt;br /&gt;
EXAMPLE_MARINES_NAME.&lt;br /&gt;
US Airforce.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Length is 8 bytes + string sizes (string count = 0-2, depends on the first two ints).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-----------  [block start]&lt;br /&gt;
&lt;br /&gt;
FF FF FF FF  either pointer or FFFFFFFF if the string wasn&#039;t used before&lt;br /&gt;
FF FF FF FF  same. If two pointers are used here, then no strings will follow.&lt;br /&gt;
55 53 .. 00  alias name for the localized&lt;br /&gt;
53 54 .. 00  actual localized string&lt;br /&gt;
&lt;br /&gt;
-----------  [block end]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 00 00 00 1F (rawfile) ===&lt;br /&gt;
&lt;br /&gt;
A rawfile. Often a rawfile named right after the fastfile&#039;s name is implicitly added. It contains the errors thrown when it was compiling / linking.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-----------  [block start]&lt;br /&gt;
&lt;br /&gt;
64 00 00 00  Length of the file&#039;s content (example: decimal 100; does not count the string termination!)&lt;br /&gt;
&lt;br /&gt;
FF FF FF FF  Separator&lt;br /&gt;
&lt;br /&gt;
6D 6F 64 00  File name or if it&#039;s the last 1F-block FastFile name (example: mod.)&lt;br /&gt;
?? ?? .. 00  Plain text content of length above (string, terminated by 0x00)&lt;br /&gt;
&lt;br /&gt;
-----------  [block end OR even end of file]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 00 00 00 20 (stringtable) === &lt;br /&gt;
&lt;br /&gt;
A compiled stringtable (comma separated list, *.csv). Even values are stored as strings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-----------  [block start]&lt;br /&gt;
&lt;br /&gt;
05 00 00 00  (int) columns&lt;br /&gt;
02 00 00 00  (int) rows&lt;br /&gt;
&lt;br /&gt;
FF FF FF FF  separator&lt;br /&gt;
?? ?? .. 00  filename (path/*.csv) + string termination (0x00)&lt;br /&gt;
&lt;br /&gt;
-----------  [table cell description]&lt;br /&gt;
&lt;br /&gt;
?? ?? ?? ??  columns * rows integers (5 * 2 * 4 = 40 bytes in total, 5 * 2 = 10 cells)&lt;br /&gt;
             FF FF FF FF - if the string wasn&#039;t used before and follows after the cell description&lt;br /&gt;
             ?? ?? ?? 4? - if an identical string was already used (in another csv). It is some kind of memory offset (pointer). Base address calculation not figured out yet (0x40000072 ?)&lt;br /&gt;
&lt;br /&gt;
-----------  [cell content / strings]&lt;br /&gt;
&lt;br /&gt;
?? ?? .. 00  string + termination (0x00)&lt;br /&gt;
             Number of strings = amount of FF FF FF FFs in table cell description&lt;br /&gt;
&lt;br /&gt;
-----------  [block end]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--[[User:NTAuthority|NTAuthority]] 10:54, 3 June 2010 (UTC) (some tiny information)&lt;br /&gt;
&lt;br /&gt;
--[[User:CoDEmanX|CoDEmanX]] 01:45, 8 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
--[[User:Daevius|Daevius]] 23:00, 8 December 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Call of Duty 4]]&lt;br /&gt;
[[Category:Technical Reference]]&lt;br /&gt;
[[Category:File formats]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- outdated investigations below&lt;br /&gt;
&lt;br /&gt;
=== Shaders ===&lt;br /&gt;
&lt;br /&gt;
05 00 00 00 or&lt;br /&gt;
04 00 00 00&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FF FF FF FF&lt;br /&gt;
00 00 00 00&lt;br /&gt;
FF FF FF FF&lt;br /&gt;
9F 00 00 00  size after filename&lt;br /&gt;
&lt;br /&gt;
filename ended with 0x00&lt;br /&gt;
&lt;br /&gt;
(size * 4) bytes of shader data, seems to end with FF FF 00 00&lt;br /&gt;
might contain more data&lt;br /&gt;
&lt;br /&gt;
FF FF FF FF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FF FF FF FF&lt;br /&gt;
00 00 00 00&lt;br /&gt;
&lt;br /&gt;
filename starts with &#039;,&#039;&lt;br /&gt;
&lt;br /&gt;
FF FF FF FF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://cvresumewritingservices.org/ resume writing services]&lt;/div&gt;</summary>
		<author><name>Randallphillips</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_duty_4:_Import_models&amp;diff=15873</id>
		<title>Call of duty 4: Import models</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_duty_4:_Import_models&amp;diff=15873"/>
		<updated>2011-06-24T12:04:05Z</updated>

		<summary type="html">&lt;p&gt;Randallphillips: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Warning_forpro}}&lt;br /&gt;
&#039;&#039;By NovemberDobby&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|This tutorial will show you the basics of importing a new weapon model into Cod4. Below is my example, which you will hopefully be able to use.}}&lt;br /&gt;
{{Warning_advanced}}&lt;br /&gt;
&lt;br /&gt;
[[Image:shot0097.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;You will be needing:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Maya 7.0 or 8.5 (not the Personal Learning Edition)&lt;br /&gt;
*Maya 8.0 requires a little hack (see below)&lt;br /&gt;
*The Cod4\bin\maya folder from the mod tools&lt;br /&gt;
*Texture(s) for your model: The dimensions have to be a power of two. (256*256, 512*512, etc), and the file must be a .jpg, .tga, or .dds. TGA and DDS textures can both have alpha channels, and can both be natively edited using Paint.net. (www.getpaint.net)&lt;br /&gt;
*My example weapon model, from [http://www.modsonline.com/Downloads-full-4308.html HERE]&lt;br /&gt;
&lt;br /&gt;
*In this tutorial, I will assume you know Maya&#039;s basic controls. Firstly, I recommend you follow this tutorial, written by mdS [http://www.modsonline.com/Downloads-full-4254.html HERE]&lt;br /&gt;
&lt;br /&gt;
*It shows you how to export a rigid model from Maya, and get it into the game using Asset Manager. It also shows you the first two steps needed to set up Maya to use the plugins. As these two steps are necessary, I&#039;ll explain them here, courtesy of Infinity Ward&#039;s Wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maya 8.0 Fix ==&lt;br /&gt;
&lt;br /&gt;
You can use the Maya 8.5 plugins (xmodel, xanim) which come with the CoD4 Mod Tools, in Maya 8.0. Just open the two MLL files with a [http://mh-nexus.de/en/hxd/ hex-editor], do a text search for &#039;850&#039; and replace it with &#039;800&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Change  850 (hex 38 35 30 )&lt;br /&gt;
To --&amp;gt;  800 (hex 38 30 30 )&lt;br /&gt;
&lt;br /&gt;
Offsets:&lt;br /&gt;
XAnimExport.mll  - 0x2B10B&lt;br /&gt;
XModelExport.mll - 0x350EC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
850 is the version number v8.50, the Maya version the plugins are designed for. Maya v8.00 won&#039;t accept them, but if you change the version requirement like described above it will load the plugins. The Maya scripting engines probably didn&#039;t change a lot, thus you shouldn&#039;t experience any problems with the hacked plugins.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MAYA Setup==&lt;br /&gt;
&lt;br /&gt;
Create a Maya.env file in: C:\Documents and Settings\My Documents\maya\&lt;br /&gt;
and add the two lines below into it.&lt;br /&gt;
&lt;br /&gt;
 MAYA_SCRIPT_PATH = C:\Program Files\Activision\Call of Duty 4 - Modern Warfare\bin\maya\tools&lt;br /&gt;
 MAYA_PLUG_IN_PATH = C:\Program Files\Activision\Call of Duty 4 - Modern Warfare\bin\maya\tools&lt;br /&gt;
&lt;br /&gt;
This folder location will be different if you have the Steam version, or have installed Cod4 somewhere else. You also need to make a file called usersetup.mel in C:\Documents and Settings\\My Documents\maya\\scripts\&lt;br /&gt;
and add the following three lines to it:&lt;br /&gt;
&lt;br /&gt;
 source CODToolsMenu;&lt;br /&gt;
 CODStartup;&lt;br /&gt;
 CODToolsMenu;&lt;br /&gt;
&lt;br /&gt;
Lastly, you need to extract the corret plugins for your version of Maya. Go to Cod4\bin\maya\tools, and open up either Maya7_plugins.zip or Maya8_plugins.zip. Extract the two files from that zip into the Cod4\bin\maya\tools folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==In MAYA==&lt;br /&gt;
&lt;br /&gt;
* Ok, start up Maya, and you should see a Call Of Duty 4 menu at the top. Open my example weapon, and then save it as a Maya file in a folder called Cod5\model_export\maya_ex. Maya_ex is the name of your model for now, it can be anything as long as there are no spaces in the name. You can save the actual Maya file under any filename. Also, copy the textures out of my example file into the same folder you saved this into.&lt;br /&gt;
&lt;br /&gt;
* To view and edit the texturing in this model, you need to use Hypershade. In Maya, go to {{Color|Window &amp;gt; Rendering Editors &amp;gt; Hypershade|yellow}}. You will be presented with a dialog box which shows you the textures in use along with some other stuff. In the top dark section, you should see four textures. The one called {{Color|&#039;demo_wep_skin&#039;|orange}} is the one we&#039;re interested in, the other three are there by default and you cannot remove them. You may have to re-locate the actual .tga texture which is being used, so double click on the demo_wep_skin, and you should see the main right hand side panel change in Maya. There should be a &#039;file1&#039; tab there now, click on it. About halfway down this new page, you should see &#039;Image name&#039;. Click on the folder icon to browse to the skin image, demo_weapon_skin.tga, and open it. &lt;br /&gt;
&lt;br /&gt;
* There is one step that you need to do for each model that you export, otherwise they will appear totally black in Radiant and the game. Go to {{Color|Edit &amp;gt; Select All|yellow}}, and then to {{Color|Color &amp;gt; Apply color|yellow}}, but don&#039;t click on the menu button; click the small box to the right of it. In the {{Color|&#039;Color Value&#039;|orange}} frame, click on the coloured box, and select a full white colour from the colour selector that comes up. Click {{Color|&#039;Apply color&#039;|orange}}, and you should see your model become marginally brighter in the 3D window. You need to do this for every new model, or again if you add geometry to an existing model.&lt;br /&gt;
&lt;br /&gt;
* This model has already been rigged with the correct joints needed to work as a weapon in Cod4, so, navigate to the Call Of Duty 4 menu, and click on Model Exporter. When the dialog box comes up, click on the &#039;Add new Entry&#039; button. Tick the checkbox called &#039;Entry1&#039;, and then choose where you will export your model. This should be in the same folder as your Maya model, and should have a similar (if not the same) name.&lt;br /&gt;
&lt;br /&gt;
* Next, in Maya&#039;s menus, go to Edit&amp;gt;Select All. Back in the Cod4 dialog, click on Set Exports in Entry1. This has set the polygons and joints that you want to export to the Cod4 model, and it&#039;s very rare that you won&#039;t want to export everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MAYA: Convert==&lt;br /&gt;
&lt;br /&gt;
You&#039;re now ready to convert the model to a useable format. In the Cod5 Model Export Window, click &#039;Select Exports&#039;, and &#039;Export Selected Entries&#039;. If all goes well, a progress bar should pop up and reach 100%. It won&#039;t work unless you have clicked &#039;Select Exports&#039; (or selected everything in Maya). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;You sould now have a .xmodel_export file in your model&#039;s folder in Cod5\model_export. If you do, continue to the steps below.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Asset Manager== &lt;br /&gt;
&lt;br /&gt;
*Close Maya, and open up Cod4\bin\asset_manager.exe. You will see several buttons in the top left corner, along with a list. Scroll down to &#039;xmodel&#039;, and click &#039;New Entry&#039;. You now need to enter the name of the model that you will use to access it ingame, and in Radiant. It can&#039;t have any spaces, and try not to make it too generic, pick something which will definitely be unique, e.g. db_laser_cannon. You will see a list of options for your model appear on the right hand side now, select &#039;animated&#039; from the first drop-down menu. In the &#039;filename&#039; field, click the browse (three dots) button to the right. Use this to locate and open your xmodel_export file that you made before.&lt;br /&gt;
&lt;br /&gt;
*Save your Asset Manager file in Cod4\model_export. Anywhere else and it won&#039;t convert, but it won&#039;t have any errors.&lt;br /&gt;
&lt;br /&gt;
To convert the xmodel_export, you need to edit the export file. Go to Cod4\model_export\modelfolder\, and open up the .xmodel_export in a text editor like notepd. You will see &#039;VERSION 8&#039;, this needs changing to &#039;VERSION 6&#039;. Save and close it. &lt;br /&gt;
&lt;br /&gt;
*Go back to Asset Manager, and click on your entry in xmodel. Go to PC Convert&amp;gt;Current Asset Only, and if it works, you should see &#039;Conversion done, hit key to continue&#039;.&lt;br /&gt;
&lt;br /&gt;
In the left hand scroll list, go to &#039;material&#039;, and click new entry. This entry must be the same name as the weapon texture you used in Hypershade, in this example, &#039;demo_wep_skin&#039;. Change these properties of the material:&lt;br /&gt;
&lt;br /&gt;
 Materialtype = world phong&lt;br /&gt;
 surfacetype = none&lt;br /&gt;
 sort = default*&lt;br /&gt;
 usage = not in editor&lt;br /&gt;
&lt;br /&gt;
*Click the three dots symbol next to the &#039;Color map&#039; box, and navigate to your .tga skin. If you want the skins to have a specular map aswell, you have to create a texture for that and browse for it, using &#039;Specular color map&#039;. Do not use a Normal Map on your texture, because it&#039;ll stop the specular from working properly, on scopes and reflections.&lt;br /&gt;
&lt;br /&gt;
*Re-save the Asset Manager file, it will only convert entries that are in the saved version.&lt;br /&gt;
&lt;br /&gt;
*Select your material from the list on the left, and go to PC Convert&amp;gt;Current Asset Only. If all goes well, a black box should appear, and it&#039;ll eventually read &#039;Conversion done, hit key to continue&#039;. You&#039;ve now converted the texture for use with your model.&lt;br /&gt;
&lt;br /&gt;
*If both your texture and your model have converted properly, you can now package them in your mod. I&#039;m assuming you can use .csv files and know how to make a basic mod.ff. All of the textures must go in the mod&#039;s IWD, and if it doesn&#039;t have one, it needs one. The file structure is: IWD\images\, and the converted iwi images can be found in Cod4\raw\images.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating the weapon&#039;s file==&lt;br /&gt;
&lt;br /&gt;
For this example, we&#039;ll mod a stock weaponfile. (rpg_mp)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WEAPONFILE \weaponType\projectile\weaponClass\rocketlauncher\impactType\rocket_explode\guidedMissileType\None\inventoryType\item\maxSteeringAccel\3000\displayName\Laser thingy\AIOverlayDescription\\modeName\\playerAnimType\rocketlauncher\gunModel\db_laser_cannon\gunModel2\\gunModel3\\gunModel4\\gunModel5\\gunModel6\\gunModel7\\gunModel8\\gunModel9\\gunModel10\\gunModel11\\gunModel12\\gunModel13\\gunModel14\\gunModel15\\gunModel16\\handModel\viewmodel_base_viewhands\isHandModelOverridable\0\idleAnim\viewmodel_rpg_idle\emptyIdleAnim\viewmodel_rpg_idle_empty\fireAnim\viewmodel_rpg_fire\lastShotAnim\viewmodel_rpg_fire\meleeAnim\viewmodel_M4m203_knife_melee_1\meleeChargeAnim\viewmodel_M4m203_knife_melee_2\reloadAnim\viewmodel_rpg_reload\raiseAnim\viewmodel_rpg_pullout\dropAnim\viewmodel_rpg_putaway\firstRaiseAnim\viewmodel_rpg_pullout\altRaiseAnim\viewmodel_rpg_pullout\altDropAnim\viewmodel_rpg_putaway\quickRaiseAnim\viewmodel_rpg_pullout\quickDropAnim\viewmodel_rpg_putaway\emptyRaiseAnim\viewmodel_rpg_pullout\emptyDropAnim\viewmodel_rpg_putaway\sprintInAnim\viewmodel_rpg_sprint_in\sprintLoopAnim\viewmodel_rpg_sprint_loop\sprintOutAnim\viewmodel_rpg_sprint_out\nightVisionWearAnim\\nightVisionRemoveAnim\\adsFireAnim\viewmodel_rpg_fire\adsLastShotAnim\viewmodel_rpg_fire\adsUpAnim\viewmodel_rpg_ads_up\adsDownAnim\viewmodel_rpg_ads_down\moveSpeedScale\1\adsMoveSpeedScale\1\sprintDurationScale\1\lowAmmoWarningThreshold\0.33\damage\1000\meleeDamage\135\fireDelay\0\meleeDelay\0.13\meleeChargeDelay\0.16\fireTime\0.33\meleeTime\0.8\meleeChargeTime\1.16\reloadTime\3.292\reloadShowRocketTime\0.1\reloadAddTime\1.17\dropTime\0.467\raiseTime\0.73\altDropTime\0.467\altRaiseTime\0.733\quickDropTime\0.25\quickRaiseTime\0.75\firstRaiseTime\0.73\emptyDropTime\0.467\emptyRaiseTime\0.73\sprintInTime\0.3\sprintLoopTime\1\sprintOutTime\0.3\nightVisionWearTime\0\nightVisionWearTimeFadeOutEnd\0\nightVisionWearTimePowerUp\0\nightVisionRemoveTime\0\nightVisionRemoveTimePowerDown\0\nightVisionRemoveTimeFadeInStart\0\clipOnly\0\adsTransInTime\0.5\adsTransOutTime\0.5\adsZoomFov\55\adsZoomGunFov\40\adsZoomInFrac\0.5\adsZoomOutFrac\0.1\adsOverlayShader\\adsOverlayReticle\none\adsOverlayInterface\none\adsOverlayWidth\240\adsOverlayHeight\240\adsBobFactor\1\adsViewBobMult\0\hipSpreadStandMin\5\hipSpreadDuckedMin\3.5\hipSpreadProneMin\2\hipSpreadMax\6\hipSpreadDuckedMax\6\hipSpreadProneMax\6\hipSpreadDecayRate\2.5\hipSpreadFireAdd\0.4\hipSpreadTurnAdd\0\hipSpreadMoveAdd\2.3\hipSpreadDuckedDecay\1.375\hipSpreadProneDecay\1.6\hipReticleSidePos\0\adsSpread\1.7\adsIdleAmount\25\hipIdleAmount\80\hipIdleSpeed\1\adsIdleSpeed\1\idleCrouchFactor\0.5\idleProneFactor\0.15\gunMaxPitch\30\gunMaxYaw\30\adsAimPitch\0\adsCrosshairInFrac\1\adsCrosshairOutFrac\0.2\adsReloadTransTime\0.6\adsGunKickPitchMin\-30\adsGunKickPitchMax\-20\adsGunKickYawMin\-17\adsGunKickYawMax\17\adsGunKickAccel\250\adsGunKickSpeedMax\1000\adsGunKickSpeedDecay\10\adsGunKickStaticDecay\1\adsViewKickPitchMin\20\adsViewKickPitchMax\95\adsViewKickYawMin\-10\adsViewKickYawMax\30\adsViewKickCenterSpeed\2500\hipGunKickPitchMin\-5\hipGunKickPitchMax\-3\hipGunKickYawMin\-15\hipGunKickYawMax\15\hipGunKickAccel\250\hipGunKickSpeedMax\500\hipGunKickSpeedDecay\15\hipGunKickStaticDecay\1\hipViewKickPitchMin\100\hipViewKickPitchMax\150\hipViewKickYawMin\-50\hipViewKickYawMax\-80\hipViewKickCenterSpeed\1500\swayMaxAngle\30\swayLerpSpeed\6\swayPitchScale\0.1\swayYawScale\0.1\swayHorizScale\0.1\swayVertScale\0.1\swayShellShockScale\5\adsSwayMaxAngle\30\adsSwayLerpSpeed\6\adsSwayPitchScale\0.1\adsSwayYawScale\0.1\adsSwayHorizScale\0.1\adsSwayVertScale\0.1\hudIcon\hud_icon_rpg\killIcon\hud_icon_rpg\dpadIcon\hud_icon_rpg_dpad\ammoCounterIcon\hud_icon_rpg\hudIconRatio\4:1\killIconRatio\4:1\dpadIconRatio\1:1\ammoCounterIconRatio\4:1\ammoCounterClip\Rocket\flipKillIcon\1\worldModel\weapon_rpg7\worldModel2\\worldModel3\\worldModel4\\worldModel5\\worldModel6\\worldModel7\\worldModel8\\worldModel9\\worldModel10\\worldModel11\\worldModel12\\worldModel13\\worldModel14\\worldModel15\\worldModel16\\worldClipModel\\rocketModel\viewmodel_rpg7_rocket\knifeModel\viewmodel_knife\worldKnifeModel\weapon_parabolic_knife\ammoName\rpg\maxAmmo\2\startAmmo\2\clipName\rpg_mp\clipSize\1\dropAmmoMin\1\dropAmmoMax\2\viewFlashEffect\muzzleflashes/at4_flash\worldFlashEffect\muzzleflashes/at4_flash\shellEjectEffect\\lastShotEjectEffect\\worldClipDropEffect\\pickupSound\weap_pickup\pickupSoundPlayer\weap_pickup\ammoPickupSound\\ammoPickupSoundPlayer\\projectileSound\weap_rpg_loop\fireSound\weap_rpg_fire_npc\fireSoundPlayer\weap_rpg_fire_plr\lastShotSound\\lastShotSoundPlayer\\emptyFireSound\weap_dryfire_rifle_npc\emptyFireSoundPlayer\weap_dryfire_rifle_plr\meleeSwipeSound\melee_swing_ps_large\meleeSwipeSoundPlayer\melee_rpg_swing_plr\rechamberSound\\rechamberSoundPlayer\\reloadSound\\reloadSoundPlayer\\reloadEmptySound\\reloadEmptySoundPlayer\\reloadStartSound\\reloadStartSoundPlayer\\reloadEndSound\\reloadEndSoundPlayer\\altSwitchSound\\altSwitchSoundPlayer\\raiseSound\weap_rpg_raise_npc\raiseSoundPlayer\weap_rpg_raise_plr\firstRaiseSound\\firstRaiseSoundPlayer\\putawaySound\weap_rpg_drop_npc\putawaySoundPlayer\weap_rpg_drop_plr\bounceSound\\nightVisionWearSound\\nightVisionWearSoundPlayer\\nightVisionRemoveSound\\nightVisionRemoveSoundPlayer\\reticleCenter\reticle_flechette\reticleSide\\reticleCenterSize\32\reticleSideSize\24\reticleMinOfs\17\enemyCrosshairRange\1000\crosshairColorChange\1\altWeapon\\boltAction\0\aimDownSight\1\rechamberWhileAds\1\adsViewErrorMin\0\adsViewErrorMax\0\adsFire\1\noAdsWhenMagEmpty\0\avoidDropCleanup\0\cancelAutoHolsterWhenEmpty\0\suppressAmmoReserveDisplay\0\blocksProne\0\noPartialReload\0\reloadAmmoAdd\1\autoAimRange\0\aimAssistRange\1000\aimAssistRangeAds\1000\fightDist\720\maxDist\1400\aiVsAiAccuracyGraph\\aiVsPlayerAccuracyGraph\\standMoveF\0\standMoveR\0\standMoveU\-1.7\standRotP\0\standRotY\0\standRotR\0\duckedOfsF\-2\duckedOfsR\0.8\duckedOfsU\-0.2\duckedMoveF\-1\duckedMoveR\0\duckedMoveU\-1.7\duckedRotP\0\duckedRotY\0\duckedRotR\0\proneOfsF\-2\proneOfsR\1\proneOfsU\-1\proneMoveF\-160\proneMoveR\3\proneMoveU\-120\proneRotP\0\proneRotY\300\proneRotR\-300\posMoveRate\6\posProneMoveRate\25\standMoveMinSpeed\110\duckedMoveMinSpeed\60\proneMoveMinSpeed\0\posRotRate\6\posProneRotRate\30\standRotMinSpeed\110\duckedRotMinSpeed\60\proneRotMinSpeed\0\explosionRadius\300\explosionInnerDamage\160\explosionOuterDamage\30\damageConeAngle\180\projectileSpeed\1500\projectileSpeedUp\500\projectileActivateDist\0\projectileLifetime\5\projectileModel\projectile_rpg7\projExplosionType\rocket\projExplosionEffect\\projExplosionEffectForceNormalUp\0\projExplosionSound\\projDudEffect\\projDudSound\\projImpactExplode\1\projTrailEffect\smoke/smoke_geotrail_rpg\projectileDLight\200\projectileRed\0.75\projectileGreen\0.3\projectileBlue\1\projIgnitionDelay\0\projIgnitionEffect\\projIgnitionSound\\destabilizationRateTime\0.4\destabilizationCurvatureMax\10\destabilizeDistance\300\parallelDefaultBounce\0.5\parallelBarkBounce\0.5\parallelBrickBounce\0.5\parallelCarpetBounce\0.5\parallelClothBounce\0.5\parallelConcreteBounce\0.5\parallelDirtBounce\0.5\parallelFleshBounce\0.5\parallelFoliageBounce\0.5\parallelGlassBounce\0.5\parallelGrassBounce\0.5\parallelGravelBounce\0.5\parallelIceBounce\0.5\parallelMetalBounce\0.5\parallelMudBounce\0.5\parallelPaperBounce\0.5\parallelPlasterBounce\0.5\parallelRockBounce\0.5\parallelSandBounce\0.5\parallelSnowBounce\0.5\parallelWaterBounce\0.5\parallelWoodBounce\0.5\parallelAsphaltBounce\0.5\parallelCeramicBounce\0.5\parallelPlasticBounce\0.5\parallelRubberBounce\0.5\parallelCushionBounce\0.5\parallelFruitBounce\0.5\parallelPaintedMetalBounce\0.5\perpendicularDefaultBounce\0.5\perpendicularBarkBounce\0.5\perpendicularBrickBounce\0.5\perpendicularCarpetBounce\0.5\perpendicularClothBounce\0.5\perpendicularConcreteBounce\0.5\perpendicularDirtBounce\0.5\perpendicularFleshBounce\0.5\perpendicularFoliageBounce\0.5\perpendicularGlassBounce\0.5\perpendicularGrassBounce\0.5\perpendicularGravelBounce\0.5\perpendicularIceBounce\0.5\perpendicularMetalBounce\0.5\perpendicularMudBounce\0.5\perpendicularPaperBounce\0.5\perpendicularPlasterBounce\0.5\perpendicularRockBounce\0.5\perpendicularSandBounce\0.5\perpendicularSnowBounce\0.5\perpendicularWaterBounce\0.5\perpendicularWoodBounce\0.5\perpendicularAsphaltBounce\0.5\perpendicularCeramicBounce\0.5\perpendicularPlasticBounce\0.5\perpendicularRubberBounce\0.5\perpendicularCushionBounce\0.5\perpendicularFruitBounce\0.5\perpendicularPaintedMetalBounce\0.5\fireRumble\\meleeImpactRumble\\adsDofStart\0\adsDofEnd\0\requireLockonToFire\0\notetrackSoundMap\weap_rpg_raise_plr weap_rpg_raise_plr weap_rpg_drop_plr weap_rpg_drop_plr melee_knife_stab melee_knife_stab weap_rpg_lift_plr weap_rpg_lift_plr weap_rpg_insert_plr weap_rpg_insert_plr weap_rpg_twist_plr weap_rpg_twist_plr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*I have changed the display name of the weapon, and it&#039;s viewmodel. It will look like your model in first person view, but will still be an rpg in other people&#039;s hands and thirdperson. For more info on modding weaponfiles, Shadowlance194 wrote a tutorial here: http://www.modsonline.com/Tutorials-read-466.html&lt;br /&gt;
&lt;br /&gt;
*This weaponfile needs to go in the mod IWD\weapons\mp folder, and also needs to be referenced in the mod csv:&lt;br /&gt;
&lt;br /&gt;
 weapon,mp/rpg_mp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outline of updating model process:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Save model in Maya&lt;br /&gt;
*Open Cod4 export plugin, tick &#039;entry1&#039; &amp;amp; Select Exports, Set Exports if the geometry has changed&lt;br /&gt;
*Edit version number in .xmodel_export&lt;br /&gt;
*Convert model &amp;amp; materials in Asset Manager&lt;br /&gt;
*Put textures in IWD, re-build fastfile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Warning|&#039;&#039;&#039;NOTES AND WARNINGS:&#039;&#039;&#039;}}&lt;br /&gt;
*This is quite complicated, with a lot of things that can go wrong.&lt;br /&gt;
*There is no way to reverse the conversion; you can&#039;t get an xmodel_export from an xmodel file. You also can&#039;t re-import the xmodel_export into Maya, like in old versions of Cod, so don&#039;t lose the source!&lt;br /&gt;
*You will find that the weapon model looks very small in thirdperson view, or if you are looking at someone else who has it. You need to create a separate worldmodel for it, because for some reason they are on different scales. On estimate, the worldmodel needs to be around twice as large.&lt;br /&gt;
*There are three joints on this model. The one at the front, tag_flash, defines where the muzzleflash effect will be.&lt;br /&gt;
*The actual position of the weapon in your hand is the position of the weapon model relative to 0,0,0 in Maya, none of the joints control it.&lt;br /&gt;
*If you only edit a stock weaponfile, you don&#039;t need to worry about precaching it. However, if it&#039;s not stock, you need to add a line in your mod scripts: PrecacheItem(&amp;quot;weaponfile_name&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Call of Duty 4]]&lt;br /&gt;
[[Category:Call of Duty 5]]&lt;br /&gt;
[[Category:Modtools]]&lt;br /&gt;
[[Category:Radiant]]&lt;br /&gt;
[[Category:Advanced Editing]]&lt;br /&gt;
[[Category:Modelling]]&lt;br /&gt;
[[Category:Maya]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://customcollegeessays.com/index.php college essay]&lt;/div&gt;</summary>
		<author><name>Randallphillips</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_Gameplay_standards&amp;diff=15872</id>
		<title>Call of Duty 4: Gameplay standards</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_Gameplay_standards&amp;diff=15872"/>
		<updated>2011-06-24T12:03:48Z</updated>

		<summary type="html">&lt;p&gt;Randallphillips: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Modtools]]&lt;br /&gt;
[[Category:Call of Duty 4]]&lt;br /&gt;
[[Category:Modding]]&lt;br /&gt;
[[Category:Radiant]]&lt;br /&gt;
[[Image:Nutshell.png]] Gameplay Standards are extremely important when mapping a level as they determine how the player will see the world but also how the gameplay will be affected. Building a doorway to small or a ledge too high might result in poor game flow...&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
*1 COD World unit = 0.02778 yard&lt;br /&gt;
*1 COD World unit = 0.0254 meters&lt;br /&gt;
&lt;br /&gt;
==Doorways and windows ==&lt;br /&gt;
&lt;br /&gt;
Doorways = 56 units wide/96 units high&lt;br /&gt;
&lt;br /&gt;
For high traffic areas it is sometime best to make it a double door.&lt;br /&gt;
&lt;br /&gt;
Double door = 128 units wide/96 units high&lt;br /&gt;
&lt;br /&gt;
Window Height = 32 units from floor to the bottom of the window frame.&lt;br /&gt;
&lt;br /&gt;
Window Frame = minimum of 46 units wide 72 units high. (Inside diameter)&lt;br /&gt;
&lt;br /&gt;
== Stairways ==&lt;br /&gt;
&lt;br /&gt;
Interior = 8 high / 10 deep  64 unit min. width&lt;br /&gt;
&lt;br /&gt;
== Mantles (Climbing) ==&lt;br /&gt;
&lt;br /&gt;
The tallest distance a player will climb automatically is 18 units. However, while 18 is the limit, stairs and curbs should be around 8 units high.&lt;br /&gt;
&lt;br /&gt;
The highest a player can mantle (&amp;quot;climb&amp;quot;) is eye level (approx. 64 units). Of course, if the player jumps, their eye level goes higher and they can climb higher things - but they player won&#039;t see the mantle icon if their eye isn&#039;t above the ledge.&lt;br /&gt;
&lt;br /&gt;
== Hallways == &lt;br /&gt;
&lt;br /&gt;
Hallways = 489 units wide&lt;br /&gt;
&lt;br /&gt;
== Walls ==&lt;br /&gt;
&lt;br /&gt;
Building wall/One story high = 128 units high&lt;br /&gt;
&lt;br /&gt;
Wall thickness = 8 units &lt;br /&gt;
&lt;br /&gt;
Columns = 32-48 units wide &lt;br /&gt;
&lt;br /&gt;
A 32 unit wide column is barely enough to still offer valid cover for the player.  And after the column_cover node animations have been added 32-48 units will also provide valid cover and firing angles from both sides of the column for AI as well.&lt;br /&gt;
&lt;br /&gt;
== Streets ==&lt;br /&gt;
&lt;br /&gt;
Large - Four car width = 600 units&lt;br /&gt;
&lt;br /&gt;
Small - Two Tank width = 300 units&lt;br /&gt;
&lt;br /&gt;
Alleyway – small street = 300 units wide&lt;br /&gt;
&lt;br /&gt;
== Sidewalk ==&lt;br /&gt;
&lt;br /&gt;
Small = 128 units wide&lt;br /&gt;
&lt;br /&gt;
Medium = 192 units wide&lt;br /&gt;
&lt;br /&gt;
Large = 256 units wide (this is more for Singleplayer levels)&lt;br /&gt;
&lt;br /&gt;
== Cover ==&lt;br /&gt;
&lt;br /&gt;
Standing cover height = 48 units high&lt;br /&gt;
&lt;br /&gt;
Crouching = 32 units&lt;br /&gt;
&lt;br /&gt;
Prone cover height = 16 units high&lt;br /&gt;
&lt;br /&gt;
Prone crawling height clearance = 32 units high&lt;br /&gt;
&lt;br /&gt;
== Engagement ranges ==&lt;br /&gt;
&lt;br /&gt;
These would be the range at which a firefight takes place. These ranges make sure the player is shooting at a target that is a good size to hit and interact with. This will help keep the levels from getting too big and having pixel shooting distances. &lt;br /&gt;
&lt;br /&gt;
There is a model in the game called mw_scale_soldier.  It has two rings around him, one at 600 and one at 1024. Based off of COD2’s weapons settings, 512 was a good distance to shoot an SMG at a target and 1024 was a good distance for a rifle. These can be adjusted if the new weapons get changed drastically. You can drop the model in your level to make sure your geo is not getting too big.&lt;br /&gt;
&lt;br /&gt;
== Player Models ==&lt;br /&gt;
&lt;br /&gt;
Standing = 72 units&lt;br /&gt;
&lt;br /&gt;
Crouch = 36 units&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
[http://www.infinityward.com/wiki/index.php/Gameplay_standards IW Wiki]&lt;br /&gt;
[http://essaywritingservices.org/index.php essay writing service]&lt;/div&gt;</summary>
		<author><name>Randallphillips</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_Damage_Charts&amp;diff=15871</id>
		<title>Call of Duty 4: Damage Charts</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_Damage_Charts&amp;diff=15871"/>
		<updated>2011-06-24T11:41:23Z</updated>

		<summary type="html">&lt;p&gt;Randallphillips: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Call of Duty 4]]&lt;br /&gt;
[[Category:Weapons]]&lt;br /&gt;
[[Category:Technical Reference]]&lt;br /&gt;
== EXPLOSIVE DAMAGE RADIUS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:explosive.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== VEHICLES/ DESTRUCTABLES ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Destructibles.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WEAPONS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:cod4gun.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All sources [http://www.fpsbanana.com/tuts/games/605 Here]&lt;br /&gt;
&lt;br /&gt;
[http://writing-help.org/ Writing help]&lt;br /&gt;
&lt;br /&gt;
[http://essaywritingservices.org/prices.php write my paper]&lt;/div&gt;</summary>
		<author><name>Randallphillips</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_Demo_Player&amp;diff=15870</id>
		<title>Call of Duty 4: Demo Player</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_Demo_Player&amp;diff=15870"/>
		<updated>2011-06-24T11:41:10Z</updated>

		<summary type="html">&lt;p&gt;Randallphillips: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Call of Duty 4]]&lt;br /&gt;
[[Category:Tools]]&lt;br /&gt;
[[Category:Technical Reference]]&lt;br /&gt;
[[Image:Nutshell.png]] Tool for easy playing demos of game Call of Duty 4: Modern Warfare&lt;br /&gt;
You can use slowmotion, faster playing, freezing demo, toggle third person view and toggle view HUD info. &lt;br /&gt;
&lt;br /&gt;
== Installation and run ==&lt;br /&gt;
&lt;br /&gt;
1. Download file cod4player.zip  (224 kB, cod4player.exe + readme.txt).&lt;br /&gt;
2. Just unzip file &amp;quot;cod4player.exe&amp;quot;, but rather don&#039;t put it into the COD4 folder. Then simply run it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
&lt;br /&gt;
* In main screen click on the keybord to show info about controls.&lt;br /&gt;
* You can set association demos in Setup menu and then just click on demofile to playback.&lt;br /&gt;
&lt;br /&gt;
[[Image:cod4player_1.jpg]]&lt;br /&gt;
[[Image:cod4player_3.jpg]]&lt;br /&gt;
[[Image:cod4player_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Restrictions ==&lt;br /&gt;
&lt;br /&gt;
*If You have COD4 just as copy on HD (no info in registry), cod4player ask You for path to iw3mp.exe.&lt;br /&gt;
*Tested on Windows XP SP2 Czech version only (Windows Vista - not tested!) &lt;br /&gt;
&lt;br /&gt;
BIG thanx to:&lt;br /&gt;
Player Rellik to idea &amp;quot;how to..&amp;quot; :) &lt;br /&gt;
&lt;br /&gt;
== Download &amp;amp; Sources ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Data.png]] Download &amp;amp; Website [http://www.cybopat.net/vb_cod4player_eng.php HERE]&lt;br /&gt;
&lt;br /&gt;
[http://writing-help.org/ essay writing help]&lt;br /&gt;
&lt;br /&gt;
[http://customcollegeessays.com/index.php college essay]&lt;/div&gt;</summary>
		<author><name>Randallphillips</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_d3dbsp&amp;diff=15869</id>
		<title>Call of Duty 4: d3dbsp</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_d3dbsp&amp;diff=15869"/>
		<updated>2011-06-24T11:40:59Z</updated>

		<summary type="html">&lt;p&gt;Randallphillips: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The .d3dbsp structure, Call of Duty 4&#039;s variant on the well-known BSP format, is rather difficult to decipher. Since it&#039;s a binary file you can&#039;t simply read it. A hexadecimal editor is the best tool in this case. I am still deciphering it myself, I will post anything I happen to get known of regarding the file format.&lt;br /&gt;
&lt;br /&gt;
Be sure to read [http://www.geocities.com/cofrdrbob/bspformat.html here] and [http://en.wikipedia.org/wiki/BSP_(file_extension) here] before you even try to decipher it. Knowing what the technique is that BSP formatted maps use, could be handy as well. Also see [[Call of Duty 2: d3dbsp]] for more information.&lt;br /&gt;
&lt;br /&gt;
Every number ending with an &#039;h&#039; indicates its a number using the hexadecimal count system. For other numbers one can assume the decimal count system is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Header &amp;amp; Lump index=&lt;br /&gt;
The file starts with 3 DWORDs: the header &#039;IBSP&#039; indicating this is a BSP file originally designed by ID software. After these 4 initial bytes you find the BSP version number. CoD4 uses the version number 22 (16h), which is different from CoD2. The next 4 byte group is the amount of lumps in the current BSP. The number of lumps varies from 23 to 37. Without compiled light (test maps) you get 23 lumps or 24 with lights. Stock maps have usually 37.&lt;br /&gt;
&lt;br /&gt;
After the first 12 header bytes is an array filled with DWORD pairs, indicating the lumps&#039; &#039;&#039;&#039;IDs and lengths&#039;&#039;&#039;. No absolute offsets are stored in this so called lump index in contrast to previous CoD BSP versions (each lump is connected). One can determine offsets by taking the previous lump&#039;s offset + length (padded to a multiple of 4). The first lump&#039;s offset is &amp;lt;code&amp;gt;(3 + (number of lumps * 2)) * 4&amp;lt;/code&amp;gt;. Nonetheless, the first data byte has the offset 0. Don&#039;t count the header and the lump index!&lt;br /&gt;
&lt;br /&gt;
 [[Image:Lightbulb.png]]&#039;&#039; Note: there can be a difference of number of lumps per map. If a map has a leak&lt;br /&gt;
 (no solid skybox or not everything is IN the skybox) the bsp only has 24 lumps (or even 23 if light is not&lt;br /&gt;
 compiled). The bsp description yet only supports the 37-lumps version (a valid map).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Variance==&lt;br /&gt;
Not all lumps are padded to a multiple of 4 in size. There are two exceptions:&lt;br /&gt;
&lt;br /&gt;
*[[#Lump.5B0x07.5D_-_unknown|Lump[0x07] - unknown]], no padding&lt;br /&gt;
*[[#Lump.5B0x27.5D_-_Entities|Lump[0x27] - Entities]], no padding but +1 for c-string termination&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
[[Image:D3DBSP_v22.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Offset calculation of the first lump:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00 00 00 00  |  B0 C7 00 00&lt;br /&gt;
     ↓       |       ↓       - Little Endian transfrom&lt;br /&gt;
00 00 00 00  |  00 00 C7 B0&lt;br /&gt;
     ↓       |       ↓       - hex to dec&lt;br /&gt;
     0       |     51120&lt;br /&gt;
  Lump ID    |   Lump length&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Start offset = Header length + Lump index length&lt;br /&gt;
             = (3 + (39 * 2)) * 4&lt;br /&gt;
             = 324&lt;br /&gt;
&lt;br /&gt;
End offset   = Start offset  + Lump length&lt;br /&gt;
             = 51120 + 324&lt;br /&gt;
             = 51444&lt;br /&gt;
&lt;br /&gt;
Start offset | End offset&lt;br /&gt;
    324      |   51444&lt;br /&gt;
     ↓       |     ↓         - dec to hex&lt;br /&gt;
    144      |   C8 F4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Lumps=&lt;br /&gt;
&lt;br /&gt;
==Lump[0x00] - Materials==&lt;br /&gt;
&#039;&#039;former texture filename + flags&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Texture information is 72 bytes long per texture. The first 64 bytes are used for the texture name. Then we have an DWORD for flags, and another DWORD for content flags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x01] - Lightmaps==&lt;br /&gt;
3,145,728 bytes (3,072 kb) per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x02] - Light Grid Points==&lt;br /&gt;
4 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x03] - Light Grid Colors==&lt;br /&gt;
168 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x04] - Planes==&lt;br /&gt;
16 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x05] - Brush Sides==&lt;br /&gt;
8 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x06] - unknown==&lt;br /&gt;
Equal to count of brush sides?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x07] - unknown==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Lump[0x08] - Brushes==&lt;br /&gt;
4 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x09] - Layered Tri Soups==&lt;br /&gt;
24 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x0A] - Layered Verts==&lt;br /&gt;
&#039;&#039;ID 0Ah = 10&#039;&#039;, former Vertex Data&amp;lt;br&amp;gt;&lt;br /&gt;
68 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x0B] - Layered Indexes==&lt;br /&gt;
&#039;&#039;ID 0Bh = 11&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
2 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[Lump[0x13] - Portal Verts==&lt;br /&gt;
&#039;&#039;ID 13h = 19&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
12 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x18] - Layered AABB Trees==&lt;br /&gt;
&#039;&#039;ID 18h = 24&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
12 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x19] - Cells==&lt;br /&gt;
&#039;&#039;ID 19h = 25, former Bounding Box&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
112 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x1A] - Portals==&lt;br /&gt;
&#039;&#039;ID 1Ah = 26&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
16 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x1B] - Nodes==&lt;br /&gt;
&#039;&#039;ID 1Bh = 27&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
36 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x1C] - Leafs==&lt;br /&gt;
&#039;&#039;ID 1Ch = 28&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
24 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x1D] - Leaf Brushes==&lt;br /&gt;
&#039;&#039;ID 1Dh = 29&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
4 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x1F] - Collision Verts==&lt;br /&gt;
&#039;&#039;ID 1Bh = 31, former assumed as nodes&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
12 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x20] - Collision Tris==&lt;br /&gt;
&#039;&#039;ID 20h = 32&#039;&#039;&lt;br /&gt;
6 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x21] - Collision Edge Walk==&lt;br /&gt;
&#039;&#039;ID 21h = 33&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Variable in length.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x22] - Collision Borders==&lt;br /&gt;
&#039;&#039;ID 22h = 34&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
28 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x23] - Collision Parts==&lt;br /&gt;
&#039;&#039;ID 23h = 35&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
12 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x24] - Collision AABBs==&lt;br /&gt;
&#039;&#039;ID 24h = 36&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
32 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x25] - Models==&lt;br /&gt;
&#039;&#039;ID 25h = 37&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
48 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x27] - Entities==&lt;br /&gt;
&#039;&#039;ID 27h = 39, also known as EntData&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Varying bytes per entry depending on size of entity. Basically a char[] terminated by a binary zero (=string).&lt;br /&gt;
The entities lump is readable and stored almost the same way described in the [[Call_of_Duty_4:_.MAP_file_structure#Entity|.MAP file structure]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x28] - Paths ==&lt;br /&gt;
&#039;&#039;ID 28h = 40&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Variable in length.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x29] - Reflection Probes==&lt;br /&gt;
&#039;&#039;ID 29h = 41&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
131,140 bytes (128 kB) per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x2A] - Layered Data==&lt;br /&gt;
&#039;&#039;ID 2Ah = 42&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Variable in length.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x2B] - Primary Lights==&lt;br /&gt;
&#039;&#039;ID 2Bh = 43&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
128 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x2C] - Light Grid Header==&lt;br /&gt;
&#039;&#039;ID 2Ch = 44&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
50 bytes per entry? (variable in length?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x2D] - Light Grid Rows==&lt;br /&gt;
&#039;&#039;ID 2Dh = 45&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
16 bytes per entry? (variable in length?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x2F] - Simple Tri Soups==&lt;br /&gt;
&#039;&#039;ID 2Fh = 47&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
24 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x30] - Simple Verts==&lt;br /&gt;
&#039;&#039;ID 30h = 48, former Vertex Data&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
68 bytes per entry. - Redundancy??&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x31] - Simple Indexes==&lt;br /&gt;
&#039;&#039;ID 31h = 49&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
2 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x33] - Simple AABB Trees==&lt;br /&gt;
&#039;&#039;ID 33h = 51&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
12 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x34] - Light Regions==&lt;br /&gt;
&#039;&#039;ID 34h = 52&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
1 byte per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x35] - Light Region Hulls==&lt;br /&gt;
&#039;&#039;ID 35h = 53&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
76 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lump[0x36] - Light Region Axes==&lt;br /&gt;
&#039;&#039;ID 36h = 54&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
20 bytes per entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Unidentified lumps==&lt;br /&gt;
Predicted lump IDs in brackets:&lt;br /&gt;
&lt;br /&gt;
*[0x1E] Leaf Surfaces&lt;br /&gt;
*[0x??] Visibility&lt;br /&gt;
*[0x??] Cull Groups&lt;br /&gt;
*[0x??] Cull Group Indexes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Note: If not listed, either missing or ID not in use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=BSP data in FastFile=&lt;br /&gt;
Even though IW said the fastfiles were encrypted, in fact they are zlib-compressed memory dumps with a 12 byte header. Due to the process of building a fastfile, the linker loads all files (referenced in the csv) into memory. Assumedly, this happens in the same fashion like the game engine loads the data for later use into a large data structure (might be a database, have a look at the console messages). It seems that there is a pre-processing or a different way of storing the bsp data at runtime. Whether or not active changes are made, the data differs in any case. At this point it looks difficult to get all desired data, but the fastfile construction is still under investigation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(Almost) unchanged lumps:   2, 3, ? 7?, 31, 32, 33, 34, 36, 44, 45, 52&lt;br /&gt;
Partially changed:          0, 1, 19, 35, 37, 39, 53, 54&lt;br /&gt;
Not or hardly recognizable: 4, 5, 6?, 8, 9, 10, 11, 24, 25, 26, 27, 28, 29, 42, 43, 47, 48, 49, 51&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Under Construction Small.png]]&lt;br /&gt;
&lt;br /&gt;
@Daevius: I couldn&#039;t find Lump 41 (5,114,460 bytes) and wasn&#039;t able to clearly identify the 9th and 10th lump (in order of the index). Lengths look good, but offsets seem to be screwed. 605 bytes of entity data (29th lump) are at the end of the 28th, in the entity lump are 285 bytes data of the following lump in return.&lt;br /&gt;
&lt;br /&gt;
--[[User:CoDEmanX|CoDEmanX]] 03:04, 28 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Made by Daevius, CoDEmanX &amp;amp; Silicone_Milk&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Call of Duty 4]]&lt;br /&gt;
[[Category:Technical Reference]]&lt;br /&gt;
[[Category:File formats]]&lt;br /&gt;
&lt;br /&gt;
[http://cvresumewriters.com/ resume writers]&lt;br /&gt;
&lt;br /&gt;
[http://essaywritingservices.org/prices.php write my essay]&lt;/div&gt;</summary>
		<author><name>Randallphillips</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_Custom_Skyboxes&amp;diff=15868</id>
		<title>Call of Duty 4: Custom Skyboxes</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_Custom_Skyboxes&amp;diff=15868"/>
		<updated>2011-06-24T11:40:53Z</updated>

		<summary type="html">&lt;p&gt;Randallphillips: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Call of Duty 4]]&lt;br /&gt;
[[Category:Modtools]]&lt;br /&gt;
[[Category:Radiant]]&lt;br /&gt;
[[Category:Advanced Editing]]&lt;br /&gt;
[[Category:Skybox]]&lt;br /&gt;
{{warning_forpro}}&lt;br /&gt;
&lt;br /&gt;
[http://www.planetside.co.uk/terragen &#039;&#039;&#039;Terragen&#039;&#039;&#039;] is a freeware scenery generator which can be used to create 2D skyboxes. The freeware version has a limitation that effectively limits the texture dimensions of the skybox to 960, so it can only really be used for skies at 512x512. If Terragen is registered for $99 (US), the size limitation is removed, so skies at 1024x1024 could potentially be rendered. &lt;br /&gt;
&lt;br /&gt;
This tutorial will explain how to use a scene in Terragen to create a 2D skybox that can be used in Cod4 Radiant.&lt;br /&gt;
&lt;br /&gt;
Here is an example of what you can achieve (no land on this one)&lt;br /&gt;
&lt;br /&gt;
[[Image:skyrender0001.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Creating the scene&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Terragen can be downloaded [http://www.planetside.co.uk/terragen/win/downloadwin.shtml HERE]&lt;br /&gt;
&lt;br /&gt;
Terragen takes a little bit of practice to get the hang of. There are many websites that can teach you the basics. Here are some good ones:&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetside.co.uk/terragen/guide/ &#039;&#039;The official guide&#039;&#039;]&lt;br /&gt;
* [http://individual.utoronto.ca/edegiuli/TGtut/TerragenTutMain.html &#039;&#039;Terragen tutorial by E. DeGiuli&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
Create your scene and save it. The camera position doesn&#039;t matter for now. Terragen can render realistic land if you&#039;re very skilled however making terrain is not recommended for a 2D skybox.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Set up the script&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The skybox requires six images to be rendered. This script will automate the creation of all six so you do not have to repeatedly come back to your computer and readjust the camera after each render. &lt;br /&gt;
&lt;br /&gt;
Use Notepad to save the following script as skyboxscript.tgs. It can be saved anywhere.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
initanim &amp;quot;C:\skyrender&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
;_ft&lt;br /&gt;
Zoom 1.0&lt;br /&gt;
CamH 0&lt;br /&gt;
CamP 0&lt;br /&gt;
CamB 0&lt;br /&gt;
frend&lt;br /&gt;
&lt;br /&gt;
;_lf&lt;br /&gt;
Zoom 1.0&lt;br /&gt;
CamH 90&lt;br /&gt;
CamP 0&lt;br /&gt;
CamB 0&lt;br /&gt;
frend&lt;br /&gt;
&lt;br /&gt;
;_up&lt;br /&gt;
Zoom 1.0&lt;br /&gt;
CamH 270&lt;br /&gt;
CamP 90&lt;br /&gt;
CamB 0&lt;br /&gt;
frend&lt;br /&gt;
&lt;br /&gt;
;_bk&lt;br /&gt;
Zoom 1.0&lt;br /&gt;
CamH 180&lt;br /&gt;
CamP 0&lt;br /&gt;
CamB 0&lt;br /&gt;
frend&lt;br /&gt;
&lt;br /&gt;
;_rt&lt;br /&gt;
Zoom 1.0&lt;br /&gt;
CamH 270&lt;br /&gt;
CamP 0&lt;br /&gt;
CamB 0&lt;br /&gt;
frend&lt;br /&gt;
&lt;br /&gt;
;_dn&lt;br /&gt;
Zoom 1.0&lt;br /&gt;
CamH 270&lt;br /&gt;
CamP -90&lt;br /&gt;
CamB 0&lt;br /&gt;
frend&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Render the skybox&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A. Now, in Terragen, uncheck both of the Fixed Height Above Surface boxes in the Rendering Control window. Place your Terragen camera where you want the viewpoint of the skybox to be. What&#039;s important here is the Camera Position. The Camera Orientation doesn&#039;t matter. Note that changing the height can affect the appearance of the clouds even though the horizon is always in the same location.&lt;br /&gt;
&lt;br /&gt;
[[Image:Terrastep1.jpg]]&lt;br /&gt;
&lt;br /&gt;
B. Set the detail all the way up in the Rendering Control window. Set the width and height both to 512. This is the best you can do with the freeware version. If you have registered Terragen, set them both to 1024. &lt;br /&gt;
&lt;br /&gt;
[[Image:Terrastep2.jpg]]&lt;br /&gt;
&lt;br /&gt;
C. You should double check that you did the first two steps right so you don&#039;t waste a lot of time. Now, choose Execute Script... from the Terragen menu, and choose the file skyboxscript.tgs that you created earlier. Now the rendering will commence. It may take a couple of hours or more.&lt;br /&gt;
&lt;br /&gt;
D. When the rendering is complete, a dialog will pop up saying the script is complete. Quit Terragen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get the textures ready&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Now, if you open up the C: drive, you&#039;ll see six new BMP files. Rename them as follows, where xxxx is whatever you want to name your sky: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Original filename       Change to  &lt;br /&gt;
skyrender0001.bmp  xxxxft.bmp  &lt;br /&gt;
skyrender0002.bmp  xxxxlf.bmp  &lt;br /&gt;
skyrender0003.bmp  xxxxup.bmp  &lt;br /&gt;
skyrender0004.bmp  xxxxbk.bmp  &lt;br /&gt;
skyrender0005.bmp  xxxxrt.bmp  &lt;br /&gt;
skyrender0006.bmp  xxxxdn.bmp &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use Photoshop or PaintShopPro to save them as TGA files (dont resize them!)into ...&#039;&#039;Call of Duty 4 - Modern Warfare\texture_assets\skybox&#039;&#039;. Create the folder if you have to.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Create the Material Skybox using Asset Manager&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A. Open up the IW Asset Manager&amp;lt;br&amp;gt;&lt;br /&gt;
B. Select &#039;&#039;Material&#039;&#039; from the list, click &#039;&#039;New Entry&#039;&#039; and inout a name like &#039;&#039;sky_xxxxx&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
C. Refer to the picture below for Asset Manager Settings&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:assman.jpg]]&lt;br /&gt;
&lt;br /&gt;
D. For the Color map note that the pic with _ft needs to be loaded&amp;lt;br&amp;gt;&lt;br /&gt;
E. Press F10 to convert the new Asset&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Everything going well you will see your new Skybox in the texture list of Cod4 Radiant  ;D - Good Luck!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Zeroy|Zeroy.]] 14:49, 15 October 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
[http://cvresumewriters.com/ resume writer]&lt;br /&gt;
&lt;br /&gt;
[http://essaywritingservices.org/index.php essay writing service]&lt;/div&gt;</summary>
		<author><name>Randallphillips</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_Custom_Dvars&amp;diff=15867</id>
		<title>Call of Duty 4: Custom Dvars</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_4:_Custom_Dvars&amp;diff=15867"/>
		<updated>2011-06-24T11:40:26Z</updated>

		<summary type="html">&lt;p&gt;Randallphillips: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;By Drofder2004&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|Someone mentioned they did not know how to do custom dvars, instead of answering in a post, here is a quick scripting tutorial}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if(getdvar(&amp;quot;&amp;lt;dvar&amp;gt;&amp;quot;) == &amp;quot;&amp;quot;)&lt;br /&gt;
   setdvar(&amp;quot;&amp;lt;dvar&amp;gt;&amp;quot;, &amp;quot;&amp;lt;default&amp;gt;&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Code above in pseudocode)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;If dvar &amp;lt;dvar&amp;gt; is equal to nothing (if it doesn&#039;t exist)...&amp;lt;br&amp;gt;&lt;br /&gt;
...create dvar with default value&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Thats the bare basics.&lt;br /&gt;
&lt;br /&gt;
Next you can create minimum and maximum values (if the dvar is numeric)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if(getDvar(&amp;quot;&amp;lt;dvar&amp;gt;&amp;quot;) == &amp;quot;&amp;quot;)&lt;br /&gt;
   setDvar(&amp;quot;&amp;lt;dvar&amp;gt;&amp;quot;, &amp;quot;&amp;lt;default&amp;gt;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
else if(getDvarInt(&amp;quot;&amp;lt;dvar&amp;gt;&amp;quot;) &amp;gt; 10)&lt;br /&gt;
   setDvar(&amp;quot;&amp;lt;dvar&amp;gt;&amp;quot;, 10);&lt;br /&gt;
&lt;br /&gt;
else if(getDvarInt(&amp;quot;&amp;lt;dvar&amp;gt;&amp;quot;) &amp;lt; 0)&lt;br /&gt;
   setDvar(&amp;quot;&amp;lt;dvar&amp;gt;&amp;quot;, 0);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Again, pseudocode, starting at line 3 (continued from above).&lt;br /&gt;
&lt;br /&gt;
...else, if the dvar is greater than 10, set the dvar to 10, or&amp;lt;br&amp;gt;&lt;br /&gt;
...if the dvar is less than 0, set it to 0.&lt;br /&gt;
&lt;br /&gt;
Make sure you get you note the usage of getDvar and getDvarInt (also, you can use getDvarFloat, to retrieve decimal values).&lt;br /&gt;
&lt;br /&gt;
And finally, using the dvar in your script.&lt;br /&gt;
Now, there are many ways to use the dvar, but the main way is to use it as a variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if(getDvar(&amp;quot;&amp;lt;dvar&amp;gt;&amp;quot;) == &amp;quot;&amp;quot;)&lt;br /&gt;
   setDvar(&amp;quot;&amp;lt;dvar&amp;gt;&amp;quot;, &amp;quot;&amp;lt;default&amp;gt;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
else if(getDvarInt(&amp;quot;&amp;lt;dvar&amp;gt;&amp;quot;) &amp;gt; 10)&lt;br /&gt;
   setDvar(&amp;quot;&amp;lt;dvar&amp;gt;&amp;quot;, 10);&lt;br /&gt;
&lt;br /&gt;
else if(getDvarInt(&amp;quot;&amp;lt;dvar&amp;gt;&amp;quot;) &amp;lt; 0)&lt;br /&gt;
   setDvar(&amp;quot;&amp;lt;dvar&amp;gt;&amp;quot;, 0);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;variable&amp;gt; = getDvarInt(&amp;quot;&amp;lt;dvar&amp;gt;&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Remeber, use the correct &#039;getDvar&#039;, use...&lt;br /&gt;
&lt;br /&gt;
*getDvar for TEXT based dvars (example: &amp;lt;code&amp;gt;getDvar(&amp;quot;g_gametype&amp;quot;);&amp;lt;/code&amp;gt; )&lt;br /&gt;
*getDvarInt for INTEGERS (whole number, example: &amp;lt;code&amp;gt;getDvarInt(&amp;quot;scr_forcerespawn&amp;quot;);&amp;lt;/code&amp;gt; )&lt;br /&gt;
*getDvarFloat for FLOATS (decimals, example: &amp;lt;code&amp;gt;getDvarFloat(&amp;quot;scr_hq_timelimit&amp;quot;);&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Info|Another good use, is to use the dvar as a wait command}}&lt;br /&gt;
&lt;br /&gt;
For example, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
   while(getDvar(&amp;quot;wait&amp;quot;) != 0)&lt;br /&gt;
   {&lt;br /&gt;
      wait 1;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   iprintln(&amp;quot;Wait dvar is equal to 0&amp;quot;);&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;while()&amp;lt;/code&amp;gt; in the above script will keep waiting 1 second, until the dvar is changed to 0, once changed, the main function will continue. &lt;br /&gt;
&lt;br /&gt;
Now you know dvars!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sources==&lt;br /&gt;
&lt;br /&gt;
[http://www.codjumper.com/forums/viewtopic.php?f=19&amp;amp;t=5388 CodJumper]&lt;br /&gt;
&lt;br /&gt;
[[Category:Call of Duty 4]]&lt;br /&gt;
[[Category:Modding]]&lt;br /&gt;
&lt;br /&gt;
[http://cvresumewritingservices.org/ resume services]&lt;br /&gt;
&lt;br /&gt;
[http://cvresumewritingservices.org/ resume writing services]&lt;/div&gt;</summary>
		<author><name>Randallphillips</name></author>
	</entry>
</feed>