MAPINFO/Skill definition

From ZDoom Wiki
(Redirected from Skill definition)
Jump to navigation Jump to search

Skill definitions begin with the keyword "skill" followed by the name of the skill and the properties block.

Skill commands

clearskills

Before defining any skills you may use this to clear off any and all skill levels that the game uses. Use it outside of any other blocks.

skill <name> { properties }

Creates a new skill level. <name> is arbitrary so long as no two skill blocks use the same one. Use one of the name or picname properties below to specify what to show in the skill selection menu. If there are more than eight available skills in total, the skill list will be displayed using the small menu font instead of the traditional big font; and skill pictures will not be shown.

Skill properties

The following properties are supported within a skill definition:

Property Description
AmmoFactor = <value> This affects how much ammo you pick up in the skill level, by multiplying the normal amount by <value>. For example, if the value is set to 2.0, you will receive double the normal ammo, and if it is set to 0.5, you would pick up half ammo.
DropAmmoFactor = <value> This affects how much ammo you pick up from fallen foes in the skill level, by multiplying the normal amount by <value>. For example, if the value is set to 2.0, you will receive double the normal ammo, and if it is set to 0.5, you would pick up half ammo. This value overrides AmmoFactor for ammo and weapons dropped by monsters. This affects both when an amount is specified in DropItem and when it's the default amount. For example, with DropAmmoFactor set to 4, a former human will drop clips containing 40 bullets while a golem will drop wand crystals containing 12 charges.
DoubleAmmoFactor = <value> This affects how much ammo you pick up when the Double Ammo DMFlag is set.
DamageFactor = <value> This value affects how much damage you take. If the value is set to 0.5 for example, you would only take half damage in that skill level. However, if you set it to 2.0, you take double damage from everything in the game. Note that this includes damage from sector effects, such as lava and slime.
RespawnTime = <value> Sets the amount of time in seconds it takes for monsters to respawn. Any value other than 0 means that monsters will respawn.
RespawnLimit = <value> Specifies how many times monsters respawn before staying permanently dead. Note: 0 means "infinite" — if you do not want monsters to respawn at all, use "respawntime = 0" instead.
Aggressiveness = <value> Factor for monster aggressiveness. 0.0 is normal, 1.0 is maximum.
SpawnFilter = <value> Only actors set to appear on the specified skill level will be spawned into the map. <value> can be from 1-16; however only UDMF-format maps can use skills above 5. You can also use one of the following keywords in place of a number. These correspond to the five skill levels present in all of the IWADs ZDoom supports:
  • baby (1)
  • easy (2)
  • normal (3)
  • hard (4)
  • nightmare (5)
SpawnMulti Multiplayer-only actors spawn in single-player games. (Verification needed)
ACSReturn = <value> The value returned by the ACS GameSkill command.
Key = "<key>" Sets the hotkey for the skill level.
MustConfirm = "[text]" The player must confirm they wish to play the skill level, just like when you choose Nightmare. If [text] is supplied, then it is used in place of the standard "Are you sure? This skill level isn't even remotely fair" when prompting the user.
name = "<name>" The name of the skill level in the menu.
PlayerClassName = "<class>", "<name>" The name of the skill for the specified class. The character class must be indicated by its display name (e.g. "Marine"), not its actor name (e.g. "DoomPlayer").
PicName = "<lump>" Graphic used in menu - this and Name are mutually exclusive
TextColor = "<color>" Color that the skill level's name is displayed in.
EasyBossBrain This makes the BossEye shoot SpawnShots at a decreased rate.
EasyKey This makes keys show up on the automap, even without cheats. Heretic's lowest difficulty setting uses this.
FastMonsters Halves the duration of actor states with the Fast keyword, and makes monsters and projectiles use their FastSpeed property, if set, instead of their regular Speed property.
SlowMonsters Doubles the duration of actor states with the Slow keyword.
InstantReaction Allows monsters to immediately perform their first ranged attack since spawning without having to take a few steps first.
DisableCheats Disables using cheats in-game unless sv_cheats is set to true.
AutoUseHealth Enables automatic use of Raven's health items, as well as any HealthPickup with HealthPickup.AutoUse set to 1 or 2. Is not necessary for automatic use of Strife's health items or pickups with AutoUse set to 3.
ReplaceActor = "<original class>", "<replacement class>" Replace actors of type "original class" with actors of type "replacement class". This is applied before DECORATE replacements, and only if the actor names are valid class (if the actors are not replaced as you expected, check the console for error messages). If your mod also features DECORATE replacements for standard actors, use the original actor names in the skill definition. Finally, actor replacements done in this manner are not transitive: if a skill replaces actor A by actor B, and actor B by actor C, actor A will not be replaced by actor C.
MonsterHealth = <value> Specifies a factor to multiply the health of all hostile monsters by. 1.0 means normal health, higher values increase health, lower values decrease it.
FriendlyHealth = <value> Specifies a factor to multiply the health of all friendly monsters by. 1.0 means normal health, higher values increase health, lower values decrease it.
NoPain If present, no actors will ever enter their pain states.
DefaultSkill This skill will be highlighted by default in the menu. It will also be the skill chosen by default if an episode has the noskillmenu flag.
ArmorFactor = <value> Much like AmmoFactor. This affects how much armor you pick up in the skill level, by multiplying the normal amount by <value>. This affects BasicArmorBonus and BasicArmorPickup.
NoInfighting Monsters will not infight when playing under this skill. This, however, only has an effect on maps which do not define their own infighting settings.
TotalInfighting Monsters will infight when playing under this skill, even if they are of the same species. This, however, only has an effect on maps which do not define their own infighting settings.
HealthFactor = <value> This affects how much health you gain when healing in the skill level, by multiplying the base amount by <value>.
KickbackFactor = <value> A multiplier for kickback received from being damaged.
NoMenu This skill does not get listed in the skill selection menu.
PlayerRespawn This has the same effect as the AllowRespawn map flag, but only for this skill.

Examples

Nightmare difficulty

skill nightmare
{
   AmmoFactor = 2
   FastMonsters
   DisableCheats
   RespawnTime = 12
   SpawnFilter = Nightmare
   PicName = "M_NMARE"
   MustConfirm
   Key = "n"
}

"I'm Too Young To Die" difficulty

skill baby
{
   AutoUseHealth
   AmmoFactor = 2
   DamageFactor = 0.5
   EasyBossBrain
   SpawnFilter = Baby
   PicName = "M_JKILL"
   Key = "i"
}

A hard difficulty that appears as "hellish" in the menu and replaces various items and monsters in the game with others

skill hellish
{
  FastMonsters
  DisableCheats
  SpawnFilter = Hard
  Name = "Hellish"
  ReplaceActor = "Medikit", "Stimpack"
  ReplaceActor = "HellKnight", "BaronOfHell"
  ReplaceActor = "ZombieMan", "ShotgunGuy"
  ReplaceActor = "ShotgunGuy", "ChaingunGuy"
  ReplaceActor = "Demon", "Spectre"
  ReplaceActor = "DoomImpBall", "CacodemonBall"
}

A ZDoom equivalent to the "Heaven or Hell" difficulty from the Devil May Cry series or the "Instant Kill" difficulty in Way of the Samurai 3. Everyone dies in one hit from anything. As a side effect, any actor that can gib will gib. Including the player, who gets knocked back very far if s/he is hit by an attack.

skill dante
{
  damagefactor = 255
  monsterhealth = 0.001
  spawnfilter = Nightmare
  name = "Doomguy Must Die"
  textcolor = blue
  mustconfirm = "One Hit. One Kill."
}