What Is Fivemanage? FiveM Screenshots, Logs and Setup

Published on

Fivemanage hosts FiveM screenshots, videos and logs. Add the API keys to server.cfg, install fmsdk with screenshot-basic, and log from ox_lib or oxmysql.

Two players standing between a white and a dark sports car on a Los Santos street at night, facing the lit Vinewood sign

A phone script asks for a Fivemanage token, or a resource's install notes mention FIVEMANAGE_MEDIA_API_KEY, and you want to know what you are signing up for. Fivemanage is a third-party service for two jobs most roleplay servers run into: hosting the images, videos and audio that scripts upload, and keeping server logs where you can search them. This guide covers what it is, what it costs and how to set it up with the official SDK, screenshot-basic, ox_lib and oxmysql. If "fivem manage" meant managing the server itself, that is txAdmin (see our txAdmin guide), and license keys live in the Cfx Portal.

Quick answer: Fivemanage is a hosted service, run by Fivemanage AS and not by Cfx.re, that stores the screenshots, videos and audio your FiveM scripts upload and collects your server logs in a searchable dashboard. If you searched for "fivem manage", this is most likely what you saw. To set it up, create a team at app.fivemanage.com, make a Media token and a Logs token, add them to server.cfg with set FIVEMANAGE_MEDIA_API_KEY "..." and set FIVEMANAGE_LOGS_API_KEY "...", and start the official fmsdk resource after screenshot-basic. ox_lib and oxmysql can send logs to it as well. The free Dev plan includes 10 GB of file storage, 20 GB of bandwidth a month and 5 GB of logs kept for 15 days (checked 31 October 2026).

What Fivemanage Is

Fivemanage is a separate company from Cfx.re, the team behind FiveM. It does not host your game server or handle license keys. It sells two things:

  • Storage and CDN. Scripts upload images, videos or audio and get back a link for a Discord embed, a report or an in-game UI. Files can be up to 1 GB each and can go into folders.
  • Logs. Your server sends structured lines (a level, a message and metadata such as player identifiers) into datasets that you search and chart in the dashboard, for example everything one license or Discord ID did in a time window.

Many scripts support it already: Fivemanage's docs have setup pages for LB Phone, Quasar Smartphone, the YSeries phones, nPhone, JPR Phone System, CodeM Phone, TGIANN, RX ReportsPRO and 0Bug Report System. Those keep the token in their own server-side config. LB Phone, for example, needs version 1.5.0 or newer, its upload methods set to "Fivemanage" in lb-phone/config/config.lua and the token in lb-phone/server/apiKeys.lua.

Fivemanage Pricing and the Free Dev Plan

This is what Fivemanage's pricing page listed on 31 October 2026, in US dollars:

DevHobbyPro
Price per month$0$8$24
File storage10 GB20 GB, then $0.20 per GB120 GB, then $0.10 per GB
Bandwidth per month20 GB200 GB, then $4 per TB1 TB, then $4 per TB
Storage retention rulesNoYesYes
Log storage5 GB5 GB100 GB
Log retention15 days15 days90 days
Log datasets3550
Dashboards125
Custom CDN domainNoNoYes

Fivemanage pitches Dev at development and testing; it needs no credit card. A $79 Network plan adds 500 GB of storage, 5 TB of bandwidth, 250 GB of logs and 180 days of log retention. Yearly billing gives two months free, and a first payment can be refunded within 14 days. In February 2026 Fivemanage wrote that a free account over its limit is paused until the next billing cycle or an upgrade, with its files kept. Phone photos and clips add up fast, so set a usage alert in the dashboard.

Step 1: Create a Team and Two API Tokens

  1. Sign up at app.fivemanage.com with an email address, GitHub or Discord, and create a team.
  2. Open Tokens and select Create token.
  3. Pick the scope: Images, Videos, Audio, Media (all three) or Logs. Make one Media token and one Logs token, and name each after the server that uses it.

Anyone with your Media token can upload files to your storage and delete them through the API, so treat both tokens like passwords.

Step 2: Add the Keys to server.cfg

The SDK reads its keys from convars, so they never sit inside resource files you might share:

set FIVEMANAGE_MEDIA_API_KEY "your_media_token"
set FIVEMANAGE_LOGS_API_KEY "your_logs_token"

Use set, not setr or sets. Cfx.re's convar docs explain the difference: a set convar can only be read by server scripts, setr replicates it to every player's client, and sets publishes it in the server list and the server's public info. Keep server.cfg itself out of public Git repositories too.

You only need the keys for the features you use, with one catch. fmsdk/config.json ships with "enableCloudLogging": true, and with cloud logging on, the SDK checks the logs key at startup and prints an "Invalid FIVEMANAGE_LOGS_API_KEY" error if it is empty. Using the SDK only for screenshots? Set enableCloudLogging to false.

