Site is Loading, Please wait...

Knowledge Base
FS25 Modding

modDesc.xml and its features

The modDesc.xml is the main descriptor file for any mod in Farming Simulator 25. It’s a structured XML document that tells the game what your mod includes and how it should be loaded. Here are some key points about its role and structure:

  1. Metadata and Identification The modDesc.xml file holds all the critical information about your mod. This includes the mod’s title, version number, author, description, and other metadata. This information is used not only to label your mod in game menus and on platforms like ModHub but also to verify compatibility with different versions of Farming Simulator. Updating the modDesc version is necessary whenever GIANTS Software releases a game patch that introduces changes in how mods are managed2.
  2. Configuration and File Management In addition to descriptive metadata, modDesc.xml specifies what other files the mod relies on—such as custom scripts, additional XML configuration files, asset directories, and even localization files. The game engine reads this file as it starts up to know which additional resources to load and how to integrate your mod’s content into the game environment. This ensures that every aspect of your mod is systematically registered and correctly initialized.
  3. Compatibility and Quality Assurance Because each release of Farming Simulator may come with updates that impact mod support, modDesc.xml also plays a crucial role in ensuring your mod stays compatible. The version number embedded within this file (often visible in the game’s log files) informs the game whether the mod was built with the correct formatting and settings. If the modDesc version is out-of-date, you may encounter errors or warnings when the mod runs. This update mechanism is particularly important if you’re submitting your mod for review on platforms like ModHub.

Understanding and correctly configuring your modDesc.xml is essential for a smooth modding experience. If you’re planning to delve deeper into mod development, there are tutorials available (for example, on YouTube) that walk you through adjusting the modDesc.xml file when converting or updating mods between game versions.

Examples of modDesc.xml for Farming Simulator 25 (AI generated)

XML
<?xml version="1.0" encoding="utf-8"?>
<modDesc descVersion="53">
    <title>Custom FS25 Map</title>
    <author>Erik</author>
    <version>1.0.0.0</version>
    <description>
        <![CDATA[
            A custom map for Farming Simulator 25 featuring unique terrain, dynamic fields, and an immersive farming environment.
        ]]>
    </description>
    <!-- Define the dependency on the core FS base module -->
    <dependencies>
        <dependency name="FSBase" minVersion="1.0.0.0"/>
    </dependencies>
    <!-- Reference to your main map XML file -->
    <extraXml>
        <file path="map.xml"/>
    </extraXml>
</modDesc>

A more accurate example of a simple modDesc.xml used by Alfamods:

XML
<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<modDesc descVersion="96">
    <author>AlfaModsNorway</author>
    <version>1.0.0.0</version>
    <title>
        <en>AlfaMods Big Map Sample</en>
        <de>AlfaMods Großes Kartenbeispiel</de>
    </title>
    <description>
        <en><![CDATA[Huge sample map for FS25. You can use this one as a template.]]></en>
        <de><![CDATA[Riesige Beispielkarte für FS25. Sie können diese als Vorlage verwenden.]]></de>
    </description>
    <iconFilename>icon.png</iconFilename>
    <multiplayer supported="true"/>
    <maps>
        <map id="SampleModMap" className="Mission00" filename="$dataS/scripts/mission00.lua" configFilename="maps/mapAS/mapAlfaBig.xml" defaultVehiclesXMLFilename="maps/mapAS/config/vehicles.xml" defaultHandToolsXMLFilename="maps/mapAS/config/handTools.xml" defaultPlaceablesXMLFilename="maps/mapAS/config/placeables.xml" defaultItemsXMLFilename="maps/mapAS/config/items.xml">
            <title>
                <en>AlfaMods Big Map Sample</en>
                <de>AlfaMods Großes Kartenbeispiel</de>
            </title>
            <description>
                <en>Huge sample map for FS25. You can use this one as a template.</en>
                <de>Riesige Beispielkarte für FS25. Sie können diese als Vorlage verwenden.</de>
            </description>
            <iconFilename>preview.png</iconFilename>
        </map>
    </maps>
</modDesc>

Walk trough

XML Declaration:

XML
<?xml version="1.0" encoding="utf-8" standalone="no" ?>

This line identifies the document as an XML file, its encoding, and that it isn’t standalone (meaning it could be linked with external resources).

Root Element <modDesc>:

XML
<modDesc descVersion="96">

The descVersion="96" attribute indicates the version of the mod descriptor schema that FS25 expects. This value is crucial for compatibility; it shows that the game recognizes and can process the file format according to FS25’s latest standards.

1. Metadata Elements

Inside the <modDesc> element, you find metadata about the mod:

  • Author, Version, and Title: These elements give the mod’s creator, the current version number, and its title. Notice the <title> tag is subdivided into language-specific tags (like <en> for English and <de> for German), which supports multilingual displays in-game.
  • Description: Just like the title, the description is provided in both English and German. The use of <![CDATA[ ... ]]> allows you to include text without worrying about XML special characters interfering with the structure. This section explains what the mod is about.
  • Icon Filename: This tells the game where to find the icon image used to represent the mod in menus or mod listings.
  • Multiplayer Support: This element informs the game that the mod is compatible with multiplayer mode.

The code for metadata elements may look like this:

XML
<author>AlfaModsNorway</author>
    <version>1.0.0.0</version>
    <title>
        <en>AlfaMods Big Map Sample</en>
        <de>AlfaMods Großes Kartenbeispiel</de>
    </title>
    <description>
        <en><![CDATA[Huge sample map for FS25. You can use this one as a template.]]></en>
        <de><![CDATA[Riesige Beispielkarte für FS25. Sie können diese als Vorlage verwenden.]]></de>
    </description>
    <iconFilename>icon.png</iconFilename>
    <multiplayer supported="true"/>

2. Map Definition (tells us that this is a modded map)

XML
        <map id="SampleModMap" className="Mission00" filename="$dataS/scripts/mission00.lua" configFilename="maps/mapAS/mapAlfaBig.xml" defaultVehiclesXMLFilename="maps/mapAS/config/vehicles.xml" defaultHandToolsXMLFilename="maps/mapAS/config/handTools.xml" defaultPlaceablesXMLFilename="maps/mapAS/config/placeables.xml" defaultItemsXMLFilename="maps/mapAS/config/items.xml">
  • The <maps> section encapsulates the specific map(s) included in the mod. Here, there’s one <map> element that details everything the game needs to load the custom map:
  • id="SampleModMap": A unique identifier within the mod.
  • className="Mission00": Indicates the mission class or type used by the script.
  • filename="$dataS/scripts/mission00.lua": Points to the Lua script that manages the map’s behavior. The $dataS is likely a placeholder that resolves to the scripts directory in the game’s structure.
  • configFilename: Specifies the XML file that defines the

The additional default*XMLFilename attributes point to configuration files for vehicles, hand tools, placeables, and items. These files set default behaviors and asset configurations related to the map.

Source: Microsoft Copilot.