Alec's Telemetry is the all-in-one telemetry solution for Hytale mods: a runtime that runs in-game, a web portal for mod authors, a public mod stats list, and a server browser that helps players find verified servers by mod.
It started as crash reporting, but it now covers the broader support loop around a mod: attributed crashes, structured errors, lifecycle and performance events, anonymous usage stats, manual player issue reports, project access, ingest keys, and portal-based triage.
Open Telemetry Portal | Runtime Downloads | View Public Stats | Browse Servers | Join Discord
Alec's Telemetry works best as a pair:
Most mods should use the web portal. If you need to send data to your own backend, the same runtime can target custom endpoints instead.
Alec's Telemetry is meant to benefit everyone in the Hytale modding ecosystem.
For mod authors, Alec's Telemetry turns real-world support signals into a small, repeatable integration: ship a descriptor, add a portal project key, and let the runtime and portal handle the plumbing.
For server owners, it keeps telemetry visible and controllable. Crash capture, usage events, performance telemetry, stats, breadcrumbs, and reports are separate categories with runtime-level controls. Server owners can also list a public server after installing Alec's Telemetry, without creating a mod project.
For players and communities, it shortens the path from "something broke" to a real fix, while public stats can show whether a mod is actively used without exposing raw server or player data.
Most web portal integrations start with a descriptor at:
Server/Telemetry/project.json
If your manifest.json already has the right Group, Name, and Main,
Alec's Telemetry can infer the project id, display name, plugin identifier, and
package prefix.
This minimal descriptor connects your packaged mod or asset pack to a portal project. It does not enable any telemetry category by itself.
{
"hosted": {
"projectKey": "replace_with_your_public_project_key"
}
}
Portal projectKey values are publishable ingest keys. They are meant to ship
inside the descriptor; admin capabilities stay in the portal, not in the key.
Add only the telemetry categories your project actually supports. For example, stats-only projects add:
{
"hosted": {
"projectKey": "replace_with_your_public_project_key"
},
"telemetry": {
"stats": {
"supported": true
}
}
}
If you want your mod logo in the consent UI, package the texture under
Common/UI/Custom/... and set ui.iconTexturePath to that custom UI texture
path. Root mod icons such as icon-256.png are not used automatically.
You do not need to create a mod project to list your server in the ModStats server browser.
/telemetry server verify
The portal uses that claim heartbeat to bind the public server profile to the server. Server owners control whether the listing, player counts, mod list, and join information are public.
Use the standalone Alec's Telemetry mod when you want the normal dependency model. The runtime discovers enabled project descriptors from installed mods and coordinates uploads for those projects.
If your mod requires the standalone runtime, set Alechilles:Alec's Telemetry!
as a required dependency in your manifest.json and on distribution platforms
such as CurseForge, Modtale, and Modifold. Use an optional dependency only when
your mod still works without telemetry installed.
Use embedded mode when your mod needs to bundle the telemetry bootstrap directly. Embedded copies still participate in coordinator election, and the latest compatible runtime can serve all installed enabled projects.
The embeddable runtime artifact is published through the Telemetry downloads page and Maven-format repository:
https://telemetry.alecsmods.com/downloads
https://telemetry.alecsmods.com/maven/releases
alecs-telemetry
https://telemetry.alecsmods.com/maven/releases
com.alechilles
alecstelemetry-runtime
1.0.3
Gradle Kotlin DSL:
repositories {
maven {
url = uri("https://telemetry.alecsmods.com/maven/releases")
}
}
dependencies {
implementation("com.alechilles:alecstelemetry-runtime:1.0.3")
}
Use a custom endpoint when you want the runtime but not Alec's web portal.
{
"defaults": {
"destinationMode": "custom"
},
"customEndpoint": {
"url": "https://example.com/api/telemetry/crash",
"eventUrl": "https://example.com/api/telemetry/event"
}
}
Server owners can also override packaged destination settings at runtime under:
mods/Alechilles_Alec's Telemetry!/Settings/projects/.json
The web portal is the management surface for Alec's Telemetry projects and verified server listings.
Portal URL:
https://telemetry.alecsmods.com/portal
Public stats:
https://www.modstats.io/stats/alecs-telemetry
Server browser:
https://www.modstats.io/servers
Mods can stay descriptor-only, but richer integrations can call the runtime API for explicit events and custom player-report entry points.
TelemetryRuntimeApi api = TelemetryRuntimeLocator.tryGet();
if (api == null || !api.isEnabled()) {
return;
}
TelemetryProjectHandle project = api.findProject("example-consumer-mod");
if (project == null || !project.isEnabled()) {
return;
}
project.recordPerformanceWithContext(
"reload_config_duration",
durationMs,
null,
TelemetryEventContext.performance()
.subsystem("config")
.phase("reload")
.operation("apply")
.runtimeSide("server")
.detail("configFileCount", configFileCount)
.build()
);
The runtime ignores events that are disabled by consent, descriptor defaults, runtime overrides, sampling, or descriptor allowlists.
/telemetry status
/telemetry projects
/telemetry project
/telemetry consent
/telemetry report [project-id] [issue|suggestion]
/telemetry reports pending
/telemetry reports submitted
/telemetry server verify
/telemetry flush [project-id]
/telemetry test [detail]
The root command permission is telemetry.command.telemetry; subcommands use the
same stable telemetry.command.telemetry.* prefix.
For the full runtime, web portal, and ModStats.io policy, see Alec's Telemetry Privacy Policy.
This project is source-available under the Alec's Telemetry Runtime License.