Step 3: Install fmsdk and screenshot-basic

  1. Download fmsdk.zip from the SDK's latest release, which on 31 October was v3.2.0 from 6 August 2026.
  2. Unzip it into your resources folder. The folder must be named fmsdk and sit directly in resources, because the SDK does not support category folders such as [fivemanage].
  3. Add Cfx.re's screenshot-basic if your server lacks it; the SDK captures screens with it.
  4. Start screenshot-basic first in server.cfg:
ensure screenshot-basic
ensure fmsdk

The SDK is a JavaScript resource that asks for Node.js 22 in its manifest (node_version '22'), so keep FXServer on a current build; our server artifacts guide lists them. On our FiveM hosting you upload both folders in the control panel or over SFTP and edit server.cfg in the same panel, with txAdmin pre-installed for the restart.

Fivemanage Upload: Screenshots From Your Own Scripts

This staff command uses the SDK's server export to screenshot a player by server ID and upload the image; the true at the end limits it to players with the command.shot ace, as Cfx.re's RegisterCommand docs describe:

-- server.lua in your own resource
-- grant it in server.cfg: add_ace group.admin command.shot allow
RegisterCommand('shot', function(src, args)
    local target = tonumber(args[1])
    if not target or not DoesPlayerExist(target) then return end

    local ok, result = pcall(function()
        return exports.fmsdk:takeServerImage(target, {
            name = 'Staff screenshot',
            requestedBy = src
        }, { path = 'screenshots/staff' }, 10000)
    end)

    if ok then
        print(('[shot] %s'):format(result.data.url))
    else
        print(('[shot] failed: %s'):format(result))
    end
end, true)

The arguments after the player, as the v3.2.0 source has them:

  • Metadata (second): fields you can search in the dashboard.
  • Options (third): path for a folder, filename and retentionExempt.
  • Timeout (fourth): in milliseconds. Fivemanage's SDK docs page shows it as the third argument, but in v3.2.0 it is the fourth, so pass nil for the options if you only want a timeout.

The export returns the API's reply, so the link is at result.data.url; the README's examples print imageData.url, which is nil in v3.2.0.

Behind the export, the SDK calls screenshot-basic's requestClientScreenshot, gets a WebP image at quality 0.8 and uploads it from the server with your Media key, so the key never reaches a player's PC. Client scripts can call exports.fmsdk:takeImage(metadata, options) for their own screenshot, and that upload also runs on the server.

Fivemanage's images page also shows a shortcut: screenshot-basic's requestScreenshotUpload posting straight to the API with your token. That code runs in a client script, and Fivemanage's own docs warn that a token used that way is exposed to every client. When a UI must upload by itself, such as a NUI phone camera, have the server fetch a short-lived presigned URL with exports.fmsdk:requestPresignedUrl('image') and send only that URL to the client.

Fivemanage Logs: Datasets, Levels and Player Identifiers

Create your datasets in the dashboard first (Dev has room for three), then log from any server script:

exports.fmsdk:Log('economy', 'info', 'Player bought an item', {
    playerSource = source,
    item = 'WEAPON_PISTOL',
    price = 500
})

The arguments are the dataset name, the level, the message and a metadata table. Info, Warn and Error are shorthands without the level, and the older LogMessage(level, message, metadata) always writes to the dataset default. One example on Fivemanage's best practices page calls exports.fivemanage:log(level, message, metadata). The resource is fmsdk, so that call becomes exports.fmsdk:LogMessage, or exports.fmsdk:Log with the dataset name added in front.

With playerSource or targetSource in the metadata, the SDK attaches that player's identifiers, such as license, Discord and Steam. Logs leave in batches every 5 seconds, or sooner once 10 lines wait for one dataset.

In fmsdk/config.json, level is the lowest level kept (the default info drops debug), and console also prints every line in the server console. Five blocks log events for you, all off by default:

BlockWhat it logs
playerEventsPlayers connecting, joining and dropping
chatEventsEvery chat message
baseEventsDeaths and kills reported by the baseevents resource
txAdminEventsKicks, warns, bans, direct messages, announcements, scheduled restarts, shutdowns and whitelist changes
oxInventoryEventsox_inventory purchases and item moves

Switch one on by editing its block and leaving the rest of the file as it is:

"playerEvents": { "enabled": true, "dataset": "connections" },

In v3.2.0 the txAdmin events go to default, whatever dataset you set for them.

ox_lib and oxmysql Logging

Both libraries can send logs to Fivemanage without fmsdk.

ox_lib. Its logger reads these convars:

set ox:logger "fivemanage"
set fivemanage:key "your_logs_token"
set fivemanage:dataset "oxlib"

The dataset line is optional. ox_lib's default service is Datadog, so without the first line nothing reaches Fivemanage. Any resource that loads @ox_lib/init.lua can then log from a server script:

