Difference between revisions of "Buffs in KCD"
Pickysaurus (talk | contribs) m |
Pickysaurus (talk | contribs) m |
||
Line 541: | Line 541: | ||
[[Category:Kingdom_Come_Deliverance]] | [[Category:Kingdom_Come_Deliverance]] | ||
[[Category:Mod Creation]] | [[Category:Mod Creation]] | ||
+ | [[Category: Documentation]] |
Latest revision as of 11:06, 25 July 2019
Contents
Buff table
Buff table is located in Data\tables.pak\Libs\Tables\rpg\buff.xml
Column | Description |
---|---|
buff_id | GUID |
buff_name | Internal name, not showed in UI |
buff_desc | Description in UI, refers to Localization\english_xml.pak\text_ui_soul.xml
|
buff_class_id | Used for class exclusivity, refers to Data\tables.pak\Libs\Tables\rpg\buff_class.xml
|
icon_id | Icon in UI |
duration | Used by some implementations like Cpp:BasicTimed and Cpp:Fading |
buff_exclusivity_id |
|
params |
Contains a comma separated list of stat and skill modifiers. For example Available modifier operations:
State modifiers (like health and exhaust) can also have suffixes:
Some buff implementations like Cpp:Night also support modifier groups, which are created by dividing modifiers by a semicolon. For example in Up to 8 modifier groups can be created, but currently no implementation uses more than 2 groups. |
implementation | Buff implementation |
buff_ui_name | Name in UI, refers to Localization\english_xml.pak\text_ui_soul.xml
|
buff_ui_type_id |
|
buff_ai_tag_id |
|
buff_ui_order | Order in which buffs appear in UI |
is_persistent | Persistent buffs are saved |
visual_effect | Sets material effect, refers to Data\gamedata.pak\Libs\MaterialEffects\FXLibs\player_fx.xml
|
slot_icon_id | Icon for item buffs (e.g. poisoning) |
slot_buff_ui_name | Name for item buffs |
buff_lifetime_id |
|
buff_ui_visibility_id |
|
Buff implementation
Common implementations
Implementation | Description |
---|---|
Cpp:Constant | Buff is constantly active. |
Cpp:BasicTimed | Timed buff, which gets removed after it expires. Duration controls the expiration time in GameTime seconds. Modifier intensity does not change over time. |
Cpp:WorldTimeTimed | Similar to Cpp:BasicTimed, but uses WorldTime. |
Cpp:Fading | Timed buff, which gets removed after it expires. Duration controls the expiration time in GameTime seconds. Modifier intensity linearly decreases over time. |
Cpp:WorldTimeFading | Similar to Cpp:Fading, but uses WorldTime. |
Cpp:Instant | Applies its modifiers and then it gets removed. Useful in buff class exlusivity, to kick out other buffs in the same class. |
Cpp:Void | Does nothing, useful for buff overrides. |
Location buffs
These buffs activate when you enter a location with the specified category and deactivate when you leave.
Location categories are assigned in tables.pak\Libs\Tables\rpg\location.xml
.
Available location categories:
- 1: Village
- 2: Town
- 3: Forest
Implementation | Location category |
---|---|
Cpp:ForestLocation | Forest |
Cpp:SettlementLocation | Village or Town |
Cpp:CountrysideLocation | not Village and not Town |
Mannequin tag buffs
These buffs add mannequin tags used by animations.
Implementation | Added tag |
---|---|
Cpp:Alerted | "alerted" |
Cpp:Curious | "Curious" |
Cpp:Drunk | "Drunk" |
Cpp:InjuredTag | "Injured" |
Cpp:Monk | "Monk" |
Cpp:Sick | "Sick" |
Cpp:StomachPain | "Shitty" |
Context checking buffs
These buffs are applied in specific situations depending on the context.
Implementation | Context |
---|---|
Cpp:CombatContextBuff | Applied in combat |
Cpp:DialogSkillCheck | Applied in dialog |
Cpp:Haggle | Applied when haggling |
Cpp:DocumentItemBuff | Applied when dealing with items in category "document" |
Cpp:HerbItemBuff | Applied when dealing with items in category "herb" |
Cpp:ShieldAndArmorBuff | Applied when dealing with items in category "armor" or in category "weapon" with class "shield" |
Cpp:Educated | Applied against souls in social_class "nobleman", "monk" and "circator". |
Cpp:Lowborn | Applied against souls in social_class with wealth < HighbornWealthThreshold |
Cpp:Highborn | Applied against souls in social_class with wealth >= HighbornWealthThreshold |
Cpp:VersusSoldier | Applied against souls in social_class with soul_crime_role "soldier" |
Cpp:VersusCuman | Applied against souls in faction with superfaction "Cumans" |
Cpp:VersusEnemy | Applied against souls with relationship < 0 |
Cpp:VersusAnimal | Applied against souls in soul_archetype with race not "human" |
Cpp:VersusDog | Applied against souls in soul_archetype with race "dog" |
Cpp:VersusWoman | Applied against souls in soul_archetype with race "human" and gender "female" |
Cpp:VersusWomanDialogSkillCheck | Combination of Cpp:VersusWoman and Cpp:DialogSkillCheck |
Cpp:ManlyOdourWoman | Similar to Cpp:VersusWoman, but applied only when Dirtiness derived stat > PerkManlyOdourDirtinessThreshold |
Two state buffs
These implementations have two states and use buff modifier groups. When the buff is active, the primary mod group is enabled, otherwise the secondary mod group is enabled.
Implementation | State |
---|---|
Cpp:Night | Active when the time is between DuskTime and DawnTime |
Cpp:DrunkChecking | Active when Drunkenness derived stat > 0 |
Cpp:LocalHero | Active when reputation in current location > LocalHeroInfamousReputationThreshold |
Cpp:Infamous | Active when reputation in current location < LocalHeroInfamousReputationThreshold |
Cpp:Wanted | Active when wanted level in any location >= PerkDaringDebonairWantedLevel |
Cpp:Still | Activates when not moving for StillBuffDuration WorldTime seconds |
Cpp:StillAndHidden | Activates when crouching and not moving for StillAndHiddenHysteresis GameTime seconds |
Cpp:DuringFader | Active during fader. Deactivates DuringFaderHysteresis GameTime seconds after fader ends |
Cpp:Thunderstorm | Active when rain intensity > ThunderstormBuffRainIntensity |
Cpp:WithPlatingArmor | Active when PlatingRatio derived stat > 0 |
Cpp:WithoutPlatingArmor | Active when PlatingRatio derived stat <= 0 |
Cpp:ManlyOdourStealth | Active when Dirtiness derived stat > PerkManlyOdourDirtinessThreshold |
Cpp:PerkFlowerPower | Active when number of herbs in inventory >= HerbsInInventoryForFlowerPowerPerk |
Cpp:PerkHorsenip | Active when number of herbs in inventory >= HerbsInHorseInventoryForHorsenipPerk |
Cpp:Sadist | Active when opponent is bleeding |
Specialized buffs
Special implementations mostly for perks.
Implementation | Description |
---|---|
Cpp:AdditionalAttackerCountFading | Activates when outnumbered in combat. Modifier intensity depends on number of opponent: no effect against 1 opponent, max effect against AdditionalAttackerCountForMaxFadingBuff opponents. |
Cpp:AgilityWeaponBuff | Activates when a weapon with higher agility requirement than strength requirement is equipped. |
Cpp:Berserk | Activates when health falls below PerkBerserkHealthThreshold. After activation lasts for PerkBerserkDuration in GameTime seconds, then it gets deactivated. |
Cpp:BloodRush | Activates when an enemy in PerkBloodRushDistance meter radius is killed. After activation lasts for PerkBloodRushDuration in GameTime seconds, then it gets deactivated. |
Cpp:ChainStrike | Stacks for each added buff, up to PerkChainStrikeMaxChain. Each stack lasts for Duration in GameTime second. Modifier intensity depends on number of stacks. |
Cpp:HealthFadingFromLimit | Modifier intensity depends on Health: no effect when Health = HealthFadingFromLimitValue, max effect when Health = 0. |
Cpp:HealthinessFading | Modifier intensity depends on Healthiness derived stat: no effect when Healthiness = 1, max effect when Healthiness = 0. |
Cpp:Horseman | Combination of Cpp:BasicTimed and Cpp:VersusDog. Primary modifier group is always enabled, but secondary group is enabled only against dogs. |
Cpp:KnightInAShiningArmor | Active when the time is between DawnTime and DuskTime, and CloudAverage <= MaxCloudAverageForShiningArmor. Modifier intensity depends on PlatingRatio derived stat. |
Cpp:ProperDiet | Activates when CurrentProperDietTime statistic > PerkProperDietActivationTime. |
Cpp:ReadingCartographer | Reveals all locations on the map. |
Cpp:Respec | Not available. |
Cpp:StrengthWeaponBuff | Activates when a weapon with higher strength requirement than agility requirement is equipped. |
Cpp:TipplerPotion | Similar to Cpp:WorldTimeTimed. On activation removes some other buffs. |
Cpp:WeaponHealthIntensity | Modifier intensity depends on item health. |
System buffs
These implementations are used for various gameplay mechanics, and shouldn't be used in mods because they can't be properly initialized from script.
Implementation | Description |
---|---|
Cpp:AdditionalWeight | Modifies CarriedWeight derived stat. Available since version 1.3 |
Cpp:Bleeding | Used for showing the value of BleedingTotal derived stat in UI. Adding this buff will not cause bleeding! |
Cpp:Caffeine | Modifies Caffeine derived stat. |
Cpp:CarryingBody |
Modifies CarriedWeight and StaminaDerivation derived stats. Depends on CarriedBodyWeightCoef, CarriedCarriedWeightCoef, CarriedBodyMaxStamConsumption and the carried body's BodyWeight and CarriedWeight derived stats. |
Cpp:CarryingBodyGravedigger |
Similar to Cpp:CarryingBody, but CarriedWeight mod is multiplied by PerkCarriedBodyGravediggerWeightMul and StaminaDerivation mod is 0. |
Cpp:Drunkenness |
Modifies Strength, Agility, Vitality, Speech, Charisma, Conspicuousness, Drunkenness, Exhaust and Sprint. Depends on AlcoholMoodThreshold, AlcoholDrunkThreshold, AlcoholMaxSTREffect, AlcoholMaxAGIEffect, AlcoholMaxVITEffect, AlcoholMaxSPCEffect, AlcoholMaxCHAEffect, AlcoholMaxCONEffect, AlcoholMoodMaxExhaustPossitiveEffect, AlcoholDrunkMaxExhaustNegativeEffect, AlcoholBlackoutDuration, AlcoholBaseHangoverDuration, AlcoholMaxDrinkingSkillHangoverDurationModifier, AlcoholDigestSpeedModfifOnEmptyStomache, AlcoholDigestSpeedModfifOnFullStomache, AlcoholPerkDrunkMoodRangeMod, AlcoholPerkDrunkHangoverDurationMod, AlcoholPerkTrueSlavMaxAlcoholMod, AlcoholPerkTrueSlavHangoverDurationMod, AlcoholPerkLooseTongueSpcChaModif and FoodOverEat. Similarly to Cpp:Drunk it adds "Drunk" mannequin tag. |
Cpp:Encumbered | Sets primary mod group intensity to Encumberance derived stat and enables secondary mod group when Encumberance > EncumberanceForSecondaryModifiers |
Cpp:EquippableItemWeighted | Sets mod intensity to equipped item's rpg_buff_weight. |
Cpp:Exhausted |
Modifies Speech and Charisma. Depends on SpeechMulOnExtremeExhaustion, CharismaMulOnExtremeExhaustion, ExhaustedThreshold, ExhaustedPlayerEffectMinMin, ExhaustedPlayerEffectMaxMin, ExhaustedPlayerEffectMinMax, ExhaustedPlayerEffectMaxMax and ExtremeExhaustionFaintAveragePeriod. |
Cpp:FoodHealth |
Modifies Health and FoodPoisoningAntidote. Depends on PerkWaterOfLifeHealthMultiplier. |
Cpp:FoodPoisoning |
Modifies Health, Strength, Vitality, Agility and Charisma. Depends on FoodPoisoningMaxValue, FoodPoisoningThreshold, FoodPoisoningMinHealthEffectSpeed, FoodPoisoningMaxHealthEffectSpeed, FoodPoisoningMaxStatPenalty, MetabolismDigestSpeedMultiplier and MetabolismAbsorbSpeed. |
Cpp:Hangover |
Modifies Strength, Agility, Vitality, Speech, Charisma and Conspicuousness. Depends on AlcoholMaxSTREffect, AlcoholMaxAGIEffect, AlcoholMaxVITEffect, AlcoholMaxSPCEffect, AlcoholMaxCHAEffect, AlcoholMaxCONEffect, AlcoholHangoverOffsetModif, AlcoholPerkBacchusHangoverEffectMod and AlcoholPerkLooseTongueSpcChaModif. |
Cpp:Injured | Uses a special Bleeding modifier. Depends on InjuryLowThreshold, InjuryHighThreshold, InjuryRegenInterval and HealthFull. |
Cpp:ItemHealthChecking | Activates when the item's health >= threshold. |
Cpp:ItemHealthMyItemChecking | Context checking version of Cpp:ItemHealthChecking. |
Cpp:JailRecovery | Modifier intensity depends on time spent in jail. Depends on JailRecoveryDebuffDurationMultiplier and JailRecoveryDebuffMaxHours. |
Cpp:LastGasp | Activates when health after combat hit would be smaller than 1. Depends on PerkLastGaspCooldown. |
Cpp:LowHealth | Not implemented. |
Cpp:MoraleContext | Modifies Morale derived stat. Depends on MoraleContextFadingSpeed and MoraleContextFadingMod derived stat. |
Cpp:Overeat | Modifies RelativeStaminaMax intermediate stat. Depends on FoodFull, FoodOverEat and Hunger. |
Cpp:Overread | Modifies Overreadness derived stat. Depends on OverreadnessFillTime and OverreadnessEmptyTime. |
Cpp:Oversleep | Modifies Oversleepness derived stat. Depends on OversleepnessFillTime, OversleepnessEmptyTime and InactiveTimeToDestroyOversleep. |
Cpp:PotionHealth | Changes Health modifier. Depends on PerkWaterOfLifeHealthMultiplier and WaterOfLife ability. |
Cpp:ReadingQuality | Modifies ReadingQuality derived stat. |
Cpp:RiddenHorse | Modifies StaminaConsumption, Courage, Morale and HorseDash. Depends on RiderThreatToHorseMorale. |
Cpp:SharpeningPressure | Modifier intensity depends on pressure. |
Cpp:ShortTermFood | Modifies Hunger. Depends on DigestionSpeed and ShortTermNutritionDigestionSpeedMultiplier. |
Cpp:Sleep | Modifies Health and Exhaust. Depends on SleepHealthRegenBaseSpeed. |
Cpp:SleepImproved | Similar to Cpp:Sleep. Depends on ImprovedSleepMultiplier. |
Cpp:Starvation | Modifies Health. Depends on StarvationHealthLossSpeed. |
Cpp:TestRealSpeed | Testing implementation. |
Cpp:Unconscious | Depending on input parameters it starts a fader or skiptime. |
Cpp:WellWorn | Modifies EquippedWeight and CarriedWeight. Depends on EquippedWeightSubWithWellWornPerk. |
Script:BasicBuff.lua | Not available. |