MVDSV(8)

πŸ’– mvdsv β€” QuakeWorld-compatible dedicated server πŸ’–

okay bestie, sit down, grab a strawberry πŸ“, because we're gonna talk about mvdsv(8) β€” yes that's the section 8 system manager's manual page, and yes it's literally the moment your whole dedicated-server era begins. no cap.


✨ SYNOPSIS ✨

mvdsv -basedir DIRECTORY -game DIRECTORY [-t chroot dir] [-u user] [-g
group] [-d] [-cheats] [-enablelocalcommand] [-democache SIZE_IN_KB]
[-progtype PROGTYPENUMBER] [-minmemory] [-heapsize SIZE_IN_KB] [-mem
SIZE_IN_MB] [-ip IPV4_ADDRESS] [-port UDP_PORT]

🌸 DESCRIPTION 🌸

so this manual page documents, briefly, the mvdsv command. that's it. that's the vibe. πŸ’…

mvdsv β€” short for multi-view demo server β€” is a QuakeWorld-compatible dedicated server. iconic. legendary. the blueprint. πŸ‘‘

on Debian, it currently requires a package called quake-registered that can be generated from a copy of Quake I via game-data-packager(6). so like, you do need the real game data, bestie. no shortcuts. πŸ™ˆ


πŸŽ€ OPTIONS πŸŽ€

lowkey important warning first: mvdsv does not follow the usual GNU command line syntax, with long options starting with two dashes. most notably, it does not have a --help command. so don't go typing --help and getting mad at it, that's a you problem, not an mvdsv problem πŸ’€

πŸ¦‹ [unix specific parameters] πŸ¦‹

  • -t DIRECTORY β€” chroot to DIRECTORY. lock it down, queen.
  • -u USER β€” setuid to USER.
  • -g GROUP β€” setguid to GROUP.
  • -d β€” daemonize to background. ⚠️ not recommended when run from a systemd unit, fr fr, let systemd do its thing.

🌈 [common parameters] 🌈

  • -basedir BASEDIR β€” the "base directory" is the path to the filesystem directory holding the quake game directories (id1/pak0.pak, id1/pak1.pak). the base directory is only used during filesystem initialization. it defaults to the current directory when not set. example time bestie:
mvdsv -basedir /usr/share/games/quake
  • -game GAMEDIR β€” the "game directory" is the first tree on the search path, and it's the directory that all generated files (savegames, screenshots, demos, config files) will be saved to. this directory is relative to the base directory. so basically it's where all your stuff lives. 🫢
  • +gamedir GAMEDIR β€” literally identical to -game. but when both are set, -game takes precedence. main character energy from -game, honestly. πŸ‘‘
  • -ip IPV4_ADDRESS β€” bind to the network interface with this IPv4 address, instead of all interfaces. currently only IPv4 addresses are supported. IPv6 addresses will silently fail. 🫠 like ghosting but for your packets.
  • -port UDP_PORT β€” listen on UDP port number PORT for QuakeWorld clients to connect. defaults to 27500. ✨
  • -cheats β€” enable cheats on this server. equivalent to setting sv_cheats 1 in the config. this makes a set of cheat commands available on the QuakeWorld client:
    • god will make the player invulnerable.
    • noclip allows the player to clip through walls.
    • fly allows the player to fly, but not clip through walls.
    • give <alphanum> [amount] will give the player items.
      • 2 = shotgun
      • 3 = super shotgun
      • 4 = nailgun
      • 5 = super nailgun
      • 6 = grenade launcher
      • 7 = rocket launcher
      • 8 = lightning gun
      • s = shotgun ammo
      • n = nailgun ammo
      • r = rocket ammo
      • h = health
      • c = cells ammo
  • -enablelocalcommand β€” allow executing arbitrary shell code from within the server with localcommand CMD. VERY DANGEROUS. 😭 only enable this if you know what you are doing. like genuinely, this is the "please do not the cat" of server flags.
  • -democache SIZE_IN_KB β€” set the demo cache size in KB. will default to 16 MiB if set below that value. so if you under-set it, it just quietly bumps you up, generous queen πŸ’–
  • -progtype PROGTYPENUMBER β€” define the type of the qwprogs. this setting is usually not needed, as it is autodetected. but if you must:
    • 0 = pr1 (qwprogs.dat etc)
    • 1 = native (.so/.dll)
    • 2 = q3vm (.qvm)
    • 3 = q3vm (.qvm) with JIT
  • -minmemory β€” set memory to 0x550000 bytes. (deprecated, use -mem.) 🫑 old but remembered.
  • -heapsize SIZE_IN_KB β€” allocate fixed amount of memory in KiB. (deprecated, use -mem.)
  • -mem SIZE_IN_MB β€” allocate fixed amount of memory in Mi. overrides -heapsize and -minmemory. defaults to 32 MiB.
  • +exec MYSERVER.CFG β€” execute all server commands configured in the file MYSERVER.CFG. it's giving "here's my config bestie, run it." ✨

πŸ‘‘ AUTHOR πŸ‘‘

this manual page was written by Lee Garrett <debian@rocketjump.eu>, for the Debian GNU/Linux system (but may be used by others). thank you for your service, legend 🫢


🌈 SEE ALSO 🌈


okay that's the whole page, bestie, you're officially certified πŸ“œβœ¨ this was mvdsv, section 8 of the System Manager's Manual, dated January 24 2023. go forth and frag responsibly, mwah πŸ’…πŸ’–πŸŽ€

πŸ“¦ where this page comes from