Menu:

GenDev
 
  » News
  » Forums
  » Downloads
  » Link Us
  » The Team

Cameo Mapper
 
  » About
  » How to Use
  » Download

Tutorials
 
  » Modding
  » Graphics
  » Mapping

Modding Resources
 
  » GenDev Utilities
  » User Submitted Models
  » Alpha/Beta Models
  » Tutorial Downloads
  » Modding Utilities

Affiliates
 
  » CNC DEN
  » SDI
  » Defcon
  » PPM
  » BattleTech Mod
  » CNC Unleashed
  » Deezire Online
  » Sleipnir's Stuff
  » Blitzkrieg 2: The Finest Hour
  » Call To Arms

Staff Only
 
  » News Post
  » File Admin
  » File Team

Adding a New Faction

By: Vanguard
Alright guys here’s a very straight forward tutorial on adding a new faction. The files you'll need are PlayerTemplate.ini, CommandButton.ini, CommandSet.ini, and YourSidesNameHere.ini, CommandBarScheme.ini.

Alright now before you open anything make sure you have all the right folders in the Zero Hour Main Directory.

You need an INI folder in the Data folder, and if you are going to use new models and cameos you need an Art folder in the main directory, the Art folder will contain the W3d folder where you put your new w3d files, and then the Texture folder where all your .dds, .tga files are stored so the game can read them. If you don't have the folders in the right area, you'll either not see your new side in the side selection drop down menu, this has to do with the inis. Or your unit will be invisible which is a problem with the game finding your W3D folder, or your model will be pink or some other color, and this problem has to do with the game being able to read from your Textures folder. If everything is working you'll see your new side, models, and skins.

Ok now on to business. Anywhere you see YourSide, YourSides, or YOURSIDE in this file replace it with the name of your new Faction.

First open the CommandBarScheme.ini and then paste this into the opened file.
ControlBarScheme YourSide8x6
ScreenCreationRes X:800 Y:600
Side YourSide
QueueButtonImage SCBigButton
RightHUDImage SULogo
BuildUpClockColor R:0 G:0 B:0 A:160
ButtonBorderBuildColor R:67 G:108 B:190 A:255 ;blue
ButtonBorderActionColor R:1 G:175 B:2 A:255 ;Green
ButtonBorderUpgradeColor R:208 G:108 B:0 A:255 ;Orange
ButtonBorderSystemColor R:207 G:195 B:2 A:255 ;yellow
CommandBarBorderColor R:124 G:62 B:0 A:255 ;blue

GenBarButtonIn SUBarButtonGen2IN
GenBarButtonOn SUBarButtonGen2ON
CommandMarkerImage SUEmptyFrame

ToggleButtonUpIn SUMaxMinHU
ToggleButtonUpOn SUMaxMinU
ToggleButtonUpPushed SUMaxMinPU

ToggleButtonDownIn SUMaxMinH
ToggleButtonDownOn SUMaxMin
ToggleButtonDownPushed SUMaxMinP

OptionsButtonDisabled SUOptionsI
BuddyButtonDisabled SUChatI
BeaconButtonDisabled SUBeaconI

OptionsButtonEnable SUOptions
OptionsButtonHightlited SUOptionsH
OptionsButtonPushed SUOptionsP
IdleWorkerButtonEnable SUWorkerE
IdleWorkerButtonHightlited SUWorkerH
IdleWorkerButtonPushed SUWorkerP
IdleWorkerButtonDisabled SUWorkerI
BuddyButtonEnable SUChat
BuddyButtonHightlited SUChatH
BuddyButtonPushed SUChatP

BeaconButtonEnable SUBeacon
BeaconButtonHightlited SUBeaconH
BeaconButtonPushed SUBeaconP

GeneralButtonEnable SUGeneral
GeneralButtonHightlited SUGeneralH
GeneralButtonPushed SUGeneralP
GeneralButtonDisabled SUGeneralI

UAttackButtonEnable SUUAttackI
UAttackButtonHightlited SUUAttackH
UAttackButtonPushed SUUAttackP

MinMaxButtonEnable SUMinMax
MinMaxButtonHightlited SUMinMaxH
MinMaxButtonPushed SUMinMaxP

MinMaxUL X:639 Y:433
MinMaxLR X:698 Y:459
GeneralUL X:722 Y:429
GeneralLR X:787 Y:458
UAttackUL X:184 Y:426
UAttackLR X:206 Y:450

