Jump to content


Getting Started

  • Please log in to reply
14 replies to this topic

#1 Malkor



  • Members
  • 375 posts
  • Projects:Loladins of Legend.
  •  Inanely inane inanities!

Posted 09 July 2004 - 05:11 AM

Hello. No one here knows about me, so I'll introduce myself.

I am known in the StarCraft and Diablo II community as Malkor, AKA IskatuMesk. I've been modding RTS games for over four years, doing everything from voice acting, coding, modelling, and AI. Yesterday I bought Generals: Zero Hour Deluxe Edition in hopes of being able to mod it. After seeing this site just now, I realize you can mod it. So, I brought up a design of a mod I've had in my head for a little under a year now. I think generals can handle it.

The planned generals mod will feature one or more races based on the MFTG(Mr.Freak's The Gallantry) universe. The universe is a humour-oriented one I created by writing novels and making audio (soon video!) webshows for. The mod will feature up to five races, being the Gallantry Crew, The Undead, The Pants Legion, The Space Cowboys, and the League Of Mailmen. So far, however, only the Gallantry Crew design is set in stone.

This mod has no name yet. It is loosely based design-wise on Battle Tanx, as you'll see. Very few if any air units will exist in this mod. It'll be based on very large land maps with extremely complex terrain to add to the depth of tactical capability. Units will be moving faster than they are in generals, and construction slower. In addition, things will be more expensive. Resources will be more common, but less in quantity than in generals. Super weapons, which are now known as Ballistic (Missile or otherwise) can be shot out of the sky with special weapons known as SDI (Static Defense Initiative) towers, making the otherwise vastly overpowered SW's counterable.

The mod focuses on Tank-class units. By tank-class, I mean that they are tracked, decently slow, and pack a lot of guns. In addition, I am introducing the first Landships into any mod I've ever done. I feel if I can get the Generals sea ships moving on land, and with a bit of model changing, they can make perfect landships. Landships are the ultimate fighting platform, being very expensive, very slow, and very powerful. All landships can recieve resources from harvesters.

In addition, defenses will only be particularily strong if massed. Balance is a big concern for me, and I found you could turtle far too easily in generals. That won't be so in this mod - You need to get out and actively engage the enemy. You can't just speed tech to the biggest unit, either. They're far too expensive to be an early-game solution. Chances are you won't see them very often. Same with super weapons.

General- (Base Design) - Gallantry Crew -


The Battle Center

Generally bases will be fairly small. Defenses will be the most numerous. The main structure, the Battle Center, must not be destroyed, or you lose the game. The Battle Center starts off with two autocannon turrets which can be upgraded. All turrets are known as Gun Buddies.

The Battle Center is VERY large and can produce five units at a time. It constructs all Tank-class units. It has extremely heavy armor and an SDI Gun Buddy. In addition, it is a return centre for resources. The Battle Centre has three upgrade levels, each enabling a new class of tank. All light tanks are available at start. Medium Chassis enables medium tanks, Heavy chassis enables heavy tanks, and Energy chassis enables all energy-based tanks including the hover tank.

SDI Gun Buddies

SDI Gun Buddies can be large or small. There are two types. SDI turrets can only target incoming ballistic projectiles, such as Orion Missiles. They are very expensive and require SDI tech. Larger SDI Buddies deal out more damage with their triple high-powered laser cannons, while you'll need multiple smaller ones to provide the same effect.

Autocannon Gun Buddies

Autocannon gun buddies are effective against lightly-armored units, but are entirely useless against heavy units such as Mega Tanks. They are cheap, however.

Orion Gun Buddies

Orion Gun Buddies are energy-powered beam cannons effective against all combatants. However, since most attacks come en masse, multiple Orion gun buddies are preferable to one, as they have a long cooldown time.

Ballistics Center

Builds ballistic missiles. Ballistic missiles can go under a number of upgrades in continuing fashion. The following upgrades can be done-

HE A Missiles - Light damage against heavy targets and buildings. Massacres light units over a small radius.
HE B Missiles - Heavier damage.
HE C Missiles - Heavier damage still.
Napalm A Missiles - Larger radius. Lights things on fire along with base damage.
Napalm B, C missiles - Upgrades the damage of the fire and it's duration.
Nuclear Missiles - Upgrades the missiles to become Nuclear. Nuclear missiles do far more damage and decimate targets of all types.

Orion Ballistics Center

Orion missiles take twenty minutes to build, far longer than normal ballistic weaponry. However, they are far more deadly. These massive projectiles create an energy singularity on impact, incinerating most if not everything they strike. This center requires a number of techs to build.

Titan Reactor

This is a power-supplying structure. Weakly armored, it must be protected at all costs. These are required to power Ballistic Weaponry and Gun Buddies. Without them, your static weaponry will cease to function.

Laser Factory

This center contains all upgrades for the GC. It is very lightly armored and very expensive. It MUST be protected at all costs.


This is a cheap, lightly-armored module to build in distant areas for collectors to return resources to.


Rails are tracks built on the ground for Goliath tanks to mount to.


GC units are all forms of tanks to combat the new Undead land threats in various corners of No Man's Pants.


A tracked vehicle that gathers resources and builds structures.


A very light tank with two chainguns. Extremely fast and acrobatic. Can leap cliffs, dodge large weaponsfire, and suicide enemy buildings. It can also grab wrecks from fallen enemy vehicles and upgrade it's weapons from them. The weapon upgrades are as follows in order of being obtained:

Piercing Autocannons
Explosive Autocannons
Orion Cannons


A bit heavier than the Scavenger. Has a light autocannon and slightly heavier armor. Not as acrobatic. It also fires slower, but fires HE rounds. It is more effective against lighter combatants than the Scavenger, but is almost useless against heavier units.


Standard light GC Tank. Has two 80MM Plasma-charged shock cannons, making it capable of dealing heavy damage to light units and moderate damage to medium units. It can change it's weapon mode to flamethrowers.


Another "light" tank. This vehicle has very heavy armor and is realitively slow. It fires a 300mm projectile at 2/4 the speed of light - making it capable of decimating light units in a single hit. It also fairs well against medium units, but cannot harm heavy ones very well.

Kaos Tank

A medium tank based on speed. It moves realitively fast and has a heavy autocannon for fighting other medium tanks. It's bullets are designed to shred heavy armor, so it isn't as effective against massed light units. This unit can place nuclear mines.


Standard GC Heavy tank. This monster packs a 500mm plasma-charged hammer cannon. While it's rounds don't always hit smaller tanks, it can put a hurt on medium units. This unit can be mounted on rails to give it added firing rate and allow it rail-based movement. A well-placed Goliath tank can deter an entire attack force.

Orion Tank

Based on the Orion energy technology, this massive tank is literally five times the size of a Goliath. It can crush gun buddies, crush enemy tanks, and put a hurt on an attack force with two heavy beam cannons and a gatling laser gun buddy. The Orion Tank can also transport up to ten scavenger-class light tanks.


A lighter tank based on experimental anti-gravity technology shamelessly stolen from the Undead. This tank is very agile and can dodge enemy weaponsfire. It has a weapon exactly like the JackHammer, but lighter armor. This unit can travel across water, small obsticles, mines, and rough terrain.


An energy-based tank with a range more than twice of the Goliath. The Marksman's high-cooldown energy weapon deals a fair amount of damage to all but the heaviest of tanks. The tank has a light hull and can move faster than the other medium classes besides the Hovertank.

Lion - Landship

Landships are the ultimate weapon. They carry many weapons and are nearly impervious to all medium and light weaponsfire. Only heavy tanks and other landships or a well-organized light force can pose a threat to a Landship. Landships are extremely expensive and can only be built at specific areas, once all of their requiring techs are complete.

The Lion landship is a powerful tool. It is lighter, and hence faster than other landships. It packs two powerful Orion beam turrets and nuclear rocket pods with long range. It can travel over any terrain besides cliffs, and can crush tanks.


Recoil Control- 5 levels

This upgrade ups the attack rate of all physical tanks by 5% per increment.

Payload Density- 5 levels

This upgrade ups the attack damage of all physical tanks by 5% per increment.

Armor Class- 5 levels

This upgrade ups the damage reduction of all tanks to physical damage by 3% per upgrade.

Shields - 1 level

This upgrade adds energy shields to Scavengers. Energy shields reduce incoming physical fire by 75% damage and can absorb one light laser bolt energy five seconds.

Orion Cores - 1 level

Enables the production of Orion tanks. In conjunction with Orion Acceleration, enables the construction of Orion Ballistic Centres.

Orion Acceleration - 1 level

Increases the rate of fire for Orion Tanks by 25%. In conjunction with Orion Cores, enables the construction of Orion Ballistic Centres. Also enables construction of SDI centres.

Landship Core - 5 levels

First level enables construction of the Lion landship. Receting levels add 5% to the landship's speed.

Landship Turrets - 1 level

Enables the Landship Orion Turret. While landships can be built without this upgrades, their turrets will not function until it is researched.

Landship Rocket Pods - 1 level

Same as above, but enables all rocket-type weaponry for Landships.

Landship Targeting - 2 levels

Makes all Landship weapons more accurate.

Now that you've read my mod design for one race, you may be a bit interested in it. Now I'd like to ask you for some info. I skimmed over this site's tutorials, and none seem to be for that newbie who's just wanting to get started in modding. Ideally, I want to know the following things-

How the file structure works. What data is in where. What am I using to edit this data. What can I use to model with (I have 3ds max and rhino 3d, but I can only really use rhino 3d.) What format are sounds and music in (Extremely important!). Is modification like turning a tank shell into a laser beam realitively simple? How would I do it? How would I make the overlord tank five times it's current size? How would I give the Battleship missile pods, make it buildable, and make it hover across land? How would I limit turning rates?

The basics, yes, but the foundation for becoming an expert must be first stepped toward by becoming aware of how things work. Currently, I do not see any tutorials that introduce you to Generals modding or any that explain the details of data editing. If I am mistaken and have missed somewhere, please tell me now! I'd like to get started on my mod ASAP.

Edited by Malkor, 09 July 2004 - 05:19 AM.

#2 AdmiralGT


    title available

  • Members
  • 1,702 posts
  • Location:Bristol, UK
  • Projects:Petrolution

Posted 09 July 2004 - 12:12 PM

Thats a lot of questions. I'll try to answer each as best as possible.

Whats the File Structure?

All the stuff needed to mod generals are in the .BIG files. You might need some of the big's from the original generals since Zero Hour uses them as well, especially the models and such. To extract these files you need a BIG Extractor. FinalBIG is the one I use and can be found here


What data is where?

All of the data (coding) is located in the .ini files. These can be found in INI.big and INIZH.big (generals and zero hour). These can be edited with a simple text editor such as notepad. The naming of these ini's are pretty straight forward. Weapon.ini has the weapons, Locomotor.ini has the Locomotors (what makes them move), Upgrade.ini has the Upgrades, FactionBuilding has the Faction Building's etc. If you want to know what each INI does I suggest you read this document at CNC Den, it explains what each ini does and I found it very helpful for learning.


What can you use to model with?

Personally I havent tried much modelling so i'm not sure about Rhino 3D. You can use RenX (a gamepack for gmax) and 3DS Max but in order to add the models to the game you need a W3D exporter. With 3DS Max and RenX you can also get a W3D importer so you can import models to them.

What formats are sounds in?

Generals uses .wav's and .mp3's for sounds and music respectively.

Is turning a tank shell into a laser simple?

In a word, yes. In Weapon.ini there will be a line of "ProjectileObject". This is what the weapon fires. Change this to be a laser object (Such as the laser beam from the Laser Tank or Avenger) and it will now fire a laser.

How would you make an overlord 5 times it size?

The best way would to be to import it into RenX or 3DS Max and add a scalar of 5.0 when importing and this will make it 5 times bigger. They're are some Geometry lines at the bottom but i've never tried using those so I wouldnt know.

How would you give a Battleship Missile Pods?

Units have what we call a WeaponSet. These are the weapons it carries. Each can carry 3, PRIMARY, SECONDARY and TERTIARY. Then you just find the name of your missile weapon in Weapon.ini and then add the following type lines to your Unit's code (In ChinaVehicle or whatever you call your ini for example).

  Conditions = NONE
  Weapon     = PRIMARY MissileWeapon

Making it Buildable?

To make a unit buildable you need a Command Button. These can be found in CommandButton.ini . Just copy and exisiting unit on (it will have the line UNIT_BUILD in it and then replace the Object with your Object name). Here is a sample Command Button

CommandButton Command_ConstructUKCommander
  Command       = UNIT_BUILD
  Object        = UKCommander
  TextLabel     = CONTROLBAR:ConstructUKCommander
  ButtonImage   = SARanger
  ButtonBorderType        = BUILD; Identifier for the User as to what kind of button this is
  DescriptLabel           = CONTROLBAR:ToolTipUKBuildCommander

The first line is the name, Second line is what type of button it is so in this case it produces a unit, third line is what it builds, 4th line is the label when you hover your mouse over it, 5th is the button image, the 6th is the border type of the button and the 7th is the little help that pops up when you hover over it. So in this case you would edit the 1st, 3rd, 4th, 5th and 7th lines. For the 4th and 7th you would need to create a new string in the generals.csf file (I'll talk about this later)

Now you have a button you need somewhere that uses it. These are located in CommandSet.ini and are CommandSet's of all the units/buildings, everything that has button's in the game. In my case I would add the line for example

7 = Command_ConstructUKCommander

to my barracks. Bear in mind that the number cant already be taken and that the maximum is 14. (12 for normal generals).

Someone over at CNC Den asked what would be needed for a new building and this is what I said, its much easier than typing it all out again.


Making it hover over land?

Making stuff move is in the Locomotor.ini . Units have a line Locomotor = SuchandSuch and those SuchandSuch's are here. There is a helpful tutorial over at DeeZire's which explains hovering (it also has several other helpful tutorials) at


and then you can look at Daz's hover tank at GenDev to see what hovering looks like


How do I limit turning rates?

There are 2 simple lines in the locomotor.ini which define turning rate.

 TurnRate            = 180 ;90  ; in degrees/sec
  TurnRateDamaged     = 180 ;60  ; in degrees/sec

Just edit the number before the ; and that will edit the speed of turning. The numbers after the ; are ignored since once the engine sees a ; in the line it ignores everything after it on that line.

What about the CSF bit I mentioned earlier?

In EnglishZH.big or English.big (or whatever language generals you are using) there is a .csf file. This file has all the labels for the game. When you hover your mouse over something a little box pops up with some text. If you dont add these strings to your csf file then it will just come up with MISSING:Objectblahblahblah. You can get a csf editor here


Lines such as

TextLabel = CONTROLBAR:ConstructUKCommander
DescriptLabel = CONTROLBAR:ToolTipUKBuildCommander

need a string entry in the csf file. You'll add a string with the name CONTROLBAR:ConstructUKCommander or CONTROLBAR:ToolTipUKBuildCommander and then write some text. The text you write is what shows up in game rather than the CONTROLBAR stuff.

Hopefully thats everything answered, apologies for the haphazardness, tend to get like that when I write a long piece. Hopefully you can understand it all but if you still have any questions feel free to ask. As for some tutorials I suggest checking out

http://gendev.origin-network.net and

They have some really helpful tutorials and tools for modding.


#3 Malkor



  • Members
  • 375 posts
  • Projects:Loladins of Legend.
  •  Inanely inane inanities!

Posted 09 July 2004 - 07:18 PM

Great! With those I got to work. However, there's a problem.

I made a new tank replacing the battlemaster called the OrionTestTank, modifying Weapons.ini, ChinaVehicles.ini, CommandSet.ini, and CommandButton.ini. I made a new big called MFTGATQFC.big, and a shortcut with -mod MFTGATQFC.big on the generals ZH exe. But nothing changes. The battlemaster doesn't fire any fancy new laser and I have zero indication of the mod changes actually taking place. I tried placing the big in the ZH folder and the ZH data folder in my documents. Nothing's happening. The files are all under Data\INI\ in the .big file except for ChinaVehicle, which is under Data\INI\Object.

#4 AdmiralGT


    title available

  • Members
  • 1,702 posts
  • Location:Bristol, UK
  • Projects:Petrolution

Posted 09 July 2004 - 07:29 PM

If you hover your mouse over the new tank does it come up with MISSING: Object OrionTestTank or does it still say Battlemaster. If it says Battlemaster then its not building the right unit. Check the CommandButton and CommandSet to check its trying to build the right thing.

Also try checking that you updated the weaponset.

For the .big file, this has to go in your Zero Hour Directory to where you install Zero Hour. It should be in the same place as the other .big files.

If none of that works post up/attach the coding and i'll take a look at it.

#5 Malkor



  • Members
  • 375 posts
  • Projects:Loladins of Legend.
  •  Inanely inane inanities!

Posted 09 July 2004 - 08:17 PM

Hmm I changed the string and it's not changing ingame. Also, for testing purposes, I set the tank's build speed to 1. That isn't working, either. Here's my code.

CommandSet ChinaWarFactoryCommandSet
  1  = Command_ConstructOrionTester
  2  = Command_ConstructChinaTankOverlord
  3  = Command_ConstructChinaVehicleTroopCrawler
  4  = Command_ConstructChinaVehicleListeningOutpost
  5  = Command_ConstructChinaTankGattling
  6  = Command_UpgradeChinaChainGuns
  7  = Command_ConstructChinaTankDragon
  8  = Command_UpgradeChinaBlackNapalm
  9  = Command_ConstructChinaVehicleInfernoCannon
  10 = Command_ConstructChinaVehicleNukeLauncher
  11 = Command_ConstructChinaTankECM
  12 = Command_UpgradeChinaMines
  13 = Command_SetRallyPoint
  14 = Command_Sell

Weapon OrionTestGun
  PrimaryDamage         = 30.0
  PrimaryDamageRadius   = 0.0      ; 0 primary radius means "hits only intended victim"
  AttackRange           = 300.0
  DamageType            = ARMOR_PIERCING
  DeathType             = NORMAL
  WeaponSpeed           = 999999.0         ; dist/sec (huge value == effectively instant)
 ;WeaponSpeed           = 10.0         ; dist/sec (huge value == effectively instant)
  LaserName             = AvengerLaserBeam
  LaserBoneName         = TurretFX01
;  FireFX                = WeaponFX_PaladinPointDefenseLaser
;  VeterancyFireFX       = HEROIC WeaponFX_PaladinPointDefenseLaser
  FireSound             = AvengerAirLaserWeapon
  RadiusDamageAffects   = ALLIES ENEMIES NEUTRALS
  DelayBetweenShots     = 100              ; time between shots, msec
  ClipSize              = 0                   ; how many shots in a Clip (0 == infinite)
  ClipReloadTime        = 0             ; how long to reload a Clip, msec
  AntiAirborneVehicle   = Yes
  AntiAirborneInfantry  = Yes
  AntiGround = Yes
  WeaponBonus           = PLAYER_UPGRADE DAMAGE 125%; APBullets


CommandButton Command_ConstructOrionTester
  Command       = UNIT_BUILD
  Object        = OrionTestTank
  TextLabel     = CONTROLBAR:ConstructOrionTestTank
  ButtonImage   = SNBattlemaster
  ButtonBorderType        = BUILD; Identifier for the User as to what kind of button this is
  DescriptLabel           = CONTROLBAR:ToolTipChinaBuildBattlemaster

And finally ChinaVehicle.ini

Object OrionTestTank

 ; *** ART Parameters ***
  SelectPortrait         = SNBattlemaster_L
  ButtonImage            = SNBattlemaster
  UpgradeCameo1 = Upgrade_Nationalism
  UpgradeCameo2 = Upgrade_ChinaUraniumShells
  UpgradeCameo3 = Upgrade_ChinaNuclearTanks
 ;UpgradeCameo4 = NONE
 ;UpgradeCameo5 = NONE
  Draw = W3DTankDraw ModuleTag_01
    OkToChangeModelColor = Yes
      Model               = NVBtMstr
      Turret              = Turret01
      WeaponFireFXBone    = PRIMARY Muzzle
      WeaponRecoilBone    = PRIMARY Barrel
      WeaponMuzzleFlash   = PRIMARY MuzzleFX
      WeaponLaunchBone    = PRIMARY Muzzle
    ConditionState = REALLYDAMAGED
      Model               = NVBtMstr_D
      Turret              = Turret01
      WeaponFireFXBone    = PRIMARY Muzzle
      WeaponRecoilBone    = PRIMARY Barrel
      WeaponMuzzleFlash   = PRIMARY MuzzleFX
      WeaponLaunchBone    = PRIMARY Muzzle
    ConditionState = RUBBLE
      Model               = NVBtMstr_D
      Turret              = Turret01

    TrackMarks              = EXTnkTrack.tga

 ; ***DESIGN parameters ***
  DisplayName      = OBJECT:BattleMaster
  Side = China
  EditorSorting   = VEHICLE
  TransportSlotCount = 3                ;how many "slots" we take in a transport (0 == not transportable)
    Conditions = None 
    Weapon = PRIMARY OrionTestGun
    Conditions      = None
    Armor           = TankArmor
    DamageFX        = TankDamageFX
  BuildCost       = 1200
  BuildTime       = 1.0         ;in seconds    
  VisionRange     = 150
  ShroudClearingRange = 300
    Object = ChinaWarFactory

  ExperienceValue = 100 100 200 400   ;Experience point value at each level
  ExperienceRequired = 0 200 300 600;Experience points needed to gain each level
  IsTrainable = Yes            ;Can gain experience
  CrusherLevel           = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
  CrushableLevel         = 2 ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  CommandSet       = ChinaVehicleBattleMasterCommandSet

 ; *** AUDIO Parameters ***
  VoiceSelect = BattleMasterTankVoiceSelect
  VoiceMove = BattleMasterTankVoiceMove
  VoiceGuard = BattleMasterTankVoiceMove
  VoiceAttack = BattleMasterTankVoiceAttack
  SoundMoveStart = BattleMasterTankMoveStart
  SoundMoveStartDamaged = BattleMasterTankMoveStart

   ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
    VoiceCreate          = BattleMasterTankVoiceCreate
    TurretMoveStart = NoSound
    TurretMoveLoop = TurretMoveLoop
    VoiceCrush = BattleMasterTankVoiceCrush
    VoiceEnter = BattleMasterTankVoiceMove

 ; *** ENGINEERING Parameters ***
  RadarPriority = UNIT

  Body = ActiveBody ModuleTag_02
    MaxHealth       = 600.0
    InitialHealth   = 600.0

   ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
   ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
    SubdualDamageCap = 800
    SubdualDamageHealRate = 500
    SubdualDamageHealAmount = 50

  Behavior = AIUpdateInterface ModuleTag_03
      TurretTurnRate = 120  ; turn rate, in degrees per sec
      ControlledWeaponSlots = PRIMARY
    AutoAcquireEnemiesWhenIdle = Yes

  Locomotor = SET_NORMAL BattleMasterLocomotor
  Locomotor = SET_NORMAL_UPGRADED NuclearBattleMasterLocomotor

  Behavior = HordeUpdate ModuleTag_04
    RubOffRadius = 150   ; if I am this close to a real hordesman, I will get to be an honorary hordesman
    UpdateRate = 1000    ; how often to recheck horde status (msec)
    Radius = 75          ; how close other units must be to us to count towards our horde-ness (~30 feet or so)
    KindOf = VEHICLE     ; what KindOf's must match to count towards horde-ness
    AlliesOnly = Yes     ; do we only count allies towards horde status? 
    ExactMatch = Yes     ; do we only count units of our exact same type towards horde status? (overrides kindof)
    Count = 5            ; how many units must be within Radius to grant us horde-ness
    Action = HORDE       ; when horde-ing, grant us the HORDE bonus

  Behavior = PhysicsBehavior ModuleTag_05
    Mass = 40.0

  Behavior = FireWeaponWhenDeadBehavior ModuleTag_06
    DeathWeapon   = NuclearTankDeathWeapon
    StartsActive  = No                       ; turned on by upgrade
    TriggeredBy   = Upgrade_ChinaNuclearTanks
  Behavior = LocomotorSetUpgrade ModuleTag_07
    TriggeredBy = Upgrade_ChinaNuclearTanks

  Behavior = VeterancyGainCreate ModuleVet_01
    StartingLevel = ELITE
    ScienceRequired = SCIENCE_BattlemasterTraining

 ; A crushing defeat
  Behavior = DestroyDie ModuleTag_08
  Behavior = FXListDie ModuleTag_09
    DeathFX = FX_CarCrush
  Behavior = CreateObjectDie ModuleTag_10
    CreationList = OCL_CrusaderTank_CrushEffect
  Behavior = CreateCrateDie ModuleTag_11
    CrateData = SalvageCrateData
   ;CrateData = EliteTankCrateData
   ;CrateData = HeroicTankCrateData

  Behavior = SlowDeathBehavior ModuleTag_12
    ProbabilityModifier = 25
    DestructionDelay = 200
    DestructionDelayVariance = 100
    OCL = FINAL    OCL_ChinaTankBattleMasterDebris
    FX  = FINAL    FX_BattleMasterExplosionOneFinal

  Behavior = TransitionDamageFX ModuleTag_13
    ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01
    ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition

  Behavior = FlammableUpdate ModuleTag_21
    AflameDuration = 5000        ; If I catch fire, I'll burn for this long...
    AflameDamageAmount = 3      ; taking this much damage...
    AflameDamageDelay = 500      ; this often.

  Geometry = BOX
  GeometryMajorRadius = 13.0
  GeometryMinorRadius = 9.0
  GeometryHeight = 10     
  GeometryIsSmall = Yes
  Shadow = SHADOW_VOLUME    
  ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length


I stuck the updated big into the ZH install directory along with my shortcut, so I'm not sure if that could still be it. (I bet it's some newbie mistake.)

#6 AdmiralGT


    title available

  • Members
  • 1,702 posts
  • Location:Bristol, UK
  • Projects:Petrolution

Posted 09 July 2004 - 09:30 PM

I think the problem might lie in the line

LaserBoneName = TurretFX01

in Weapon.ini . The battlemaster doesnt have a TurretFX01 bone in its model so its not firing the laser. Try renaming this to MuzzleFX (might just be Muzzle) and I think that should fix it.

#7 Malkor



  • Members
  • 375 posts
  • Projects:Loladins of Legend.
  •  Inanely inane inanities!

Posted 09 July 2004 - 10:03 PM

And that would stop the whole thing from working?

edit: Did that change. Still not working.

Edit II: My guess is that the changes are not being applied. I'll recall what I've done-

Put the files in a directory in a new big file created by FinalBIG.

Saved this big to the main generals ZH directory.

Made a shortcut with

"C:\Program Files\EA Games\Command & Conquer Generals Zero Hour\generals.exe" -mod MFTGATQFC.big

as the target.

Ran shortcut. According to generals the game version is 1.02, if that has anything to do with it.

Edited by Malkor, 09 July 2004 - 10:31 PM.

#8 AdmiralGT


    title available

  • Members
  • 1,702 posts
  • Location:Bristol, UK
  • Projects:Petrolution

Posted 10 July 2004 - 09:05 AM

Hmm, try extracting the contents of your big file to your Zero Hour Directory. The edited ini's dont have to be in a big file. If you just extract them and then run Zero Hour normally then it should work.

#9 Malkor



  • Members
  • 375 posts
  • Projects:Loladins of Legend.
  •  Inanely inane inanities!

Posted 11 July 2004 - 08:09 PM

Hey, that worked!

Now that we know it was the .big file and not my edits, let's find out a few more things.

I noticed when my laser tanks fired (And promptly decimated anything they were attacking), the lasers they fired were on ground level, IE not coming out of the cannon. How would I fix this?

In addition, it's time to set up this race on it's own for now, until it's more complete. How would I temporarily disable or entirely remove the other factions, and the generals for them?

And, does resizing things in max resize their collision models, too? Like, if I took the China command center and resized it to twice it's size, would it's building space match that? How would I give it defenses?

And, moving on as I prepare to set up all of the vehicles and techs, how would I make ballistic missiles, IE Nukes, Upgradeable in effects and damage, and capable of being shot down by a specific type of attack? (In this case, I want to make a pair of turrets that fires only at incoming missiles. Missiles would have around 800 hit points, and small turrets would do 10 damage a shot. Big turrets would do 30.) And, how would I make the AI build these new units? And, how would I make two seperate kind of nuclear missiles, one that's upgradeable, and one that's ultra expensive and sets off a huge EMP explosion when it hits, causing lots of chaos?

And yes, these are a lot of specific questions, but I feel I need to ask exact specifics. I'm going to be reading all those tutorials soon, so they may answer some. I hope to deliver a mod that everyone will enjoy and hopefully support.


I've been thinking of introductionary previews on the races. Here's a preview for some of them, just to get your interested.

The Conflict Location

The conflict is taking place on the planet of UnderGarmets, in the Table Cloth system, home to the Pants Legion. This planet has a core of pure coffee, the origins of which are unknown. After the pants discovered the GC were coming back to cause more of a mess, they prepared an immensely disorganized and possibly suicidal defensive plan.

The Undead finally rebuilt their fleet for a Darker Tomorrow, which had previously been decimated when Mr.Freak haxed them. However, since Guola, the Evil Death Lord of Supreme Evilness, predicted Mr.Freak's revolutionary breakthrough in energy technology, wanted that power for himself, he chased after the rickety Gallantry from a good distance. Preparing for a ground battle of epic porportions, the Undead raided as many hapless planets as they could find, converting everything from run-down civilian vehicles to massive construction platforms into viable (Or disfuctional) battle platforms.

The Space Cowboys, whom had previously been attacked by the Undead, angrily threw every flying dump pile they had at the concentrating forces.

The League of Mailmen, which had until now been pretty much unheard of, continues their campaign to conquer all life. Their fleet is currently engaged with the Confederacy.

The Gallantry Crew

Their Structure
Led by the infamous Alzerian, Mr.Freak, the Gallantry Crew's mission is to kill everything in the name of pie. Mr.Freak recruits unfaithful minions with promise of pie and coffee, the two largest resources in all of existence.

The GC are based on the ship, the Gallantry, a flying hunk of junk barely held together after numerous encounters with all sorts of nasties.

Why They're Here

Recently Mr.Freak made a breakthrough in energy technology. It was discovered that a single coffee bean could produce power equivelent of a two hundred megatonne nuclear warhead. To this effect, reactors using coffee beans as fuel were constructed. This added to their already hammered supply of Coffee, so therefor they needed a source of the life-giving material other than the plundering of civilian ships. It was discovered through hax that the planet Undergarmets held enough of this resource to do the GC for four days. Mr.Freak immediately screamed inanities and set course to the system of Table Cloth.

The Pants Legion

The Pants Legion had been fighting a losing battle ever since a number of foreign powers tried to give them wedgies. Getting their ass handed to them by the Undead, and then a single GC ship, the Pants sought a way to gain the upper hand. Promised the chance to do so as a large number of forces were converting on one of their planets, they clumsily and hastily created a cotton-based weapon system. What vehicles would utilize these, however, no one had really thought of.

Why They're Here

Their homeworld, Chair, had been utterly raped by Mr.Freak and his colleage, Anty. And, despite their most advanced technology, the Undead managed to cheese their fleet into submission in an utterly moist symphony of spam. They seek to gain revenge by using their new Cotton-based attack system in ground battles. Secretly, they've rigged UnderGarmets with enough explosives to collapse an entire galaxy, should their plan likely fail.

Edited by Malkor, 11 July 2004 - 08:46 PM.

#10 AdmiralGT


    title available

  • Members
  • 1,702 posts
  • Location:Bristol, UK
  • Projects:Petrolution

Posted 11 July 2004 - 10:44 PM

You certainly like your questions. Lets see if we can answer them.

Firing from the Cannon

This is a boning issue. I presume you have met bones before but in case not, these are parts of the model where stuff happens. They're called things such as Muzzle01, Turret01, TurrestFX02 etc. When parts of the code cant find the right bone, it essentially makes it up in the only position it knows, its centre. Because of this the laser fires from the middle. To fix this you need to bone the model so that it the correct bones. In this case your probably missing a Laser01 bone or something. I suggest you take a look at some models and the corresponding codes to see how the bones work. The models for Generals are located in W3D.big. Most of the important stuff is labelled ABName, AVName, NBName, NVName, UBName and UVName. These are the USA Buildings, Vehicles, China Buildings, Vehicles, GLA Buildings, Vehicles respectively.


Theres a ini called PlayerTemplate in your Data\INI folder. This determines all the players in the game. If you want to remove a faction simply replace the Yes in the PlayableSide line with a No. The Generals are also there too since the Generals system makes you choose a General before you start the game. By the sounds of it your attempting a Total Conversion. Personally I would suggest starting from scratch with the Faction rather than trying to edit the existing sides. Another way to get rid of a faction is to simply eliminate it from PlayerTemplate.ini. There is an excellent tutorial at GenDev about adding a new faction.


This only adds the faction as human playable. I still have yet to learn how to get the AI to use new factions but the guys over at the SDI (Script Development Initiative) can provide lots of help on that front if you ever plan on doing that.


Honestly I have no idea. I think however the answer would be know. The Geometry part of a unit's code determines its size for collisions etc but im not 100% sure so don't quote me on that.

How would you give it Defences?

If by defences you mean weapons, this is all located in the unit's code in the part called WeaponSet. This determines what weapons the unit (building, vehicle, infantry, airplane) has. Of course, if you try to add a weapon to the Chinese Command Centre then it would just fire from the middle since it isnt boned. You'd also need to add the Art Coding for the bones once they are added.

How would I make Ballistic Missiles?

Ballistic Missiles are just like Units. They're objects and I think they are all located in WeaponObjects.ini (Data\INI\Object). You dont have to add your new weapons there but it just follows the existing convention. Now, the damage that the Ballistics do is determined in the Weapon (In Weapon.ini). Now, for your upgrading the weapon idea here is what I personally would do. Create the building with the Ballistic Missile Weapon. Give it a WeaponSet. Then give it an Upgraded WeaponSet that took effect after the purchase of an upgrade. This then meant the Unit fires a better Ballistic Missile which does more damage. The Coding for this would look something like this.

Object BallisticMissileTank

***Lots of Text***

    Conditions        = None 
    Weapon            = PRIMARY [COLOR=red]Ballistic Missile1[/COLOR]
    Conditions        = PLAYER_UPGRADE
    Weapon            = PRIMARY [COLOR=purple]Ballistic Missile2[/COLOR]

***Lots of Text***

  Behavior = WeaponSetUpgrade ModuleTag_WeaponSetUpgrade01
    TriggeredBy = [COLOR=blue]Upgrade_BallisticMissileTank[/COLOR]

***Lots of Text***

This would be in FactionUnit or whatever you named your ini and obviously with a lot more text. This is just the important bit.

Weapon [COLOR=red]BallisticMissile1[/COLOR]
  PrimaryDamage = 100.0            
  PrimaryDamageRadius = 5.0
Weapon [COLOR=purple]BallisticMissile2[/COLOR]
  PrimaryDamage = 250.0
  PrimaryDamageRadius = 5.0

This would go in Weapon.ini for convention. See how the 2nd one is much more powerful than the first with its damage.

In Upgrade.ini

Upgrade [COLOR=blue]Upgrade_BallisticMissileTank[/COLOR]
  DisplayName        = UPGRADE:[COLOR=orange]BallisticMissile[/COLOR]  BuildTime          = 60.0
  BuildCost          = 2500
  ButtonImage        = SNNeutShell

In CommandButton.ini (So you can build the Upgrade)

CommandButton [COLOR=green]Command_UpgradeBallisticMissileTank[/COLOR]
  Command       = PLAYER_UPGRADE
  Upgrade       = [COLOR=blue]Upgrade_BallisticMissileTank[/COLOR]
  TextLabel     = CONTROLBAR:[COLOR=orange]UpgradeBallisticMissile[/COLOR]
  ButtonImage   = SNNeutShell
  ButtonBorderType        = UPGRADE; Identifier for the User as to what kind of button this is
  DescriptLabel           = CONTROLBAR:TooltipUpgradeBallisticMissileTank

And then lastely in CommandSet.ini so you can use the Button

CommandSet FactionUpgradeCentre
  1  = [COLOR=green]Command_UpgradeBallisticMissileTank[/COLOR] 14  = Command_Sell  

Now, how does this work. There is a ficticious tank which fires the Ballistic Missile. A building (like the Propaganda Centre) has this upgrade purchaseable. You purchase it, and now all your tanks have this new missile. Now in Weapon.ini you determine what Object the missile uses. You can use an existing one or create a new modle and new Object entry.
For ease I've colour co-ordinated the ini's. Dont actually do this in the INI's, this is just so you can see what needs to be the same for it to work.

The Health and Shooting it down bit

Sorry, couldnt think of a better name for the question. This is exactly done already in Generals. If you give the Object a ]
(In WeaponObject.ini )
and then for the weapon of the gun shooting it down (The weapon the turret fires in Weapon.ini) the line
 AntiBallisticMissile  = Yes

