Jump to content
DerelictStudios Forums
Bibber

C&c3 Mod Sdk - Manifest Fix / Mod Crash Fix

Recommended Posts

Problem:

Most of you know that C&C3 crashes when you run a mod and switch the graphic options from low to high (or from high to low). This is because of wrong paths to the referenced files (global.xml and static.xml) in the manifest files of your mod.

 

Solution:

You move all the content from your "CnC3Xml" folder to your Mod SDK installation directory and the global.manifest and static.manifest to the "BuiltMods\CnC3Xml" folder before you compile your mod. But this makes your Mod SDK installation directory very confusing.

 

Alternative: C&C3 Mod SDK - Manifest Fix

You can download a small fix to run from your BuildMod.bat directly before launching the MakeBig.exe. This must be done with every manifest file that has a reference to the global.xml or static.xml i.e. mod.manifest and mod_L.manifest.

Already compiled mods can be fixed, too. Just extract the appropriate manifest files from the big files of the mod, repair them with the tool and put them back to the big file.

 

Extended BuildMod.bat:

@echo off
@echo Mod Name: %1
@echo Building Mod Data...
tools\binaryAssetBuilder.exe "%cd%\Mods\%1\data\mod.xml" /od:"%cd%\BuiltMods" /iod:"%cd%\BuiltMods" /ls:true /gui:false /UsePrecompiled:true /vf:true
@echo Building Low LOD...
tools\binaryAssetBuilder.exe "%cd%\Mods\%1\data\mod.xml" /od:"%cd%\BuiltMods" /iod:"%cd%\BuiltMods" /ls:true /gui:false /UsePrecompiled:true /vf:true /bcn:LowLOD /bps:"%cd%\BuiltMods\mods\%1\data\mod.manifest"
@echo Copying str file if it exists...
IF EXIST "%cd%\Mods\%1\data\mod.str" copy "%cd%\Mods\%1\data\mod.str" "%cd%\BuiltMods\mods\%1\data"
@echo Copying Shaders...
IF NOT EXIST "%cd%\BuiltMods\mods\%1\Shaders" md "%cd%\BuiltMods\mods\%1\Shaders"
copy "%cd%\Shaders\*.fx" "%cd%\BuiltMods\mods\%1\Shaders"
del "%cd%\Builtmods\mods\%1\data\mod_l.version"

@echo Fixing manifest...
tools\FixManifest.exe "%cd%\BuiltMods\mods\%1\data\mod.manifest" "%cd%\BuiltMods\mods\%1\data\mod_L.manifest"

@echo Creating Mod Big File...
tools\MakeBig.exe -f "%cd%\BuiltMods\mods\%1" -x:*.asset -o:"%cd%\BuiltMods\mods\%1.big"
@echo Copying built mod...
IF NOT EXIST "D:\Bibber\Eigene Dateien\Command & Conquer 3 Tiberium Wars\mods" md "D:\Bibber\Eigene Dateien\Command & Conquer 3 Tiberium Wars\mods
IF NOT EXIST "D:\Bibber\Eigene Dateien\Command & Conquer 3 Tiberium Wars\mods\%1" md "D:\Bibber\Eigene Dateien\Command & Conquer 3 Tiberium Wars\mods\%1
copy "builtmods\mods\%1.big" "D:\Bibber\Eigene Dateien\Command & Conquer 3 Tiberium Wars\mods\%1"

 

 

 

EDIT:

Alternative 2:

For those who don't want to change something on the bat files, I have some dummy files which just have to be extracted to your Mod SDK installation directory: C&C3 Mod SDK - Mod Crash Fix

Edited by Bibber

Share this post


Link to post
Share on other sites

Is "Eigene Dateien" the "My Documents" folder?

 

Also, the @ before 'echo' is only necessary on the first line. It does the same for one line as the "echo off" command does for the entire .bat file, namely make sure you don't see the command repeated on the command line.

 

Share this post


Link to post
Share on other sites
Is "Eigene Dateien" the "My Documents" folder?

Yes.

Sorry, thats because I have installed my SDK on a german OS. ;)

 

 

Also, the @ before 'echo' is only necessary on the first line. It does the same for one line as the "echo off" command does for the entire .bat file, namely make sure you don't see the command repeated on the command line.
Sure, but it is just copied the original BuildMod.bat extended with the 2 lines for fixing the manifest. And the original file uses always @echo. So I did it in my new line, too. :P Edited by Bibber

Share this post


Link to post
Share on other sites

haha, so that just means EA doesn't know .bat very well either :P

 

Basically, if you don't put the "echo off" at the start but add an @ before every command in the file, it has the same effect. But once you execute "echo off", all echoing is disabled from that point on, so none of the other @s are needed. Except of course the one in front of the

"echo off" command itself, because at that point it isn't disabled yet.

Edited by Nyerguds

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×