ModProfiler logo

ModProfiler

Just a simple INGAME GUI driven profiler for easy viewing of what is causing server instability. TPS, CPU, TICK checks, all stored and loged.
item image

screenshot.png

Description

AipocsHouse ModProfiler

A low-overhead statistical CPU and allocation profiler for Hytale Java mods.

ModProfiler samples JVM thread activity every 100 ms, attributes visible stack frames to loaded mod JARs, and stores statistics in a temporary in-memory SQLite database. No JSON statistics files are written, and all collected data is discarded when the server stops.

Features

  • In-game profiler GUI with automatic two-second refresh
  • Full-height scrolling table for loaded non-Hytale Java mods
  • Sorting by one-minute CPU, then one-minute allocation rate, then tick CPU
  • CPU averages for the last 10 seconds, one minute, and five minutes
  • Peak sampled CPU
  • Allocation rate per second
  • World/tick-thread CPU attribution
  • Current and peak sampled thread counts per mod
  • Sample count and confidence rating
  • Loaded class count
  • Hottest sampled method
  • Server TPS and MSPT
  • JVM heap, garbage collection, and live thread statistics
  • Whole-process CPU and profiler-overhead reporting
  • Plain-English wrapped mouseover help for every metric
  • Console top-mod report once per minute

Commands

  • /profiler — open the profiler GUI
  • /modprofiler — alias for /profiler
  • /profiler reset — clear collected statistics
  • /profiler rescan — rebuild loaded-mod class ownership

The /modprofiler alias also supports the reset and rescan actions.

Permission

aipocshouse.modprofiler.use

Hytale server operators receive access through the default permission system. HyperPerms and LuckPerms/LuckyPerms can grant the same node to an administrator group because the command uses Hytale's central PermissionHolder check.

Understanding the numbers

  • CPU percentages use one-core utilization: 100% means one CPU core was fully occupied.
  • ALLOC / SEC is the rate at which a mod creates Java objects. It is memory traffic, not retained RAM ownership.
  • THREADS N/P means distinct sampled threads now and the highest observed count. Shared Hytale or executor threads can appear for multiple mods.
  • Sampling is statistical. Very short work between samples can be missed.
  • Shared-library frames can be attributed to the nearest visible owning mod frame.

A normal Hytale plugin cannot reliably measure retained heap ownership, every thrown exception, or exact per-mod file/network I/O. Those measurements require deeper JVM-agent instrumentation and substantially more overhead.

The ModProfiler Team

profile avatar
Owner
  • 7
    Followers
  • 9
    Projects
  • 19.3K
    Downloads