How to Establish Object Hierarchy in Your Farming Simulator Mod

By Jason van Gumster, Christian Ammann

From working with the Scenegraph in GIANTS Editor, you know the importance of having a clear object hierarchy with your Farming Simulator mod. That means objects in your model should be organized via parent-child relationships.

For example, if you’re working on a vehicle mod, then all of the various parts of your vehicle — the wheels, windows, lights, cameras, and so forth — should be the child of a single, selectable object with the name of your vehicle.

Getting it right in your 3D DCC is important because of a direct correlation between the hierarchy you set up and the one that you end up with in GIANTS Editor. Here, the Outliner is in Blender for a properly configured model and the resulting Scenegraph is in GIANTS Editor after exporting.


When setting up your hierarchy, keep in mind these basic best practices:

  • Use empties as makeshift transform groups. Blender’s grouping feature is different from the one GIANTS Editor uses. It doesn’t translate nicely upon export. Instead, when you want a transform group, add an empty object in Blender and the parent of all the objects you want in that group (select the child objects, select your empty, and press Ctrl+P). The I3D exporter will correctly interpret this as a transform group.

  • Name everything. All of the names you use in Blender are used when exported to I3D. You can easily get confused if you look in the Scenegraph and see all of your objects named some variation of Cube.023. Furthermore, stick with conventions used in GIANTS Editor. Basic conventions are as follows:

    • Main name is in camel case (such as frontLightSpot).

    • Use _col as a suffix for collision objects (for instance, wheelLeftBack_col).

    • Use _vis as a suffix for visualization objects, such as the textured mesh of your model or your light cones, used in-game (for instance, myMod_vis).

    • Numerically prefix your primary mesh elements, the immediate children of your parent object, as XX, where XX is some number (for example _05_indoorCamera).

  • The parent object for your vehicle should be a low-resolution mesh. Use something that’s 20–40 triangles, which works as a rough collision mesh. Let the high-resolution, textured visualization mesh be an unnumbered child of this mesh. It should share the same name, but have the _vis suffix.