Site is Loading, Please wait...

FS25

1. Zielonka Light Overview

This sample mod map for Farming Simulator 2025 has a structure or anatomy of files and directories. All these files have a unique role and may be viewed as a family tree. This directory setup isn’t by default, so it may look different from other map mods.

To be able to understand how a mod map works inside Farming Simulator 25, you’ll have to download the mod below.



The content of a modmap for Farming Simulator 25.

1.1 The mod’s ZIP-file

All mods for Farming Simulator are packed into ZIP files for distribution through websites and ModHub itself (in-game Modhub described as “Downloadable Content” from the game’s startup menu after the game trailer. The ZIP file itself is not made by zipping a folder, but by selecting all files of a mod and making a new ZIP file with the naming standard FS25_MyMod.zip, for example. The game engine can read ZIP files directly, but mods need to be placed in a specific folder called mods found at MyGames/FarmingSimulator2025 in MyDocuments or Documents (Windows OS.)

1.2 modDesc.xml

This XML file contains essential information about the mod, such as the author, description, mod versions (e.g., 1.0.0.0), and store items that are buyable, such as vehicles, production points (factories), selling points, decoratives, pallets, buildings such as sheds, farmhouses and so on. This XML-files points to other XML-files such as the map’s parent XML-file (mapEU.xml) placeables.xml, vehicles.xml, items.xml, handTools.xml, described as following with code:

configFilename="maps/mapEU/mapEU.xml"
defaultVehiclesXMLFilename="maps/mapEU/config/vehicles.xml"
defaultHandToolsXMLFilename="maps/mapEU/config/handTools.xml"
defaultPlaceablesXMLFilename="maps/mapEU/config/placeables.xml"
defaultItemsXMLFilename="maps/mapEU/config/items.xml">

Store items may look like this with code:

<storeItems>
<storeItem xmlFilename="cultivatedBrush.xml" />
<storeItem xmlFilename="plowedBrush.xml" />
<storeItem xmlFilename="stubbleTillagedBrush.xml" />
<storeItem xmlFilename="ridgedBrush.xml" />
<storeItem xmlFilename="maps/mapEU/placeables/oilPlantUS.xml" />
    </storeItems>

For the first XMLs, the filename xmlFilename is pointing directly to the XML file (cultivatedBrush.xml) while the last one (oilPlantUS.xml) is the pathway to the XML-file where the pathway is maps/mapEU/placeables. The first line tells us that cultivatedBrush.xml is in the same folder as modDesc.xml while oilPlantUS.xml is elsewhere.

The modDesc also contains an icon or thumbnail picture of the mod, a logo, or an image with text. This icon/picture will show up in-game when the user has installed the mod and wants to use it in their game session—selecting from the in-game mod page when starting a new game or saving. The icon itself is made with an image editor such as Paint.net.

<iconFilename>icon.png</iconFilename>

The modDesc will also hold information about if the mod is supporting multiplayer or not, given by this line of code:

<multiplayer supported="true"/>

One of the more important lines of code this XML-file cointains is this one:

<modDesc descVersion="93">

1.3 maps/mapEU

This is the main folder for a map mod for Farming Simulator 2025. It may also have other names, such as map or different names. When GIANTS Editor generates a sample map for you, it will use default names for folders, such as maps, mapUS and mapAS. So let’s open up mapEU and look at what’s inside:

1.4 assets

So, assets are just one way I name my folders for what’s inside them. I use that naming since I associate it with game assets—which can almost be anything. But inside this folder, you’ll find children such as carDealerStorage, grainElevator, and residential—which are also asset folders. Inside these are i3D files (visual 3D/XML), XML files and texture files (.PNG/DDS). It also contains SHAPES-files (.shapes) which aren’t editable, but will always stay with the i3D-file where it use the same name as the i3D. Example: carDealerStorage.i3d and carDealerStorage.i3d.shapes.

1.5 config

It’s such an easy name to read that it shouldn’t be hard to tell what this folder contains. Here you’ll find many configuration files, such as:

Summary
  • aiSystem.xml – I have no information…
  • collectibles.xml – the golden apples spread around as collectibles for player rewards in cash.
  • colorGrading.xml – lighting configuration, daytime, to change the global lighting inside the 3D environment.
  • colorGradingNight.xml – lighting configuration, nighttime.
  • environment.xml – another lighting configuration file with many settings for weather conditions, daylight, nightlight, clouds and more.
  • farmlands.xml – a very important configuration file related to ownership of farmland (fields), it’s unique ID (like field 22) and the price of the field. This file also links to a densityMap called infoLayer_farmlands.png (or .grle) that is outside the config and in a different folder named data.
  • fieldGround. xml – another configuration file related to density maps.
  • fields.xml – I have no idea what this configuration file is for, other than that I think it’s related to the player’s default farm property fields.
  • footballField.xml – configuration file related to the football field on the Zielonka map. It has something to do with…football.
  • items.xml – this file doesn’t contain much information. It’s linked to defaultItemsXML in modDesc. For Farming Simulator 19 it was named defaultItems.xml several years ago, ShyWizard – YouTube.
  • pedestrianSystem.xml – does what it says with the opening tag <pedestrianSystem> for the NPCs walking around in the streets, type of pedestrian, gender, body, clothing and animation.
  • placeables.xml is one of the more critical files you’ll be coding for a mod map. It’s mainly for any kind of placeables, such as marketplaces, stores, production factories and production areas, farmhouses, gas stations, other filling stations, decoratives and so on.
  • storeItems.xml – it may sound similar to items.xml but is mainly for store/shop items that are related to buyable placeables. It means that when the player opens the store in-game or wants to construct something on the map, then this XML-file will give the pathway to the placeable’s file location, for example:
<storeItem xmlFilename="maps/mapEU/placeables/oilPlantUS.xml" />

When this line above doesn’t start with $data, it points to a file location inside the mod. That’s the only information this configuration file holds. Every single line of code points to other XMLs. $data should be considered a pathway tag to the game’s main folder called data. This is useful when you want to use the game’s default XML files, i3D files, and texture files (PNG/DDS). It’s all about file relations in a family tree. Or like components of a car engine. It’s about where the water flows…

  • trafficSystem.xml – configuration file for NPC vehicles – mainly the NPC traffic on the roads. It’s only to be associated with NPC vehicles and has nothing to do with the AI-helper system or anything like that.
  • vehicles.xml – a spesific configuration file related to farming vehicles that will spawn in at the player’s starting farm. It’s mainly the vehicle’s the player already own when starting a new game/save. It also holds information for vehicle’s attached tools such as sowing machine, seeders, cultivators and more.
  • weed.xml—This XML file points to an info layer related to weed: infoLayer_weed.png/.grle. GIANTS Editor usually does not generate this info layer when generating a new mod from a vanilla map (e.g., from mapEU). That file is way more important if you change the dimensions of a mod map.

    With some information, I’ll likely return to this section with more details later.

1.6 data

This folder is not to be associated with $data. $data always gives the pathway to folders inside the game’s default data directory, Farming Simulator 25 > data. So for this map mod, this folder contains layers, density maps and weight that is associated with ground textures painted on the terrain plane of the mod map. It’s as simple as information stored as pixels instead of code.

The map’s dem-file (dem.png) doesn’t look particularly interesting but is a visual image with grayscale colours where bright and dark colours represent the elevation of the terrain. The darker curved line in the image is somewhat the river of Zielonka.
This dem for Zielonka has a default dimension of 2049 x 2049 pixels.

When we look at the weight for grass below – grass01_weight.png, it shows way more visual information. All the grayscale colours and every pixel of this image instruct the game engine inside Farming Simulator to where grass will be rendered at ground level. Black and dotted black areas are where grass foliage cannot be rendered. The dimension for this weight is 2048 x 2048 pixels.

In a subfolder called masks, we’ll find GEN_roadsMask.png, which looks like a nice, minimalistic artwork but is rather to be considered as pixelated art for the game engine. I speculate that this one will tell the game engine where to not render snow at ground level during the winter season – especially for trafficked NPC roads.

You’ll also find .grle-files that can be converted into PNG-files using a GRLE-converter from GDN https://gdn.giants-software.com/downloads.php (requires user registration for downloading files). Please read the readme-text-file for using such tools.

1.7 placeables

As mentioned before, but from another perspective, placeables are to be considered as assets/objects that are for decoration or interaction. It is interactive objects such as production points (factories), small production points and so on. They may also have animated visual parts that are to be considered visuals. The player interacts with triggers in-game – like a floating icon above ground level that the player interacts with or a specially marked area.

In this folder for this sample mod, you’ll find files associated with the placeable oil plant—a placeable production factory inside the game that will be loaded from the mod itself.
The i3D-files goes by name where some may be treated as children:

  • oilPlantUS.i3d – parent
  • oilPlantUSProps.i3d – children
  • oilPlantUSSign.i3d – children

Then whe have .shapes-files (that we don’t edit or open since they aren’t containing XML-data). After that you’ll find texture files ending with PNG/DDS (.png/.dds):

  • oilPlantUS_diffuse.dds – the visual texture itself in colors.
  • oilPlantUS_height.dds – grayscale layer where one pixel represents its height (relative to its surface).
  • oilPlantUS_mask.dds – to be considered a layer mask related to in-game seasons.
  • oilPlantUS_normal.dds – normal layer usually doing somewhat the same as _height.
  • oilPlantUS_specular.dds – specular layer representing the reflection/lighting from the surface.

Some of these textures will have all five (diffuse, height, mask, normal, and specular), and some will not. The mask depends on whether the placeable object is an outdoor or indoor object (garage or interior chair). Rooftops of a building will very likely have a mask layer, and so on.
The dimensions of these textures are 2048 x 2048 and 1024 x 4096 pixels.
As you probably know, 1024 pixels will be multiplied by 2:

  • 1024 x 2 = 2048 (square, 1024 width, 1024 height)
  • 2048 x 2 = 4096 (square, 2048 width, 2048 height)

2048 x 2048 pixels is considered square, and 1024 x 4096 pixels are considered rectangular. This can come in handy when scaling textures.

In the next chapter, we will examine the relationship between various XML files related to the oilPlant and how to use placeables inside a mod map.