Pull-through CDN for FiveM

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 — with free automatic invalidation and preloaded edges that kill 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•••••••••••••"

# that's it — enjoy the CDN
<30ms
Median edge latency
330+
Edge cities worldwide
99%+
Cache-hit rate, 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 — and 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, store it in R2, and serve every future request from the nearest Cloudflare region.

3

Preload keeps it warm

We warm your resource tree ahead of peak so joins stay instant, and versioned keys keep the cache in sync whenever you deploy.

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

Version-prefixed cache keys mean an update is never served stale. Bump a version — or let your deploy hook do it — and the edge follows within one request. No paid purge button.

Cache preloading

We warm the edge before your players arrive, so the very first join after a restart hits a hot cache. This is the fix for the ~2-minute cold-download join failure — included on every plan.

Global edge network

Built on Cloudflare's edge and R2. 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? Add two optional lines to lock the file server to Cloudflare's edge — no firewall rules required. Off by default; caching works without it.

What everyone else upsells

Invalidation and preloading, free on every plan.

Competitors gate cache purge behind €15+ tiers and ration preloading to their priciest plans. We include both — plus firewall-free onboarding — on the free tier and up.

Automatic versioned invalidation Cache preloading Config-only setup
Pricing

Honest, EUR-native pricing.

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

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
  • Automatic cache preloading
  • Config-only setup — no firewall access
  • 7-day analytics
  • Community (Discord) support
Start free

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
  • API-triggered preload & refresh
  • Uptime SLA
  • Reseller / multi-tenant support
  • Dedicated onboarding
Start 14-day trial
FAQ

Questions, answered.

Do I need firewall or SSH access?

No. Setup is two lines in server.cfg — no firewall, no SSH, no reverse proxy — 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?

Every cached object is keyed by a cache version. Update a resource and bump the version (a button, or an API call from your deploy hook) — the old cache is instantly orphaned and the new version cold-fills once. It's free, automatic, and has no purge rate limits.

What causes the cold-miss join failures, and how does preloading fix them?

With an external fileserver, a client whose download window exceeds ~2 minutes can time out during pre-connect (FiveM issue #4009) — it looks like the server rejecting your lowest-spec players. Preloading warms the edge ahead of time so 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 — 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 for up to 30 days. Only never-before-seen files need your origin — and preloading means those are rare.

Warm your cache in five minutes.

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