Get caching in five minutes.
fivemcdn is a pull-through CDN. You point FiveM's resource downloads at us; we fetch each file from your origin once, cache it at Cloudflare's edge, and serve every future request from there.
- Create a server. Sign up and add your origin as ip:port. We'll validate it against /info.json and generate your key + endpoint.
- Paste the config block (below) into your server.cfg.
- Restart your server. That's it. Downloads now flow through the CDN, and your dashboard shows the cache-hit rate climbing.
Just two lines
Your dashboard generates these with your real key and tenant id. That's the whole setup. No firewall, no reverse proxy, no SDK:
# fivemcdn.com: add these 2 lines to server.cfg, then restart your server
fileserver_add ".*" "https://cache.fivemcdn.com/t/ab12cd34/files"
set adhesive_cdnKey "k9f2Qv7pXn3wLtB8sZ1aRcYd"- fileserver_add
- Routes every resource download to your CDN endpoint. Note: the URL must not end with a slash.
- adhesive_cdnKey
- Forces a single global obfuscation key so cached files are byte-identical for every player. Without it FiveM uses a per-client key and nothing is cacheable.
Optional: lock your origin to Cloudflare (advanced)
Caching works without this. If you want to stop anyone who discovers your origin IP from pulling your paid assets straight from it, add these two lines too. They need FXServer build 10543+ and still require no firewall access.
# Optional: restrict your file server to Cloudflare's edge only (FXServer build 10543+)
set sv_proxyIPRanges "173.245.48.0/20 103.21.244.0/22 103.22.200.0/22 …"
set sv_httpFileServerProxyOnly trueUpdates are never served stale.
Every file the FiveM client requests carries its own content hash. We cache by that hash, so invalidation is automatic and per file: when you update a resource, the files that actually changed are fetched fresh on first request, and every unchanged file keeps serving from cache untouched.
For the rare case where you want a clean slate anyway, every server page has a Purge cache button. It clears that server's entire edge cache within a few minutes; the next joins refill it from your origin.
The cache stays warm on its own.
On a cold cache, the first joiners after a restart can exceed FiveM's ~2-minute pre-connect window and fail to connect (issue #4009). We avoid that with nothing for you to run: the first player to join fills the cache, and every player after them downloads from the nearest Cloudflare edge instead of your origin. Cached files stay warm at the edge.
Your files are not a public download.
Cached files are only served to players who are currently connected to your server. Every download request from the FiveM client carries a session token; our edge validates it against your server before serving, and the token dies within minutes of a player disconnecting. Someone who knows a file's URL cannot pull your paid assets from the CDN: to download anything they must first pass your server's own whitelist, queue, and anti-cheat, and stay connected.
Combined with the optional origin lock above (which stops direct downloads from your origin IP), your assets are only reachable the way you intend: by players actually on your server.
Common questions
Does this work with ESX / QBCore / txAdmin?
Yes, it's framework-agnostic. We sit in front of resource downloads, so no changes to your resources are needed.
What if a file has never been requested and my origin is down?
Cached files keep serving from the edge even if your origin is down. Only never-before-seen files need the origin, and your warm edge cache makes those rare.
Do I need to open a firewall port or add IP allowlists?
No. Everything is in server.cfg. The origin lock uses FiveM's built-in convars, so it works even on shared/managed hosting.
I run several servers. Do they share one cache?
Servers under one account use one CDN key, so identical files are cached once and shared across your whole fleet. A new server of yours starts warm for everything your other servers already serve. Multi-server setups are for the Community plan (3 servers) and Network plan (10 servers).
How do plans and billing work?
The Free plan is free forever, no card required. Paid plans are monthly subscriptions via Stripe (card, iDEAL, Bancontact, SEPA), you can cancel anytime, and your plan stays active until the end of the period you paid for. Every payment gets a proper PDF invoice, emailed to you and available under Billing in your dashboard.
Where do I get support?
Join our Discord for the fastest help, or email [email protected].