Game Modifications > Game Mod Guide
Game Mod Guide

You can also view this page in the following Languages
englishn.pngspanishg.png

A game mod or game modification changes or adds new capabilities to games at Voobly.
Voobly's mod support makes it much easier to play mods on line.

Support for mods is divided into three high level categories:

If you have any questions on this guide please post them at the Game Mod Forum


Contents:


How to find mods



Go to the game mod page for your game:

Using a Game Play or Data Mod


Once you have installed the mod, you simply select it in game room settings:

ins_datamods.png


After you have selected the game mod, it will show up in your settings:
ins_setmods.png
Underlined texts are clickable.
It will open your browser and directs to the mod's or patch's page.




If a player don't have yet the data mod
you will see a blue arrow icon where normally the ping showed:
ins_dlmods.png


If you have the "unzip failed" error it is suggested to try download the mod with different browser, or enable UAC

Using a Visual or Local Mod



Visual mods are automatically enabled once installed.
You can disable them with the "Game->Visual or Conent Mods" menu (uncheck them), or uninstall through the mod's webpage to permanently remove.

ins_visualmods.png

Some Visual mod may interfere with an other when changing the same game element.
(using multiple terrain or taunt mods)

If you have the "unzip failed" error it is suggested to try download the mod with different browser, or enable UAC


Mods in Single Player


To use a Voobly mod in single player you can use the launch from single player feature at http://www.voobly.com/pages/view/310

Zq3fCE.jpg

Creating your own mods



Are you already a modder or ready to become one? On Voobly it's easy! We have also have some tools we've written and released to make your life even easier. The easiest way to start is to install some existing mods and look at how they work and start from here. Once you're done upload the mod to Voobly, for more information read the Step-by-step guide for uploading a mod.

Mod Installation Path


For mods to be detected by Voobly they should be placed in the proper game subdirectory. The subdirectory is Voobly Mods\Voobly-Game-ID-Here\Voobly-Mod-Type-here\Mod-Name-Here.

Two examples:
Mod Files Structure


For most mods you put the files you want to change at the same relative path in your mod directory as they are in the game directory.

The easiest way to see how this works is to install an existing mod.

As an example, let's take a hypothetical game with these files and directories:
Code:
c:\MyGame\Data\datafile.bin c:\MyGame\Maps\

Lets say you were creating a mod called "MyFirstMod", you wanted to change datafile.bin, and add a new map:
Code:
c:\MyGame\Voobly Mods\GameID?\Data Mods\MyFirstMod\Data\datafile.dat (your edited dat file) c:\MyGame\Voobly Mods\GameID?\Data Mods\MyFirstMod\Maps\MyNewMap.map c:\MyGame\Voobly Mods\GameID?\Data Mods\MyFirstMod\version.ini (all mods must have a version.ini)

Mod Versioning


All mods must have version specified in the root mod directory. The server ensures that all users in a room have the same version of the mod before the game is launched.

Simply create a text file called version.ini with the version text, e.g.:
Code:
1.1

Distributing your mods before they are submitted to Voobly

You are free to exchange files w/ zips or create your own installer. The users you are testing with should place the files in the same path as you.

Once you're done send +chris@voobly (or) Blake (or) [MM]Gallas a message to get it added to the Voobly mod listing page as approved.

AoE, RoR, AoK, and AoC specific modding


These sections describe AoE - AoC series games modding specifics.

File and directory structure


Files and paths:
Example below for a mod called MyTestMod:
Code:
c:\MyGame\Voobly Mods\GameID?\Data Mods\MyFirstMod\language.ini c:\MyGame\Voobly Mods\GameID?\Data Mods\MyFirstMod\drs\231.slp c:\MyGame\Voobly Mods\GameID?\Data Mods\MyFirstMod\drs\5001.wav c:\MyGame\Voobly Mods\GameID?\Data Mods\MyFirstMod\Scenario\=V= CBAv8.scx c:\MyGame\Voobly Mods\GameID?\Data Mods\MyFirstMod\data\empires2_x1_p1.dat

DRS Modifications


There are two methods supported for changing SLP and other types of DRS resources:

The second approach is recommended because:

DRS to SLP conversion


To help convert mods to this improved format we've created a drsdiff tool, you can download at here. This tool will compare a modified drs file against an original then output the changed SLPs.

Usage: drsdiff.exe modified.drs original.drs . This will compare the two drs and any new or change SLP/wav/bin file will be created in put in a drsdiff-output\ subdirectory the tool will create.

Code:
>drsdiff.exe graphics_smalltrees.drs graphics.drs Opening graphics_smalltrees.drs Found 1 tables and 1768 items Opening graphics.drs Found 1 tables and 1768 items Starting compare (could take a few minutes)... Diff at 5! Wrote 'drsdiff-output\5.slp' Diff at 435! Wrote 'drsdiff-output\435.slp' Diff at 1250! Wrote 'drsdiff-output\1250.slp' Diff at 1251! Wrote 'drsdiff-output\1251.slp' Diff at 1252! Wrote 'drsdiff-output\1252.slp' Diff at 1253! Wrote 'drsdiff-output\1253.slp' Diff at 1254! Wrote 'drsdiff-output\1254.slp' Diff at 1255! Wrote 'drsdiff-output\1255.slp' Diff at 1256! Wrote 'drsdiff-output\1256.slp' Diff at 1257! Wrote 'drsdiff-output\1257.slp' ...etc...

