▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
skTrace

skTrace

This project adds a profiler for Skript that shows which triggers and lines are eating your server's tick time, and turns the results into an interactive report you can share with one link.

Оцените первым
156
5
Все версииskTrace 0.1.3

skTrace 0.1.3

Release08.06.2026

Список изменений

[0.1.3] - 2026-06-08

  • Added a variable viewer in reports: how many global variables were created, updated, and deleted during the window, the most-written ones, and a writes-per-tick sparkline. It passively observes Skript's variable save path — the same path that writes variables.csv (or your database) — without touching how scripts run, and it never reads or scans your existing variables, so there is no cost from a large variables.csv. Global variables only (local {_temp} variables are never persisted, so cannot be tracked). On by default; opt out with variable-tracking: false.
  • Added the ability to open a report on the website by uploading its file. The .json report file is now a complete, self-contained report, so when an auto-upload is skipped or fails (for example HTTP 413, "report too large"), /sktrace report points you to the homepage where you can drop the .json in and get a shareable link. On busy servers the variable list is collapsed behind a "Show variables" dropdown so it never overwhelms the page.
  • Added a running count of reports shared, displayed on the website.
  • Added automatic config migration: updating skTrace now merges any new config.yml options into your existing file (keeping every setting you've changed), instead of leaving a stale config behind on update. skTrace also warns at startup if the experimental line-level-profiling is enabled, since it can disturb how some scripts run while profiling.
  • Added disk-save tracking: skTrace now detects Skript's periodic full rewrite of variables.csv (the save that runs about every 5 minutes) when it happens during a capture, and draws it as a band on the tick chart alongside roughly how long it took and the file size. While that rewrite runs it holds Skript's variable lock, so scripts setting variables stall until it finishes — this lets you see at a glance whether a save lines up with a lag spike. It watches the file on disk (never reads its contents) and only applies to flat-file storage; part of variable-tracking. Add --variable-values to /sktrace report (or clip) to also list, under each save, the exact variables it compacted with their latest values — masked like option secrets unless --show-secrets is also set.
  • Added an update notifier: skTrace checks Modrinth on startup (and every few hours after) for a newer release and, when one is out, tells operators — anyone who is op or has sktrace.use — with a clickable download link when they join, and logs it once to the console. It is a notification only and never downloads or installs anything; the check runs off the main thread. Turn it off with update-checker: false.
  • Fixed rolling-mode counts climbing for the whole session instead of the buffer window: the Calls and Total time on the Triggers, Functions, and Events tables (and the donut / "time by script" that derive from them), plus the Variables section's Total writes / Created / Updated / Deleted, now reflect only the retained rolling window. A long-running buffer previously showed counts in the millions. One-shot start/stop reports are unchanged (their window is the whole run), and the selected-range breakdown was already window-scoped. Max single-call time stays all-time (there are no per-call samples to window it by); the per-variable list and distinct-name count are still cumulative for now.
  • Fixed stale scripts lingering in reports: a report now leaves out triggers and functions whose script Skript no longer has loaded (deleted, disabled, or unloaded since they were hooked), checked fresh each time a report or clip is written. Previously a removed script could keep appearing — most visibly with the rolling buffer, which accumulates across clips without clearing. Fails safe: if the loaded-script set can't be read, nothing is hidden.
  • Fixed Skript events firing (and triggers running) twice after /sk reload while skTrace was profiling — on join running twice, on right click twice, and so on, until a full server restart. skTrace's per-trigger profiling replaces Skript's internal trigger objects with timing wrappers; because Skript unloads scripts by matching triggers on exact identity, it could no longer find its own triggers and never unregistered the shared event listener, so the reload left a stale listener behind and registered a second one. skTrace now restores Skript's originals the instant it sees a reload command — before the unload — so Skript's cleanup succeeds, then re-applies its hooks against the freshly loaded scripts. Even if that re-apply is mistimed on a very large reload, events can no longer double; the worst case is briefly reduced profiling coverage until the next reload.
  • Fixed placeholder and addon events all showing as "simple event" in reports (and merging into a single row). Skript represents many addon events — skript-placeholders, SkBee custom events, and similar — with a generic event that has no label of its own, so every one of them showed the same name. They now display the actual event line you wrote (for example on "%player_balance%"), so each is labeled distinctly. Ordinary events such as on join are unchanged.
  • Report UI: the Triggers, Functions, Events, and trigger-breakdown (selected-range) tables now show the top 5 rows with a "Show N more" dropdown for the rest (the kept rows follow whatever column you sort by), matching the Variables list. The breakdown's old fixed 40-row cutoff is replaced by this dropdown, so every trigger in a range is reachable.
  • Report UI: the tick chart's Y-axis switches to seconds for large values (e.g. 2.6s instead of 2556ms) so big spikes no longer clip the axis labels; "Show more" / "Show variables" toggles no longer render as an empty button when there's nothing to expand.

Файлы

Sktrace-0.1.3.jar(173.00 KiB)
Основной
Скачать

Метаданные

Канал релиза

Release

Номер версии

0.1.3

Загрузчики

Paper
Purpur

Версии игры

1.20–26.1.2

Загрузок

18

Дата публикации

08.06.2026

Загрузил

ID версии

Главная