Client side / server side

i’m pretty sure i already asked this once, but damned if i can find the thread. [old forum, maybe?] anyway, apologies for the redundancy.

i’d like to get a definitive list of exactly what resource types are required on the client side, and what can be server-side only, as i’d like to keep the size of a downloaded hak to a minimum. i think it’s something like this :

.2da .bmp .dds .mdl .plt .tga .txi .wav .bmi

.dlg .ncs .nss .ini .itp .wok .pwk .dwk .set .ut* (i.e. blueprints)

please correct as needed. :wink:

thanks !

If only it were that simple. 2DA files can be required by server, client or both, depending on the file. Server also needs some MDL and TGA files - but it only needs to check that they exist, they can be empty (0 bytes). SET files are also needed by both client and server. WOK, PWK and DWK are useful on the client, but not necessary (make pathfinding easier when the server is laggy). Also TLK needed by both. LTR too.

You’re also missing a lot of formats, such as (non-exhaustive list):

INI and NSS files are not used by either, just the toolset. Same for GIC and a few others.

In general, it’s safe to remove these from the client download: {dlg, ncs, nss, ini, itp, ut*, ifo, fac, jrl, git, are, gic). I would recommend keeping all files on the server if you can spare the storage. If not, remove DDS and audio files.


thank you, sherincall. yes, the server will have access to everything. my goal is to de-bloat the client-side hak file. so the client needs .set files, eh ? well, i guess i can live w/that, there aren’t all that many in there. otoh having to put all the walkmeshes on the client side as well – there are lots of them and i’d love to keep them only on the server side if possible. do you know if their contribution to running lag-free is significant ? [i’m not a fan of nwn’s pathfinding in the best of cases – read: how can it be worse ? ;p ]

The WOKs are needed on the client for:

  1. changing the cursor to the X if you’re hovering over unwalkable area (otherwise, it won’t know if it is walkable). I’m not sure if the default is walkable or non-walkable if WOK is missing - try it. If it is non-walkable, you likely won’t be able to click at all.
  2. When moving via clicking (not WASD/drive), “speculative” movement before the server confirms the path.

When you click to move somewhere, the client tells the server “Hey, I wanna move to X”, and the server calculates the path, and responds “Okay, you’re moving to X, this way, you are now at this position…now at this position… now at this one… etc”. The round trip of the first message takes time, and can be further affected by lag spikes. Rather than waiting for the server to tell it which way (and how fast) to go, client will try to deduce this on its own, and start displaying the movement speculatively. When the server finally answers, the client will correct. We usually call this a symptom of lag, when your character is just jumped to a different point.

The point is, without walkmesh files (wok, pwk, dwk) you’ll either not be able to move via clicking at all, or you’ll have more erratic movement with more jumps and occasionally walking through trees and tables and such.


Guess there’s no getting around it then. I’ll come up w/some other ways to handle the problem.
Thanks for the great explanation. :slight_smile: Very helpful.