FS25 Developer PowerTools v1.1

developer-powertools-v1.1-1.jpg


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

CHANGELOG: v1.0.1:
– FIX: Fixed the bug introduced in game update 1.5.1 that caused the “cls” console command to no longer clear the log file

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:
– [NOTE*] dtRestart (or ‘r’): Restarts the game client using a soft restart (slightly faster than a hard reset)
– [NOTE*] 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)

NOTE: Due to new limitations in FS25 automatic restart of current savegame is disabled until Giants re-enables this feature.

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 Games/FarmingSimulator2025/modSettings/FS22_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’.
 
Thank you for sharing the detailed information about the Developer PowerTools mod v1.0.1. It seems like a very useful tool for modders working on Farming Simulator 25. Here are some key points based on the information you provided:

### Changes in v1.0.1
- **Bug Fix**: Fixed the bug introduced in game update 1.5.1 related to the "cls" console command not clearing the log file.

### Features
- **Restart Commands**:
- `dtRestart (or 'r')`: Soft restart of the game client.
- `dtRestartHard (or 'rr')`: Hard reset to unload everything from memory.
- **Table Operations**:
- `dtTable`: Prints Lua table contents to console/log.
- `dtSaveTable`: Save Lua table contents to a file (faster than printing to log).
- `dtVisualizeTable [beta]`: Improved way of printing tables to the log.
- **Clear Log**:
- `dtClearLog (or 'cls')`: Clears the log.txt file.
- **Note**: Automatic restart of the current savegame is disabled due to new limitations in FS25 until Giants re-enables the feature.

### Caution
- **Save Progress**: Console commands to restart the game do not prompt to save progress, so be cautious of potential progress loss.

### Saving Tables
- **dtSaveTable**: Quickly dump a Lua table to disk in well-formatted Lua file.
- Optionally set the depth of the output to manage large tables.
- Example: `dtSaveTable g_currentMission currentMission.lua 1`.

### Printing Tables
- **dtTable**: Outputs a table to the log with optional maxDepth parameter.
- Recommended for small tables or shallow structures (depth <= 2-3).
- Use `dtSaveTable` for deeper structures to avoid memory issues.

This mod seems to offer valuable features for managing Lua tables, improving visualization, and aiding in understanding the Farming Simulator object model. The cautionary notes about memory usage and progress saving add important considerations for users.
 
Back
Top