GSGameStack
Built for game servers · SQL-backed · TypeScript

The infrastructure platform for game servers

Store, deliver, and monitor your game server assets and activity. Upload screenshots, ingest structured logs, and serve files from the edge — all backed by PostgreSQL, in a few lines of code.

FiveM · server.lua
-- Upload a screenshot and log the event
local url = exports.gamestack:UploadScreenshot(source)
exports.gamestack:LogMessage("info", "Screenshot captured", {
    playerSource = source,
    url = url,
    action = "screenshot"
})

Use Cases

Built for the things server owners actually do

Player screenshots, event logs, loading screens — the stuff every server needs, handled by one platform.

Storage

Player Screenshots & Media

Upload screenshots, clips, and audio straight from your server scripts. Get a CDN URL back instantly — no self-hosted image server to babysit.

  • Works with screenshot-basic and popular upload scripts
  • Upload images, video, and audio via a simple API token
  • Embed media directly in Discord webhooks and reports
Logs

Server Event Logging

Send structured logs from your game server with player metadata. Query by license, Discord ID, or time window to settle reports in minutes.

  • Filter logs by player, event, or time range
  • 90-day retention with full SQL query support
  • Pipe critical events to Discord webhooks
CDN

Loading Screens & Assets

Host loading screens, MLO previews, and server assets. Deliver from edge locations with flat bandwidth pricing.

  • Public CDN URLs for every uploaded file
  • Organize assets with metadata tags
  • Serve files with long-lived cache headers

Features

The details that matter when you run a server

SQL-backed storage & logs

Every file, log entry, and API key lives in PostgreSQL. Query your data with full SQL — no opaque NoSQL blobs.

Presigned uploads from game clients

Let clients push screenshots directly to storage with short-lived upload URLs. Your API token never leaves the server.

Filter logs by player, event, or time

Pull up every event tied to a license or Discord ID, narrow it to a time window, and settle player reports in minutes.

Works with ESX, QBCore & ox_lib

Drop-in resources for the frameworks you already run. Install the resource, set your token, done.

FiveM, Hytale & Roblox SDKs

Native SDKs and resources for the platforms you build on, with examples for uploads and logging on each.

Discord webhooks built in

Pipe uploaded media and critical log events straight into your staff channels without writing glue code.

Developer Experience

Get up and running in minutes

Integrate GameStack with just a few lines of code. SDKs available for Lua, TypeScript, and more. All data stored in PostgreSQL for full queryability.

Log Ingestion — send structured logs with metadata
Screenshot Upload — capture and upload from in-game
REST API — full TypeScript SDK for Node.js servers

TypeScript · Node SDK

import { GameStack } from "@gamestack/sdk";

const gs = new GameStack(process.env.GAMESTACK_API_KEY);

// Log a player action
await gs.log("warn", "Player spawned vehicle", {
  name: "player-kills",
  playerSource: 42,
  vehicle: "SportsCar",
  coords: [123.0, 33.3, 52.0],
  action: "spawn",
});

// Upload a file
const { url } = await gs.upload("./screenshot.png", {
  playerSource: 42,
});
console.log(url); // https://yourdomain.com/cdn/abc123.png

Pricing

Transparent pricing that scales with you

Free

$0forever

Perfect for small servers and testing.

  • 10 GB storage
  • 30 GB bandwidth / month
  • 5 GB log storage
  • API access
  • Community support
Get started free

Pro

$8/ month

Usage-based pricing that scales with you.

  • 120 GB storage
  • $4 / TB bandwidth
  • 90-day log retention
  • Priority support
  • Webhook integrations
Start Pro trial

Network

$79/ month

Everything GameStack, one subscription.

  • 500 GB storage
  • 5 TB bandwidth
  • 180-day log retention
  • Custom CDN domains
  • Player upload portal
Explore Network