Destroyner Posted January 30, 2023 Posted January 30, 2023 Hey guys. I've been wanting to try @Boeroer's steel garrote/blood mage build with WoTEP on turn based so I'm trying to create a mod to make offensive parry have a 50% chance to proc on graze. I made the mod by trial and (mostly) error before reading the guide but after reading I still can't seem to get it to work. I took the rogue riposte mod from the community patch to get the frame, duplicated it, and then replaced the values with the ones I needed. Offensive parry still works, but it will not trigger on graze. Can anyone see what I might be doing wrong? For testing purposes, the proc rate is 100% at the moment. wotep_test.gamedatabundle 2
Destroyner Posted January 30, 2023 Author Posted January 30, 2023 { "GameDataObjects": [ { "$type":"Game.GameData.ItemModGameData, Assembly-CSharp", "DebugName":"Offensive_Parry", "ID":"5ae42058-0b85-458a-bdc5-8110da090e2c", "Components":[ { "$type":"Game.GameData.ItemModComponent, Assembly-CSharp", "DisplayName":1382, "StatusEffectsOnEquipIDs":["17d86aed-4ff7-4f0a-ba3a-4710b68c0f9d","2b1fa9e8-c44d-4702-85a1-647349bbf131", "4222c763-6316-4ba9-9242-e4a3283ba0af" ] } ] }, {"$type":"Game.GameData.StatusEffectGameData, Assembly-CSharp", "DebugName":"Offensive_Parry_SE_AttackEnemyOnEvent_Graze", "ID":"2b1fa9e8-c44d-4702-85a1-647349bbf131", "Components":[{ "$type":"Game.GameData.StatusEffectComponent, Assembly-CSharp", "StatusEffectType":"AttackEnemyOnEvent", "OverrideDescriptionString":352, "OverrideDescriptionStringTactical":-1, "UseStatusEffectValueAs":"None", "BaseValue":0, "DynamicValue":{ "Stat":"None", "SkillDataID":"00000000-0000-0000-0000-000000000000", "ClassID":"00000000-0000-0000-0000-000000000000", "MultiplyBy":1, "Operator":"Add"}, "KeywordsIDs":[], "DurationType":"Infinite", "Duration":1, "MaxStackQuantity":0, "ApplicationBehavior":"UseLongerDurationIfAlreadyApplied", "ApplicationType":"ApplyOnStart", "IntervalRateID":"00000000-0000-0000-0000-000000000000", "StackedChildrenApplyEffects":"false", "InclusionConditions":{ "Operator":0, "Components":[]}, "ApplicationPrerequisites":{ "Conditional":{ "Operator":0, "Components":[]}}, "TriggerAdjustment":{ "TriggerOnEvent":"None", "TriggerOffEvent":"None", "ValidateWithAttackFilter":"false", "ParamValue":0,"ValueAdjustment":0, "DurationAdjustment":0, "ResetTriggerOnEffectTimeout":"false", "MaxTriggerCount":0, "IgnoreMaxTriggerCount":"false", "RemoveEffectAtMax":"false", "ChanceToTrigger":1}, "PowerLevelScaling":{ "UseCharacterLevel":"false", "BaseLevel":0, "LevelIncrement":1, "MaxLevel":0, "ValueAdjustment":0, "DurationAdjustment":0}, "IsHostile":"false", "ClearOnCombatEnd":"false", "ClearOnRest":"false", "ClearOnFoodRest":"false", "ClearWhenAttacks":"false", "ClearOnDeath":"false", "HideFromCombatTooltip":"false", "HideFromCombatLog":"false", "HideFromUI":"false", "HideIfNoValue":"false", "VisualEffects":[], "MaterialReplacementID":"00000000-0000-0000-0000-000000000000", "AttackFilter":{ "KeywordsIDs":[], "KeywordLogic":"Or", "Race":"None", "IsKith":"false", "HealthPercentage":0, "HealthOperator":"EqualTo", "Range":"Melee", "ClassTypeID":"00000000-0000-0000-0000-000000000000", "Source":"None", "DefendedBy":"None", "Empowered":"false", "Disengagement":"false", "Stealthed":"false", "UseStealthLinger":"false", "PowerLevel":0, "PowerLevelOperator":"EqualTo", "ChanceToApply":1.0, "AttackHostility":"Default", "TargetType":"None"}, "AttackTargetFilter":{ "KeywordsIDs":[], "KeywordLogic":"Or", "Race":"None", "IsKith":"false", "HealthPercentage":0, "HealthOperator":"EqualTo", "Distance":0, "DistanceOperator":"EqualTo", "HasDOT":"false", "IsMarked":"false", "TargetHostility":"Default"}, "ExtraValue":0, "OverridePenetration":0, "DamageTypeValue":"All", "KeywordValueID":"00000000-0000-0000-0000-000000000000", "RaceValue":"None", "StatusEffectTypeValue":"None", "ItemValueID":"00000000-0000-0000-0000-000000000000", "AfflictionTypeValueID":"00000000-0000-0000-0000-000000000000", "StatusEffectsValueIDs":[], "AttackValueID":"1cc82f35-cf30-4dc5-bb92-086c398a9f7f", "AttackOverrideValue":"None", "EventValue":"OnGrazed", "ClassValueID":"00000000-0000-0000-0000-000000000000", "WeaponTypeValue":"None", "AttackHitType":"None", "SkillValueID":"00000000-0000-0000-0000-000000000000", "AudioEventListID":"00000000-0000-0000-0000-000000000000", "BedRestDaysMinimum":0, "BedRestDaysMaximum":0}]}]} Sorry I'm new to this forum and didn't realize I had attached it as a file instead of something readable. Also hope it wasn't BM to tag in that post. I got excited.
Boeroer Posted January 30, 2023 Posted January 30, 2023 (edited) No problem. Tagging is a good practice imo. Especially since I usually don't look into this subforum frequently. I didn't mod much myself so I can't say what the problem is. @Elric Galad, @Noqn - any ideas? Edited January 30, 2023 by Boeroer 1 Deadfire Community Patch: Nexus Mods
Noqn Posted January 30, 2023 Posted January 30, 2023 You put an extra space in the type definition Replace this: "Game.GameData.StatusEffectGameData, Assembly-CSharp" with this: "Game.GameData.StatusEffectGameData, Assembly-CSharp" 1
Destroyner Posted January 30, 2023 Author Posted January 30, 2023 @NoqnNice catch, thank you! I will try that when I get home. Would you mind telling me what you used to get that error message so I can use it for troubleshooting in the future?
Destroyner Posted January 31, 2023 Author Posted January 31, 2023 I have made a bit of progress but seem to be at another roadblock. I have tested pretty extensively and tried changing other parts of the item itself, the non-upgraded buffs, anything I could find. I changed the deflection part of the enchant as a sanity check and was able to alter those values easily. The final issue seems to be that I cannot get the ability to trigger off of both grazes AND misses simultaneously. It seems like whichever status effect has the actual default game ID will work and any new one added will not. I've tried: replacing Offensive Parry entirely (using the same ID as basegame) and change the EventValue to "OnGrazed", it will switch correctly and no longer retaliate on misses. However, when I try to add the new Status Effect to have offensive parry trigger off of both misses and grazes, misses will supersede grazes regardless of the order of IDs in the "StatusEffectsOnEquipIDs" and grazes will not trigger an offensive parry. The new stringvalues will show in the description for offensive parry, but the proc does not occur. removing the default offensive parry value, and adding in a new one with a new ID. The in game description of the ability will match the new status effect I've entered, but it will still maintain default behavior of only retaliating on a miss, even though that value has been overridden and should no longer exist on the weapon. Switching the order around so that I replace the default value and ID with the new OnGrazed value, and then in the same file creating the new status effect that is actually the default behavior but with a new ID. In this scenario, the default behavior does not work but the OnGrazed does. Example below. (default game ID is 4222c763-6316-4ba9-9242-e4a3283ba0af) { "GameDataObjects": [{ "$type": "Game.GameData.ItemModGameData, Assembly-CSharp", "DebugName": "Offensive_Parry", "ID": "5ae42058-0b85-458a-bdc5-8110da090e2c", "Components": [{ "$type": "Game.GameData.ItemModComponent, Assembly-CSharp", "DisplayName": 1382, "StatusEffectsOnEquipIDs": ["17d86aed-4ff7-4f0a-ba3a-4710b68c0f9d", "4222c763-6316-4ba9-9242-e4a3283ba0af", "c10ac18c-47a8-4a64-91ad-7106f4f91b42"] }] }, { "$type": "Game.GameData.StatusEffectGameData, Assembly-CSharp", "DebugName": "Offensive_Parry_SE_AttackEnemyOnEvent_Graze", "ID": "4222c763-6316-4ba9-9242-e4a3283ba0af", "Components": [{ "$type": "Game.GameData.StatusEffectComponent, Assembly-CSharp", "StatusEffectType": "AttackEnemyOnEvent", "OverrideDescriptionString": 20101, "OverrideDescriptionStringTactical": -1, "UseStatusEffectValueAs": "None", "BaseValue": 0, "DynamicValue": { "Stat": "None", "SkillDataID": "00000000-0000-0000-0000-000000000000", "ClassID": "00000000-0000-0000-0000-000000000000", "MultiplyBy": 1, "Operator": "Add" }, "KeywordsIDs": [], "DurationType": "Infinite", "Duration": 1, "MaxStackQuantity": 0, "ApplicationBehavior": "UseLongerDurationIfAlreadyApplied", "ApplicationType": "ApplyOnStart", "IntervalRateID": "00000000-0000-0000-0000-000000000000", "StackedChildrenApplyEffects": "false", "InclusionConditions": { "Operator": 0, "Components": [] }, "ApplicationPrerequisites": { "Conditional": { "Operator": 0, "Components": [] } }, "TriggerAdjustment": { "TriggerOnEvent": "None", "TriggerOffEvent": "None", "ValidateWithAttackFilter": "false", "ParamValue": 0, "ValueAdjustment": 0, "DurationAdjustment": 0, "ResetTriggerOnEffectTimeout": "false", "MaxTriggerCount": 0, "IgnoreMaxTriggerCount": "false", "RemoveEffectAtMax": "false", "ChanceToTrigger": 1 }, "PowerLevelScaling": { "UseCharacterLevel": "false", "BaseLevel": 0, "LevelIncrement": 1, "MaxLevel": 0, "ValueAdjustment": 0, "DurationAdjustment": 0 }, "IsHostile": "false", "ClearOnCombatEnd": "false", "ClearOnRest": "false", "ClearOnFoodRest": "false", "ClearWhenAttacks": "false", "ClearOnDeath": "false", "HideFromCombatTooltip": "false", "HideFromCombatLog": "false", "HideFromUI": "false", "HideIfNoValue": "false", "VisualEffects": [], "MaterialReplacementID": "00000000-0000-0000-0000-000000000000", "AttackFilter": { "KeywordsIDs": [], "KeywordLogic": "Or", "Race": "None", "IsKith": "false", "HealthPercentage": 0, "HealthOperator": "EqualTo", "Range": "Melee", "ClassTypeID": "00000000-0000-0000-0000-000000000000", "Source": "None", "DefendedBy": "None", "Empowered": "false", "Disengagement": "false", "Stealthed": "false", "UseStealthLinger": "false", "PowerLevel": 0, "PowerLevelOperator": "EqualTo", "ChanceToApply": 1, "AttackHostility": "Default", "TargetType": "None" }, "AttackTargetFilter": { "KeywordsIDs": [], "KeywordLogic": "Or", "Race": "None", "IsKith": "false", "HealthPercentage": 0, "HealthOperator": "EqualTo", "Distance": 0, "DistanceOperator": "EqualTo", "HasDOT": "false", "IsMarked": "false", "TargetHostility": "Default" }, "ExtraValue": 0, "OverridePenetration": 0, "DamageTypeValue": "All", "KeywordValueID": "00000000-0000-0000-0000-000000000000", "RaceValue": "None", "StatusEffectTypeValue": "None", "ItemValueID": "00000000-0000-0000-0000-000000000000", "AfflictionTypeValueID": "00000000-0000-0000-0000-000000000000", "StatusEffectsValueIDs": [], "AttackValueID": "1cc82f35-cf30-4dc5-bb92-086c398a9f7f", "AttackOverrideValue": "None", "EventValue": "OnGrazed", "ClassValueID": "00000000-0000-0000-0000-000000000000", "WeaponTypeValue": "None", "AttackHitType": "None", "SkillValueID": "00000000-0000-0000-0000-000000000000", "AudioEventListID": "00000000-0000-0000-0000-000000000000", "BedRestDaysMinimum": 0, "BedRestDaysMaximum": 0 }] }, { "$type": "Game.GameData.StatusEffectGameData, Assembly-CSharp", "DebugName": "Offensive_Parry_SE_AttackEnemyOnEvent_Miss", "ID": "c10ac18c-47a8-4a64-91ad-7106f4f91b42", "Components": [{ "$type": "Game.GameData.StatusEffectComponent, Assembly-CSharp", "StatusEffectType": "AttackEnemyOnEvent", "OverrideDescriptionString": 352, "OverrideDescriptionStringTactical": -1, "UseStatusEffectValueAs": "None", "BaseValue": 0, "DynamicValue": { "Stat": "None", "SkillDataID": "00000000-0000-0000-0000-000000000000", "ClassID": "00000000-0000-0000-0000-000000000000", "MultiplyBy": 1, "Operator": "Add" }, "KeywordsIDs": [], "DurationType": "Infinite", "Duration": 1, "MaxStackQuantity": 0, "ApplicationBehavior": "StackWithAllSimilarDataEffects", "ApplicationType": "ApplyOnStart", "IntervalRateID": "00000000-0000-0000-0000-000000000000", "StackedChildrenApplyEffects": "false", "InclusionConditions": { "Operator": 0, "Components": [] }, "ApplicationPrerequisites": { "Conditional": { "Operator": 0, "Components": [] } }, "TriggerAdjustment": { "TriggerOnEvent": "None", "TriggerOffEvent": "None", "ValidateWithAttackFilter": "false", "ParamValue": 0, "ValueAdjustment": 0, "DurationAdjustment": 0, "ResetTriggerOnEffectTimeout": "false", "MaxTriggerCount": 0, "IgnoreMaxTriggerCount": "false", "RemoveEffectAtMax": "false", "ChanceToTrigger": 1 }, "PowerLevelScaling": { "UseCharacterLevel": "false", "BaseLevel": 0, "LevelIncrement": 1, "MaxLevel": 0, "ValueAdjustment": 0, "DurationAdjustment": 0 }, "IsHostile": "false", "ClearOnCombatEnd": "false", "ClearOnRest": "false", "ClearOnFoodRest": "false", "ClearWhenAttacks": "false", "ClearOnDeath": "false", "HideFromCombatTooltip": "false", "HideFromCombatLog": "false", "HideFromUI": "false", "HideIfNoValue": "false", "VisualEffects": [], "MaterialReplacementID": "00000000-0000-0000-0000-000000000000", "AttackFilter": { "KeywordsIDs": [], "KeywordLogic": "Or", "Race": "None", "IsKith": "false", "HealthPercentage": 0, "HealthOperator": "EqualTo", "Range": "Melee", "ClassTypeID": "00000000-0000-0000-0000-000000000000", "Source": "None", "DefendedBy": "None", "Empowered": "false", "Disengagement": "false", "Stealthed": "false", "UseStealthLinger": "false", "PowerLevel": 0, "PowerLevelOperator": "EqualTo", "ChanceToApply": 1, "AttackHostility": "Default", "TargetType": "None" }, "AttackTargetFilter": { "KeywordsIDs": [], "KeywordLogic": "Or", "Race": "None", "IsKith": "false", "HealthPercentage": 0, "HealthOperator": "EqualTo", "Distance": 0, "DistanceOperator": "EqualTo", "HasDOT": "false", "IsMarked": "false", "TargetHostility": "Default" }, "ExtraValue": 0, "OverridePenetration": 0, "DamageTypeValue": "All", "KeywordValueID": "00000000-0000-0000-0000-000000000000", "RaceValue": "None", "StatusEffectTypeValue": "None", "ItemValueID": "00000000-0000-0000-0000-000000000000", "AfflictionTypeValueID": "00000000-0000-0000-0000-000000000000", "StatusEffectsValueIDs": [], "AttackValueID": "1cc82f35-cf30-4dc5-bb92-086c398a9f7f", "AttackOverrideValue": "None", "EventValue": "OnMissed", "ClassValueID": "00000000-0000-0000-0000-000000000000", "WeaponTypeValue": "None", "AttackHitType": "None", "SkillValueID": "00000000-0000-0000-0000-000000000000", "AudioEventListID": "00000000-0000-0000-0000-000000000000", "BedRestDaysMinimum": 0, "BedRestDaysMaximum": 0 }] } ] } Altering base values Altering StackedChildrenApplyEffects Altering ApplicationBehavior At this point I am completely out of ideas. Does anyone have any thoughts or are there any additional tools I could use to see what type of error may be occurring?
Destroyner Posted February 23, 2023 Author Posted February 23, 2023 I've been away for a while. In case anyone is interested, the last code snippet I included actually works. For some reason it required my character to level up for the changes to be enabled but it works as intended. If anyone intends to use it, I would alter the value of "chancetotrigger" in the ongraze part to 0.5 for balance otherwise you may be a bit OP. This could also likely be cleaned up to remove the duplicate part but I got it working and was content leaving it as is.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now