Post feature RSS Painkeep v2.0 - Feature set

Painkeep v2.0 beta - "full install". See painkeep_v2.0.txt for specific details, and check quick_start_guide.txt for some quick bot match fun. Supports painkeep plus (artefacts) and related hubs + maps. Bots to play with and complete visible weapons modeling. Use quake 3 maps with darkplaces and quake 3 installed.

Posted by on

Welcome to the painkeep version 2.0 beta release feature set article.
Please relax and enjoy yourself - the download is here: download v2.0 beta.

Painkeep v2.0 expands upon the v1.2.1 features - view v1.2.1 features here.
The following are features new to the v2.0 release.
- Frikbot (Painkeep adapted)
- PK*Bot modified
- Quick bot match (under darkplaces / custom glquake)

Visible weapons support for original weps & painkeep weps
- adjusted projectiles & beams to match barrel exit positions
- adjusted v_* models to approximate projectiles / beams coming from barrels

Painkeep artifacts support
- visible weapon for these too!

Chase cam
Advanced engine map configuration by cfg file or alias (darkplaces)
- control sky boxes, fog, music, etc.
Rotating brush support (hipnotic code)
Quake 3 item support (via darkplaces quake 3 map loading) by translation to quake 1 entities
Admin Items override / control menu now includes health box section (see admin menu in v1.2 section)
Custom glquake engine binary and source - you might need to re-compile this!

Using the new features.

1. How to use bots?

Want a quick and easy bot match? Good - I made one so bots are easier than using admin.
There is one caveat - this will only work under the darkplaces or custom glquake engine.

Run painkeep:
darkplaces -listen 16 -game painkeep
(You must run a dedicated or listen server! Setting "deathmatch 1" does not enable multiplayer.)