Then the turret will shoot down the missile. Normal units wont since their weapons wont have the AnitBallisticMissile line. In the WeaponObject.ini you can give the Missile the lines
 Body = ActiveBody ModuleTag_02
    MaxHealth       = 800.0
    InitialHealth   = 800.0
And it will have 800 hitpoints. Then in the Weapon.ini for the Turrets give the smaller turrets weapon a PrimaryDamage = 10.0 and = 30.0 for the larger one. These would need to be two separate Weapon entries since they will fire different weapons.


As I said before, the guys over at the SDI can help you a lot more than I can. They're hosted here at Revora and here's their site


They have lots of excellent tutorials and are always willing to help with any questions.

The Two Ballistic Missiles

Finally, the last Q :mellow:. Bit of a let down really since I don't know much about Superweapons. What I can say is that its possible. You can do this by just giving the Silo two different kinds of Superweapons and SpecialPower's. The problem is I don't actually know where the damage for the Superweapons is stored since it doesnt actually use a weaponset. Sorry, im sure someone else will know how, im still relatively new to the advanced editing.

Anyway, hope this helps, any further q's just post them up.

#11 Malkor



  • Members
  • 375 posts
  • Projects:Loladins of Legend.
  •  Inanely inane inanities!

Posted 11 July 2004 - 10:53 PM

