Resource Monitor
Find out which resources cost you frame time, using FXServer’s own profiler.
How it works
Section titled “How it works”This is an on-demand capture, not a live readout. Open the Monitor tab in the bottom panel and click Profiler Snapshot. Boltise tells the running server to record 300 ticks — roughly five seconds at 60fps — then saves and parses the trace. The whole round trip takes about nine seconds.
You get a table of every resource that ran during the capture:
| Column | Meaning |
|---|---|
| Total ms | Script time the resource consumed across the whole capture |
| Avg ms | Its average per tick |
| Worst tick | Its single most expensive tick |
| Calls | How many times it ran |
| % of total | Its share of all script time in the capture |
Above the table is a summary of the capture as a whole: total frames, average script time per tick, worst and 95th-percentile frame times, how many ticks ran heavy, and a hitch count.
Requirements
Section titled “Requirements”The profiler only works against a server Boltise itself started, because it reads the trace file the server writes to disk. If you are attached to a remote server, the snapshot button reports that there is nothing to profile.
Only one capture can run at a time — two overlapping recordings interleave into a trace that describes neither.
Snapshot history
Section titled “Snapshot history”Every capture is kept in .boltise/profiles/ inside your server-data folder.
Profiler History lists them and reloads any one, so you can record before and
after a change and compare the two.
Finding bottlenecks
Section titled “Finding bottlenecks”- Start your server from Boltise and let it reach a steady state — ideally with players on, since an empty server profiles nothing interesting.
- Open the Monitor tab and click Profiler Snapshot.
- Sort by % of total to find the resources that dominate, then by worst tick to find the ones that stutter.
A resource with high total time is a steady cost; a resource with a low total but a huge worst tick is what players feel as a freeze.
Common culprits:
- loops without a proper
Wait() - heavy database queries running every frame
- work done on every tick that only needs to happen on an event
You can also ask the AI panel to take a snapshot and read it for you — it has the same capture available as a tool and will name the offenders directly.
Help us improve these guides
Allow anonymous page and key-link counts? We use PostHog in the US. No session recording. You can change this below at any time.