Changes with Anno 117¶
Important¶
- Changed Paths - Paths to
assets.xml
and others have changed. (1) - Modinfo - Only mods with game version
8
are loaded. (2) - No changes to GUID Ranges (3) or Mod Folders. (4)
-
Most base game files are also under
data/base
now.E.g.
data/base/config/export/assets.xml
-
Only mods with game version
8
inmodinfo.json
are loaded.{ "Anno": 8, "Version": "1.0.0", "ModID": "first-mod-jakob" // .. }
-
Reserve your GUID range.
Open a PR on GuidRanges or ask on Discord.
-
The mod folders for manual installation are:
<user>/Anno 117/mods/
<install>/Anno 117/mods/
Templates in Visual Studio Code
Press F1 in Anno Modding Tools and run Anno: Create Mod from Template
to generate a template.
Changes¶
- Localization - Texts use LineIDs now instead of GUIDs.
- Modinfo - New
Difficulty
entry is mandatory, but mods load without it. - InfoTips - The format has changed for better readability.
- Dependencies - Changed dependency entries in modinfo.
New Features¶
- Short ModOps (1)
- Asset - Add without ModOp (2)
- Mod Profiles - The game loads mod activations from
<user>/Anno 117/active-profile.txt
. - ModOps Property - Property Lookup
- ModOps MaxRepeat - Use
Group
withCondition
for loops. - InfoTips - GUID Lookup
- XPath Functions - XPath functions like
number()
andcount()
can be used. - ModID as XPath Variable - Do things like
#mod-a and not(#mod-b)
. - Inline ModOps - Merge enums, insert local content and other
Content
improvements. - ModItem - More control over merging items and lists with items.
- Lua Scripts - Script support
-
ModOps can be shortened with
Merge=<XPath>
instead of the old long formType="merge" Path=<XPath>
.<ModOp GUID="1010372" Merge="Building"> <AllowChangeVariation>1</AllowChangeVariation> </ModOp>
<ModOp GUID="1010372" Type="merge" Path="/Values/Building"> <AllowChangeVariation>1</AllowChangeVariation> </ModOp>
-
117 (not in demo)
Directly drop assets into your file without
ModOp
. The order ofBaseAssetGUID
is automatically handled.<ModOps> <Asset> <BaseAssetGUID>100780</BaseAssetGUID> <Values> <!-- .. --> </Values> </Asset> </ModOps>
<ModOps> <ModOp Type="addNextSibling" GUID="100780"> <Asset> <BaseAssetGUID>100780</BaseAssetGUID> <Values> <!-- .. --> </Values> </Asset> </ModOp> </ModOps>
Extra Notes¶
Safe Ranges¶
Reserve your range
Open a PR on GuidRanges or ask on Discord.
The GUID ranges safe to use for mods have not changed.
Name | Range |
---|---|
GUIDs | 1.337.471.142 - 2.147.483.647 |
LineIDs | 1.337.471.142 - 2.147.483.647 |
Personal use | 2.001.000.000 - 2.001.009.999 |
Enums | will come with future releases |
Localization¶
Text IDs are based on Oasis Line IDs now instead of GUID
s.
Vanilla text IDs are always negative numbers like -6911555031864321364
(or A015 3951 4829 DAAC
in hex).
For modding purposes it is best to simply use the same range as GUIDs. E.g. matching LineID of a building name with the GUID of the building asset.
<ModOp Add="/TextExport/Texts[1]">
<Text>
<Text>Happy Modding</Text>
<LineId>2001000000</LineId>
</Text>
</ModOp>
<Values>
<!-- ... -->
<Text>
<OasisId>2001000000</OasisId>
</Text>
</Values>
<ModOp Add="/TextExport/Texts[1]">
<Text>
<Text>Happy Modding</Text>
<GUID>2001000000</GUID>
</Text>
</ModOp>
<Values>
<!-- ... -->
<Standard>
<GUID>2001000000</GUID>
</Standard>
</Values>