XBLAH's Modding Tool | liblist.gam

liblist.gam

Home |Wiki
GoldSrc GoldSrc

The purpose of liblist.gam is to describe the mod to GoldSrc GoldSrc and Steam Steam. It's a text file that can be opened and manually edited on any text editor, or can be edited using XBLAH's Modding Tool XBLAH's Modding Tool using an intuitive interface, that provides all the available fields for edition.

Key/Values

Warning:Although the mod recognizes characters separating a key and a value, Steam Library doesn't. In liblist.gam, use \s characters instead.

Mod information

game <string>
The name of the game or mod as it will appear in the window's title bar and Custom Game. For games or mods not self-published on Steam Steam, this will also be shown in Steam's library (the opposite being the name of the application in Steamworks itself).
icon <string>
Steam will use this value as the file name without extension for the icon in the library. If you set a value of foo, then Steam will seek for foo_big.tga first or foo_big.png second.
Warning:Not setting this K/V pair will not provide an icon (even if you have a game_big file).
Warning:This is NOT to be confused with the icon for the window's title bar (which uses game.tga).
developer <string>
The name of the developers that created this game/mod.
developer_url <string>
Link to the developers website or something else.
manual <string>
Link to the manual of the game/mod on the Internet.
hlversion <string>
The required Half-Life version to run this game/mod. Trying to activate a game/mod with an obsolete Half-Life version would have caused a popup showing up asking the player to download and update his Half-Life installation.
mpentity <string>
Classname of the entity used to detect multiplayer maps.

Content mounting

gamedll <string>
Which server binary to use for Windows. If file is missing from the game/mod's folder, then the filesystem will fallback to the "default" game/mod (either fallback_dir if set or valve if not).
Note:The path separator on Windows is the backslash character (\) so make sure you're using it and the path is correct (e.g. dlls\hl.dll).
gamedll_linux <string>
Which server binary to use for Linux. If file is missing from the game/mod's folder, then the filesystem will fallback to the base game/mod (either fallback_dir if set or valve if not).
Note:The path separator on Linux is the forward slash character (/) so make sure you're using it and the path is correct (example: dlls/hl.so).
gamedll_osx <string>
Which server binary to use for old Mac running on Intel platform. If file is missing from the game/mod's folder, then the filesystem will fallback to the base game/mod (either fallback_dir if set or valve if not).
Notice: GoldSrc GoldSrc has not been ported for modern Mac running on ARM platform.
fallback_dir <string>
If present, add the specified mod/game as base when seeking content. The most common use case are mods that want to use Blue Shift Blue Shift or Opposing Force Opposing Force as a base without additional programming and shipping its assets with the mod.
 Example: fallback_dir "gearbox" will mount Opposing Force Opposing Force.
fallback_maps <boolean>
For multiplayer mods, if true, this will hide the maps from the base game/mod in the Create Server dialog.
 Example: Example: a mod that uses Opposing Force Opposing Force as base and has fallback_maps "1" will not show the op4ctf_crash map in the Create Server dialog.
Note:This only works if fallback_dir is set.

Starting maps

startmap <string>
File name without extension of the first map to launch in singleplayer after choosing the "New game" option and the difficulty (skill) level.
trainmap <string>
File name without extension of the first map to launch in singleplayer after choosing the "Hazard/Training Course" option.

Game menu

type <string>
Possible values are singleplayer_only or multiplayer_only. The only change that this key/value pair impacts is the presence of specific menu items. If singleplayer_only, any items set in gamemenu.res with notmulti will be hidden. If multiplayer_only, any items set in gamemenu.res with notsingle will be hidden.
animated_title <boolean>
If true, tells the menu system that the mod has an animated title for the main menu screen. Otherwise, set it to false.
hd_background <boolean>
If true, indicates the menu system that there is a HD background available for the main menu. Otherwise, set it to false. The menu system uses this value to determine if it should load the HD_ counterpart of Background(Loading)Layout.txt in the game/mod's resource folder or not.

Multi-player specific

clientcrccheck <boolean>
If true, clients with a different client game/mod binary than the server's will not be able to connect. This might be useful if you want servers to check that players have not modified (usually for cheating) or running an obsolete version of your mod's client.dll.
detailed_textures <boolean>
If true, show the Detailed Textures checkbox (a feature added to GoldSrc GoldSrc since Counter-Strike: Condition Zero) in the Video options tab. If false or missing from liblist.gam, the checkbox is hidden (although details textures can still be set through the r_detailtextures CVAR).
Note:The checkbox will be greyed (can't be ticked/unticked) if the engine r_detailstextures_supported CVAR is set to "false". During the engine's initialization process, that CVAR's value is updated depending if the graphics card/chipset running the engine supports the GL_ARB_multitexture OpenGL extension or not.
mpfilter <strings>
This is a pattern to tell the Create Server dialog which maps should be filtered out in the maps list. For people who have C programming language knowledge, this is the equivalent of the result of strstr(mapName, pattern) == false.
 Example: A mod that is both singleplayer and multiplayer has its singleplayer maps names prefixed by sp_ and dm_ for multiplayer deathmatch. Setting a value of sp_ will hide all sp_ maps from the list.
Note:The pattern is case-sensitive (although your filenames should be fully lowercase to prevent issues on Linux).
Note:GameUI does "internal special treatments" for key game with values Half-Life and Opposing Force.
nohimodels <boolean>
If true, this will render player models using their lower definition body. For a more in-depth example of how it works, open models/player/gordon/gordon.mdl with any model viewer and look at the different bodies on the first body group.
nomodels <boolean>
If true, this will hide the ability for players to choose their model in multiplayer games in the Multiplayer tab in the options.
Note:Useful for mods where the model is enforced through game code (like Counter-Strike).
secure <boolean>
If true, indicates if server operators can use VAC (Valve Anti-Cheat) to protect their servers against cheating.

Network messages

The key/values below will only make a difference for multiplayer mods as they are part of the "network messages" between the clients and the server. For the sake of simplicity, it is recommended to not put them in your liblist.gam as those are purely for the sake of verbosity with a network packet tracer or special program like HLSW.

cldll <boolean>
Indicates the engine that the mod has a client binary.
size <integer>
Size of the mod in bytes.
Notice: How this is calculated and checked is unclear.
svonly <boolean>
Indicates the engine that the mod/game has only a server binary (no client counterpart).
url_dl <string>
URL to the download page of the mod. Probably used by WON's Custom Game as well.
url_info <string>
URL to the website of the mod. Probably used by WON's Custom Game as well.
version <string>
Version of the mod.

Misc

edicts <integer>
Override the engine's default (not maximum) amount of edicts (entity dictionaries) to use.
Note:Useful for mods with extremely complex geometry, entity setups that would not work with the default value.

Example

A simple liblist.gam for a Half-Life Half-Life mod.

liblist.gam
keyvalue
// Made with XBLAH's Modding tool. // Download it at https://xblah.dev/modding-tool // Mod information game "My Mod" // Content mounting gamedll "dlls\hl.dll" gamedll_linux "dlls/hl.so" // Starting maps startmap "c0a0" trainmap "t0a0" // Game menu type "singleplayer_only" hd_background "1" animated_title "1"

References

  • https://developer.valvesoftware.com/wiki/Liblist.gam