Text String Modifications


The recommended way to change text strings for Voobly mods is through the use of a robust new language.ini file format. Existing mods have put all the text strings in a language dll files, this has several limitations we've addressed through the use of an .ini file:

Language INI Specification


The file name is 'language.ini' located in base mod directory (e.g.: aoc\localmods\MyHotKeyMod\language.ini). Only one language .ini is supported per-mod (all the strings can live in a single ini file).

Format:
Code:
String#=Text String

Example below. First block shows the unmodified strings for the multiple game title and the I'm ready button. With two lines in a text file you can switch these strings.
Code:
9678=Multiplayer Game 9663=I'm Ready!
Code:
9678=My Awesome Mod Is Loaded! 9663=Click Me!

Language DLL to INI Conversion Tool


To help convert mods to this improved format we've created a conversion tool called langconv.exe, you can download here.

There are two primary operations the tool supports: the first being to dump an existing language dll to an ini file, and the second to compare two ini files and produce a trimmed list of strings.

To dump an existing language dll, you use the -d option with the following parameters: langconv.exe -d output.ini source.dll

The example below, shows how you would use langconv to dump all the strings from existing language dll files to language.ini. The tool will smartly merge new strings into language.ini after each run.
Code:
langconv.exe -d game_default_language.ini language.dll langconv.exe -d game_default_language.ini language_x1.dll langconv.exe -d game_default_language.ini language_x1_p1.dll (At this point game_default_language.ini will contain the combined strings from all language DLL files, order matters because _x1 replaces strings in language.dll)

Use the tool again to dump strings from your existing mod:
Code:
langconv.exe -d mymod.ini language_x1_p1_mymod.dll

To find the minimal set of strings you need in your mod's ini, you use the -t option with the following parameters: langconv.exe -t output.ini yourmods.ini reference.ini

Example:
Code:
langconv.exe -t mymod_min.ini mymod_from_dll.ini game_default_language.ini

If you did it correctly, mymod_min.ini will only have the strings that have changed between mymod_from_dll.ini and game_default_language.ini. You would rename mymod_min.ini as language.ini and put it in your mod directory.

AoC language switcher

You can [You must login to view link] aok and aoc language .dll files from the [You must login to view link] website or the [You must login to view link] from aok.heaven. For aoeHD just follow the recommended installation guide.


UserPatch Extensions

It is possible to create a game mod that enables UserPatch extensions such as the civ support. All you need to do is add a age2_x1.xml to your game mod directory.

Example below for a mod called MyTestMod based on Forgotten Empires...
Code:
c:\MyGame\Voobly Mods\GameID?\Data Mods\MyFirstMod\version.ini c:\MyGame\Voobly Mods\GameID?\Data Mods\MyFirstMod\age2_x1.xml c:\MyGame\Voobly Mods\GameID?\Data Mods\MyFirstMod\Data\empires2_x1_p1.dat etc

You would get 'age2_x1.xml' from C:\Program Files (x86)\Microsoft Games\Age of Empires II\Games\age2_x2.xml . Also copy files from C:\Program Files (x86)\Microsoft Games\Age of Empires II\Games\Forgotten Empires to your new mod directory.

A sample mod is at http://www.voobly.com/gamemods/mod/113/Sample-FE-Mod

Custom Scenario Extensions



Advanced Statistics

(Supported for both Age of Kings and The Conquerors)

Custom Scenario authors may activate advanced statistics, revealing the local players kills and razing information in the F11 text overlay. This makes access to this information much easier than custom kill counters w/ triggers and they also allow custom scenarios to be created with less triggers increasing stability.

The statistic text is shown below:

advancedstats1.png

To activate these features, simply create a trigger "Display Instruction" trigger that has the following text:
Code:
<Voobly.com:Advanced-Statistics=1>

advancedstats2.png

You can download a sample map that implements this: Delete one of the P1 castles to activate advanced stats.

Take activate advanced statistics in data mod, create a mod.ini file with the following contents:
Code:
[Advanced Statistics] Enabled=1

Hiding Age information in Score Area

(Supported for The Conquerors)

Custom Scenario authors may disable the extended age information shown in the f4 score area.

The age text is shown below:

showage.png

To disable the feature, simply create a trigger "Display Instruction" trigger that has the following text:
Code:
<Voobly.com:Show-Age-Info=0>

Note: this is only tested in multiplayer, it might not work in single player.

Random CS Map Support


To create a "random CS maplist", you name all the maps you want in the list using the format: COLLECTIONNAME-rnd-MAPNUM-MAPTOTAL.scx

For example, a collection of three maps called "CS Random" would be named as:
Code:
CS Random-rnd-1-3.scx CS Random-rnd-2-3.scx CS Random-rnd-3-3.scx

To host a map using a collection the host must have all the maps. Therefore, it's recommended to package the maps in a game mod.

Any number of map count is supported, that is 2 maps to over 100.

 
1 User(s) are reading this document (in the past 30 minutes)
0 members, 1 guests