Skip to content
BasiX Agency

FiveM image hosting

FiveM image hosting with links that do not expire.

Screenshots from screenshot-basic and ScreenCapture, photos from LB Phone, item icons for ox_inventory and loading-screen video, served from one CDN address per file. The link you store today still works next year, and bandwidth is never billed.

No card · 3 GB free · Bandwidth never billed

On this page

What a FiveM server actually needs from an image host

A roleplay server produces images constantly: a player takes a photo with the phone, an admin screenshots a player on a report, an inventory shows two hundred item icons, a loading screen plays a clip. Every one of those ends up as a URL stored somewhere — in a phone database, in a log line, in a Discord message — and the image is only as useful as that URL is durable.

That is where general-purpose hosts fall short. Chat attachments come back as signed links that stop working, free image sites throttle API uploads or remove old content, and a self-hosted folder behind a home connection goes down with the router. BasiX is built for the opposite: one direct address per file, no landing page in front of it, no expiry unless you ask for one.

Screenshot upload from screenshot-basic, ScreenCapture and LB Phone

Most FiveM resources already know how to upload to a media host; they only need a URL and a key. BasiX answers the upload endpoints those scripts were written for, so the change is a configuration line rather than a fork. LB Phone uses its built-in Custom upload method for photos, video and audio. ScreenCapture sends server-side screenshots and clips with its remote-upload export. screenshot-basic uploads directly, including from the short overload that cannot send headers, because the key can also travel as a query parameter on upload endpoints.

If you would rather not touch third-party configs at all, the basix resource exposes exports.basix:screenshot(source, options, cb). It captures a player’s screen through screenshot-basic and uploads it from the player’s machine with a one-time presigned URL, so your key never reaches a client.

Lua — screenshot a player on a report

exports.basix:screenshot(source, { folder = 'reports' }, function(err, file)
    if err then return print('[basix] ' .. err) end
    print(file.url)
end)

A CDN address you can build yourself

Every file lives at https://cdn.basix.media/<publicId>/<path>. The publicId is eight characters and the same for every file in your account; the path is the one you chose at upload. That means your code can build an image address from a name, without asking an API first — exactly what an inventory needs.

Files are served over HTTPS with an ETag, open CORS and range requests, so video seeks natively in NUI. After you replace a file, the new version is everywhere within five minutes. If you set a placeholder image, a missing image under your publicId returns that placeholder instead of a broken icon.

server.cfg — ox_inventory item images

setr inventory:imagepath "https://cdn.basix.media/<publicId>/items"

Originals untouched, thumbnails on demand

BasiX stores and serves your files byte for byte; nothing is re-compressed behind your back. When you need a smaller version, add ?w= to the address and you get a WebP resized to fit, generated once and then cached. A phone gallery can load ?w=256 thumbnails while the full photo stays one tap away, and item icons can be requested at the size the UI draws them.

Accepted types are images (JPEG, PNG, GIF, WebP, AVIF), video (MP4, WebM, MOV) and audio, detected from the bytes rather than the file name. The limit is 2048 MB per file on every plan, so loading-screen video fits as well as screenshots.

Pricing without a bandwidth bill

Storage is what you pay for; bandwidth is never billed, on any plan, under a fair-use rule that is written down. There is a free tier with no card, then Starter €5 (25 GB), Pro €15 (120 GB), Business €49 (500 GB), Ultra €89 (1000 GB) per month, tax included. Logs and databases share the same storage, so one subscription covers the server rather than three.

Questions

No. A link works until you delete the file, or until a retention policy you set on its folder removes it. There is no signed query string and no time limit.

Related

Updated Oct 26, 2026

Your first file online in a few minutes.

Sign up, upload a file, copy the URL.

3 GB free · No card · Bandwidth not billed

FiveM image hosting and CDN for screenshots — BasiX