Conscript's Modding Coursebook/1. Setting Up
Before we embark on your modding adventure, there are a few things you should grab and set up. It will only take a while, but you'll be able to make much more cool stuff compared to just nosediving into editing the game.
What you need
Yuri's Revenge 1.001
You only need a couple of specific game files copied from installed Yuri's Revenge patched to version 1.001:
- BINKW32.dll,
- BLOWFISH.dll,
- gamemd.exe,
- mapsmd03.mix,
- movmd03.mix,
- multimd.mix,
- ra2.mix,
- ra2md.mix,
- language.mix,
- langmd.mix.
Ares
Ares is an engine extension that fixes several bugs, unlocks limits and greatly expands modding possibilities. You can download Ares here and read about it here. Make a bookmark for Ares documentation, as you will check it often.
Phobos
Similar to Ares but newer and actively developed, Phobos is another engine extension. You can download it here (download Phobos.dll only) and read about it here. Bookmark it as well.
CnCNet Client Mod Base
The CnCNet client replaces the original game menus with an interface that can be freely customized, allows for launching the game with Ares/Phobos enabled, free and easy multiplayer hosting, IRC chat, custom game modes, and much more. Thanks to user Starkku, there's a beginner-friendly distribution that requires minimal setup. You can download it here. The client requires .NET Framework 4.5, which you can get here (scroll down to "Assets", and click "Source code (zip)") if you don't have it already installed on your PC.
Tools
Below is a list of some community-made tools for editing specific file formats used by the game. You don't have to worry right now about what these formats are and how to use these tools, you can download these when later chapters will introduce them properly.
Must Have
- Any text editor, to list a few: MS Notepad, Notepad++, Atom, Sublime, Visual Studio Code,
- XCC Utilities, a bundle of tools for reading and editing MIX files and more.
SHP & PAL Tools
- OS SHP Builder, an MS Paint-like SHP editor,
- ImageShaper, a tool for mass SHP frame operations,
- PNGtoSHP, a tool that converts PNG images into SHP files,
- OS Palette Editor, a PAL editor.
VXL Tools
- OS Voxel Section Editor III, a VXL editor,
- goxel, another VXL editor,
- Ivory, another VXL editor,
- MagicaVoxel, a voxel editor that doesn't support VXL files, but can be exported to formats accepted by goxel or VXLSE III,
- OS HVA Builder, a VXL preview tool and HVA editor.
CSF Tools
- XCC String Table Editor (part of XCC Mixer, which is in XCC Utilities), a CSF editor,
- RA2StrEdit, another CSF editor,
- Turbo String Table Editor, another CSF editor.
Map Editors
- Final Alert 2, a map editor (included in CnCNet client mod base),
- Final Alert 2 SP with Patches, a custom version of Final Alert 2,
- World Altering Editor, a work-in-progress map editor. Only for experienced users.
Setting up your mod base
So you have downloaded everything, now how do we get a working mod from this?
The steps
- Get your files together
- Create a new folder somewhere on your computer. Call it whatever you like, it will be your base directory.
- Copy required game files listed above into your mod folder (do not create a subfolder!).
- Unzip downloaded ares_3_0.zip archive and copy its contents into your mod folder (do not create a subfolder!). You can delete RunAres.bat, as we won't be using it. You can also remove or move somewhere else the Documentation folder, because it's just a copy of the online documentation.
- Copy downloaded Phobos.dll into your mod folder (do not create a subfolder!).
- Unzip downloaded cncnet-client-mod-base-net45final.zip archive and copy just the contents of the ClientFiles folder into your mod folder (do not create a subfolder!).
- Configure the client (instructions copied from the CnCNet client mod base page)
- Edit Resources\GameCollectionConfig.ini
- Change InternalName under section CustomGame to your chosen, unique abbreviation (max. 4 characters in length).
- Change UIName under section CustomGame to full name of your mod.
- Set ChatChannel and GameBroadcastChannel under section CustomGame to valid IRC channel names. For an example, #cncnet-X for ChatChannel and #cncnet-X-games for GameBroadcastChannel, where X is replaced by the abbreviation from InternalName.
- Set IconFilename under section CustomGame to a valid filename of a 16x16px icon to display in CnCNet lobby & CnCNet options. The file (ideally in PNG format) should be placed in Resources directory.
- Edit Resources\ClientDefinitions.ini
- Set LocalGame under section Settings to match the abbreviation from custom game's InternalGame.
- Set LongGameName under section Settings to full name of your mod.
- Set WindowTitle under section Settings to what you wish to display in client window titlebar.
- Edit Resources\GameCollectionConfig.ini
The result
Now, launch YRLauncher.exe. If everything goes right, your ears will be blasted with Grinder by Frank Klepacki. You will see a window looking like YR main menu and a pop-up to configure your player settings. After clicking the Settings button, you'll be able to change your game and client resolution, renderer (CnC-DDRAW is usually the best choice), full-screen mode, audio volume, player name, etc. When you're done, accept the changes, restart the client, and click the Skirmish button.
You should now see the skirmish menu, where you can choose a map, set up players and additional options. Most things here can be configured and customized as you wish, but that's for another time. Pick a map, pick your faction and color and start the game. If everything goes well again, you will load in and start a skirmish! That means you're good to go and can make your first edit in... Part 2: Your First Unit.
(Optional) Doesn't work, now what?
You might have done everything correctly, but instead of getting into the game (or the client), you are staring at a Windows error message telling you something went wrong in a rather non obvious manner. Some errors are caused by insufficient permissions, some by missing files or version mismatch, others just... come and go. Yes, there are some errors we don't know how to fully solve. Below is a list of some known issues and solutions. If you can't find your issue here, or if solutions don't work, ask the community for help at PPM Forums or Mod Haven.
"FATAL String Manager failed to intialize properly" message
SetYRLanucher.exe, Syringe.exe and gamemd.exe to run as administrator (Right click on file, Properties, Compatibility, Run this program as administrator).
"Syringe could not run executable - requested operation requires elevation" message
Same as above.
"Failed to initialize. Please reinstall" message
Check if you copied all needed game files. If yes, set above files to run as admin.
Black screen/frozen game while the game is active
Changing the renderer should help. If you haven't tried CnC-DDRAW yet, give it a go; otherwise experiment with others until the problem goes away. You can change renderer in main menu, then Options, then Display (first tab), then in the Renderer dropdown menu.
"error - unable to set video mode" message
Set game resolution to match your monitor resolution. If that doesn't help, change your renderer (see above for instructions).
"Screen mode not found" message
Open your Windows Settings, then Display, then Scale and Layout, look for Change the size of text, apps and other items dropdown menu and select 100%.
Slow/laggy/freezing game
Change your renderer (see above for instructions).