- Overview
- Module Description - What the module does and why it is useful
- Setup
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Install a Painkeep server.
Painkeep was a very popular mod of Quake (the original) back in the day. Wouldn't it be cool to set up a server?
This module will install a Team Fortress hack of mvdsv. mvdsv is a QuakeWorld server that supports recording multi-view (from each player and free view). This is a neat feature that allows you to auto-record demos for all games played. Neat! There is an 'official' version of mvdsv that is more current (last updated in 2013 as opposed to 2011), but it breaks the physics of tossing goodies, which you do a lot of in Painkeep.
The binaries for TF mvdsv are at at this link.
The Painkeep mod has been worked on periodically over the years, and this work is included here.
Links to all the Painkeep things you need are at Weenieville.
I've written this Puppetry to run on Linux, and it has only been tested on Fedora 20.
The server binaries will go in /srv/painkeep.
There is an init file at /etc/init.d/painkeep. Use it like this:
sudo service painkeep start
sudo service painkeep stop
sudo service painkeep status
systemd is configured to watch and restart the painkeep service if it stops. This is necessary due to a bug in the harpoon code that crashes the server every so often.
Puppet Forge modules:
- maestrodev-wget
Quake is still licensed software. To run a Quake server, you'll need a couple of files from your original Quake install media:
- id/pak0.pak
- id/pak1.pak
They need to live somewhere that can be reached by a wget, like a web server or Dropbox or ownCloud or something.
A hieradata file that holds a few key value pairs and a user definition. It should look like this:
---
painkeepdir: '/srv/painkeep'
idpak0url: 'https://www.example.com/pak0.pak'
idpak1url: 'https://www.example.com/pak1.pak'
contact_email: '[email protected]'
contact_url: 'http://www.example.com'
banner: 'Weenieville Painkeep Modified'
rcon_password: 'password'
demodir: '/pkdemos'
default_playername: 'turdburglar'
- Make that yaml file and put it at /var/lib/hiera/paikeep.yaml.
- Put this in /etc/puppet/hiera.yaml
---
:hierarchy:
- painkeep
- Then, you should be able to run
puppet apply --modulepath=/path/to/modules /path/to/site.pp
and have a Painkeep server up and running in a jif.
##Reference
.
├── COPYING
├── files
│ ├── 1v1.dat
│ ├── burrito_mode.dat
│ ├── covrotation.cfg
│ ├── fastrotation.cfg
│ ├── mvdsv
│ ├── painkeep-initscript
│ ├── qwprogs.dat
│ └── qwprogs_zany.dat
├── manifests
│ ├── init.pp
│ ├── params.pp
│ └── user.pp
├── README.md
└── templates
└── server.cfg.erb
##Limitations
This module has only been tested on Fedora 20.
##Development
This modules lives at https://github.com/brasey/painkeep. Please feel free to raise issues, contribute code, fork, whatever.