lib.logger(source, 'garage', 'Vehicle stored', { plate = 'ABC 123' })

ox_lib adds the player's name and identifiers, skips the IP address and sends its batch every half second. Our ox_lib tutorial covers loading the library.

oxmysql. Two lines:

set mysql_logger_service "fivemanage"
set FIVEMANAGE_LOGS_API_KEY "your_logs_token"

oxmysql then sends each failed query to Fivemanage as an error, with the resource that ran it and the database error; successful queries are not sent. It reads the same FIVEMANAGE_LOGS_API_KEY convar as fmsdk, so if that line is already in server.cfg you only add the first. Our oxmysql guide covers its other settings.

Privacy Defaults and How Long Data Stays

Fivemanage's privacy policy (last updated 24 January 2024) covers your account and payments, not what your scripts send. The defaults are a sensible start:

  • IP addresses stay out. fmsdk excludes ip identifiers by default, and so does ox_lib. License, Discord and Steam IDs do go in, and they tie a line to a person.
  • Chat logging is off. Turn on chatEvents only if your rules tell players their messages are stored.
  • Screenshot links are made for sharing. A link that loads in a Discord embed opens for anyone who has it, so post staff screenshots in staff channels only.
  • Logs expire after 15 days on Dev and Hobby and 90 days on Pro.
  • Files stay until deleted. Under Storage, Settings you can set retention per media type to 7, 30, 90, 180 or 365 days (a Hobby and Pro feature on the pricing table). Retention Exempt files skip it, and automatic deletion cannot be undone.
  • Roles matter. The Developer role can view and copy API tokens. Give a moderator who only reads logs the Member role with the Logs permission switched on.
  • Content rules apply. Fivemanage's terms ban sexual content and gore, among other things, and let it remove files that break them, which matters once players upload phone photos.

Want everything on your own machine? Fivemanage Lite is a self-hosted edition under the Functional Source License (FSL-1.1-ALv2). It runs in Docker with PostgreSQL, ClickHouse and S3-compatible storage such as MinIO, so it needs a server with root access, such as a KVM VPS. fmsdk, ox_lib and oxmysql are wired to Fivemanage's hosted API, though, so using them with Lite means changing their code.

Common Problems

"Invalid FIVEMANAGE_LOGS_API_KEY" at startup. Cloud logging is on in config.json and the logs key is empty or misspelled. Add it, or set enableCloudLogging to false.

"Failed to upload image to Fivemanage". The media key is missing (the message then includes "Invalid FIVEMANAGE_MEDIA_API_KEY") or the API refused it. Check that the token has the Media or Images scope.

"Screenshot request timed out". You passed a timeout and no image came back in time. Check that screenshot-basic starts before fmsdk and that the player is still connected.

"Invalid config settings" or "Error loading config". Your config.json lost a key or its JSON broke. Start again from the shipped file.

Logs never appear. The dataset name in your code must match the dashboard, lines below level are dropped, and batches leave every 5 seconds.

Old Fivemerr links are broken. Fivemerr's file host, files.fivemerr.com, answered with a Cloudflare 522 error on 31 October 2026. Files you moved with Fivemanage's migration tool (Storage, Migration, fed with the CSV export from Fivemerr's Media tab) kept their paths, so replace files.fivemerr.com with r2.fivemanage.com in your scripts. Files that were never migrated have to be uploaded again from your own copies.

FAQ

What is Fivemanage? A hosted service that stores media uploaded by game server scripts and collects server logs, with SDKs for FiveM, Hytale and Roblox. Fivemanage AS runs it, not Cfx.re.

Is Fivemanage free? The Dev plan is: 10 GB of files, 20 GB of bandwidth a month, 5 GB of logs kept for 15 days and three datasets, as listed on 31 October 2026. Hobby is $8 a month and Pro $24.

Do I need Fivemanage to run a FiveM server? No. It only matters when a script uploads media, or when you want logs in a searchable dashboard next to txAdmin's own server log.

Where do I put my Fivemanage API key? In server.cfg with set: FIVEMANAGE_MEDIA_API_KEY and FIVEMANAGE_LOGS_API_KEY for fmsdk and oxmysql, fivemanage:key for ox_lib. Scripts such as LB Phone have their own server-side file for it. Never put it in a client script.

Can players see my Fivemanage token? Not when it sits in a set convar and only server code uses it. They can when it is in a client script, a NUI page or a setr or sets convar.

What happened to Fivemerr? Fivemanage's February 2026 post says Fivemerr shut down, and fivemerr.com answered with a Cloudflare 522 error on 31 October 2026. Files moved with Fivemanage's migration tool kept their paths; see Common Problems for the links.

Sources

All opened on 31 October 2026: