The new How-To can be found here
-------------------------------------------------------------------
Lethal Dosage’s CoH Guide for Dummies, because this is a big help.
Also, if you really messed up with your CoH files here are the most importent files that can be messed up with modding:
AttribArchive.sga
WW2Art.sga
RelicCOH.english.ucs
We’ll start with some basic questions and answers.
BEFORE YOU START MODDING MAKE SURE YOU GOT A CLEAN COPY OF THE THQ DIRECTORY!!!!!
Q: How can I make mods?
A: With Corsix’s mod studio. There is a tutorial for how to use the mod studio on Wikipedia.
Q: What is a mod?
A: The word “mod” simply means modification. It’s a shorthand term which refers to people who change the basic game mechanics into something of their own creation (Although this only really applies to custom skins or other art). Mods are usually a combination of user created art (Skins, icons, and menu items) and modifications of the game statistics, like weapon accuracy, resource income, costs, unit health, and movement speed, and of course making total new squads and units, with their own specifications.
Q: Why do people make mods?
A: There are different reasons why people can make a mod, sometimes it’s because they want to change things to make games faster, or just to make funny stuff.
But most of the time it’s because we want to make Company of Heroes and Opposing Fronts more historical accurate.
Q: What can be changed in a mod and what can’t?
A: Actually you can change almost everything Company of Heroes has, but not everything is possible (yet).
Q: How can I see a mod is loaded when I start the game?
A: In some mods the main menu background is changed or with other custom art. But if no custom art is included there is no way to tell the mod is loaded until you play the game.
Q: Can I play online ranked multiplayer games when a mod is loaded?
A: When you load a mod, it will prevent the user from playing in ranked online multiplayer games unless another user has the exact same version of the mod loaded. This makes it obvious that you have a mod loaded but there is no way to tell the difference between two different mods
Q: What are all the weird model/texture extenstions for?
A:
.rgm = Model, marker and bone data
.rga = Movement of bones for animation
.rgo = When the animations should be played and how, what effects and sounds to be implemented on events
.rbp = Relic physics file
.sua = simbox or better known as the damage box (where bullets will hit/bounce off)
.abp = the associated vehicle/soldier generic details
Q: Can I load multiple mods at the same time?
A: Two mods can’t be loaded simultaneously due to the same variables being changed in most cases. If no two files are changed in both mods you can copy the files from one mod to the other (If not packed into an .sga archive) and run it as one mod.
Q: My pipeline.ini is broken/messed up, where to get a new one?
A: Here is one. (Thnx Darkbladecr)
pipeline.ini
Code:
; this file contains all pipeline settings
; NOTE: unless fully qualified, all paths are relative to this file
[global]
ToolsData =Tools\ToolsData
WkDir =
Registry = Relic\BIA\v1.0
ForeginTools = Tools\Foreign
;The added code that allows Perforce to work with CoH
[p4]
RevControlPort = 127.0.0.1:1666
[version]
VersionPath =Tools\Versions.lua
VersionUsers =Tools\Versions.lua
[bugreport]
[project:bia_engine]
Global = 1
Parent =
Description = Base game engine project
DataSource =DataSrc\Engine
DataSourceShared =
DataIntermediate = IntDataSrc\Engine
DataGeneric =DataGeneric\Engine
DataBurn =
DataFinal = Engine\Data
DataPreview = Engine\Data
LocaleFolder = Engine\Locale\English
; there should be one entry for each project
[project:bia]
Global = 0
Parent = bia_engine
Description = BIA mod project
DataSource = DataSrc\BIA
DataSourceShared =
DataIntermediate = IntDataSrc\BIA
DataGeneric = DataGeneric\BIA
DataBurn =
DataFinal = WW2\Data
DataPreview = Engine\Data
LocaleFolder = WW2\Locale\English
; Change First_Mod to the name of your Mod or copy and paste at the bottom
[project:First_Mod]
Global =0
Parent = bia_engine
Description = First_Mod.module
DataSource = DataSrc\First_Mod
DataSourceShared =
DataIntermediate = IntDataSrc\First_Mod
DataGeneric = DataGeneric\First_Mod
DataBurn =
DataFinal = First_Mod\Data
DataPreview = Engine\Data
LocaleFolder = First_Mod\Locale\English
[project:RelicCoH]
Global=0
Parent=bia_engine
Description=RelicCoH.module
DataSource=DataSrc\RelicCoH
DataSourceShared=
DataIntermediate=IntDataSrc\RelicCoH
DataGeneric=DataGeneric\RelicCoH
DataBurn=
DataFinal=CoH\Data
DataPreview=Engine\Data
LocaleFolder=\English
[project:RelicDLC1]
Global=0
Parent=bia_engine
Description=RelicDLC1.module
DataSource=DataSrc\RelicDLC1
DataSourceShared=
DataIntermediate=IntDataSrc\RelicDLC1
DataGeneric=DataGeneric\RelicDLC1
DataBurn=
DataFinal=(no folder)
DataPreview=Engine\Data
LocaleFolder=DLC1\Locale\English
Q: I want to give my unit the skin of the mortar crew, but it doesn't work. I keep getting the normal Riflemen skin.
A: Some unit skins use rolevariations. If a unit uses a Rolevariation, it means that the texture of that skin is located together with a other skin texture. Newcomer made a tutorial: How-To: Use Rolevariations, and he also made a list of all rolevariations.
Q: How can I get mods to work with v2.602, and the ToV campaigns?
A: When you make a new mod with the modstudio, the modstudio makes a module files that is incompatible with v2.600 so you have to change your whole module file to this:
Module:
Spoiler
Code:
;; //////////////////////////////////////////////////////////////////
;; File : Improved.module
;; Desc : Improved Mod descriptor file.
;;
;; (c) 2008 Relic Entertainment Inc.
;;
[global]
UIName = Improved
Description = Celestial's Back to Basics mod
DllName = WW2Mod
ModVersion = 1.11
ModFolder = Improved\Data
LocFolder = Improved\Locale
ScenarioPackFolder = WW2\Scenarios
SpeechManagerCache = SpeechManagerBtB.cache
[game]
PlayerDropBehavior = aitakeover
[attrib:common]
folder = Improved\DataAttrib
archive.01 = ww2\Archives\AttribArchive
[preview:common]
folder = coh\DataPreview
[movies:common]
folder = WW2\Movies
[movies:common:01]
folder = Engine\Movies
[movies:common:02]
folder = DLC1\Movies
[movies:common:03]
folder = DLC2\Movies
[movies:common:04]
folder = DLC3\Movies
[data:common:01]
folder = Improved\Data
archive.01 = WW2\Archives\WW2Data
archive.02 = WW2\Archives\WW2Art
archive.03 = WW2\Archives\WW2Sound
archive.04 = WW2\Archives\WW2ArtAmbient
archive.05 = WW2\Archives\OFSPData
[data:common:02]
folder = Improved\Data
[data:common:03]
folder = CoH\Engine\Data
archive.01 = Engine\Archives\Engine
[data:common:04]
folder = RelicOnline\Data
archive.01 = RelicOnline\Archives\RelicOnline
[data:common:08]
folder = RelicOnline\Data
archive.01 = RelicOnline\Archives\RelicOnline
[data:sound_low]
folder = CoH\DataSoundLow
archive.01 = WW2\Archives\WW2SoundLow
[data:sound_high]
folder = CoH\DataSoundHigh
archive.01 = WW2\Archives\WW2SoundHigh
[data:art_low]
folder = CoH\DataArtLow
archive.01 = WW2\Archives\WW2ArtLow
[data:art_high]
folder = CoH\DataArtHigh
archive.01 = WW2\Archives\WW2ArtHigh
[locale:english]
folder.01 = Improved\Locale\English
folder.03 = RelicOnline\Locale\English
[locale:english:01]
folder.01 = Engine\Locale\English
[data:english:01]
folder = CoH\Locale\English\Data
archive.01 = WW2\Archives\WW2Locale-English
[data:english:02]
folder = CoH\DataSoundEnglish
archive.01 = WW2\Archives\WW2SoundSpeechEnglish
archive.02 = WW2\Archives\WW2AlliesSpeechEnglish
archive.03 = WW2\Archives\WW2AxisSpeechEnglish
archive.04 = WW2\Archives\WW2SoundNISEnglish
archive.05 = WW2\Archives\OFCoreSpeechEnglish
archive.06 = WW2\Archives\OFFullSpeechEnglish
[data:english:03]
folder = Engine\Locale\English\Data
archive.01 = Engine\Archives\EngineEnglish
[locale:german]
folder.01 = Improved\Locale\German
folder.02 = RelicOnline\Locale\German
[data:german:01]
folder = CoH\Locale\German\Data
archive.01 = WW2\Archives\WW2Locale-German
[data:german:02]
folder = CoH\DataSoundGerman
archive.01 = WW2\Archives\WW2SoundSpeechGerman
archive.02 = WW2\Archives\WW2AlliesSpeechGerman
archive.03 = WW2\Archives\WW2AxisSpeechGerman
archive.04 = WW2\Archives\WW2SoundNISGerman
archive.05 = WW2\Archives\OFCoreSpeechGerman
archive.06 = WW2\Archives\OFFullSpeechGerman
[data:german:03]
folder = CoH\Engine\Locale\German\Data
archive.01 = Engine\Archives\EngineGerman
[locale:french]
folder.01 = CoH\Locale\French
folder.02 = CoH\Engine\Locale\French
folder.03 = RelicOnline\Locale\French
[data:french:01]
folder = CoH\Locale\French\Data
archive.01 = WW2\Archives\WW2Locale-French
[data:french:02]
folder = CoH\DataSoundFrench
archive.01 = WW2\Archives\WW2SoundSpeechFrench
archive.02 = WW2\Archives\WW2AlliesSpeechFrench
archive.03 = WW2\Archives\WW2AxisSpeechFrench
archive.04 = WW2\Archives\WW2SoundNISFrench
archive.05 = WW2\Archives\OFCoreSpeechFrench
archive.06 = WW2\Archives\OFFullSpeechFrench
[data:french:03]
folder = CoH\Engine\Locale\French\Data
archive.01 = Engine\Archives\EngineFrench
[locale:spanish]
folder.01 = CoH\Locale\Spanish
folder.02 = CoH\Engine\Locale\Spanish
folder.03 = RelicOnline\Locale\Spanish
[data:spanish:01]
folder = CoH\Locale\Spanish\Data
archive.01 = WW2\Archives\WW2Locale-Spanish
[data:spanish:02]
folder = CoH\DataSoundSpanish
archive.01 = WW2\Archives\WW2SoundSpeechSpanish
archive.02 = WW2\Archives\WW2AlliesSpeechSpanish
archive.03 = WW2\Archives\WW2AxisSpeechSpanish
archive.04 = WW2\Archives\WW2SoundNISSpanish
archive.05 = WW2\Archives\OFCoreSpeechSpanish
archive.06 = WW2\Archives\OFFullSpeechSpanish
[data:spanish:03]
folder = CoH\Engine\Locale\Spanish\Data
archive.01 = Engine\Archives\EngineSpanish
[locale:russian]
folder.01 = CoH\Locale\Russian
folder.02 = CoH\Engine\Locale\Russian
folder.03 = RelicOnline\Locale\Russian
[data:russian:01]
folder = CoH\Locale\Russian\Data
archive.01 = WW2\Archives\WW2Locale-Russian
[data:russian:02]
folder = CoH\DataSoundRussian
archive.01 = WW2\Archives\WW2SoundSpeechRussian
archive.02 = WW2\Archives\WW2AlliesSpeechRussian
archive.03 = WW2\Archives\WW2AxisSpeechRussian
archive.04 = WW2\Archives\WW2SoundNISRussian
archive.05 = WW2\Archives\OFCoreSpeechRussian
archive.06 = WW2\Archives\OFFullSpeechRussian
[data:russian:03]
folder = CoH\Engine\Locale\Russian\Data
archive.01 = Engine\Archives\EngineRussian
[data:italian:01]
folder = CoH\Locale\Italian\Data
archive.01 = WW2\Archives\WW2Locale-Italian
[locale:italian]
folder.01 = CoH\Locale\Italian
folder.02 = CoH\Engine\Locale\Italian
folder.03 = RelicOnline\Locale\Italian
[data:italian:02]
folder = CoH\DataSoundEnglish
archive.01 = WW2\Archives\WW2SoundSpeechEnglish
archive.02 = WW2\Archives\WW2AlliesSpeechEnglish
archive.03 = WW2\Archives\WW2AxisSpeechEnglish
archive.04 = WW2\Archives\WW2SoundNISEnglish
archive.05 = WW2\Archives\OFCoreSpeechEnglish
archive.06 = WW2\Archives\OFFullSpeechEnglish
[data:italian:03]
folder = CoH\Engine\Locale\Italian\Data
archive.01 = Engine\Archives\EngineItalian
[locale:czech]
folder.01 = CoH\Locale\Czech
folder.02 = CoH\Engine\Locale\Czech
folder.03 = RelicOnline\Locale\Czech
[data:czech:01]
folder = CoH\Locale\Czech\Data
archive.01 = WW2\Archives\WW2Locale-Czech
[data:czech:02]
folder = CoH\DataSoundEnglish
archive.01 = WW2\Archives\WW2SoundSpeechEnglish
archive.02 = WW2\Archives\WW2AlliesSpeechEnglish
archive.03 = WW2\Archives\WW2AxisSpeechEnglish
archive.04 = WW2\Archives\WW2SoundNISEnglish
archive.05 = WW2\Archives\OFCoreSpeechEnglish
archive.06 = WW2\Archives\OFFullSpeechEnglish
[data:czech:03]
folder = CoH\Engine\Locale\Czech\Data
archive.01 = Engine\Archives\EngineCzech
[locale:polish]
folder.01 = Improved\Locale\Polish
folder.02 = RelicOnline\Locale\Polish
[data:polish:01]
folder = CoH\Locale\Polish\Data
archive.01 = WW2\Archives\WW2Locale-Polish
[data:polish:02]
folder = CoH\DataSoundEnglish
archive.01 = WW2\Archives\WW2SoundSpeechEnglish
archive.02 = WW2\Archives\WW2AlliesSpeechEnglish
archive.03 = WW2\Archives\WW2AxisSpeechEnglish
archive.04 = WW2\Archives\WW2SoundNISEnglish
archive.05 = WW2\Archives\OFCoreSpeechEnglish
archive.06 = WW2\Archives\OFFullSpeechEnglish
[data:polish:03]
folder = CoH\Engine\Locale\Polish\Data
archive.01 = Engine\Archives\EnginePolish
[locale:chinesetrad]
folder.01 = CoH\Locale\ChineseTrad
folder.02 = CoH\Engine\Locale\ChineseTrad
folder.03 = RelicOnline\Locale\ChineseTrad
[data:chinesetrad:01]
folder = CoH\Locale\ChineseTrad\Data
archive.01 = WW2\Archives\WW2Locale-ChineseTrad
[data:chinesetrad:02]
folder = CoH\DataSoundEnglish
archive.01 = WW2\Archives\WW2SoundSpeechEnglish
archive.02 = WW2\Archives\WW2AlliesSpeechEnglish
archive.03 = WW2\Archives\WW2AxisSpeechEnglish
archive.04 = WW2\Archives\WW2SoundNISEnglish
archive.05 = WW2\Archives\OFCoreSpeechEnglish
archive.06 = WW2\Archives\OFFullSpeechEnglish
[data:chinesetrad:03]
folder = CoH\Engine\Locale\ChineseTrad\Data
archive.01 = Engine\Archives\EngineChineseTrad
[locale:japanese]
folder.01 = CoH\Locale\Japanese
folder.02 = CoH\Engine\Locale\Japanese
folder.03 = RelicOnline\Locale\Japanese
[data:japanese:01]
folder = CoH\Locale\Japanese\Data
archive.01 = WW2\Archives\WW2Locale-Japanese
[data:japanese:02]
folder = CoH\DataSoundEnglish
archive.01 = WW2\Archives\WW2SoundSpeechEnglish
archive.02 = WW2\Archives\WW2AlliesSpeechEnglish
archive.03 = WW2\Archives\WW2AxisSpeechEnglish
archive.04 = WW2\Archives\WW2SoundNISEnglish
archive.05 = WW2\Archives\OFCoreSpeechEnglish
archive.06 = WW2\Archives\OFFullSpeechEnglish
[data:japanese:03]
folder = CoH\Engine\Locale\Japanese\Data
archive.01 = Engine\Archives\EngineJapanese
[locale:korean]
folder.01 = CoH\Locale\Korean
folder.02 = CoH\Engine\Locale\Korean
folder.03 = RelicOnline\Locale\Korean
[data:korean:01]
folder = CoH\Locale\Korean\Data
archive.01 = WW2\Archives\WW2Locale-Korean
[data:korean:02]
folder = CoH\DataSoundEnglish
archive.01 = WW2\Archives\WW2SoundSpeechEnglish
archive.02 = WW2\Archives\WW2AlliesSpeechEnglish
archive.03 = WW2\Archives\WW2AxisSpeechEnglish
archive.04 = WW2\Archives\WW2SoundNISEnglish
archive.05 = WW2\Archives\OFCoreSpeechEnglish
archive.06 = WW2\Archives\OFFullSpeechEnglish
[data:korean:03]
folder = CoH\Engine\Locale\Korean\Data
archive.01 = Engine\Archives\EngineKorean
[locale:chineseenglish]
folder.01 = CoH\Locale\ChineseEnglish
folder.02 = CoH\Engine\Locale\ChineseEnglish
folder.03 = RelicOnline\Locale\ChineseEnglish
[data:chineseenglish:01]
folder = CoH\Locale\ChineseEnglish\Data
archive.01 = WW2\Archives\WW2Locale-ChineseEnglish
[data:chineseenglish:02]
folder = CoH\DataSoundEnglish
archive.01 = WW2\Archives\WW2SoundSpeechEnglish
archive.02 = WW2\Archives\WW2AlliesSpeechEnglish
archive.03 = WW2\Archives\WW2AxisSpeechEnglish
archive.04 = WW2\Archives\WW2SoundNISEnglish
archive.05 = WW2\Archives\OFCoreSpeechEnglish
archive.06 = WW2\Archives\OFFullSpeechEnglish
[data:chineseenglish:03]
folder = CoH\Engine\Locale\ChineseEnglish\Data
archive.01 = Engine\Archives\ChineseEnglish
Copy the module above and paste it over yours (remove the text that is present in the original file and make it what it's above). Once that's done change all "Improved" to whatever your mod folder is called. (for example: My_Mod).
Then copy your .ucs file from your mod and put it in [modfolder]\Locale\English, so the .ucs file will work ingame. (without the [ ])
Then never use the 'Run in -dev mod' thing, because then it launches wrong. Add this target line to the shortcut: -mod [Mod_Name] -dev. (without the [ ]).
The to get the ToV campaigns and the Operations working, you’ll have to manually copy the DLC1.module, DLC2.module, DLC3.module and RelicOPS.module and rename them to something. To make them work correct change the modules to the ones I give here below:
DLC1.module:
Spoiler
Code:
;; //////////////////////////////////////////////////////////////////
;; File : RelicCOH.module
;; Desc : RelicCOH Mod descriptor file.
;;
;; (c) 2008 Relic Entertainment Inc.
;;
[global]
Parent = Improved
UIName = $1080
Description = Company of Heroes
DllName = WW2Mod
ModVersion = 1.0
LocFolder = DLC1\Locale
SpeechManagerCache = SpeechManagerDLC1.cache
[game]
PlayerDropBehavior = aitakeover
[movies:common]
folder = DLC1\Movies
[data:common]
folder = DLC1\Data
archive.01 = DLC1\Archives\DLC1Data
[data:art_low]
folder = DLC1\DataArtLow
archive.01 = DLC1\Archives\DLC1ArtLow
[data:art_high]
folder = DLC1\DataArtHigh
archive.01 = DLC1\Archives\DLC1ArtHigh
[locale:english]
folder.01 = DLC1\Locale\English
[data:english:01]
folder = DLC1\DataSoundEnglish
archive.01 = DLC1\Archives\DLC1SoundSpeechEnglish
[locale:german]
[data:german:01]
folder = DLC1\DataSoundGerman
archive.01 = DLC1\Archives\DLC1SoundSpeechGerman
[locale:french]
[data:french:01]
folder = DLC1\DataSoundFrench
archive.01 = DLC1\Archives\DLC1SoundSpeechFrench
[locale:spanish]
[data:spanish:01]
folder = DLC1\DataSoundSpanish
archive.01 = DLC1\Archives\DLC1SoundSpeechSpanish
[locale:russian]
[data:russian:01]
folder = DLC1\DataSoundRussian
archive.01 = DLC1\Archives\DLC1SoundSpeechRussian
[locale:italian]
[data:italian:01]
folder = DLC1\DataSoundEnglish
archive.01 = DLC1\Archives\DLC1SoundSpeechEnglish
[locale:czech]
[data:czech:01]
folder = DLC1\DataSoundEnglish
archive.01 = DLC1\Archives\DLC1SoundSpeechEnglish
[locale:polish]
[data:polish:01]
folder = DLC1\DataSoundEnglish
archive.01 = DLC1\Archives\DLC1SoundSpeechEnglish
[locale:chinesetrad]
[data:chinesetrad:01]
folder = DLC1\DataSoundEnglish
archive.01 = DLC1\Archives\DLC1SoundSpeechEnglish
[locale:japanese]
[data:japanese:01]
folder = DLC1\DataSoundEnglish
archive.01 = DLC1\Archives\DLC1SoundSpeechEnglish
[locale:korean]
[data:korean:01]
folder = DLC1\DataSoundEnglish
archive.01 = DLC1\Archives\DLC1SoundSpeechEnglish
DLC2.module:
Spoiler
Code:
;; //////////////////////////////////////////////////////////////////
;; File : RelicCOH.module
;; Desc : RelicCOH Mod descriptor file.
;;
;; (c) 2008 Relic Entertainment Inc.
;;
[global]
Parent = Improved
UIName = $1080
Description = Company of Heroes
DllName = WW2Mod
ModVersion = 1.0
LocFolder = DLC2\Locale
SpeechManagerCache = SpeechManagerDLC2.cache
[game]
PlayerDropBehavior = aitakeover
[movies:common]
folder = DLC2\Movies
[data:common]
folder = DLC2\Data
archive.01 = DLC2\Archives\DLC2Data
[data:art_low]
folder = DLC2\DataArtLow
archive.01 = DLC2\Archives\DLC2ArtLow
[data:art_high]
folder = DLC2\DataArtHigh
archive.01 = DLC2\Archives\DLC2ArtHigh
[locale:English]
folder.01 = DLC2\Locale\English
[data:english:01]
folder = DLC2\DataSoundEnglish
archive.01 = DLC2\Archives\DLC2SoundSpeechEnglish
[locale:german]
[data:german:01]
folder = DLC2\DataSoundGerman
archive.01 = DLC2\Archives\DLC2SoundSpeechGerman
[locale:french]
[data:french:01]
folder = DLC2\DataSoundFrench
archive.01 = DLC2\Archives\DLC2SoundSpeechFrench
[locale:spanish]
[data:spanish:01]
folder = DLC2\DataSoundSpanish
archive.01 = DLC2\Archives\DLC2SoundSpeechSpanish
[locale:russian]
[data:russian:01]
folder = DLC2\DataSoundRussian
archive.01 = DLC2\Archives\DLC2SoundSpeechRussian
[locale:italian]
[data:italian:01]
folder = DLC2\DataSoundEnglish
archive.01 = DLC2\Archives\DLC2SoundSpeechEnglish
[locale:czech]
[data:czech:01]
folder = DLC2\DataSoundEnglish
archive.01 = DLC2\Archives\DLC2SoundSpeechEnglish
[locale:polish]
[data:polish:01]
folder = DLC2\DataSoundEnglish
archive.01 = DLC2\Archives\DLC2SoundSpeechEnglish
[locale:chinesetrad]
[data:chinesetrad:01]
folder = DLC2\DataSoundEnglish
archive.01 = DLC2\Archives\DLC2SoundSpeechEnglish
[locale:japanese]
[data:japanese:01]
folder = DLC2\DataSoundEnglish
archive.01 = DLC2\Archives\DLC2SoundSpeechEnglish
[locale:korean]
[data:korean:01]
folder = DLC2\DataSoundEnglish
archive.01 = DLC2\Archives\DLC2SoundSpeechEnglish
DLC3.module:
Spoiler
Code:
;; //////////////////////////////////////////////////////////////////
;; File : RelicCOH.module
;; Desc : RelicCOH Mod descriptor file.
;;
;; (c) 2008 Relic Entertainment Inc.
;;
[global]
Parent = Improved
UIName = $1080
Description = Company of Heroes
DllName = WW2Mod
ModVersion = 1.0
LocFolder = DLC3\Locale
SpeechManagerCache = SpeechManagerDLC3.cache
[game]
PlayerDropBehavior = aitakeover
[movies:common]
folder = DLC3\Movies
[data:common]
folder = DLC3\Data
archive.01 = DLC3\Archives\DLC3Data
[data:art_low]
folder = DLC3\DataArtLow
archive.01 = DLC3\Archives\DLC3ArtLow
[data:art_high]
folder = DLC3\DataArtHigh
archive.01 = DLC3\Archives\DLC3ArtHigh
[locale:English]
folder.01 = DLC3\Locale\English
[data:english:01]
folder = DLC3\DataSoundEnglish
archive.01 = DLC3\Archives\DLC3SoundSpeechEnglish
[locale:german]
[data:german:01]
folder = DLC3\DataSoundGerman
archive.01 = DLC3\Archives\DLC3SoundSpeechGerman
[locale:french]
[data:french:01]
folder = DLC3\DataSoundFrench
archive.01 = DLC3\Archives\DLC3SoundSpeechFrench
[locale:spanish]
[data:spanish:01]
folder = DLC3\DataSoundSpanish
archive.01 = DLC3\Archives\DLC3SoundSpeechSpanish
[locale:russian]
[data:russian:01]
folder = DLC3\DataSoundRussian
archive.01 = DLC3\Archives\DLC3SoundSpeechRussian
[locale:italian]
[data:italian:01]
folder = DLC3\DataSoundEnglish
archive.01 = DLC3\Archives\DLC3SoundSpeechEnglish
[locale:czech]
[data:czech:01]
folder = DLC3\DataSoundEnglish
archive.01 = DLC3\Archives\DLC3SoundSpeechEnglish
[locale:polish]
[data:polish:01]
folder = DLC3\DataSoundEnglish
archive.01 = DLC3\Archives\DLC3SoundSpeechEnglish
[locale:chinesetrad]
[data:chinesetrad:01]
folder = DLC3\DataSoundEnglish
archive.01 = DLC3\Archives\DLC3SoundSpeechEnglish
[locale:japanese]
[data:japanese:01]
folder = DLC3\DataSoundEnglish
archive.01 = DLC3\Archives\DLC3SoundSpeechEnglish
[locale:korean]
[data:korean:01]
folder = DLC3\DataSoundEnglish
archive.01 = DLC3\Archives\DLC3SoundSpeechEnglish
RelicOPS.module:
Spoiler
Code:
;; //////////////////////////////////////////////////////////////////
;; File : RelicOps.module
;; Desc : RelicOps Mod descriptor file.
;;
;; (c) 2008 Relic Entertainment Inc.
;;
[global]
Parent = Improved
UIName = $1080
Description = Company of Heroes
DllName = WW2Mod
ModVersion = 1.0
[game]
PlayerDropBehavior = kill
[attrib:ingame]
archive.01 = CoH\Ops\Archives\OPSAttribArchive
[data:common]
folder = CoH\Ops\Data
archive.01 = CoH\Ops\Archives\OPSData
[locale:chineseenglish]
folder.01 = CoH\Ops\Locale\ChineseEnglish
[locale:chinesetrad]
folder.01 = CoH\Ops\Locale\ChineseTrad
[locale:czech]
folder.01 = CoH\Ops\Locale\Czech
[locale:english]
folder.01 = CoH\Ops\Locale\English
[locale:french]
folder.01 = CoH\Ops\Locale\French
[locale:german]
folder.01 = CoH\Ops\Locale\German
[locale:italian]
folder.01 = CoH\Ops\Locale\Italian
[locale:japanese]
folder.01 = CoH\Ops\Locale\Japanese
[locale:korean]
folder.01 = CoH\Ops\Locale\Korean
[locale:polish]
folder.01 = CoH\Ops\Locale\Polish
[locale:russian]
folder.01 = CoH\Ops\Locale\Russian
[locale:spanish]
folder.01 = CoH\Ops\Locale\Spanish
Once you did that, you’ll also just have to change all the “Improved” to the name of which you MOD’s module is called, NOT the name of the DLC or RelicOps module!!!!
Now we’ll continue with some tutorials that will explain the most wanted modding questions.
Here I’ll guide you how to make a new squad, and we’ll make Logistic Engineers for the Americans. After we end the tutorial we’ll have a squad that has his unique building menu, different weapons in the same squad, and give them abilities and upgrades.
Q: How can I make a new squad?
A:
- Open up your mod in Corsix, and go to attrib\attrib\ebps\races\allies\soldiers\infantry_ riflemen.rgd and right click on it and select make a copy of this file, rename the copy to: logistic_rifleman.rgd
- Then go to attrib\attrib\ebps\races\allies\soldiers\engineer. rgd and make copy of it as well but rename it to: logistic_engineer.rgd.
- Now go to attrib\attrib\sbps\races\allies\riflemen_squad.rgd and make a copy of it and rename it to: logistic_engineer _squad.rgd. Then open it up and go to: GameData\squad_loadout_ext\unit_list\unit_01\type, and look under table_children and you’ll see: ebps\races\allies\soldiers\infantry_rifleman.lua, and change this to: ebps\races\allies\soldiers\logistic_rifleman.lua, also change the max and num from 5 to 3. now go to GameData\squad_loadout_ext\unit_list\unit_02\type and change the table_children to ebps\races\allies\soldiers\logistic_engineer.lua, also change the max and num from 1 to 2. The new files are now linked together, and form a squad, but we’re not done yet, we need to make the squad buildable from the Barracks.
- In attrib\attrib\sbps\races\allies\ logistic_engineer _squad.rgd go to GameData\squad_ui_ext\ui_group_position and change the value from 1 to 3. By changing the ui_group_position you change the position the squad will appear in the building menu of the building it is build in. The Barracks already uses the first two positions for the Riflemen and Jeep, so we take the third position for our new squad.
- Go to: attrib\attrib\ebps\races\allies\buildings\barracks .rgd. Open it up and go to: GameData\spawner_ext\squad_table and fill in under table_children the squad_03 sbps\races\allies\logistic_engineer _squad.rgd.
Now you’re done, we got a new squad ready to be build in-game, when you load your mod.
Q: How can I change the cost of my squad?
A:
We’ll go further with our freshly new made squad. Changes for costs are done in the ebps files.
- So open up logistic_rifleman.rgd and logistic_engineer.rgd, and go in both to: GameData\cost_ext\time_cost\cost You see for the logistic_rifleman.rgd the cost is 45 manpower, this is so low because it’s for an individual soldier, all costs are the cost for a individual soldier. For the Riflemen squad it’s 45, because the squad has 6 members, so 6 x 45= 260 manpower, and that’s what they cost in-game. For our squad we’ll change the cost to 40 manpower. If you want to change the cost to another value, don’t bother. Do the same in the logistic_engineer.rgd.
Q: How can I change which weapons my soldiers have?
A:
- This is also done in the ebps files. For our new squad we’ll give the logistic_rifleman.rgd a M1 Carbine and the logistic_engineer.rgd a M1 Thompson.
- Open both files and go to: GameData\combat_ext\hardpoints\hardpoint_01\weapon _table\weapon_01 and look under table_children for weapon. In there you’ll see for the logistic_rifleman.rgd: weapon\allies\small_arms\single_fire\rifle\m1_gara nd_rifle.lua. You should know that all weapons are located in attrib\attrib\weapon. So change the line to: weapon\allies\small_arms\single_fire\rifle\m1_carb ine.lua.
- So now for the logistic_engineer.rgd. Go to: GameData\combat_ext\hardpoints\hardpoint_01\weapon _table\weapon_01 and look under table_children for weapon. In there you’ll see weapon\allies\small_arms\machine_gun\sub_machine_g un\m3_smg.lua, change it to: weapon\allies\small_arms\machine_gun\sub_machine_g un\m1_thompson_smg.lua.
We’re done, the squad has 3 Carbines and 2 Thompsons.
Q: How can I make a new building menu?
A:
- First we have to make a new construction_type, so go to: attrib\attrib\type_construction, and copy for example tp_constructrion_allied_hq.rgd and rename it to: tp_construction_engineer_logistic.rgd.
- Now open up logistic_rifleman.rgd and logistic_engineer.rgd, and go to: GameData\engineer_ext\construction_menus\construct ion_menu_01 and look in table_children for construction_type, and change it to: tp_construction_engineer_logistic.rgd. Note that in logistic_engineer.rgd there’s also a construction_menu_02 that is filled in, and look in that and clear the type_construction in there.
- Now we need to add buildings to the construction menu, because it doesn’t has any yet. Open up attrib\attrib\ebps\races\allies\buildings. For our Logistic Engineer squad we’ll add Sandbags, Barbed Wire, Tank Traps, Observation Posts and MG-nests to the building menu. Open up sand_bag.rgd and go to: GameData\construction_ext\construction_menus\const ruction_menu_03 and look in table_children for construction_type and change it to: tp_construction_engineer_logistic.rgd. Now do the same with the other buildings I’ve mentioned. The files you need are: barbed_wire.rgd, tank_traps.rgd, secure_structure.rgd and machine_gun_nest.rgd.
Now we made our squad be able to build several buildings, with a unique building menu.
Q: How can I give my squad abilities, like throwing grenades?
A:
In attrib\attrib\abilities are all the abilities available that exist, so if you scroll down you’ll see that there are many abilities.
- Open up logistic_engineer.rgd and logistic_rifleman.rgd then in there go to: GameData\ability_ext\abilities. There you see a large list. In the logistic_rifleman.rgd you’ll notice that there are already three abilities filled in and in logistic_engineer.rgd just one. For our unit we’ll give the squad the abilities: abilities\ally_throw_grenade.lua, abilities\cut_wires.lua, abilities\ally_throw_sticky_bombs.lua and abilities\ally_throw_sticky_bombs_vet_2.lua.
Fill the abilities mentioned above in the list.
All abilities are found in attrib\attrib\abilities but if you can’t find a particular ability, you can also look in the GameData\ability_ext\abilities of other units, and then you can copy and paste it.
Q: How can I give my squad upgrades?
A:
All upgrades are located in: attrib\attrib\upgrade so if you take some time to look around there, you’ll find all kind of upgrades that aren’t even used in vCoH!
For our squad, we’ll give them the Flamethrower upgrade.
- Open up logistic_engineer_squad.rgd and go to: GameData\squad_upgrade_ext\upgrades you’ll see the whole list that's empty.
- We have to find the location where the Flamethrower upgrade is located, but for the easy way, I’ll just tell you the line: upgrade\allies\items\allies_m2_flamethrower.lua. Next time you have to look into the attrib\attrib\upgrade.
- The last thing we have to is make sure the logistic_engineer_squad.rgd actually can upgrade the flamethrower, so go to: GameData\squad_upgrade_ext\number_of_slots and change the value to 1.
Q: How can I change the name of my new made squad?
A:
- First of all, I have to warn you guys, because when you change the original RelicCOH.english.ucs and you don’t have a orinignal back-up of it, it will prevent to further patch Company of Heroes and Opposing Fronts, but as I said in the very begin of this tutorial: Always have a clean black-up of your Company of Heroes directory.
- And even better is to go in your Company of Heroes Directory and find RelicCOH.english.ucs and copy and rename it to something like: MyMod.english.ucs.
- In the upper left corner of the mod studio there’s another tab named: Tools click on that. Then double click on .ucs Editor and load RelicCOH.english.ucs (or your own copy of it). When it’s loaded click on the “New Entry” button located in the bottom right corner of the mod studio.
- Now you have to fill in a new value there and make it: $18000000. And click OK, now make two new entries and when you click on New Entry it should say: $18000001 and $18000002.
- Now we can fill in a new text for our new squad, and fill in the line next to $18000000: Logistic Engineers, next to $18000001: Basic builders, Good vs. Infantry and next to $18000002: Light infantry armed with m1 garands and M1 Thompsons. They can build several kinds of defenses. Can be upgraded with the M2 Flamethrower.
- Now we have made the entries go back to the Files tab in the upper left corner of the mod studio and open up: logistic_engineer_squad.rgd and go to: GameData\squad_ui and look under table children for screen_name, help_text and extra_text.
- Then fill in next to screen_name: 18000000, next to extra_text: 18000001 and next to help_text: 18000002 Now these numbers refer to the .ucs file to the value we filled in under that number.
Now our squad is finished and I hope this helped you out with stuff.
Happy modding to you all!
-Celéstial