Documentation

Everything you need to install the agent, drive the dashboard, and talk to the API.

Getting started

Korvyx is hosting-agnostic. You run your FiveM server wherever you already do, install the Korvyx agent on the same machine, and it streams metrics, console logs, and player events to the platform over an outbound WebSocket. No inbound ports.

  1. Sign in at /login with Discord. A Korvyx account is created automatically on first sign-in.
  2. Add a server from your dashboard. You'll get an agent token that authenticates a single FiveM server.
  3. Install the agent (see below). Within seconds the detail page flips to the live dashboard.

Installing the agent

The agent is a small Node process that runs alongside your FiveM server. It reads the FiveM HTTP info endpoint, tails the console log, and pushes events to the platform over a single outbound WebSocket connection.

Config file

Drop the JSON you copied from the server detail page into agent.config.json next to the agent binary. The required fields are:

  • serverId — the UUID of your server in Korvyx.
  • agentToken — the fvm_... token shown once at creation. Rotate it from the dashboard if it leaks.
  • platformUrl — typically wss://api.korvyx.dev/agent/ws.
  • fiveMServerPath — absolute path to your FiveM server directory.
  • rconHost, rconPort — usually 127.0.0.1:30120.

Run it

AGENT_CONFIG_PATH=./agent.config.json node dist/index.js

Testing without FiveM

If you want to verify everything end-to-end before connecting a real server, use the mock agent:

pnpm --filter @korvyx/agent mock <agentToken>

It pumps synthetic metrics, console lines, and player events on a loop so you can watch the dashboard come alive.

Using the dashboard

Live overview

Once the agent is connected, the server detail page splits into three tabs:

  • Overview — player count, CPU, memory, server FPS with last-hour charts.
  • Console — live tail, level filter, follow-tail toggle.
  • Players — active sessions with identifiers and join time.

Analytics

Analytics aggregates player sessions across configurable time windows: DAU, peak hours, day-of-week patterns, session length distribution, top players by playtime. The retention window scales with your tier.

Team accounts

Each server has a team. Members get read access to live data and analytics; the owner controls token rotation, deletion, and team membership. Invite by Discord ID or email of an existing Korvyx user.

AI Copilot

The Copilot is a Claude-powered assistant that reads your server's recent metrics, console errors, and resource events as context for every chat. Ask it to diagnose lag, write Lua, or audit security — it answers with the specific data your server is producing right now.

Pro tier: 100 queries / month. Max tier: unlimited (with reasonable rate limits).

API reference

Available on the MAX tier. Generate keys at Settings → API keys. Authenticate as:

curl https://api.korvyx.dev/servers \
  -H "Authorization: Bearer kvx_..."

Common endpoints

  • GET /servers — list your servers (owned + team).
  • GET /servers/:id — single server with status.
  • GET /servers/:id/metrics?minutes=60 — recent metrics samples.
  • GET /servers/:id/console?limit=200 — recent console lines.
  • GET /servers/:id/players — active player sessions.
  • POST /servers/:id/rotate-token — owner only; rotates the agent token.

The API returns JSON and respects tier limits the same way the dashboard does. A 429 comes with a retry-after header.

Troubleshooting

Agent shows "Waiting for agent"

  • Confirm the agent is running and the platformUrl matches your dashboard's host.
  • Make sure outbound WebSocket traffic is allowed from your FiveM box.
  • Check the agent logs — invalid tokens are logged with status code 4003.

The Copilot says "not configured"

Make sure ANTHROPIC_API_KEY is set on the web service. For self-hosting, point COPILOT_MODEL at a different Claude model if you prefer something other than claude-sonnet-4-6.

Billing returns 503

Stripe is optional. If you skip the Stripe keys, upgrade buttons disable cleanly but the rest of the platform works fine.

Need a hand?

Open an issue or DM us — we're a small team and we read everything.