String Table Dictionary

From Valve Developer Community
Jump to navigation Jump to search
Wikipedia - Letter.png
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
Broom icon.png
This article or section needs to be cleaned up to conform to a higher standard of quality.
For help, see the VDC Editing Help and Wikipedia cleanup process. Also, remember to check for any notes left by the tagger at this article's talk page.


String tables are a collection of internal game strings used to lower network bandwidth for multiplayer games, embedded into the BSP as a .dct file. It is prompted to be made automatically when a map is first loaded.

Icon-Important.pngImportant:It is saved into the BSP map file after you leave the map, but will be cleared upon recompiling.
Warning.pngWarning:String tables cannot be generated if the map is already packed in a VPK.
Note.pngNote:This page was created considering only Left 4 Dead 2's existence.

String Table Creation

  1. Load a map that is not packed in a VPK.
  2. Run the stringtabledictionary command in case the automatic string table building from launching the map fails.
  3. Leave the map.
  4. Check the BSP map file's last modified timestamp or open it with GCFScape or a similar package-viewing tool to check for the existence of stringtable_dictionary.dct.
Icon-Bug.pngBug:Having the BSP file in an alternate directory loaded from gameinfo will cause the BSP to be duplicated into the <exe name>/maps folder when the game tries to embed the string tables into the BSP. This copy will contain the new string tables while the other will not.  [todo tested in ?]

Example

As a general idea of their purpose, here we have a string table structured as shown.

Index String
0 Nick
1 Ellis
2 Coach
3 Rochelle

Whenever a Rochelle string is used, what is sent over the network is the index of this string (3). Embedded into the BSP file, all connected players should have an identical string table that their game looks into. Mismatches will cause players to disconnect with a failure message stating that their string table differs from the server's.

ConVars

Cvar/Command Parameters or default value Descriptor Effect
sv_dumpstringtables 0 bool Dump info about string tables when loading a map
stringtable_alwaysrebuilddictionaries 0 bool Rebuild dictionary file on every level load
stringtable_usedictionaries 1 bool Use dictionaries for string table networking

ConCommands

Cvar/Command Parameters or default value Descriptor Effect
dumpgamestringtable Dump the contents of the game string table to the console.
dumpstringtables Print string tables to console.
stringtabledictionary Create dictionary for current strings.

Tables

Table Name Max size
downloadables 8192
modelprecache 2048
genericprecache 512
soundprecache 20000
decalprecache 512
instancebaseline 1024
lightstyles 64
userinfo 32
server_query_info 4
ParticleEffectNames 1024
EffectDispatch 1024
VguiScreen 256
Materials 1024
InfoPanel 128
Scenes 16384
MeleeWeapons 16
GameRulesCreation 1


Stub

This article or section is a stub. You can help by expanding it.