||kpded2 (win32) v2.1 17.11.2019
by Monkey Harris
Kingpin is based on Quake2, and like Quake2, it has several bugs and security
issues. Quake2 has since been made open source, and enhanced Quake2 servers
have appeared. R1Q2 is one of the main ones, and kpded2 is a version of it that
has been modified to run Kingpin instead of Quake2. kpded2 is fully compatible
with the original Kingpin server, so it can simply be dropped in place of the
kingpin/kpded executable without any config changes, although you will probably
want to edit your config to take advantage of new features.
As well as fixing bugs and security holes, kpded2 adds a bunch of other
improvements, including the following:
* A workaround for the Kingpin client's broken download support, to allow
sounds and skies to be downloaded from the server. PAK files and other
Game DLL specific files can also be downloaded from the server.
* Reduced bandwidth, memory and CPU usage. Practically 0% CPU usage when idle
mode is enabled by the Game DLL or config.
* Packet loss measurement and duplicate packet sending to reduce it.
* Message buffering to prevent overflows.
* Player country lookups using MaxMind GeoIP2 database.
* Demo recording.
* Support for team info in server browsers.
* A new console window with command history on Windows ("-oldconsole" can be
used in the command-line to enable the old style console window).
* A bunch of new config options and commands (see below).
Quick start settings
Here are some suggested settings to start with in your server config:
set sv_bandwidth xxx (replace 'xxx' with a value below your upstream speed)
set sv_enforcetime_kick 4
set sv_maxpps 120
If you have a slow hard drive (not SSD), also enable download precaching:
set sv_download_precache 1
When running a mod that doesn't require any special client files (eg. PAKs),
clients should be told to use their 'main' directory to avoid duplicate files
in multiple directories:
set clientdir main
When running an old mod without its own connection or name notifications, the
following may be used:
set sv_show_connections 1
set sv_show_name_changes 1
On Windows, the default network buffers are very small, so they should be
set net_rcvbuf 64
set net_sndbuf 64
Also on Windows, if other software (including other servers) is running on the
same machine, the Kingpin server may be given higher CPU priority when it is in
set win_priority auto
See the descriptions below for what these settings do.
On Linux, all files and directories should be lowercase. The 'fixfilenames'
command can be used to fix any such issues. When using the unzip program to
install files, its -LL option can be used to have it convert to lowercase.
Server config options
As well as the standard Kingpin config options, the following new options can
Allow downloading of PAK files in the game directory (not main). Default 1.
Allow downloading of files in the pics directory. Default 1.
Client-side "game" value. This allows the server to use a custom directory
while the client uses the normal directory. Default is the server's "game"
Bitmask of message types to exclude from the console. Default 0.
Bitmask of file info to cache. Default 0.
1: Cache path and size of files inside PAK files
2: Cache non-existent files
4: Cache path and size of normal files
This option works the same as standard but can also be set to 4 for appended
& buffered logging. Default 0.
Include a timestamp in the logfile. Default 1.
Format of the logfile timestamp (see strftime function docs).
Default [%Y-%m-%d %H:%M]
Logfile filename. Default qconsole.log
Bitmask of message types to exclude from the logfile. See con_filterlevel.
Limited rcon password for use with lrcon commands. Default empty.
Don't use ICMP destination-unreachable messages to detect and kick clients
with lost connections. Default 0.
Network receive buffer size in KB. Default 0 (OS's default). Windows only.
Network send buffer size in KB. Default 0 (OS's default). Windows only.
Disable console input. Linux only.
Disable console output. Linux only.
This option works the same as standard but can also be set to send one type
of heartbeat to master servers. Default 1.
1: Auto-enable both heartbeats
2: Enable Gamespy heartbeats
3: Enable Quake2 heartbeats
Allow players to use models that the server does not have. Default 0.
Allow use of the 'map' command to change levels. The 'gamemap' command should
be used to change levels as 'map' will force the Game DLL to unload and
reload, losing any internal state. Default 1.
Allow players who aren't in game to send commands (eg players who are map
downloading). Since the Game DLL has no knowledge of the player until they
are in-game, this can be dangerous if enabled. Default 0.
Allow clients to use cl_nodelta (disables delta state). Not using delta state
results in much greater bandwidth usage. Default 0.
Suspend the game when the server is empty. Default 0.
Action to take on receiving an illegal cvarcheck response (illegal meaning
'completely invalid', not 'fails the check condition').
0: Console warning only
1: Kick player
2: Kick and blackhole player.
The upstream bandwidth available in KB/s. This determines how fast downloads
can be. Default 0 (no limit).
Network mask to use for automatically added blackholes.
Common values: 24 means 1.2.3.*, 16 means 1.2.*.*, etc. Default 32.
Allow automatic blackholing (IP blocking) by various features. Default 1.
Compression level to use when sending compressed game state data to patched
clients. Default 1.
1-9: Lowest/fastest to Highest/slowest
Compression level to use when sending compressed files to patched clients.
1-9: Lowest/fastest to Highest/slowest
Message to show to clients after they connect (prior to auto downloading and
entering the game). Default empty.
Turn svc_disconnect and stuffcmd disconnect into a proper disconnect for
buggy mods. Default 1.
If a player attempts to download this file, they are kicked from the server.
Used to prevent players from trying to auto download huge mods.
Message to show to users who are kicked for trying to download the file
specified by sv_download_drop_file.
Refuse auto downloading if the number of players on the server is equal or
higher than this value. 0 means no limit. Default 0.
Pre-cache downloads to the system file cache before sending them to avoid I/O
delays. Default 0.
Kick clients that exceed this many seconds of time offset. Default 0.
1+: Enabled (increase value to reduce false positives)
Allow use of partial names in the kick, dumpuser, etc commands. Default 0.
Save network bandwidth by not sending entities that are marked as no longer
in use. This only applies to buggy mods that do not mark entities as unused
when they are no longer in use. Note that some mods may have problems with
this if set to 1. Default 0.
Read-only bitmask of extended server features for the Game DLL. Do not
Filter client commands. Default 0.
0: No filtering
1: Strip low ASCII values.
2: Strip low+high ASCII values.
Filter client userinfo. Default 0.
0: No filtering
1: Strip low ASCII values.
2: Strip low+high ASCII values.
Force a quick reconnect to this specified IP/hostname. Useful as an
anti-proxy check, specify your full IP:PORT. Default empty.
Remove %% from user-supplied strings to mitigate format string
vulnerabilities in the Game DLL. Default 0.
Show warnings and optionally cause breakpoints if the Game DLL does something
in an incorrect or dangerous way. Useful for mod developers. Default 0.
1: Show warnings only.
2: Show warnings and break on severe errors.
3: Show warnings and break on severe and normal errors.
4+: Show warnings and break on all errors.
The MaxMind GeoIP2 database to use for player country lookups. The database
can be downloaded from http://dev.maxmind.com/geoip/geoip2/geolite2/.
Default "GeoLite2-Country.mmdb" if it exists, otherwise empty (disabled).
Report to the master server at kingpin.info. Default 1.
Hide information about who is playing from server browsers. Default 0.
Don't respond at all to requests for information from server browsers.
Seconds before kicking idle players. 0 means no limit.
Maximum number of connections allowed from a single IP. Default 3.
Prevent new players from connecting. Default 0.
Log connecting client userinfo. Default 0.
Message to sent to clients when they are refused a map download.
Message to send to clients when they commence a map download. Default empty.
Maximum file size in bytes that a client may attempt to auto download.
Default 0 (no limit).
Maximum number of movements to replay from lagged clients. Lower this to
limit 'warping' effects. Default 20.
Maximum number of duplicate packets a client can request for when they have
packet loss. Each duplicate causes the client to consume more bandwidth.
Limit users to sending this many packets/sec (tied to the client's cl_maxfps
setting) and kick if they persistently exceed it. 0 means no limit.
Minimize memory usage when the server is empty. Default 0.
Minimum number of packets/sec a client is required to send before they are
kicked. Default 0.
Milliseconds of movement to allow per client per 16 frames. You shouldn't
need to change this unless you know why. Default 1800.
Attempt to calculate player visibility server-side to thwart wall-hacks and
other cheats. Default 0.
Only apply sv_nc_visibilitycheck checking to other players. Default 1.
Disallow the Game DLL to set serverinfo cvars (serverinfo shows up on server
browsers). Some mods set too much serverinfo, causing info string exceeded
errors. Must be set before the mod loads to be of any effect. Default 0.
Disable zooming-in by setting fov below 90. Default 0.
Default number of duplicate packets sent to a client suffering packet loss,
if they have rate set to at least 15000. Default 0.
Message to send to clients when they commence a PAK download. Default empty.
Try to predict movement of lagged players to avoid frozen/warping players
(experimental). Default 0.
Randomize the server framenumber on starting to prevent clients from being
able to tell how long the map has been running. Default 0.
Maximum number of status requests to reply to per second.
Amount of bytes the rcon buffer holds before flushing. You should not change
this unless you know what you are doing. Default 1384.
Number of rcon attempts to accept per second. 0 to disable rate limiting.
Display output of rcon commands in the server console. Default 0.
If set, restart the server by changing to this map if the server crashes from
a non-fatal error. '*' can be used to terminate the server. Default empty.
Reload the Game DLL on the next map load. Default 0.
Address to redirect clients to if the server is full. Can be a hostname or
IP. Default empty.
Password required to access a reserved player slot. Clients should set their
'password' cvar to this. Default empty.
Number of reserved player slots. Default 0.
Broadcast connecting players to all players on the server. Default 0.
Broadcast player name changes to all players on the server. Default 0.
Force client userinfo to conform to the userinfo specifications. This will
prevent colored names amongst other things. Default 1.
Play an underwater sound to players that are under water. Default 0.
Modify the name (append a number) of a player that tries to use the same name
as another player on the server. Default 1.
Display the server uptime statistics in the info response shown to server
browsers. Default 1.
Perform strict checks on playerskins passed to the engine by the mod. When
enabled, this ensures all skins are in the form model/skin. Default 1.
Control the server's CPU priority level. Default 0. Windows only.
-1: below normal
1: above normal
auto: normal (0) when empty, above normal (1) when in use
As well as the standard Kingpin server commands, the following new commands can
Prevents any client from executing a given command.
Syntax : addcommandban [method] [logmethod]
method=message|kick|silent|blackhole (default message)
logmethod=log|silent (default log)
Example: addcommandban god
Example: addcommandban frkq2cmd kick silent
Example: addcommandban invdrop silent
Example: addcommandban invdrop silent silent
Add a simple check for a client cvar. Checked when a client connects and
when the 'checkcvars' command is used.
Syntax : addcvarcheck <[!]((=|<|>)numvalue|[~|#]string|*)> message
Example: addcvarcheck gl_modulate >2 KICK Use a lower gl_modulate
Example: addcvarcheck frkq2_bot * BLACKHOLE
Example: addcvarcheck vid_ref sw KICK Software mode is not allowed
Example: addcvarcheck timescale !=1 KICK Illegal timescale value!
Example: addcvarcheck rate <5000 STUFF set rate 5000
WARNING: If the match string requires quotes it can not be added via rcon.
~ checks for a substring match
# checks for an exact match (case-insensitive)
* checks for any non-empty value
! negates the result
Prevents a given IP from communicating with the server.
Syntax : addhole [SILENT|MESSAGE] [message]
Example: addhole 192.168.0.1 MESSAGE You are not welcome on this server.
Example: addhole 172.16.0.0/16 SILENT The clients will never see this text.
Allow a command to be used with limited rcon.
Syntax : addlrconcmd
Example: addlrconcmd set dmflags
Make an otherwise undefined user command do nothing.
Syntax : addnullcmd
Example: addnullcmd invdrop
Add a server-side aliased command that stuffs clients.
Syntax : addserveralias
Example: addserveralias cow "set gender_auto 0;set skin cow/black"
Add a command sent to a client at a chosen time.
Syntax : addstuffcmd
Example: addstuffcmd connect set allow_download 1
Example: addstuffcmd begin say I have just entered the game!!
Add a simple check for a userinfo variable.
Syntax : adduserinfocheck <[!]((=|<|>)numvalue|[~|#]string|*)> message
Example: adduserinfocheck rate >15000 KICK Your rate value is too high!
Example: adduserinfocheck name ~lamer KICK Lamers aren't welcome here.
Example: adduserinfocheck name !~[R1Q2] KICK This server is for R1Q2 clan members only!
Example: adduserinfocheck msg !=0 KICK You must use msg 0 on this server.
Example: adduserinfocheck fov <90 KICK No zoom aliases allowed!
WARNING: If the match string requires quotes it can not be added via rcon.
Allow a given IP block to bypass a blackhole filter.
Syntax : addwhitehole
Example: addwhitehole 192.168.0.1
List alias commands (set with 'alias').
Send all cvar checks to all clients.
Record a demo from a client's point of view. If demoname is omitted then one
will be auto-generated based on the client's name.
Syntax : clientrecord [demoname]
Example: clientrecord 1 demo1
Stop recording a client. If userid is omitted then all current recordings are
Syntax : clientstop [userid]
Show the description of a config option.
Syntax : cvarhelp
Allows any client to execute a previously banned command.
Syntax : delcommandban
Example: delcommandban god
Remove a cvar check.
Syntax : delcvarcheck
Example: delcvarcheck gl_modulate
Remove a Win32 service for a server. Windows only.
Syntax : deleteservice
Example: deleteservice KPDM
Remove a (or all) blackhole from the list.
Syntax : delhole
Example: delhole 1
Remove a limited rcon command.
Syntax : dellrconcmd
Example: dellrconcmd set dmflags
Remove a nullcmd.
Syntax : delnullcmd
Example: delnullcmd invdrop
Remove a server alias.
Syntax : delserveralias
Example: delserveralias cow
Remove a stuffed command.
Syntax : delstuffcmd
Example: delstuffcmd connect 1
Remove a userinfo check.
Syntax : deluserinfocheck
Example: deluserinfocheck rate
Remove a (or all) blackhole bypass entry.
Syntax : delwhitehole
Example: delwhitehole 192.168.0.1
Dump the current map's entities to a file in the maps directory. See the "Map
override files" section.
Syntax : dumpents
Example: dumpents kpdm1.bsp.override
Change any uppercase filenames in the server's directory and sub-directories
to lowercase. Linux only.
Show the number of filesystem cache entries.
Flush the filesystem cache.
Install a Win32 service for a server. Windows only.
Syntax : installservice
Example: installservice KPDM +set game comp +exec server.cfg
List banned commands.
List current cvar checks.
List current blackholes.
List allowed limited rcon commands.
List server aliases.
List stuffed commands.
List current userinfo checks.
List blackhole bypass entries.
Show current time.
Minimize the console window. Windows only.
Restart the network (recreate sockets and reset stats).
Show network statistics.
Show the server's accumulated CPU time used.
Set additional files to be sent to clients. Also see allow_download_paks.
Syntax : setclientfiles [files...]
Example: setclientfiles readme.txt
Set a game start time to show in server browsers.
Syntax : setstarttime [days]
Example: setstarttime 21:30
This command works the same as standard but also includes the client rate
and packets per second (cl_maxfps) values. 'mode' can optionally be set to 2
to get current download info, or 3 to get more connection info, or '4' to
list current demo recordings, or 'all' to display all modes.
Syntax : status [mode]
Stuff raw string to client.
Syntax : stuff
Example: stuff 3 say hello
Stuff raw string to all clients.
Syntax : stuffall
Example: stuffall say hello
Set the console window title. Windows only.
Syntax : title
Example: title "my server's console"
Enable or disable minimize to notification area. Windows only.
Syntax : tray
Example: tray on
Show how long ago the server started.
Find where a file is being loaded from on the filesystem.
Syntax : whereis
The following new commands can be used by clients:
Show the serverinfo cvars.
Show ping and packet loss statistics for a client. If userid is omitted, then
the client's own stats are shown.
Syntax : lag [userid]
Request duplicates of each frame to be sent when there is any packet loss.
If n is omitted, then the client's current setting is shown. Also see
Syntax : packetdup [n]
Client cursing disabling
A client that has parental control active will not hear cursing sounds when
playing a mod that has cursing ability, and other clients won't hear any
cursing sounds from them if they happen to try the cursing feature themself.
This can also be enabled without parental control by adding "set nocurse 1" to
the autoexec.cfg file.
Besides not wanting to hear cursing sounds, another possible reason to do this
is to avoid a possible stutter when a curse sound is first loaded from a slow
hard drive (not SSD).
Map override files
Map override files allow modification of entities in existing maps without
requiring any client-side downloads or support. For example, they can be used
to add and remove weapons/ammo/spawnpoints, or convert a DM map into a bagman
(or other game mode) map.
The 'dumpents' command can be used to export an existing map's entities to a
file, which you can then modify as wanted in a text editor. The file's
extension must be '.bsp.override', and it must also contain the original map's
name in a first line comment (added automatically by the 'dumpents' command).
An override file can have the same name as the original map (just '.override'
added) to always use the modified entities with that map, or it can have a
different name. For example, if you want a separate version of kpdm1 without a
flamer then you might name the file 'kpdm1-noflamer.bsp.override'.
Game DLL updating
The game DLL can be updated without stopping the server by appending '.new' to
the new file's name (eg. gamex86.dll.new). It will then replace the existing
DLL upon the next reload, which can be triggered by the 'map' command or the
|Anzahl der Downloads
hambloch.com - download database