---
title: "Fix: Players Stuck on 'Verifying Resources' / Precaching"
excerpt: "Why clients hang on 'Verifying and downloading resources', how the precache file limit and a broken FastDL cause it, and the fixes that let players finish loading in."
category: "errors"
tags: "precache, download"
image: ""
read_time: "8 min read"
---
<p>Players connect, reach the <em>Verifying and downloading resources</em> screen, and sit there — the loading bar crawls, freezes, or the client eventually drops. This stage is where the client fetches every custom file the map and plugins reference and checks them against what the server expects. A hang here has three usual causes: too many files (the precache limit), a broken download source, or a consistency mismatch. This sorts out which one you have.</p><h2>1. Understand the stage</h2><p>Before a player spawns, the server sends the full list of resources the map needs — the <code>.bsp</code>, models, sounds, sprites, and anything plugins precache. The client verifies which it already has and downloads the rest. If that list is enormous, or a file cannot be fetched, or a file the client has does not match what the server demands, the client stalls right here. So the fix depends on <em>why</em> the list will not clear.</p><h2>2. Check the precache file count</h2><p>GoldSrc has a fixed ceiling on precached files. Pile on custom-model plugins, sound packs, sprite-heavy HUD plugins and a content-rich map, and the resource list grows huge — slow to verify and, past the limit, a hard failure. If the hang correlates with adding plugins or a specific map, trim what gets precached. Disable content-heavy plugins one at a time in <a href="/tutorials/plugins-ini-load-order">plugins.ini</a> and retest; the same budget problem behind the <a href="/tutorials/fix-sound-slots-overflow">out of sound slots overflow</a> shows up here as a stall. Fewer files means a faster, more reliable verify stage.</p><h2>3. Fix the download source</h2><p>If the client is trying to download and cannot, it hangs. Two server cvars govern whether and how fast that download works:</p><pre>sv_allowdownload 1
sv_downloadurl "http://dl.example.com/cs"</pre><p>With <code>sv_allowdownload 0</code>, clients missing a file are stuck or join without it. With allow on but <strong>no</strong> FastDL URL, downloads crawl over the ancient in-game UDP channel — a 20 MB map can hang the verify screen for minutes and time out. Set up FastDL so files come over HTTP; the full setup is in the <a href="/tutorials/fastdl-setup-guide">FastDL setup guide</a>. If your FastDL is configured but every file 404s, the client stalls forever — see <a href="/tutorials/fix-sv-downloadurl-ignored">sv_downloadurl ignored</a> for the path traps.</p><h2>4. Resolve a consistency mismatch</h2><p>If the server enforces file consistency and a client has a <em>different</em> version of a file (a differently-sized model or sprite), the client can hang or get dropped at verification. Consistency is enforced with <code>sv_consistency</code> and <code>force_consistency</code> rules:</p><pre>sv_consistency 1</pre><p>With consistency on, the client must match the server's version of enforced files. If you distribute a custom model but a client cached an old one, it fails here. Either make sure the FastDL serves the exact files the server uses, or relax consistency for non-critical files. A mismatch shows up as a specific file the client cannot reconcile, not a slow bar.</p><h2>5. Rule out the client's own settings</h2><p>Some hangs are the player's side. If a player set <code>cl_allowdownload 0</code>, they cannot pull missing files and will stall or join broken no matter what your server does — you cannot override it. Have them confirm:</p><pre>cl_allowdownload 1
cl_downloadingfiles 1</pre><p>If one player hangs and everyone else loads fine, it is that player's setting or connection, not your server.</p><h2>Troubleshooting</h2><ul><li><strong>Bar crawls extremely slowly</strong> — downloading over the slow UDP channel. Set up <a href="/tutorials/fastdl-setup-guide">FastDL</a> so files come over HTTP.</li><li><strong>Hangs on one specific map</strong> — that map's custom files are missing from the download source, or push you past the precache limit. Confirm the files are on FastDL and trim plugin precaches.</li><li><strong>Only one player hangs</strong> — their <code>cl_allowdownload</code> is <code>0</code> or their link dropped. It is client-side.</li><li><strong>Drops with a consistency complaint</strong> — the client's copy of an enforced file differs. Serve the exact file via FastDL or relax <code>sv_consistency</code>.</li><li><strong>Started after adding plugins</strong> — too many precached files. Disable heavy content plugins to test.</li></ul><h2>Verification</h2><p>From a clean test client (delete the custom map and models first), connect and watch the verify stage complete and the map load. If it downloads over HTTP quickly and spawns you in, the pipeline is healthy. Then connect on the heaviest map with all plugins active and confirm it still clears — that proves you are under the precache budget with a working download source. Keep the FastDL mirror in sync with your <a href="/tutorials/mapcycle-txt-setup">map rotation</a> so a newly-added map never introduces files the mirror lacks.</p>









