Perf Profiler V1.0


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 [PerfProfiler] 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 <ms> – spike threshold (default 40)
ppTop <n> – ranking length (default 35)
ppInterval <s> – 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.

VERSION
1.2.2.0


Author: Siemanek


Report bugs in the comments and help modders improve this mod. Always check the comments, you can find a solution.


Helpful Information: How to install FS25 mods | FS25 System Requiremnts | FS25 Modding Tutorial | Giants Editor for FS25 | How to Convert mods | FS25 Cheats

More Misc mods


About Farming Simulator 25 mods
Farming Simulator 25 supports game modding for PC, Xbox, or PS5. FS25 Mod may change your game from small to complete changes. You can create a Farming Simulator 25 mod file and share it with our community. When is a good time to try Farming Simulator 25 mods? We recommend playing a game with these FS25 mods after you finish the Farming Simulator 25 starting pack and are bored with the game basics. So it's time to try new machines, such as harvesters or tractors, which are not included in the basic game version.
As you already know, Farming Simulator 25 developers support mods installation, which will add more vehicles or lands to your game. Check our Best FS25 mods lists for PC, Mac, PS5 or Xbox Series. Just follow these simple steps: choose the LS25 mods category, download the mod for the Farming Simulator 2025 version, and install it into the mod folder. Remember, all Farming Simulator 25 Mods are free, and download as many as you want with no limits. We want to create one of the biggest Farming Simulator 25 Community and invite you to share FS25 mods with everyone.

Leave a Reply

Do you need help or to say thanks to the mod author? Just leave a comment below!