LS22 Power Tools: Developer v1.0.0.0
LS22 Power Tools: Developer v1.0.0.0
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 possibility 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 losing 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 interpreter or in-game. This has several use 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 include 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 of how FS prints to the log it is only recommended for 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 an out-of-memory error.
If you need to print a deeper structure it is recommended to use ‘dtSaveTable’.