I thought that the client mirrored exactly the server-side file required - ie when you connect to a server it sends you a list of ‘valid’ PK3 files and you boot up only accessing these PK3s - to prevent the client changing say, unifrom colours to pure red and green etc.
Anyway, I just solved a problem I had whereby me, and me alone, could not snipe. Somehow somewhere I’d downloaded a PK3 that had a replacement shaderfile that included the sniper zoomed graphics - end result was it used a solid black image and hence I couldn’t snipe.
Note this happened on every server I joined after this little beautiful PK3 was downloaded. I eventually realised it was not affecting anyone else (IE I’d spectate someone clearly sniping even though I could only see black), so today I hunted and found the offending PK3, which out of curiosity is called:
etmapcycle.f145cbbf.pk3
useful name eh?
Anyway, my question is this - assuming I’ve been playing on pure servers (which as far as I’m aware I have been), how could this happen? One of the following must be true:
-
The server had the PK3, and so did I. Users are not forced to download it to join / play, hence those clients without the file see fine as snipers. Those clients that have the file cannot see.
-
The server does not have the PK3, so no-one else is forced to download / use it (obviously). Those clients who do have the PK3 will use it however.
Now either of these situations presents the rather disturbing scenario where it’s possible to change assets locally without the server knowing / validating, or ensuring all clients are running the same asset. A dangerous cheating scenario I believe?
My question is essentially - how is this possible?
Note I tried this on both ETPro and default ET, the PK3 ‘works’ (or rather, ‘is used’ regardless).