Media & Storage
Photos and videos taken in the Camera app are uploaded to a cloud storage provider. Configure the upload method, quality settings and storage limits here.
Upload method
Config.UploadImages = "Fivemanage" -- "Fivemanage" | "S3" | "R2" | "Discord" | "Custom"| Value | Service | Notes |
|---|---|---|
| "Fivemanage" | Fivemanage.com | Recommended — purpose-built for FiveM media, fast CDN |
| "S3" | Amazon S3 | Requires bucket, region, access key and secret |
| "R2" | Cloudflare R2 | S3-compatible, no egress fees |
| "Discord" | Discord CDN | Free but rate-limited; not suitable for high-traffic servers |
API keys
Set your keys in server/apiKeys.lua — this file is escrow-unprotected so it can be edited freely:
ApiKeys = {
-- Fivemanage
Fivemanage = "your-fivemanage-api-key",
-- Amazon S3
S3 = {
bucket = "my-bucket",
region = "us-east-1",
accessKey = "AKIAIOSFODNN7EXAMPLE",
secretKey = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
},
-- Cloudflare R2
R2 = {
accountId = "your-account-id",
accessKey = "your-r2-access-key",
secretKey = "your-r2-secret-key",
bucket = "my-r2-bucket",
},
-- Discord webhook (for Discord CDN uploads)
Discord = "https://discord.com/api/webhooks/...",
}apiKeys.lua file. Treat it like a password. Do not commit it to any public repository.Image settings
Config.Image = {
Mime = "image/webp", -- output format: "image/webp" | "image/jpeg" | "image/png"
Quality = 0.95, -- compression quality 0.0–1.0
}WebP at 0.95 quality is the best balance of file size and visual quality. Use image/jpeg for maximum compatibility with older services.
Video settings
Config.Video = {
Bitrate = 400, -- kbps
FrameRate = 24, -- fps
MaxSize = 25, -- MB — clips exceeding this are rejected
MaxDuration = 60, -- seconds
}| Key | Default | Description |
|---|---|---|
| Bitrate | 400 kbps | Video bitrate — higher = better quality, larger file |
| FrameRate | 24 fps | Recording framerate — 24 is cinematic, 30 is smoother |
| MaxSize | 25 MB | Files larger than this are rejected before upload |
| MaxDuration | 60 seconds | Maximum recording length per clip |
Phone storage
Config.Storage = {
Enabled = true,
DefaultMax = "1GB", -- per-player storage cap
}When Enabled = true, the phone tracks how much media each player has saved. When they hit DefaultMax, new uploads are blocked until they delete old files from the Gallery. Set Enabled = false to remove storage limits entirely.