You should be on the start map. You will not be able to enter this code without a map loaded.
Hit ` to bring up the console. Enter:
sv_botmatch 1
sv_dyn_art_force 1

Enter a level in the hub, or load any map:
map hub3

A few seconds after you load the map 3 pk*bots and 3 frikbots of various skills will enter the game
and come gunning for you. Better be on your best game - these bots are tough.
Want more or less bots? sv_botmatch {number} - where number is greater than 1 will load that many bots.
Want 1 bot? Well I never...just enter "sv_botmatch -1".
The bots will be a mix of pk*bot and frikbots. You will not be able to load more bots
than the server has player slots - in this example, 15 bots (assuming you are the only player connected.)

Note: sv_botmatch will not load bots if you already have any bots loaded.
sv_dyn_art_force is not necessary for bots - this adds painkeep plus items to the map.

Want more control over bots? You will need the admin menu system for those features.

First read the tutorial on activating server admin if you have not done so. Second start a dedicated net server or LAN listen server via the game menu or command line.
Next connect to the server. Issue the admin impulse and give your password to enter admin mode.
Enter 23 for bot control. The bot menu will be displayed:

Admin Bot Menu:
pk*bot frikbot
01: add bot 11: add bot
02: remove 1 12: remove 1
03: 3 *skill 13: 3 *skill
- add 1 bot of each skill
04: add 4 14: add 4
- add 4 bots - same skill
05: verbose
06: update 20: +skill
07: unrestricted
08: observer mode
09: observer time
666: main menu
admin impulse: exit admin

Enter the codes to add or remove the bots as desired then exit admin. You will now be facing
determined painkeep capable bots. I suggest a combination of pk*bots & frikbots of varying skills
for the best bot match results.

These are not "normal" quake DM bots. They know and use painkeep features! Don't be surprised
if a bot runs in and throws down a gravity well, beartrap or auto sentry...

Note: pk*bots after a while seem to move "faster" - flickering around without moving according to
game physics. If you are running darkplaces try this: access the console and enter "slowmo 0.98" -
this will make the pk*bot's movement a bit smoother.

2. Visible weapon support.

Whatever weapon is held by a player or bot will be shown. Additionally weapons held by a player or
bot will be displayed in a "carry" mode, either on the players / bots back (range weps) or at its side (carryables).

There is a VW_ARMOR option when running under darkplaces / custom glquake only. This is turned off by default because the armor viswep has some display issues. To turn it on bring up the console (in dedicated mode the console is all you have) and enter "sv_vw_armor 1". Now when you collect armor it should appear over your player in the appropriate color and sync with your movements as with the other visual weapons.

If you don't want any visible weapons and want to go back to the generic gun / axe only - go to the console and enter "sv_vw 0".
To turn visible weapons back on enter "sv_vw 1". You will have to (re)load the map for the change to take effect.
"sv_vw" will over-ride the "sv_vw_armor" setting if you turn it off.

3. Painkeep Artifacts.

Painkeep Artifacts is also referred to as Painkeep Plus.

Any map that has painkeep artifacts entities will load those items and they can then be used.
Painkeep artifacts are:

Phone - (cell phone) when activated this item teleports you to a random spawn point.

Ego - (stone head) when activated this stone head floats around the player in an orbit, plays a digeridoo sound and visits damage on other players who attack the ego defended player.

Tomb - (tombstone) when activated this item is thrown like a bear trap. It leaves a grave stone and if any player touches it they will be burdened by a twitching, screaming corpse, that will cause damage. As the corpse burdens the attacked player, jumps and movement become very difficult.

Actor - (a mask like in Mask) The selection impulse will rotate this item through pentagram and quad. When activated the player will appear to have a pent or a quad, but without the true effects.

Painkeep artifacts are found in the convenience pack listed above and available on fileplanet. They are found on maps with the third hub. You can also use the sv_* variables detailed here to put them into any map.

For mappers they are identified thus:

Quaked entries for map program *.qc file
/*QUAKED item_pkplus_ego (0 .5 .8) (-16 -16 -24) (16 16 32)
/*QUAKED item_pkplus_tomb (0 .5 .8) (-16 -16 -24) (16 16 32)
/*QUAKED item_pkplus_actor (0 .5 .8) (-16 -16 -24) (16 16 32)
/*QUAKED item_pkplus_phone (0 .5 .8) (-16 -16 -24) (16 16 32)

If you don't like painkeep artefacts and you use darkplaces / custom glquake they can be disabled. To turn them off bring up the console (in dedicated mode the console is all you have) and enter "sv_pk_art 0". To restore them enter "sv_pk_art 1". Note: maps must have artefacts items on them for you to use them. The only maps included are the hub3 maps and chv_hub itself. Dynamic items now include artefacts.

Want painkeep artefacts on every map? If you are running the darkplaces / custom glquake engine enter this in the console: "sv_dyn_art_force 1". Artefact entities will now dynamically load on every map! Note: if you have other dynamic entities options enabled, it may occlude operation of this option. To be sure also enter: "sv_dyn_ovr 0" and "sv_dyn_force 0". You can set the number of items that will load with "sv_dyn_force_cnt {number}" - the default is 6.

4. Chasecam.

This cam is based on: "chase cam mod - Rob Albin, 09 Sep 96", with heavy modifications.
Improvements: more advanced dead cam with mobility, better water operation, bot stuff.
Issues: disconnect or respawn dead observers after an admin set time limit. The code
for this exists, but is not admin configurable yet.

The following are programmed chasecam impulses and thier actions:

impulse 230 = toggle chasecam on and off
impulse 232 = decrease cam altitude (- Z axis)
impulse 233 = increase cam altitude (+ Z axis)
impulse 234 = decrease cam distance back (+ v_forward - moves along view point, closer to player model)
impulse 235 = increase cam distance back (- v_forward - moves along view point, farther from player model)
impulse 238 = read cvar temp1 value as cam distance (v_forward vector)
impulse 239 = read cvar temp1 value as cam height (Z axis)

The chase cam will deactivate when you enter admin or the user menu. This action is taken primarily due to admin mode placing a glowing sphere above the player model, which makes viewing menus difficult.

If you are running under darkplaces / custom glquake you can disable the default chase cam. Bring up the console and enter "sv_cam_def 0".
You will now start with chase cam off if it is not set. You can still toggle the cam. Turn default back on with "sv_cam_def 1".
This only controls the default action for the chase cam. Cam mode can still be toggled by impulse and will track through level changes and respawn while a client remains connected.

The chasecam can be disabled entirely with "sv_cam_off 1".

5. Advanced engine map configuration.

For the moment this has been designed for and only tested on darkplaces.
You can place any console commands in here - set cvar(s) and run console commands.
This was primarily intended to set fog parms, ambient lighting level and other special effects.

Say for instance, you want to run Altarbeta.pk3 (containing all files and altarbeta.bsp) via
darkplaces with the painkeep 2.0 mod.

You would place the following alias in a cfg file (admin.cfg is a good place):

alias altarbeta_mapcmd "r_ambient 16;fog 0.5 0.4 0 0.4 0.8"

This will set the r_ambient (ambient light value) cvar to 16 to brighten the map and
set fog to the indicated 5 floats to approximate the quake 3 maps native fog.

You could also place these commands in config file: altarbeta.cfg.

(NOTE: if you get this map, it has a teleport that has been fixed with a darkplaces .ent file.
You can contact me through moddb or email if you want this .ent file.)

These controls need more testing with dedicated and LAN listen servers.

6. Rotating brush support.

Load any map with standard rotating brushes (commonly found in Hipnotic maps from the Scourge
of Armagon expansion pack. Or download "Chaos Heaven" found in my addons section of moddb.)
Rotating entites will appear and should function normally (doors, spinning objects, and trick
rotating walls - with block, have been tested.)

7. Quake 3 item support.

NOTE: You will need quake 3 installed, and darkplaces must be able to find the quake 3 files needed.

Darkplaces has the ability to load quake 3 maps, however, quake 3 items are not translated.
Painkeep 2.0 will translate quake 3 items as follows:

q3 wep / item pk wep / item
bfg chain_lg
plasma chain_lg
machinegun supernailgun / nailgun
shotgun supershotgun
grapplinghook harpoon
railgun gravity well / turret
lighting lighting
slugs explodeshells
grenades rockets
lightning cells
bfg cells
armor shard beartrap
item_armor_combat item_armor2
item_armor_body item_armorInv
item health sm candle
item_health_large item_health
item_health_mega item_health
item_quad item_artifact_super_damage
item_regen item_artifact_invulnerability
item_invis item_artifact_invisibility
item_enviro item_artifact_envirosuit

When 2 items are listed a random selection of the 2 occurs each map load.
The code also attempts to make useful the suspend item spawn flag,
play target_speaker sounds, handle all teleport destinations, and shooter traps / targets.

Still needed: push effect from jump pads, these are not translated correctly by the engine.

Future updates may include quake 3 weapons / items with minimal translation (or offer this as an
admin option) if md3 can be used/translated with darkplaces.

8. Painkeep 100% mode.

If you are running under darkplaces / custom glquake you can enable a 100% mode. This means everything will run as if under the final release of painkeep v1.11. Or as close to it as possible. The admin menu will still be available, but all the extras listed above should be gone. This feature has not undergone extensive testing and could have issues. To turn this feature on bring up the console (in dedicated mode the console is all you have) and enter "sv_pk100 1". Turn it back off with "sv_pk100 0". Some features of course will only be affected with a map reload.

9. Custom glquake engine and source code.

Pre-compiled binary in linux_quake. Might fail on your *LINUX* system!
(will fail on win...)

*** If you do not have a similar linux install (last compiled on 2.6.18-6-amd64 debian)
you may need to recompile this code.

This is a slighly modified version of glquake as released by iD software under the GPL.

You need to read disclaimer.txt if you intend to run this binary! Backup all valuable data.
If you have any doubts as to the veracity, stability or safety of this binary,
compile the code yourself, or use darkplaces. You have been warned.

Source - found in "source code" dir - glquake.tgz. Extracts to quake-src.
I have compiled this source under 32 bit and 64 bit linux kernels.
The last time I had it running (my system is currently not stable because of a new
video card and issues [what freaking else?] with the nvidia driver)
under 64 bit it worked fine. I noticed winquake stuff in there, but I have no idea
how it works, if you can compile winquake or if it will work with this mod.

If you are experienced with compiling software from source, it should go well.
The binary is placed in the bin dir - bin/glquake. (Again not sure for win...)

If you aren't adept at compiles, try something like this (no promises here):

Open a terminal, cd to quake-src and enter:

This works for me. Depending on your compiler you may need a ./configure, or
some type of autoconf. This really depends on your OS and compiler setup
and there is no way I can assist with all the possibilities. There are plenty
of tutorials online for compiling, try (a more secure search engine):

10. Warnings.

The following warnings may be seen in the console when loading maps.
These are from unused configuration options and do not indicate bugs.

couldn't exec maps/pk12.way
execing d_server.cfg
couldn't exec pk12_server.cfg
Unknown command "pk12_mapcmd"

Notes on sv_*:

These only work under darkplaces / custom glquake for now.
You can not access these from a client console connected to a dedicated or listen server. Only the server console has access to these.

At this time the new sv_* variables (sv_botmatch, sv_vw, sv_vw_armor, sv_pk_art, and sv_pk100) are only polled on map load. If you desire to restart a map leaving players with thier current items - in game enter the admin menu (this is disabled in the default server config - see tutorial or .txt file to enable) and enter 6 at the main menu. On a dedicated server console enter "changelevel {map name}" where {map name} is the filename of the current map without the .bsp extension.

If you want a non default setting for these under darkplaces (sv_vw = 1, sv_vw_armor = 0, sv_pk_art = 1, and sv_pk100 = 0) on server launch you can edit d_server.cfg (run by quake-c if found), uncomment the variable and set it. However, if you do this you will not be able to make a permanent change at the console as the next map load will revert to the config in d_server.cfg. If you want a single map to deviate from the norm, make a file {mapname}_server.cfg, where {mapname} is the map filename without .bsp. This will be run whenever that map is loaded. If you do not change d_server.cfg you will be able to change these from the console, but they will not be saved after server exit with darkplaces. The custom glquake can and does save these in config.cfg, keeping all modifications to them.

Code name - Cataboligne - programmer | shovel owner

numbersix Author

Scroogle is sadly gone. Try this search engine for anonymous searching:

And if you load that and dont end up on the ixquick website with a https (locked) SSL session - your firefox has malware that is hijacking the ixquick site! You will have to search out the fix on another engine - the hijacked site will not report its own repair. You may also want to secure your firefox with NoScript.

Reply Good karma+1 vote
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.