Asset caching for FiveM servers

Two config lines.
Zero cold misses.

Drop a single endpoint into your server.cfg and every FiveM asset streams through a global pull-through CDN. Invalidation is free and automatic, and a warm edge cache kills cold-miss join failures.

No firewall access ~5 minute setup No card for the free tier
server.cfg
# add these 2 lines to server.cfg, then restart

fileserver_add ".*" "https://cdn.fivemcdn.com/t/ab12cd34/files"
set adhesive_cdnKey "k9f2•••••••••••••"
2 lines
Of config to onboard
330+
Edge cities worldwide
Up to 99%
Cache-hit rate when warmed
1×
Origin fetch per file
The download screen problem

Slow asset delivery empties lobbies.

When resources download straight from your game server, every player hammers your origin bandwidth. Worse, on a cold cache the first joiners after a restart can stall past FiveM's ~2-minute pre-connect window and get bounced. It looks like you're rejecting your own lowest-spec players. They don't retry. They find another server.

Before

Origin does all the work

Every file, every player, straight off your box. Bandwidth bills and packet loss during peak joins.

Before

Stale files after updates

No native cache-busting in FiveM. Update a script and players get the old bytes, then blame you.

Before

Cold-miss join failures

First joiners after a restart hit an unwarmed cache, blow the 2-minute window, and fail to connect (issue #4009).

How it works

Live in three steps.

1

Add two lines

We generate your key and endpoint. Paste both lines into server.cfg and restart. That's the whole integration.

2

We cache at the edge

On the first request for a file we pull it from your origin once, cache it on Cloudflare's network, and serve every future request from the nearest region.

3

It stays warm on its own

Your files stay cached at the edge, and content-hashed keys keep the cache in perfect sync whenever you deploy, so only changed files re-fetch.

Features

Everything the download screen needs.

Config-only onboarding

Paste one fileserver_add line plus a key into server.cfg. No firewall access, no reverse proxy, no SDK, no migration weekend. Works with shared and managed hosting.

Free automatic invalidation

Every file is cached by its content hash, so an update is never served stale. Change a resource and only the files that actually changed re-fetch, automatically. Nothing to bump, no paid purge button.

Always-warm cache

Your files stay cached at the edge. The first player to join fills the cache; everyone after them downloads from the nearest edge, not your origin. No preload step, no cold-download join failures.

Global edge network

Built on Cloudflare's global edge network. Players download byte-identical, cached assets from the nearest region. Your origin is contacted at most once per file.

Real-time analytics

See cache-hit rate, bandwidth saved, storage used, and origin fetches per server. Know exactly how much load you've offloaded.

Optional origin lock

Want to stop anyone who finds your origin IP from grabbing your paid scripts? Two optional lines lock the file server to Cloudflare's edge, no firewall rules needed. Off by default; caching works without it.

What everyone else upsells

Invalidation and a warm cache, free on every plan.

Competitors gate cache purge behind €15+ tiers. Ours is automatic and per file, and a warm edge cache keeps joins fast, both included on the free tier and up, along with firewall-free onboarding.

Automatic per-file invalidation Always-warm cache Config-only setup
Pricing

Honest, EUR-native pricing.

A real permanent free tier. No per-GB surprise metering. Cancel anytime.

Founding pricing: founding customers keep today's price for as long as they stay subscribed, whatever we charge later. Only 28 founding spots left.

Free

€0 forever

For solo devs and hobby communities. No card required.

  • 1 server
  • 15 GB edge cache storage
  • 1 TB / month bandwidth (fair use)
  • Full global edge network
  • Free automatic cache invalidation
  • Always-warm edge cache
  • Config-only setup, no firewall access
  • 7-day analytics
  • Community (Discord) support
Start free

Starter

€6 / month

For one production server that outgrew the free tier.

  • 1 server
  • 50 GB edge cache storage
  • 5 TB / month bandwidth
  • Everything in Free, plus:
  • 30-day analytics (hit/miss + bandwidth saved)
  • Custom subdomain
  • Priority support
Get started

Network

€39 / month

For multi-server networks and hosting resellers.

  • Up to 10 servers
  • 1 TB edge cache storage
  • Unlimited bandwidth (fair use)
  • Everything in Community, plus:
  • 90-day analytics
  • One cache shared across all your servers
  • Reseller / multi-tenant support
  • Dedicated onboarding
Get started
FAQ

Questions, answered.

Do I need firewall or SSH access?

No. Setup is two lines in server.cfg, with no firewall, SSH, or reverse proxy involved, so it works on shared and managed hosting too. If you want, you can optionally add two more lines to lock your origin to Cloudflare's edge (FiveM's sv_proxyIPRanges + sv_httpFileServerProxyOnly, build 10543+), but it isn't required.

How does cache invalidation work?

Automatically, per file. Every file the client requests carries its content hash, so when you update a resource the changed files are fetched fresh and the unchanged ones keep serving from cache. There's nothing to bump and no purge rate limits.

What causes the cold-miss join failures, and how do you avoid them?

With an external fileserver, a client whose download window exceeds ~2 minutes can time out during pre-connect (FiveM issue #4009). To your lowest-spec players it looks like the server rejected them. Because your files stay cached at the nearest edge and the first player to join fills anything new, real players almost never hit a cold miss.

Does it work with ESX / QBCore / txAdmin?

Yes. We sit in front of your existing resource downloads, so it's framework-agnostic. No code changes to your resources; just the config block.

Is adhesive_cdnKey required?

Yes. By default FiveM obfuscates files with a per-client key, so the same file is different bytes for every player and can't be shared from a cache. Setting adhesive_cdnKey forces one global key so every player gets byte-identical, cacheable files. We generate the key for you.

What happens if my origin goes offline?

Cached files keep serving from the edge even if your origin is down. Only never-before-seen files need your origin, and your warm cache makes those rare.

Warm your cache in five minutes.

Start free. No card, no firewall access, no migration. Just one line of config.