OptionsUL X:184 Y:490
OptionsLR X:220 Y:514
WorkerUL X:184 Y:516
WorkerLR X:220 Y:540
ChatUL X:184 Y:568
ChatLR X:220 Y:592
BeaconUL X:184 Y:545
BeaconLR X:220 Y:566
PowerBarUL X:259 Y:470
PowerBarLR X:537 Y:476

GenArrow GLALevelUP

MoneyUL X:360 Y:443
MoneyLR X:439 Y:462
ExpBarForegroundImage SUExpBar
ImagePart
Position X:0 Y:399
Size X:800 Y:200
ImageName InGameUIGLABase
Layer 4 ;; layer means how deep the image will be drawn, it's a number between 0-5 with 0 being on top
End
PowerPurchaseImage GeneralsPowerWindow_GLA
End

Now save your changes.

After that open the PlayerTemplate.ini. Then paste this into the file.

PlayerTemplate FactionYourSide
Side = YourSide
BaseSide = YourSide
PlayableSide = Yes
StartMoney = 0
PreferredColor = R:255 G:255 B:255
IntrinsicSciences = SCIENCE_YOURSIDE
PurchaseScienceCommandSetRank1 = SCIENCE_YOURSIDE_CommandSetRank1
PurchaseScienceCommandSetRank3 = SCIENCE_YOURSIDE_CommandSetRank3
PurchaseScienceCommandSetRank8 = SCIENCE_YOURSIDE_CommandSetRank8
SpecialPowerShortcutCommandSet = SpecialPowerShortcutYourSide
SpecialPowerShortcutWinName = GenPowersShortcutBarGLA.wnd
SpecialPowerShortcutButtonCount = 10
DisplayName = INI:FactionYourSide
StartingBuilding = YourSideCommandCenter
StartingUnit0 = YourSidesDozer/Worker
ScoreScreenImage = GLA_ScoreScreen
LoadScreenImage = SUFactionLogoPage_GLA
LoadScreenMusic = Load_GLA
ScoreScreenMusic = Score_GLA
;HeadWaterMark = SCTempSelectPortrait ; don't use unless we add a "generalshead for non selected generals
FlagWaterMark = WatermarkGLA
EnabledImage = SSObserverGLA
BeaconName = MultiplayerBeacon
SideIconImage = GameinfoGLA
GeneralImage = GLA_Logo
OldFaction = No ; This faction was available in the original Generals and should be available even if the oldFactionsOnly flag is set
ArmyTooltip = TOOLTIP:BioStrategyLong_YourSide
Features = GUI:BioFeatures_YourSide
MedallionRegular = GLAGeneral_slvr
MedallionHilite = GLAGeneral_blue
MedallionSelect = GLAGeneral_orng
End

Now save your work.

Now open the ini called CommandSet.ini. Then Paste this into it.

CommandSet SCIENCE_YOURSIDE_CommandSetRank1
; 1 = Command_PurchaseScienceScudLauncher
; 2 = Command_PurchaseScienceMarauderTank
; 3 = Command_PurchaseScienceTechnicalTraining
END
CommandSet SCIENCE_YOURSIDE_CommandSetRank3
; 1 = Command_PurchaseScienceHijacker
; 2 = Command_PurchaseScienceRebelTraining
; 4 = Command_PurchaseScienceFundamentalistAmbush1
; 5 = Command_PurchaseScienceFundamentalistAmbush2
; 6 = Command_PurchaseScienceFundamentalistAmbush3
; 7 = Command_PurchaseScienceCashBounty1
; 8 = Command_PurchaseScienceCashBounty2
; 9 = Command_PurchaseScienceCashBounty3
; 10 = Command_PurchaseScienceEmergencyRepair1
; 11 = Command_PurchaseScienceEmergencyRepair2
; 12 = Command_PurchaseScienceEmergencyRepair3
; 13 = Command_PurchaseScienceTerrorCell
END
CommandSet SCIENCE_YOURSIDE_CommandSetRank8
; 1 = Command_PurchaseScienceAnthraxBomb
; 2 = Command_PurchaseScienceSneakAttack
; 3 = Command_PurchaseScienceGPSScrambler
; 4 = Command_PurchaseScienceConvoyAmbush
END

CommandSet SpecialPowerShortcutYourSide
; 1 = Command_Fund.AmbushFromShortcut
; 2 = Command_EmergencyRepairFromShortcut
; 3 = Command_AnthraxBombFromShortcut
; 4 = Command_ScudStormFromShortcut
; 5 = Command_RadarVanScanFromShortcut
; 6 = Command_SneakAttackFromShortcut
; 7 = Command_GPSScramblerFromShortcut
; 8 = Command_ConvoyAmbushFromShortcut
; 9 = Command_TerrorCellFromShortcut
END

