Jump to content
View in the app

A better way to browse. Learn more.

Obsidian Forum Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Hey!

 

I'm working with a mod to add a new subclass and I'm trying to remove the "unfit for melee" -10 deflection malus from bows for this particular subclass. I found the statuseffect and the particular mod ranged weapons use. I'm quite a noob with modding and I've gotten quite far just with common sense but this seems to elude my brain..

I managed to remove the malus with a simple mod that changes the malus to +0, but I can't make it just for a particular subclass.. I just copied the Boolean ProgressionTableIsSubclass(Guid) from progressiontables. Aaaaand there I see the problem. It's not a progressiontable. It's a statuseffect. What's the correct conditional?  :grin:

 

So. is it easier to just give the subclass an automatic +10 to deflection passive ability to offset the malus?  :p

 

Appreciate if someone has the time to check it out! Thx!


{
	"GameDataObjects": [	
	{
			"$type": "Game.GameData.StatusEffectGameData, Assembly-CSharp",
			"DebugName": "MOD_Unfit_For_Melee_2H_SE_Deflection",
			"ID": "27a61142-ec74-4ec3-a469-85c114bd6ca5",
			"Components": [
				{
					"$type": "Game.GameData.StatusEffectComponent, Assembly-CSharp",
					"StatusEffectType": "Deflection",
					"OverrideDescriptionString": -1,
					"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": 0,
					"MaxStackQuantity": 0,
					"ApplicationBehavior": "UseLongerDurationIfAlreadyApplied",
					"ApplicationType": "ApplyOnStart",
					"IntervalRateID": "00000000-0000-0000-0000-000000000000",
					"StackedChildrenApplyEffects": "false",
					"ApplicationPrerequisites": {
						"Conditional": {
							"Operator": 0,
							"Components": [
							  {
								"$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
								"Data": {
								  "FullName": "Boolean ProgressionTableIsSubclass(Guid)",
								  "Parameters": [
									"99b951f7-3dff-4e3f-b2ee-04de75084814"
								  ],
								  "Flags": "",
								  "UnrealCall": "",
								  "FunctionHash": 0,
								  "ParameterHash": 0
								},
								"Not": false,
								"Operator": 0
							  }
						]
                },
                "VisibilityConditional": {
                  "Operator": 0,
                  "Components": [
                    {
                      "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
                      "Data": {
                        "FullName": "Boolean ProgressionTableIsSubclass(Guid)",
                        "Parameters": [
                          "99b951f7-3dff-4e3f-b2ee-04de75084814"
                        ],
                        "Flags": "",
                        "UnrealCall": "",
                        "FunctionHash": 0,
                        "ParameterHash": 0
                      },
                      "Not": false,
                      "Operator": 0
					}
				  ]
					},
					"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": "true",
					"HideFromCombatLog": "false",
					"HideFromUI": "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": "Weapon",
						"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": "00000000-0000-0000-0000-000000000000",
					"AttackOverrideValue": "None",
					"EventValue": "OnApply",
					"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": "MOD_Unfit_For_Melee_1H_SE_Deflection",
			"ID": "60b91a02-f95e-46c1-b764-33392fdbb038",
			"Components": [
				{
					"$type": "Game.GameData.StatusEffectComponent, Assembly-CSharp",
					"StatusEffectType": "Deflection",
					"OverrideDescriptionString": -1,
					"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": 0,
					"MaxStackQuantity": 0,
					"ApplicationBehavior": "UseLongerDurationIfAlreadyApplied",
					"ApplicationType": "ApplyOnStart",
					"IntervalRateID": "00000000-0000-0000-0000-000000000000",
					"StackedChildrenApplyEffects": "false",
					"ApplicationPrerequisites": {
						"Conditional": {
							"Operator": 0,
							"Components": [
							  {
								"$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
								"Data": {
								  "FullName": "Boolean ProgressionTableIsSubclass(Guid)",
								  "Parameters": [
									"99b951f7-3dff-4e3f-b2ee-04de75084814"
								  ],
								  "Flags": "",
								  "UnrealCall": "",
								  "FunctionHash": 0,
								  "ParameterHash": 0
								},
								"Not": false,
								"Operator": 0
							  }
						]
                },
                "VisibilityConditional": {
                  "Operator": 0,
                  "Components": [
                    {
                      "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
                      "Data": {
                        "FullName": "Boolean ProgressionTableIsSubclass(Guid)",
                        "Parameters": [
                          "99b951f7-3dff-4e3f-b2ee-04de75084814"
                        ],
                        "Flags": "",
                        "UnrealCall": "",
                        "FunctionHash": 0,
                        "ParameterHash": 0
                      },
                      "Not": false,
                      "Operator": 0
					}
				  ]
					},
					"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": "true",
					"HideFromCombatLog": "false",
					"HideFromUI": "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": "Weapon",
						"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": "00000000-0000-0000-0000-000000000000",
					"AttackOverrideValue": "None",
					"EventValue": "OnApply",
					"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
				}
			]
		},
}

Edited by sarcongin

You could try Boolean HasSubClass(Guid, Guid)

 

I think there's a GUID for current character (7d150000-0000-0000-0000-000000000000) but I'm not sure.

Yes, that should work. You can find information on character GUIDs here.

  • Author

Thanks alot! Ill try it

Create an account or sign in to comment

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.