Description

FS22 Power Tools: Developer

Power Tools: Developer is a quality-of-life mod for modders that works well alongside Power Tools, Easy Dev Controls and Global Explorer.

An improved style of visualizing in-game tables, together with the posibility to save tables to well-formed Lua files, opens up a new way of understanding the FS object model!

# FEATURES:
– New console commands to restart the game (see below for details)
– Console command to print Lua table contents to either the console/log or a separate file
– Console command to clear the log file

# CONSOLE COMMANDS:
– dtRestart (or ‘r’): Restarts the current savegame using a soft restart (slightly faster than a hard reset)
– dtRestartHard (or ‘rr’): Performs a hard reset (this will ensure everyhing is unloaded from memory)
– dtTable: Prints the contents of a Lua table to the console/log
– dtSaveTable: Save the contents of a Lua table to a file (3-4x times faster than printing a table to the log)
– dtVisualizeTable [beta]: An improved way of printing tables to the log, both faster, more memory efficient and visually improved.
– dtClearLog (or ‘cls’): Clears the log.txt file to get a fresh log (especially useful when using the restart command)

# CAUTION!
The console commands to restart the game will do this -without- asking you to save your progress first. I.e. you risk loosing progress if you are not cautious!

# SAVING TABLES
The ‘dtSaveTable’ allows you to quickly dump a Lua table to disk in a well formatted Lua file, meaning you can load this file as a source file in the Lua interpeter or in-game. This has several uses cases, especially to understand the FS object model.

Optionally you can choose the depth of the output, especially important when saving top level tables (e.g. g_currentMission) that may contain many child tabled and/or large tables. Thanks to a well optimized code it is still possible to save g_currentMission with some 5-6 levels of depth before the Lua engine starts to leak memory and becomes unstable (the default depth is set to 2).

Example:
To dump the g_currentMission table to a file you could use the command ‘dtSaveTable g_currentMission currentMission.lua 1’. This would export the g_currentMission table to a file named ‘currentMission.lua’ and only including the direct descendants of g_currentMission.

Note: due to security restrictions, the generated .lua file will be stored in your ‘My GamesFarmingSimulator2022modSettingsFS22_000_DevTools’ folder.

# PRINTING TABLES
Similar to ‘dtSaveTable’, the command ‘dtTable’ can be used to output a table to the log. It takes the table name as mandatory parameter and the maxDepth as an optional parameter (with a default value of 2).

Important! Due to the nature how FS prints to the log it is only recommended to fairly small tables and/or shallow structures (depth should not exceed 2-3). E.g. printing g_currentMission to the console with a depth of 4 will make FS consume some 10-15GB of system ram and then crash in a out-of-memory error.

If you need to print a deeper structure it is recommended to use ‘dtSaveTable’.

Credits

w33zl