fs25-vehicle-mod
SKILL.md
FS25 Vehicle Modding
Overview
Guide for creating and configuring FS25 vehicle mods via vehicle.xml and associated specializations.
When to Use
- Creating a new vehicle mod
- Configuring vehicle XML (wheels, joints, animations, lights, sounds)
- Understanding specialization configuration
- Debugging vehicle behavior
Vehicle XML Structure
<vehicle type="myVehicleType">
<annotation />
<base>
<typeDesc>l10n_typeDesc_car</typeDesc>
<speedLimit value="50" />
</base>
<components>
<component node="0>" mass="2000" centerOfMass="0 0.8 0" />
<component node="0>1" mass="500" />
<joint component1="0" component2="1" node="jointNode"
rotLimit="0 0 0" transLimit="0 0 0" />
</components>
<i3dMappings>
<i3dMapping id="myNode" node="0>0|1" />
</i3dMappings>
<motorized>
<motor torqueCurve="..." />
</motorized>
<wheels>
<wheel node="wheelNode" driveNode="wheelDriveNode"
radius="0.55" width="0.4" mass="50"
isLeft="true" hasTireTracks="true"
repr="wheelRepr" />
</wheels>
<attacherJoints>
<attacherJoint node="attacherNode" jointType="implement"
upperTransLimit="0 0.1 0" lowerTransLimit="0 -0.1 0" />
</attacherJoints>
<attachable>
<inputAttacherJoint node="inputNode" jointType="implement" />
</attachable>
</vehicle>
Key Specializations
Movement & Physics
| Specialization | Purpose |
|---|---|
Motorized |
Engine, transmission, fuel |
Drivable |
Steering, brakes, cruise control |
Wheels |
Wheel configuration, physics |
ArticulatedAxis |
Articulated steering |
CCTDrivable |
Character controller movement |
Attachments
| Specialization | Purpose |
|---|---|
AttacherJoints |
Defines where implements attach TO this vehicle |
Attachable |
Defines how this implement attaches to vehicles |
ConnectionHoses |
Hydraulic/electric hose connections |
PowerConsumer |
PTO power requirements |
Animation & Visuals
| Specialization | Purpose |
|---|---|
AnimatedVehicle |
Animation clips and sequences |
Cylindered |
movingTools (user-controlled) and movingParts (IK-driven) |
Lights |
Light configuration and states |
Dashboard |
Dashboard gauges and indicators |
Wipers |
Windshield wipers |
Work Functions
| Specialization | Purpose |
|---|---|
FillUnit |
Fill volumes (fuel, grain, etc.) |
Dischargeable |
Unloading/discharge |
Combine |
Harvesting |
Plow |
Plowing |
SowingMachine |
Seeding |
Sprayer |
Spraying/fertilizing |
FrontLoaderAttacher |
Front loader arm |
Components & Joints
Components are rigid bodies connected by joints:
component1/component2: 0-based indices into root-level<component>nodesrotLimit: rotation limits in radians (x y z)transLimit: translation limits in meters (x y z)rotMinLimit/rotMaxLimit: asymmetric rotation limits
movingTools vs movingParts
| movingTool | movingPart | |
|---|---|---|
| Control | Player-controlled (input) | Automatic (IK-driven) |
| Config | rotationAxis, rotSpeed, rotMin/rotMax |
referencePoint, limitedAxis |
| Use case | Boom arm, bucket tilt | Hydraulic pistons, linkage arms |
i3dMappings
Maps friendly names to I3D node paths:
<i3dMappings>
<i3dMapping id="boom" node="0>0|2|0" />
</i3dMappings>
Path format: rootIndex>child|child|child (pipe-separated child indices)
XSD Schemas
The game ships XML Schema files (in the game's shared/xml/schema/ directory) that define every valid attribute and element. Use these as the authoritative reference:
| Schema | Covers |
|---|---|
shared/xml/schema/vehicle.xsd |
Full vehicle XML structure |
shared/xml/schema/wheel.xsd |
Wheel configuration |
shared/xml/schema/connectionHoses.xsd |
Hose connections |
shared/xml/schema/attacherJointTopArm.xsd |
Top arm setup |
shared/xml/schema/vehicle_sounds.xsd |
Sound configuration |
shared/xml/schema/conditionalAnimation.xsd |
Conditional animations |
shared/xml/schema/crawler.xsd |
Tracked vehicle crawlers |
shared/xml/schema/powerTakeOff.xsd |
PTO connections |
shared/xml/schema/dashboardCompounds.xsd |
Dashboard elements |
When unsure about valid attributes or value ranges, read the XSD — it's more reliable than guessing from examples.
Common Workflow
- Check the XSD schema for valid attributes and structure
- Search
dataS/scripts/vehicles/specializations/for the relevant specialization source - Check how base game vehicles configure that specialization in their XML
- Base game vehicle XMLs are in
dataS/data/vehicles/ - Mirror the same XML structure in your mod
Weekly Installs
4
Repository
paint-a-farm/fs25-skillsGitHub Stars
10
First Seen
Feb 27, 2026
Security Audits
Installed on
opencode4
gemini-cli4
github-copilot4
codex4
windsurf4
kimi-cli4