Lovely. That answers a few more questions, some of which I won't be able to act on until I'm more comfortable with extensive editing.

So, I need to add bones to the model just to get a laser to fire from the cannon? Can't use the old bones? That's way too complex for me (I couldn't begin to bone something, I just model high-poly ships for my starcraft mod). I wish I could get a modeller to help out for this. Anyone I could ask? I assume this is fairly basic stuff for you guys but max is just too complex for me.

Now, I downloaded the hover tank model from this site. In the readme it says "You can scale the unit in the inis by using Scale = ## or by opening th gmax file and scaling the model up/down in gmax and
then exporting the model." There is a code command for rescaling? I assume that'd also rescale geometry (or it'd be pretty useless). I'll try that later once I figure out where everything goes. Then I have the DarkWing.

And I also found out the folder method of getting a mod to work (creating a shortcut and a new renamed folder) doesn't work, so I have to toss everything into the existing data folder, which is a wee bit messy.

edit: I have a modeller who's going to make me some tanks, but I need a skinner/animator/boner (That sounds bad). Is there anyone you know who could help?

Oh, and I see how collision geometry works in here. You could probably just up it by five times for the larger tanks.

Edited by Malkor, 11 July 2004 - 11:13 PM.

#12 Paranoid


    title available

  • New Members
  • 321 posts

Posted 12 July 2004 - 10:17 AM

Hmm, im not sure if this has been said yet, but you said the tanks will pack lots of guns, well, in Generals each unit can only have 3 weapons. Unless you edited the engine, which im not sure is completely legal.

#13 Malkor



  • Members
  • 375 posts
  • Projects:Loladins of Legend.
  •  Inanely inane inanities!

Posted 12 July 2004 - 05:44 PM

Well what I could do is make a firing sequence. Like how the battleship does it - it has 6 cannons, and each fire one at a time. Or I could have two fire at a time, can't I? I'm not sure how that works.

#14 AdmiralGT


    title available

  • Members
  • 1,702 posts
  • Location:Bristol, UK
  • Projects:Petrolution

Posted 12 July 2004 - 06:20 PM

To have 2 fire at a time you need 2 weapons. You can make 1 weapon fire from 6 barrles however but they have to fire one at a time.

#15 Malkor



  • Members
  • 375 posts
  • Projects:Loladins of Legend.
  •  Inanely inane inanities!

Posted 12 July 2004 - 08:46 PM

Hmm. I am running into some complications adding the Battleship as a full-flegded unit. One of these problems is that I can't even find it! I did find a CINE_AirCarriet though and am trying to enable it, but it seems to be missing a ton of the fields units have. How exactly would I find and make the battleship a fully-working unit? I know how to do commandsets and commandbuttons just fine now, but building a new unit's data without something to work off of is slightly confusing...

Edited by Malkor, 12 July 2004 - 08:49 PM.

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users