Table of Contents

External Tools

Every modder has individual preferences which programs he likes to use for modding. Here are some recommendations and hints on tools that are often used in the community. The list below is not exclusive, there are many other compatible programs.

Scripting

The various text based resouce types can be edited with almost any text editor. This reaches from Microsoft Editor to integrated development environments like Eclipse. Two commonly used text editors are:

VS Code Setup

To ease development of mods with VS Code, it is recommended to follow this setup guide.

Install Teal & Extensions

TEAL is an augmentation for LUA that provides additional features. When using TEAL, autocompletion and compile time type checking is possible also in LUA. Download it from the official repository.

There are several helpful extensions for autocompletion and syntax highlighting:

After installing the Teal extension, go to the settings of the extension and configure the path to the Teal executable.

Preparing Development Workspace

To create the development workspace, start the Model Editor once. It creates the following files in the Staging Area:

  • tlconfig.lua
  • workspace_def.lua
  • .vscode/extensions.json

If this did not work, you can manually copy them from <tf3_install_folder>/dev-workspace and adjust tlconfig.lua to have proper folders set.

To test the workspace setup, create an example script in your mod called example.tl and paste

local function myFirstTealFunction()
	log.warning("Hello World!")
end

You should be able to navigate to the definition of the warning function via CTRL and click or F12 or right click → Go To Definition.

Adding your own Teal definitions

To add your own definitions, create *.d.tl files in your mod and add the folder of your mod in the tlconfig.lua and workspace_def.tl.

As a trial run, you may

  1. uncomment – "example_mod_1" from both: tlconfig.lua and workspace_def.tl
  2. add a file called example_mod_1/example_mod_1.d.tl with the following content:
global record MyFirstRecord
	myFirstField : string
end

Now you should be able to use it in the example.tl:

local function myFirstTealFunction(aRecord : MyFirstRecord)
	log.warning("Hello World : " .. aRecord.myFirstField)
end

3D Modelling

Like with the text editors, there are plenty of available software solutions for 3D modelling.

As the payware tools have very expensive licenses, it's not recommended to invest in them if you are not an advanced user. Students may get a discount or free license though as long as they do not use the software for professional and commercial projects.

There are other tools that are used regularily. These have some problems regarding the compatibility to Transport Fever 3 that are described below:

Texturing

Beside the modelling tools, there are various texturing tools. These have different advantages and disadvantages and many artists stick to tools they are familiar with.

DDS Export

To export DDS files, a plugin or standalone program might be needed. Here is a list of common ones. Be aware that their internal compression algorithms may differ resulting in slightly different output.

Custom Tools for Transport Fever 3

There are fanmade tools available that support the development of mods for Transport Fever 3. Some common ones are: