Files
Megalodon/megalodon.example.json
T
VeillaxandClaude Sonnet 5.5 0d2cb31abf
CI / test (push) Successful in 2m26s
Release / release (push) Successful in 2m36s
Megalodon: manage ARK servers over RCON from a web dashboard
Watches any number of ARK:SE servers (RCON for players and chat, the query
port for map, version and player cap), records joins, leaves, chat and an
audit trail, and keeps a player database across servers.

Control: save, broadcast, chat, whisper, kick, time of day, MOTD, wild dino
wipe, a raw console with history and macros, restarts with timed warnings and
a world save, optional start command and auto-start. Bans are kept by
Megalodon: timed, cluster-wide and re-enforced when the player returns.

Automation: schedules (every N or at times of day), Discord/ntfy/webhook
notifications, welcome message, chat word filter.

Access: viewer, moderator and admin roles, API tokens, Prometheus metrics.
cmd/fakeark simulates a server for trying it out.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 23:36:13 -06:00

31 lines
1.1 KiB
JSON

{
"listen": "127.0.0.1:8480",
"data_dir": "data",
"poll_seconds": 10,
"chat_seconds": 3,
"servers": [
{
"id": "island",
"name": "The Island",
"host": "192.168.1.20",
"rcon_port": 27020,
"password": "your ServerAdminPassword",
"query_port": 27015,
"start_command": "docker start ark-island",
"auto_start": false
}
],
"jobs": [
{ "id": "save", "name": "Save every 30 minutes", "enabled": true, "action": "save", "every": "30m" },
{ "id": "dawn", "name": "Daily restart", "enabled": true, "action": "restart", "at": ["04:30"], "countdown": "15m", "reason": "Daily restart" }
],
"macros": [
{ "name": "Noon", "commands": ["SetTimeOfDay 12:00:00"], "role": "moderator" }
],
"notify": [
{ "name": "Discord", "kind": "discord", "url": "https://discord.com/api/webhooks/…", "events": ["join", "offline", "online", "restart", "ban"] }
],
"welcome": { "enabled": true, "message": "Welcome to {server}, {name}! {players} online." },
"chat_filter": { "enabled": false, "words": [], "action": "warn", "strikes": 3, "ban_minutes": 60 }
}