1 / 3
Perf Profiler V1.0
This is early development mod, not a standalone software
Low or unstable FPS with a big mod list? Before you start deleting mods at random, measure.
Perf Profiler times the game’s main Lua thread from the inside and writes a clear ranking to log.txt every 20 seconds:
– Which MOD costs the most milliseconds per frame – Which FUNCTION inside it (hooks, listeners, vehicle/placeable specializations, game systems) – How much of the frame is Lua at all and how much is the engine (render, physics, loading) – Every SPIKE (frame over 40 ms) with its top contributors, marked as LUA or ENGINE
Real example from a 2,489-mod savegame: scripts were only ~4 ms of a ~19 ms frame. The expensive part was somewhere else, and the profiler showed that in 20 minutes instead of a week of trial and error.
WHAT IT MEASURES – hook: functions attached by mods (Utils.appendedFunction / prependedFunction / overwrittenFunction) – ovr: functions overwritten by specializations, by name – mod: update()/draw() of mod event listeners – spec: onUpdate / onUpdateTick / onPostUpdate / onDraw of vehicle, placeable and hand-tool specializations – veh: / plc: total update of each vehicle and placeable – sys: game systems (environment, AI, traffic, water, economy…) – frame: total Lua per frame – the scripts vs engine split Every entry shows “self” time (no double counting) and “incl” time (with everything nested).
HOW TO USE 1. Put AAA_PerfProfiler.zip into your mods folder and activate it in the savegame. Keep the name – “AAA_” makes it load first, which it needs to catch other mods’ hooks. 2. Play normally. The first 20 seconds after loading are skipped. 3. Read the lines in log.txt (Documents/My Games/FarmingSimulator2025/log.txt).
CONSOLE COMMANDS (~) ppReport – write a report now ppReset – reset statistics (measure night, rain, fieldwork separately) ppStart / ppStop – resume / pause measuring ppSpike – spike threshold (default 40) ppTop – ranking length (default 35) ppInterval – report interval (default 20)
GOOD TO KNOW – This is a testing tool. Measuring costs about 0.5 ms per frame, so remove it when you are done. – It changes nothing in your savegame or gameplay. It only times functions and logs the results. – Measures main-thread Lua. The engine side (render, physics) shows up as “engine” time and ENGINE spikes. – Multiplayer: supported. Like any mod, every player needs the same file if the host has it active. – Full documentation (README.md) with an explanation of every log line is inside the zip.
To start download click the filename. To open archive files use one of these programs: WinRAR, 7-Zip, WinZip. Some mod archives may need to be extracted before the mods will work.
Low or unstable FPS with a big mod list? Before you start deleting mods at random, measure.
Perf Profiler times the game’s main Lua thread from the inside and writes a clear ranking to log.txt every 20 seconds:
– Which MOD costs the most milliseconds per frame – Which FUNCTION inside it (hooks, listeners, vehicle/placeable specializations, game systems) – How much of the frame is Lua at all and how much is the engine (render, physics, loading) – Every SPIKE (frame over 40 ms) with its top contributors, marked as LUA or ENGINE
Real example from a 2,489-mod savegame: scripts were only ~4 ms of a ~19 ms frame. The expensive part was somewhere else, and the profiler showed that in 20 minutes instead of a week of trial and error.
WHAT IT MEASURES – hook: functions attached by mods (Utils.appendedFunction / prependedFunction / overwrittenFunction) – ovr: functions overwritten by specializations, by name – mod: update()/draw() of mod event listeners – spec: onUpdate / onUpdateTick / onPostUpdate / onDraw of vehicle, placeable and hand-tool specializations – veh: / plc: total update of each vehicle and placeable – sys: game systems (environment, AI, traffic, water, economy…) – frame: total Lua per frame – the scripts vs engine split Every entry shows “self” time (no double counting) and “incl” time (with everything nested).
HOW TO USE 1. Put AAA_PerfProfiler.zip into your mods folder and activate it in the savegame. Keep the name – “AAA_” makes it load first, which it needs to catch other mods’ hooks. 2. Play normally. The first 20 seconds after loading are skipped. 3. Read the lines in log.txt (Documents/My Games/FarmingSimulator2025/log.txt).
CONSOLE COMMANDS (~) ppReport – write a report now ppReset – reset statistics (measure night, rain, fieldwork separately) ppStart / ppStop – resume / pause measuring ppSpike – spike threshold (default 40) ppTop – ranking length (default 35) ppInterval – report interval (default 20)
GOOD TO KNOW – This is a testing tool. Measuring costs about 0.5 ms per frame, so remove it when you are done. – It changes nothing in your savegame or gameplay. It only times functions and logs the results. – Measures main-thread Lua. The engine side (render, physics) shows up as “engine” time and ENGINE spikes. – Multiplayer: supported. Like any mod, every player needs the same file if the host has it active. – Full documentation (README.md) with an explanation of every log line is inside the zip.
To start download click the filename. To open archive files use one of these programs: WinRAR, 7-Zip, WinZip. Some mod archives may need to be extracted before the mods will work.
Download Links
Report a problem
Perf Profiler V1.0
Advertisement
Remove ads