The SPMod is not a total convertion or a "complete" mod, it's just a new game dll meant to provide more tools for mappers with little knowledge of C while maintaining compatibility with the original game. A few gameplay tricks have been added, but you can disable them using cvars.
- The shopkeeper does no longer say "sorry, I ain't any" when selecting blank items
- Removed prices for inexisting items in Pawn-o-matics
- Redrawn slot5.pcx to avoid the blury bilinear filtering
- Captions pointing to wrong actor (some answers were credited to player instead of sidekicks)
- Player could trigger the reload animation for most weapons even though no spare ammo were available
- Instant death, freezing cast_bum_sit fixed
- cast_whore and cast_shorty now properly equip the flamethrower
- Fixed a terrible bug introduced by the SPMod (unable to reload the silencer)
- cast_bitch, cast_thug, cast_runt: added spawnflag 1 (Lockpicking skills for friendly one-handed weapon characters)
- Friendly characters can now be named whatever you want
- Friendly characters asking from 1 to 9 bucks will now be instantly hired for free
- Pickup items: added spawnflag 128 (trigger_pickup, they can fit almost anywhere and can only be picked up when triggered)
- trigger_once and trigger_multiple: added spawnflag 16 (can be toggled on and off)
- trigger_relay: added key "random" (chances, (from 0 to 100) for the trigger to fail and not fire its targets)
- func_explosive: added spawnflag 16 (autosound) and 32 (damages must be inflicted at once, or the brush doesn't break)
- func_button: added spawnflag 8 (don't move) and 16 (remove itself when triggered)
- cast_bum_sit: added spawnflag 1 (drunk)
- Custom pawn-o-matic stocks
- More scriptnames for path_corner_cast
- Accuracy mod for pistol (available in Pawn-o-matics and pickup items)
- Slowburn mod for flame thrower (available in Pawn-o-matics and pickup items)
- Custom log entries and episode flag registering in SSF files (target_register_epflag)
- Support for custom models (misc_model)
- Advanced keys (items or episode flags)
- Level designers can save the player's game when approaching tricky sections (target_savegame)
- func_spray: creates a gaz of pipe or something similar, barrels 'o fun.
- The Special Order key can now order any gang member to hold a distant position (aim at the position and press the Action key, cannot be used in a KP episode)
- More cheat codes (see console command "sonofsam", "itemlist" and "epflag")
- Several damages tweaks (see console command "cl_noratbite" and "cl_healthregain")
- Customizable gang size (see console command "g_maxgangmembers")
New CVars, Default value, Description
|sonofsam||0||+1 unlock all merchandizes in Pawn-o-matics, +2 everything for free (including henchmen UNLESS you tried to hire them prior to cheat), +4 infinite ammo (rounds in clip is never decreased), +8 mods never wears out, +16 infinite clips (you never drain ammos from the inventory when you reload, it's like the infinite ammo cheat except you have a "time penalty" for shooting like crazy)|
|sv_useentfiles ||0 ||Enable creation of .ENT file for each new map loaded, which allows entity override when reloading the map (sometimes, the file dump is incomplete and it's no longer possible to load the map -- when it happens, erase the corresponding .ENT file and try again)|
|g_maxgangmembers ||2 ||Maximum followers in your party (Only two characters can be displayed on the HUD, followers may dissapear when entering a map with too few info_player_coop spawn points)|
|sv_noautosave ||0 ||Disable auto-save feature implemented in custom maps (target_savegame)|
|cl_healthregain ||0 ||Enable regeneration of health lost because of drowning|
|cl_noratbite ||0 ||Rat and leeshes are no longer deadly predators to the human race
|spmod_debug ||0 ||Display in-game debug info (camera position, switcharea infos, trigger_toggle, eplog loading info...)|
|freezeworld ||0 ||Freeze world time (everything but the player and particles become static)
|entities ||List all entities present in the current map|
|itemlist ||List all weapons, ammo, armors and keys by pickup names|
|epflag ||Followed by nothing, list all episode flags and their flag number. Followed by a list of flag numbers, assign new active flags for the current game|
|smallcrew ||Add a random sidekick to your gang. Select the sidekick using a number between 1 & 8|
|johnwho ||Cycle through three ammo managment: infinites ammo, infinites clips, normal|
|ducktales ||You can get everything for free|
|blackfriday ||Everything is unlocked in every shop|
|hornybee ||Rocket launcher shoots heat-seeking missiles|
|macgyver ||Weapon mod never wears out|
|god ||Alias for "immortal"|
Most map packs and mods for Kingpin are distributed as is, and you're generaly advised to backup your original Kingpin files so you can replace them. And it's just painful, don't do it: there's an easier way to create and manage custom modifications. Just create a sub directory in your Kingpin directory (where KINGPIN.EXE is located). If Kingpin is installed in C:/GAMES/KINGPIN/, then your mod directory could be C:/GAMES/KINGPIN/MYMOD/, next to the base game directory (C:/GAMES/KINGPIN/MAIN. Organize your mod directory just like "MAIN": put your BSP files in "MAPS/", your textures in "TEXTURES/", your Navigation files in "NAVDATA/" and so on.
Directory, File Name, Description
|./ ||gamex86.dll ||This is the SPMod game "rules"|
|./ ||eplog0.ssf ||SPMod Script File  (if your maps are set for episode 0)|
|./pics/ ||h_flamet_sburn.tga ||Icon displayed when aquiring slowburn|
|./pics/ ||h_pistol_acc.tga ||Icon displayed when aquiring pistol accuracy|
|./models/pu_icon/accuracy/ ||tris.md2 ||Pistol accuracy pick-up model|
|./models/pu_icon/accuracy/ ||skin.tga ||Pistol accuracy pick-up skin|
|./models/pu_icon/slowburn/ ||tris.md2 ||Slowburn pick-up model|
|./models/pu_icon/slowburn/ ||skin.tga ||Slowburn pick-up skin|
|./models/props/menu_mdx/ ||slot5.pcx ||Fix for the original slot5.pcx|
|./models/props/menu_mdx/ ||slot6.pcx ||Pistol accuracy in Pawn-o-matics|
|./models/props/menu_mdx/ ||slot7.pcx ||Slowburn in Pawn-o-matics|
Last step: the batch file to launch your mod easily. Edit "launch.bat" and replace the +game SPMOD part to match your game directory's name (in this example, it would be +game MYMOD. And that's it. Now you can have the original Kingpin AND your own modification available, without overwriting anything.
The pawn_o_matic entity now support height more keys (you'll only need six of them, unless you wish to modify the code any further): 'pawn_index1' for weapons, 'pawn_index2' for mods, 'pawn_index3' for ammo1, 'pawn_index4' for ammo2, 'pawn_index5' for health and 'pawn_index6' for armors. These keys works just like spawnflags.
|+1 ||pistol ||silencer ||bullets ||rockets ||medkit ||helmet |
|+2 ||shotgun ||rof ||shells ||gaz ||m. bag ||h. helmet |
|+4 ||tommy ||magnum ||308cal ||- ||- ||jacket |
|+8 ||hmg ||reload ||grenades ||- ||- ||h. jacket |
|+16 ||grenade l. ||cooling ||- ||- ||- ||legs |
|+32 ||bazooka ||accuracy ||- ||- ||- ||h. legs |
|+64 ||flamethrower ||slowburn ||- ||- ||- ||- |
|+128 ||- ||- ||- ||- ||- ||- |
For instance, if you want a pawn-o-matic to have both pistol and tommy gun available for purchase, set 'pawn_index1' to '5' (1 + 4). Easy, right?
The SPMod Script File allows you to make the very same modifications without having to recompile the map after every change. It also gives you to possibility to modify the price for each item of each shop, using the 'count' (shop_id) key, see the SPMod Script File section for more information.
cast_thug, cast_bitch and cast_runt can now unlock doors like Fingers in Poison Ville or David in Steel Town. But unlike Fingers and David, they can unlock more than one door per map and it's not hard-coded.
First, put a friendly one-handed weapon cast in your map and set its spawnflag 1. Now, you need a locked door that CANNOT be opened with a key. Make a simple func_door_rotating and set its 'key' to '-1'. Let's put a location near the door, pointing to the door. This location and angle will be used by your friend to pick the lock. Place an ai_safespot entity on one side of the door (doors can only be unlocked from one side), set it's 'targetname' to anything. Now back to the door, set its 'target2' to the ai_safespot's 'targetname'. This door can now be unlocked.
Note that you can also add a trigger_unlock on the other side of the door for the player to unlock it. If a locked door has no ai_safespot linked to it, your friends won't be able to unlock it. Also, the 'key' value MUST be '-1'.
When an actor reaches a path_corner_cast, one of the following script can be triggered (basically, an animation). The animation is always played by the actor reaching the path_corner_cast.
This part of the code is kinda ugly to look at and not flexible at all (I mean it's hard-coded, right?). I'll certainly try to handle this using external files, but that's how it works for now.
Cast classname, Script name
The trigger_switcharea entity is a mix between the standard trigger_# entity and the ai_territory entity. This trigger only activates its targets when the player leave/enter the limits of a defined area.
It's important to understand that the trigger_switcharea does NOT represent the area itself, but the borders of the area, the angle key defines the direction of the area. Multiple boundaries can be tied to same area using a common targetname value. target defines the entity's id to trigger when the player cross the border (in and/or out). You can also toggle on and off a custom flag (as defined in the .SSF file) using the name key.
Spawnflag START_IN (1) must be set if the player starts INSIDE the area. By default, the target will be activated EVERYTIME the player cross the border, in a way or another, you can set spawnflag 2 or 4 (NO_IN and NO_OUT) if you don't want the trigger_switcharea to activate its target when the player walks in or out of the area (respectively). Spawnflag 8 (MASTER) can be set if you want this border to set it's default to the other during initialization.
|2||NO_IN||Do no trigger the target when walking into the area|
|4||NO_OUT||Do not trigger the target when walking out of the area|
|8||MASTER||Set this border as the reference border for initialization|
|targetname||The area's name|
|target||Entity to trigger|
|name||Episode flag name to toggle|
Download the example map.
All pick up items (ammos, weapons, health, keys) can be picked up when triggered. When the spawnflag 128 is set, the item can be put in very narrow places like lockers and can only be picked up when triggered. However, an item using this feature cannot be TRIGGER_SPAWN (2) nor TRIGGER_NO_TOUCH (1).
Download the example map (contains an example of the TRIGGERED_MULTIPLE spawnflag).