In need of a definitive answer


(jaybird) #1

I’ve been dealing with this topic at an alarming rate recently, and I want a concrete answer as to how this is supposed to work. It is my understanding that if you have a mod set up, when you connect the client will download any pak inside the mod’s directory AND the etmain directory, regardless of what sv_pure is set to. sv_pure only runs the checksums and makes sure the client only uses paks that also reside on the server. Is this correct?

Also, what’s the story on allowing the use of “optional” paks on the server. Going with the assumption above, it’s reasonable to think the way to do it is to NOT have those files on the server, set sv_pure to 0, and allow the player to download those paks elsewhere (website?), place them in their mod (or etmain) folder and use them.

PLEASE let me know if this is correct.


(IneQuation) #2

No, it’s not correct. The server will need and allow only the paks it has installed. This means a server running pure etmain will not allow the clients to use any custom paks, and it will just make the client engine not use these custom paks.


(jaybird) #3

… right, I said that above. I don’t think you understood the post. When I say pure, I don’t mean running etmain.


(IneQuation) #4

I used etmain just as an example, it behaves the same way with any other mod. I mean that any paks that are not on the server’s pure list just will not be used by the clients and will not collide.


(SCDS_reyalP) #5

This is not quite true. ET will not force you to download .pk3s in etmain which are not referenced by the server. You can see this clearly by the fact that you aren’t forced to download every map on the server when you connect. (you may be forced to DL some, but this is only because they either contain something like a campaign file, which causes them to be refrenced by the server, or the admin placed them in the mod directory)

If you have cl_allowdownload 1, it does seem to force you to download any .pk3 in the mod directory, regardless of whether the game is referencing them. However, you can still connect without downloading any files that really aren’t refrenced, if you set cl_allowdownload 0

Note that with sv_pure 0, et is only concerned that a file of the same name exists on the server.

sv_pure only runs the checksums and makes sure the client only uses paks that also reside on the server. Is this correct?

That is mostly true. However sv_pure has some special effects WRT gamecode, for example. It also does some magic if the client has a file with the same name, but a different checksum. I wouldn’t be surprised if it has other side effects I am forgetting at the moment.

Also, what’s the story on allowing the use of “optional” paks on the server. Going with the assumption above, it’s reasonable to think the way to do it is to NOT have those files on the server, set sv_pure to 0, and allow the player to download those paks elsewhere (website?), place them in their mod (or etmain) folder and use them.

PLEASE let me know if this is correct.

That is NOT correct.

A pure server only forces downloads if:

  • the .pk3 is referenced
  • the .pk3 is in an fs_game which is NOT etmain, and cl_allowdownload is 1

Thus you can have an ‘optional’ .pk3 on a pure server, if it contains no files which the server references, and is in etmain. Clients use will be able to use it (as it’s checksum is on the pure list) but they will not be forced to download it. Assuming it falls in the right place in the sort order, clients who have the optional .pk3 will see the effects, and those that don’t will not. Again, you can prove this to yourself with very simple testing.

Running any non-development server with sv_pure 0 is asking for trouble. The client will get in a very confused state if it has a map which is different from one of the same name on the server. The client will also has a good chance of using the wrong cgame. They will also likely have a mishmash of whatever skin, sound etc paks they have downloaded in their online play.

sv_pure 0 is a development option, and shouldn’t be used for anything else.

I strongly suggest you do some methodical testing to get a better understanding of what exactly it does. Post your results here :moo:


(jaybird) #6

Great, you gave me a good start. I’ll let ya know what I find.


(jaybird) #7

Well, pure or not, maps in etmain did not download until needed (when running a mod).

Two questions:

  1. Can something within the game source cause every pak in etmain to automatically download (without getting deep)
  2. The reason this has come about is because with the latest release of my mod I’ve gotten a lot of complaints that optional sound and skin packs and maps inside the etmain directory that are not required are being forced to download. In the earlier betas before this release this didn’t happen. Any idea why this would be happening (I’m more concerned about the sound and skin pak issues here). I did not change anything in the code that deals with this in any way. Also I added zinx’s realhead code. It’s the only major addition I made before release.

I have yet to try putting up a skin pack. I’m going to do that later today (hopefully).


(zinx) #8

It is almost certainly my realhead code - the skin pack probably contains a player model, which the realhead will load so that it can properly determine stuff the same as the client… You can probably unzip the model or something to make it not ref the pk3, but if the animations are different in the new model, realhead will be useless.


(jaybird) #9

I shoulda just asked you in the first place ;] Thanks.


(joshbot) #10

@zinx but that wouldnt explain why it forces maps and sound packs to download, only player models.