-
Notifications
You must be signed in to change notification settings - Fork 1
Dungeon Keeper FX List of Guides and Resources
Spatulade edited this page Dec 2, 2023
·
7 revisions
Below is a (hopefully) comprehensive list of resources
- Map Editor: Unearth: https://rainlizard.itch.io/unearth
- Script editor: https://keeperklan.com/threads/7350-VSCode-extension
- Strings editor: https://keeperfx.net/workshop/item/11/dungeon-keeper-string-editor (DKStrings)
- Creature editor: Adam’s editor: https://keeperfx.net/workshop/item/17/keeperfx-creature-editor
- Creature Maker by rainlizard: https://keeperfx.net/workshop/item/390/creaturemaker
- ID numbers:
- Sprite IDs and associated animations: https://github.com/dkfans/FXAnims/wiki/Sprite-animations-with-IDs
- Pointer IDs and associated graphics: https://github.com/dkfans/FXAnims/wiki/Pointers-with-IDs
- Icon IDs (GUI2) and associated graphics: https://github.com/dkfans/FXAnims/wiki/Gui2-icons-with-IDs
- Effects IDs and associated images: https://github.com/dkfans/FXAnims/wiki/Effects-with-IDs (only a video for now, if someone could extract the clips that’d be great)
- Effect Element IDs and associated images: https://github.com/dkfans/FXInfo/wiki/Effects-Elements-with-IDs
- Sound IDs and associated animations: https://github.com/dkfans/FXAnims/wiki/Sounds-with-IDs (needs some more info)
- 🟥What else is needed?
- Note: These are all manually updated so may not be 100% up-to-date. For up-to-date versions it’s best to check github files directly (it’s recommended to use GitHub Desktop or to download the files if you want to look through them all):
- Sprites:
- Pointers:
- https://github.com/dkfans/FXGraphics/tree/main/enginefx/pointer-64
- https://github.com/dkfans/FXGraphics/blob/main/enginefx/pointer-64/filelist_pointer.txt
- (not sure what the difference between pointer and lpointer is but they’re identical)
- Icons (GUI1 and GUI2):
- 32 and 64 sizes, 32 is for low-res mode and aren’t actively/consistently supported but it’s good practice to make low-res versions anyway. (There is a larger 128 size for many folders but it’s currently unsupported and isn’t being updated currently)
- GUI1 involves things you’re unlikely to change or need, such as frame borders, health flowers, portraits, thought bubbles, number symbols, menu icon frames, misc gui symbols, option icons and the map frame
- https://github.com/dkfans/FXGraphics/tree/main/menufx/gui1-64
- https://github.com/dkfans/FXGraphics/blob/main/menufx/gui1-64/filelist_gui1.txt
- GUI2 is more likely the things you will want to change. It basically covers anything involving the Control Panel: Creature icons, icons for creature spells, keeper spells, rooms, traps doors, message tab icons, computer assistant icons, player symbols in the query tab, the entire panel itself and creature stat symbols.
- https://github.com/dkfans/FXGraphics/tree/main/menufx/gui2-64
- https://github.com/dkfans/FXGraphics/blob/main/menufx/gui2-64/filelist_gui2.txt
- Effects:
- Effect Elements:
- Sounds:
- Tilesets:
- https://github.com/dkfans/FXGraphics/tree/main/enginefx/textures-32
- The .txt files don’t need much editing except copying a new one and updating the folder inside.
- (textures are different, you can’t really integrate customs easily atm, so you have to make the entire thing and send it to the team.)
- Script commands
- Names of things in various files
- At some point I’ll make a quick table of the key features for each, but the original source files (which you’ll need to edit or copy to a campaign and edit if you want changes) are:
- Fxdata (https://github.com/dkfans/keeperfx/tree/master/config/fxdata):
- Creature.cfg – List of creature names, changes on level up, instances with names (such as casting a Creature Spell, these rely on the spells/shots from magic.cfg, and also some misc stuff like “being tortured”), jobs and angerjobs with names and attack preferences.
- Crstates.cfg – creature states. I think this is more behind-the-scenes and isn’t really touched.
- Cubes.cfg – list of cubes. Used in Unearth when making custom slabs and columns. The file might be used in the future if we can add custom slabs to the file and scripts.
- Effects.cfg - List of ingame visual effects. Can be used in scripts but can’t really be edited at the moment.
- keepcompp.cfg – AI Keeper/Computer Assistant Parameters, can be used in scripts with SET_COMPUTER_PROCESS (see section 10 of the Old scripting commands for more info).
- lenses.cfg – possession effects for certain creatures (overlays and palettes). Hasn’t been touched, but if you learnt how it works and made new stuff I’m sure we would get around to implementing it.
- magic.cfg – spells (cast by creatures), shots (projectiles etc. generated by some spells), powers (creature/keeper spells with multiple power levels), specials (Dungeon Special boxes).
- objects.cfg – list of objects (e.g. furniture, lairs, gold piles) with names/IDs
- rules.cfg – Game rules such as gold per block, time to payday, rules for various creatures, rooms, spells, research order and points needed, list of sacrifices.
- terrain.cfg – list of slabs and rooms with names
- trapdoor.cfg – list of traps and doors with names and properties. Here you can make custom traps.
- Creatrs (https://github.com/dkfans/keeperfx/tree/master/config/creatrs)
- One for each creature, containing info like stats, name, properties, sprites, attraction requirements, creature spells, jobs etc.
- Check imp.cfg for more info on what everything does.
- Making custom traps/objects/creatures/anything else.
- Custom creature spells – need to modify magic.cfg (shot, possibly also spell), creature.cfg (instance) and the creature’s .cfg inside creatrs (assigning the instance to the creature). GUI2 for icons (or use a custom), sprites for graphics for shot.
- Custom traps – need to modify magic.cfg (shot), trapdoor.cfg (making the trap), GUI2 for icons (or use a custom), pointer for pointer (or use a custom), sprites for graphics of actual trap.
- Custom objects – need to modify objects.cfg. Sprites for sprites or make customs.
##Custom Icons If you need greyed-out versions of icons (for when you cannot afford a room/spell or have no traps), download qqluqq's Colour Swapper and use this palette as pal_out.png:
Guide for creating custom tilesets.
- Palette – The game has a strict palette - https://imgur.com/a/2cKm6dW.
- 🟥 You can use it in GIMP or other programs that let you use a palette to ensure your image looks like it should ingame.
- 🟥 Tilesets – subsection on all that with info by me and Trot. How to make, GIMP templates, palette and importing it, advice (make it darker than you’d expect, as this look is how it looks without light), you can much more easily extract and build it using Unearth now! You can also set in Unearth easily, but I can show backup way using hex editing.
- 🟥 Icons and sprites – setting up the JSONs
- 🟥 Bundling custom stuff and linking to it
- Using the VSCode is the best first start – it helps you with syntax and will immediately tell you if there are errors.
- After this, run the map ingame, then check keeperfx.log for any errors. The log will give the exact lines. And here is the mapmaking forum: https://keeperklan.com/forums/22-DK1-Mapmaking The sticky is up to date with information: https://keeperklan.com/threads/7258-Level-editors-and-documentation And it posts to this topic for the VC plugin: https://keeperklan.com/threads/7350-VSCode-extension
Useful scripts if you want to stop snowballing.
rem - prevent prison convert snow-balling -
IF( PLAYER0, SKELETON > 2 )
SET_GAME_RULE( PrisonSkeletonChance, 80 )
ADD_TO_FLAG( PLAYER0, FLAG7, 1 )
ENDIF
IF( PLAYER0,SKELETON > 5 )
SET_GAME_RULE( PrisonSkeletonChance, 60 )
ADD_TO_FLAG( PLAYER0, FLAG7, 1 )
ENDIF
IF( PLAYER0,SKELETON > 8 )
SET_GAME_RULE( PrisonSkeletonChance, 40 )
ADD_TO_FLAG( PLAYER0, FLAG7, 1 )
ENDIF
IF( PLAYER0,GHOST > 3 )
SET_GAME_RULE( GhostConvertChance, 30 )
ADD_TO_FLAG( PLAYER0, FLAG7, 1 )
ENDIF
rem - prevent torture convert snow-balling -
IF( PLAYER0, CREATURES_CONVERTED > 2 )
SET_GAME_RULE( TortureDeathChance, 33 )
ADD_TO_FLAG( PLAYER0, FLAG7, 1 )
ENDIF
IF( PLAYER0, CREATURES_CONVERTED > 5 )
SET_GAME_RULE( TortureDeathChance, 50 )
ADD_TO_FLAG( PLAYER0, FLAG7, 1 )
ENDIF
IF( PLAYER0,CREATURES_CONVERTED > 8 )
SET_GAME_RULE( TortureDeathChance, 80 )
ADD_TO_FLAG( PLAYER0, FLAG7, 1 )
ENDIF
rem - modify stun chance -
IF( PLAYER0,FLAG7 >= 1 )
SET_GAME_RULE( StunEvilEnemyChance, 80 )
SET_GAME_RULE( StunGoodEnemyChance, 80 )
ENDIF
IF( PLAYER0,FLAG7 >= 2 )
SET_GAME_RULE( StunGoodEnemyChance, 60 )
ENDIF
IF( PLAYER0,FLAG7 >= 3 )
SET_GAME_RULE( StunEvilEnemyChance, 60 )
SET_GAME_RULE( StunGoodEnemyChance, 50 )
ENDIF
IF( PLAYER0,FLAG7 >= 4 )
SET_GAME_RULE( StunGoodEnemyChance, 30 )
ENDIF
rem - set sacrifice limits -
IF( PLAYER0, SACRIFICED[IMP] >= 9 )
REMOVE_SACRIFICE_RECIPE( IMP )
ENDIF
IF( PLAYER0, REWARDED[BILE_DEMON] >= 1 )
REMOVE_SACRIFICE_RECIPE( SPIDER, SPIDER, SPIDER )
ENDIF
IF( PLAYER0, REWARDED[DARK_MISTRESS] >= 1 )
REMOVE_SACRIFICE_RECIPE( SPIDER, BUG )
ENDIF
IF( PLAYER0, REWARDED[TENTACLE] >= 1 )
REMOVE_SACRIFICE_RECIPE( SPIDER, TROLL )
ENDIF
IF( PLAYER0, REWARDED[HORNY] >= 1 )
REMOVE_SACRIFICE_RECIPE( TROLL, BILE_DEMON, DARK_MISTRESS )
ENDIF
rem - set graveyard limits -
IF( PLAYER0, VAMPIRE >= 2 )
SET_GAME_RULE( BodiesForVampire, 15 )
ENDIF
IF( PLAYER0, VAMPIRE >= 4 )
SET_GAME_RULE( BodiesForVampire, 20 )
ENDIF
IF( PLAYER0, VAMPIRE >= 6 )
SET_GAME_RULE( BodiesForVampire, 25 )
ENDIF