CommandSet YourSideDozer/WorkerCommandSet
1 = Command_ConstructYourSideBarracks
2 = Command_ConstructYourSideSupplyStash
3 = Command_ConstructYourSideWarFactory
4 = Command_ConstructYourSideSupplyGenerater/SuperWeapon
5 = Command_ConstructYourSideDefense
12 = Command_ConstructYourSideCommandCenter
14 = Command_DisarmMinesAtPosition
End

CommandSet YourSideCommandCenterCommandSet
1 = Command_ConstructYourSideDozer/Worker
; 2 = Command_Fund.Ambush
; 3 = Command_EmergencyRepair
14 = Command_Sell
End

CommandSet YourSideBarracksCommandSet
1 = Command_ConstructYourSideInfantryBasic
2 = Command_ConstructYourSideInfantryRocket/Missile
14 = Command_Sell
End

CommandSet YourSideSupplyStashCommandSet
1 = Command_ConstructYourSideDozer/Worker
14 = Command_Sell
End

CommandSet YourSideWarFactoryCommandSet
1 = Command_ConstructYourSideTank
2 = Command_ConstructYourSideVehicleTransport
13 = Command_SetRallyPoint
14 = Command_Sell
End

Now you must add your own Sciences and purchase things, but I will write another tutorial on that in a while.

So save your work.

Now create a new folder in the INI folder called Objects, then create a new INI called YourNewSideNameHere.ini <- Use your own name.

Then open the new file and copy and paste any new units and buildings you want into it. I will not go into adding the stuff in this tutorial.

Now after you have added all you want to it, then save your work, and then open CommandButton.ini.

Now make command buttons for all your new units and buildings and add them to the new commandsets you made.

CommandButton Command_ConstructYourSideCommandCenter
Command = DOZER_CONSTRUCT
Object = YourSideCommandCenter
TextLabel = CONTROLBAR:ConstructYourSideCommandCenter
ButtonImage = SUHeadquarters
ButtonBorderType = BUILD ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:ToolTipYourSideBuildCommandCenter
End

CommandButton Command_ConstructYourSideSupplyStash
Command = DOZER_CONSTRUCT
Object = YourSideSupplyCenter
TextLabel = CONTROLBAR:ConstructYourSideSupplyStash
ButtonImage = SUSupplyCenter
ButtonBorderType = BUILD ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:ToolTipYourSideBuildSupplyStash
End

CommandButton Command_ConstructYourSideSupplyGenerater/SuperWeapon
Command = DOZER_CONSTRUCT
Object = YourSideSupplyGenerater/SuperWeapon
TextLabel = CONTROLBAR:ConstructYourSideSupplyGenerater/SuperWeapon
ButtonImage = SUBlackMarket
ButtonBorderType = BUILD ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:ToolTipYourSideBuildSupplyGenerater/SuperWeapon
End

CommandButton Command_ConstructYourSideBarracks
Command = DOZER_CONSTRUCT
Object = YourSideBarracks
TextLabel = CONTROLBAR:ConstructYourSideBarracks
ButtonImage = SUBarracks
ButtonBorderType = BUILD ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:ToolTipYourSideBuildBarracks
End

CommandButton Command_ConstructYourSideDefense
Command = DOZER_CONSTRUCT
Object = YourSideDefense
TextLabel = CONTROLBAR:ConstructYourSideDefense
ButtonImage = SAArtillery
ButtonBorderType = BUILD ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:ToolTipYourSideBuildDefense
End

CommandButton Command_ConstructYourSideWarFactory
Command = DOZER_CONSTRUCT
Object = YourSideWarFactory
TextLabel = CONTROLBAR:ConstructYourSideWarFactory
ButtonImage = SACWeaponsfact
ButtonBorderType = BUILD ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:ToolTipYourSideBuildWarFactory
End

CommandButton Command_ConstructYourSideTank
Command = UNIT_BUILD
Object = YourSideTank
TextLabel = CONTROLBAR:ConstructYourSideTank
ButtonImage = SNBattlemaster
ButtonBorderType = BUILD ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:ToolTipYourSideBuildTank
End

CommandButton Command_ConstructYourSideVehicleTransport
Command = UNIT_BUILD
Object = YourSideVehicleTransport
TextLabel = CONTROLBAR:ConstructYourSideVehicleTransport
ButtonImage = SAHummer
ButtonBorderType = BUILD ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:ToolTipYourSideBuildVehicleTransport
End

Now save your work. Congratulations, you have just added a new side.

Layout by Origin-Network