Fivemanage Logger - Hytale Server Logging & Analytics
The ultimate logging solution for Hytale dedicated servers. Track player activity, monitor server events, and send logs to Fivemanage, Grafana Loki, or local files.
Why Use Fivemanage Logger?
- Track Everything — Player joins, disconnects, block breaks, and custom events
- Multiple Backends — Send logs to Fivemanage, Grafana Loki, or local files
- Built for Performance — Async batched logging with zero impact on server TPS
- Easy Setup — Drop-in JAR, simple JSON config, works out of the box
- Open Source — MIT licensed, customize to your needs
Features
| Feature | Description |
|---|---|
| Multi-Provider Support | Fivemanage, Grafana Loki, file-based logging |
| Batched Logging | Configurable buffer size and flush intervals |
| Player Event Tracking | Automatic logging of connect, disconnect, session durations |
| Death Events | Track when players are killed and kill other players |
| Dual Logging | Write to disk while sending to remote providers |
| Rich Metadata | Attach custom metadata to all log entries |
Installation
- Download the latest release from Releases
- Place the
.jarfile in your Hytale server'smodsdirectory - Create a config file at
mods/Fivemanage_Logger/config.json
Quick Start
Fivemanage Cloud
{
"LogProvider": {
"Provider": "fivemanage",
"ApiKey": "your-fivemanage-api-key",
"WriteToDisk": false,
"EnableBatching": true,
"BufferSize": 10,
"FlushIntervalMs": 5000
},
"PlayerEvents": {
"Dataset": "player-events",
"Enabled": true
}
}
Get your API key from fivemanage.com.
Grafana Loki / Grafana Cloud
{
"LogProvider": {
"Provider": "grafana-loki",
"Endpoint": "https://logs-prod-us-central1.grafana.net",
"Username": "your-grafana-username",
"Password": "your-grafana-api-key",
"WriteToDisk": false,
"EnableBatching": true,
"BufferSize": 10,
"FlushIntervalMs": 5000
},
"PlayerEvents": {
"Dataset": "player-events",
"Enabled": true
}
}
Configuration Reference
Log Provider Options
| Option | Type | Description |
|---|---|---|
Provider |
string | fivemanage, grafana-loki, or file |
ApiKey |
string | API key for Fivemanage |
Endpoint |
string | Loki push endpoint URL |
Username |
string | Basic auth username (Loki) |
Password |
string | Basic auth password (Loki) |
WriteToDisk |
boolean | Also write logs to local files |
EnableBatching |
boolean | Buffer logs before sending |
BufferSize |
integer | Logs to buffer before flush (default: 10) |
FlushIntervalMs |
integer | Max time before flush in ms (default: 5000) |
Player Events Options
| Option | Type | Description |
|---|---|---|
Dataset |
string | Dataset/label name for player events |
Enabled |
boolean | Enable automatic player event logging |
Usage in Your Hytale Mod
Use the FivemanageLogger API to send custom logs from your own Hytale mods:
import org.fivemanage.FivemanageLogger;
import java.util.Map;
// Log with metadata
Map<String, Object> metadata = Map.of(
"player", "Steve",
"location", "x:100, y:64, z:200"
);
FivemanageLogger.info("my-dataset", "Player spawned", metadata);
FivemanageLogger.warn("my-dataset", "Low health warning", metadata);
FivemanageLogger.error("my-dataset", "Something went wrong", metadata);
FivemanageLogger.debug("my-dataset", "Debug info", metadata);
Session duration
The SDK will automatically store each player when they connect and record their session. Once they disconnect, we send the duration to your selected provider.
Player Events
When PlayerEvents.Enabled is true, these events are logged automatically:
| Event | Description |
|---|---|
| Player Connect | When a player connects to the server |
| Player Ready | When a player is fully loaded and ready |
| Player Disconnect | When a player leaves the server |
Death Events
The Death System automatically logs detailed information when a player dies. These events can help track PvP deaths, NPC kills, causes of death, and more.
Death Event Metadata
When a player dies, the following information is captured (when applicable):
| Field | Type | Description |
|---|---|---|
playerName |
string | Name of the player who died |
playerId |
string | UUID of the player who died |
killerName |
string | Name of the killer (if killed by another player) |
killerId |
string | UUID of the killer (if killed by another player) |
killerType |
string | "player" or "npc" depending on killer entity |
killedBy |
string | NPC role or type name if killed by an NPC |
deathAmount |
number | Amount of damage taken before death |
deathCauseId |
string | Cause ID (e.g., "physical", "fire", etc.) |
Example Death Event
{
"playerName": "Steve",
"playerId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"killerName": "Alex",
"killerId": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
"killerType": "player",
"deathAmount": 18,
"deathCauseId": "Physical"
}
If killed by an NPC:
{
"playerName": "Steve",
"playerId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"killedBy": "Skeleton_Incandescent_Fighter",
"killerType": "npc",
"deathAmount": 6,
"deathCauseId": "Physical"
}
Note: Some fields may be omitted depending on the specific death circumstances (e.g., no
killerNameif there was no killer).
These logs appear under the dataset and label you configure for player events (e.g., player.died). You can use this data for analytics, kill feeds, PvP stats, auditing, or integrations with your logging/monitoring stack.
Use Cases
- Server Administration — Monitor player activity and server health
- Anti-Cheat Logging — Track suspicious player behavior
- Analytics Dashboard — Build dashboards with Grafana
- Audit Trails — Keep records of all server events
- Debugging — Track down issues in your Hytale mods
Related
Creds
Support
- Website: fivemanage.com
- Email: [email protected]
License
MIT
