Fortress Forever

Fortress Forever (https://forums.fortress-forever.com/index.php)
-   Server Administration (https://forums.fortress-forever.com/forumdisplay.php?f=36)
-   -   sv_pure servers (https://forums.fortress-forever.com/showthread.php?t=11000)

DrEvil 09-15-2007 07:38 PM

sv_pure servers
 
1 Attachment(s)
sv_pure defaults to off, and if anyone has tried to enable it, it results in significantly long load times while the server caches the crc of nearly all the files.

I'd like to provide an updated pure_server_whitelist.txt (attached) that should go in your FortressForever folder and overwrite the old one. This one is a more realistic set of content that it checks consistency on and the results are a much faster load time than the pure_server_whitelist.txt that comes with the mod.

To enable pure servers you must enable sv_pure 1, probably in the command line on dedicated servers. With sv_pure set to 1, the server will cache the crc of files that are to be verified matching client & server, so expect a longer load time on the server when it first does this. According to Valves wiki it doesn't have any effect on client load time and such.

I would appreciate it any server ops can give this a try and report back, particularly if you know of some material/mode/whatever 'cheats' that might be already making the rounds for the release version.

This is a wip.

417 09-16-2007 02:03 AM

Thanks for an updated pure_server_whitelist.txt file. I just threw it on our server and am off to test it out and make sure everything works fine.

I actually was running sv_pure 1 along with sv_pure_kick_clients 1 but it kept kicking people for having different models/materials on certain maps so I disabled it.

I didn't notice increased connection times while initially loading though but did on map changes.

I'll post back if I notice any issues. Thanks again for the new whitelist.txt file.

mullen1200 09-16-2007 07:13 AM

I dont even know what the heck it does

GeoKill-----> 09-16-2007 07:15 AM

Quote:

A 'pure server' is a server that forces all clients on the server to use content that matches what is on the server. This way, clients who are playing on the server cannot cheat by modifying the game content.
Without pure servers, clients could modify their materials, sounds, and models to give them advantages in the game. They might allow themselves to see through walls, make enemy models larger or brighter, or make certain sounds louder, thus giving them an advantage while playing.
http://developer.valvesoftware.com/wiki/Pure_Servers

DrEvil 09-16-2007 08:05 AM

If it's bugged there's nothing we can do to fix it. The whole sv_pure functionality is in the engine. Does it say specifically what files failed the check when it boots people? As far as I can tell the whitelist has reasonable limitations set up in it, I can't imagine why it would be kicking everyone like that.

mullen1200 09-16-2007 08:11 AM

Quote:

Originally Posted by GeoKill----->

Woo, very clear answer. Heh. Thanks

417 09-16-2007 05:26 PM

Yes it specifically says what files failed the check when it boots the client.

I don't recall the names of the files but they are not the same for everyone. Our server is in constant use so it makes it hard for further testing.

It keeps everyone from joining the server if we run the CVAR sv_pure # at all.

In TDM we run "sv_pure 1, sv_pure_kick_clients 1,sv_pure_trace 1" with no issues at all (never playing that again though except for matches/scrimmages now that FF is out).

Load time with original whitelist.txt file in place for thee of our members (in different states to our San Jose, CA Server) was 40-45 seconds.

If our server is empty at a time we have several members available then I will test the sv_pure again and report back the models/material it barks at.

Previously for one file it said wasn't the same we renamed the original file and copied the file directly from the server into our client side to see if it worked, it didn't.

I'll post more then I have had a chance to test it further. I guess I better setup a Linux server here at the house again to use as a test server.

If I knew more specifics about sv_pure then I might be able to determine the issue quicker. I'll report back with further when I get a chance to work on it more (server has got to not be being used though).

DrEvil 09-16-2007 07:09 PM

My understanding is that the whitelist file simply sets up a hierarchy of folders along with some permissions like whether or not to CRC check them between client and server.

Quote:

materials\... allow_from_disk
materials\effects\... allow_from_disk+check_crc
models\... allow_from_disk
models\player\... allow_from_disk+check_crc
models\grenades\... allow_from_disk+check_crc
models\projectiles\... allow_from_disk+check_crc
models\flag\... allow_from_disk+check_crc
shaders\... allow_from_disk+check_crc
sound\... allow_from_disk
sound\sound\player\footsteps\... allow_from_disk+check_crc
sound\buildable\sentry\sg_scan1 allow_from_disk+check_crc
sound\buildable\sentry\sg_scan2 allow_from_disk+check_crc
It's fairly easy to see what should be happening. None of the lines that have +check_crc should differ on the server and client normally, so I'm not sure why it would be booting everyone. The last 2 may need the .wav extension, but you said it was booting people with the old whitelist too, which didn't have those last 2 lines, and instead had crc checks enabled for all the content folders recursively.

I'm also a bit concerned that you aren't seeing increased load times when the server is first booted. The load times should extend significantly, as it has several hundred megs of files to CRC. That makes me think it's not being done. You're not using sv_pure 2 are you?

From that wiki link above, under Performance

Quote:

1. When the server loads its first map with sv_pure set to 1, it has to precalculate file CRCs for all files marked as allow_from_disk+check_crc. Generally, this set of files should be set to the minimal set of files. If, for example, the pure_server_whitelist.txt file had a line like this:

materials\... allow_from_disk+check_crc

The server would pause for a very long time the first time it loaded a map because it would calculate CRCs for every single material file in the game.

Setting sv_pure to 2 will not affect server performance because the server does not need to calculate CRCs.
This load time increase did in fact happen when I did a test on a listen server, and it was very significant increase. sv_pure 1 from the main menu, then loaded a map.

417 09-17-2007 04:10 AM

Not running sv_pure 2 ;)

If I enable and of the sv_pure CVAR at all it kicks players out of the server as soon as they join.

Here is what is in my server.cfg for this CVAR:
Quote:

//New CVAR June 2007 Restricts players from using custom sounds, models, materials
// sv_pure 1 reads the file mod/pure_server_whitelist.txt to determine what can be used from the client side.
// sv_pure 2 only allows content from Steam and is suggested to be used for league play.
// Other related commands: sv_pure_kick_clients 1, sv_pure_trace 1 [1=on 0=off]
//sv_pure 1
//sv_pure_kick_clients 1
//sv_pure_trace 1
I wonder if it is more of an issue with Linux servers? My home office is in another sate and I don't have my test servers windows/linux to try stuff on right now.

I really want to run the server in pure mode as it appears there are already people modifying files to give themselves an unfair advantage.

When I get home from work tomorrow I will play with it some more and report back with my findings.

DrEvil 09-18-2007 02:31 AM

Ug damn that sounds shitty. Hopefully we're just doing something wrong and it's not broken, but I honestly wouldn't be surprised if it were. Most valve games probable enforce pure via the steam cache files, they may not have had much testing or whatever on the file+crc versions.

1Cold1 09-20-2007 04:51 PM

An awesome idea in theory. Hopefully it can override the user option with what the server would like to establish. I've saved this thread. Could save the many leagues a lot of headaches.

Perhaps this is the wrong place to ask this, but the pop-up help info has been rather laggy, server-side wise. Is there a command to stop the "help" pop-ups?

Also, a "commandmenu" file would be awesome to assist server ops in quickly handling operations while in-game.

The latter is just an idea while the former is a legit issue. Any help is appreciated.

DrEvil 10-04-2007 04:26 PM

I downloaded hlds with the hldsupdatetool and was trying to figure out what is going on with this, but I couldn't get pure to do anything. I see the server caching CRC files but I don't see any traces on the server when I join myself, nor does it kick me or print a warning when I change files it is checking.

Servers running
sv_pure 1
sv_pure_kick_clients 1
sv_pure_trace 1

It prints out CRC shit during load. I join myself with the FF client. No traces, no kicks, no indication at all really that pure is doing anything at all on the client. In fact sv_pure in the console on the client says The server is using sv_pure = 0 (no whitelist), when the server quite obviously is.

This is a windows server. Anything I'm missing here to get this working?

Also would really appreciate if you got back to me on what files it is saying it is kicking the clients for.

Dr.Satan 03-05-2008 03:44 PM

Is this still relevant or is it now being included in the installers?

erwin.zeez 03-06-2010 04:25 AM

A 'pure server' is a server that forces all clients on the server to use content that matches what is on the server. This way, clients who are playing on the server cannot cheat by modifying the game content.

Without pure servers, clients could modify their materials, sounds, and models to give them advantages in the game. They might allow themselves to see through walls, make enemy models larger or brighter, or make certain sounds louder, thus giving them an advantage while playing.

zE 03-07-2010 01:34 AM

ye, i was always kicked because my yellow tracers : p So ye sv_pure 1 sucks.

squeek. 03-07-2010 08:25 PM

Unfortunately, Valve apparently didn't bother to check that sv_pure works on the Linux build of the EP1 engine. It works fine on Windows servers, but not Linux.

There's not much we can do about it unless we wrote our own version of sv_pure.

Pon 03-08-2010 01:23 AM

Quote:

Originally Posted by erwin.zeez (Post 467113)
A 'pure server' is a server that forces all clients on the server to use content that matches what is on the server. This way, clients who are playing on the server cannot cheat by modifying the game content.

Without pure servers, clients could modify their materials, sounds, and models to give them advantages in the game. They might allow themselves to see through walls, make enemy models larger or brighter, or make certain sounds louder, thus giving them an advantage while playing.

http://developer.valvesoftware.com/wiki/Pure_Servers

Stop talking to spambots :P

Elmo 03-08-2010 01:25 AM

haha, glad to know I'm not the only one that unknowingly talks to spam bots!

KubeDawg 08-04-2014 08:04 PM

Trying to get this to work on my server and I have some questions/concerns. Below is my server's modified whitelist:

Code:

whitelist
{
  //
  // 3 modifiers are allowed on file specifications:
  //
  //  from_steam        - only check the Steam cache for the file (ignore anything on disk)
  //  allow_from_disk      - allow the file to come from disk
  //  check_crc        - used with allow_from_disk - server does CRC checks on the client's file to make sure it matches
  //
  //  The default modifier on all files is allow_from_disk. Thus, all files can come from disk and don't need CRC checks unless
  //  allow_from_disk can be set at the same time as check_crc. Use the + character in between them to signify this: allow_from_disk+check_crc.


  //
  // Three types of file specifications:
  //
  //  1. directory\*.*        - refers to all files under the directory
  //  2. directory\...        - refers to all files under the directory and all directories under that (recursively)
  //  3. directory\filename      - refers to a single file
 

  // 
  // By default, when in pure server mode, most content file types are only allowed to come from Steam.
  //
  addons\...                                                                                allow_from_disk
  cfg\...                                                                                allow_from_disk
  materials\...                                                                        allow_from_disk
  materials\effects\cloak                                                                allow_from_disk+check_crc
  materials\effects\cloak_dudv                                                                allow_from_disk+check_crc
  materials\effects\cloak_dx60                                                                allow_from_disk+check_crc
  materials\effects\cloak_dx80                                                                allow_from_disk+check_crc
  materials\effects\cloak_normal                                                        allow_from_disk+check_crc
  materials\effects\cloak_view                                                                allow_from_disk+check_crc
  materials\effects\cloakview_dx80                                                        allow_from_disk+check_crc
  materials\effects\tranquilized                                                        allow_from_disk+check_crc
  materials\effects\slowfield_blue                                                        allow_from_disk+check_crc
  materials\effects\slowfield_red                                                        allow_from_disk+check_crc
  materials\effects\slowfield_green                                                        allow_from_disk+check_crc
  materials\effects\slowfield_yellow                                                        allow_from_disk+check_crc
  materials\effects\infected                                                                allow_from_disk+check_crc
  materials\effects\fire_cloud2                                                        allow_from_disk+check_crc
  materials\effects\fisheyelens_dudv                                                        allow_from_disk+check_crc
  materials\effects\fisheyelens_normal                                                        allow_from_disk+check_crc
  materials\effects\flame                                                                allow_from_disk+check_crc
  materials\effects\eyelid                                                                allow_from_disk+check_crc
  maps\...                                                                                allow_from_disk
  models\...                                                                                allow_from_disk
  models\player\...                                                                        allow_from_disk
  models\grenades\...                                                                        allow_from_disk
  models\projectiles\...                                                                allow_from_disk
  models\flag\...                                                                        allow_from_disk
  resource\...                                                                                allow_from_disk
  scripts\...                                                                                allow_from_disk
  shaders\...                                                                                allow_from_disk+check_crc
  sound\...                                                                                allow_from_disk
  sound\sound\player\footsteps\...                                                        allow_from_disk+check_crc
  sound\buildable\sentry\sg_scan1                                                        allow_from_disk+check_crc
  sound\buildable\sentry\sg_scan2                                                        allow_from_disk+check_crc
 
  //
  // Allow custom player models. Don't do CRC checks on them because the clients may all
  // have different custom models and the server won't have them all.
  // 
  //models\player\...        allow_from_disk
  //materials\models\player\...  allow_from_disk

  //
  // Allow custom spray decals.
  //
  materials\temp\...        allow_from_disk
  materials\vgui\logos\...  allow_from_disk
  materials\vgui\logos\ui\...  allow_from_disk
 
 
  //
  // (Uncomment and edit these for mods).
  // Allow mod resources to come from disk.
  //
  // materials\mymod\...      allow_from_disk+check_crc
  // models\mymod\...        allow_from_disk+check_crc
  // sound\mymod\...        allow_from_disk+check_crc
}

Mainly I'm trying to prevent asshats from messing with most material effects such as the cloak effect without preventing people from using custom models/other materials such as FDA's pizza box or the TFC Character models. Is the whitelist I made correct and do I need to specify folders such as addons(for sourcemod plugins/config) as well as player scripts/config files that are allowed? What if a folder is not specified at all? Does that mean it simply won't allow any differences with the unspecified folder or will it not even include that folder in its check?

homie in reboks' 08-04-2014 09:45 PM

so ends cacalot's reign of terror


All times are GMT. The time now is 08:59 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.