Jump to content

Welcome to Obsidian Forum Community
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!
Photo

First Mod (spoilers)


  • Please log in to reply
67 replies to this topic

#21
Kexby

Kexby

    (2) Evoker

  • Members
  • 72 posts
  • Location:Australia

 

This is a wonderful tutorial peardox. Even beginners like me can follow it :)

 

So I'm going to be brave and try making my own custom weapon.

 

I just have one question about the GUID. If I replace the first 3 entries with kex would that count as a unique GUID?

 

For example, your original sword's ID was: "ID": "3530e7a2-ec4f-4d5f-a436-53e26ed3e075",

 

If I changed it to: "ID": "kex0e7a2-ec4f-4d5f-a436-53e26ed3e075",

 

Would that work?

 

Nope

use that to create new GUID  (use 4 UUID , the one in the middle of the page)

 

 

Ha! Typical, it couldn't be that simple could it?

 

Thanks kilay.



#22
Kexby

Kexby

    (2) Evoker

  • Members
  • 72 posts
  • Location:Australia

Peardox I'm going to post my progress step by step. Not just for my benefit, but for others who might like to try this for themselves (and can learn from my mistakes).

 

But if you'd rather I didn't post in your thread, just let me know and I'll delete it and start a new thread (this may get a bit long :grin: ).

 

Anyway, I've made a start on my mod. I've decided to make an overpowered Blunderbuss that I'm going to call 'BadAss' (don't judge me, I'm trying to learn :dancing:).

 

To make things easier, I've cloned an existing Blunderbuss: https://pillarsofete...com/Hand_Mortar

 

I've looked through the gamedatabundle files and I think I'll need to copy three entries:

 

WeaponGameData (found in items.gamedatabundle)

AttackFirearmGameData (found in attacks.gamedatabundle)

AttackAoEGameData (found in attacks.gamedatabundle)

 

So this is what my BadAss.gamedatabundle file currently looks like (without any changes made yet):

{
	"GameDataObjects": [{
			"$type": "Game.GameData.WeaponGameData, Assembly-CSharp",
			"DebugName": "Blunderbuss_U_Serafen_HandMortar",
			"ID": "f9fe1673-3d38-48aa-b8cf-3a20c4d966a2",
			"Components": [{
					"$type": "Game.GameData.ItemComponent, Assembly-CSharp",
					"DisplayName": 3548,
					"DescriptionText": 3796,
					"FilterType": "Weapons",
					"InventoryAudioEventListID": "57518815-1aa8-49c2-8ee0-0d361b26fd66",
					"IsQuestItem": "false",
					"IsIngredient": "false",
					"IsCurrency": "false",
					"IsAdventuringItem": "false",
					"CanSellForFullValue": "false",
					"MaxStackSize": 1,
					"NeverDropAsLoot": "false",
					"CanBePickpocketed": "true",
					"IsUnique": "true",
					"Value": 35,
					"IconTextureSmall": "gui/icons/items/weapons/blunderbuss/blunderbuss_01_s.png",
					"IconTextureLarge": "gui/icons/items/weapons/blunderbuss/blunderbuss_01_l.png",
					"PencilSketchTexture": "",
					"InspectOnUseButton": [],
					"IsPlaceholder": "false"
				}, {
					"$type": "Game.GameData.EquippableComponent, Assembly-CSharp",
					"EquipmentType": "Blunderbuss",
					"EquipmentSlot": "AnyWeapon",
					"AppearancePiece": {
						"ModelVisualDataPath": "prefabs/items/appearance/weapons/blunderbuss/a_blunderbuss03_v01.asset"
					},
					"ItemModsIDs": ["fea57a9e-7dc1-4f66-8617-1e2f87c0f376", "7d7b81f7-7322-441f-a366-5d15d30379f5", "2dcb5f72-2a69-45c6-a438-3e93a58459a5"],
					"OnEquipVisualEffects": [],
					"RestrictedToClass": [],
					"RestrictedToPlayer": "false",
					"ProficientAbilityID": "f5a2eb61-8c11-41ab-9832-5ad182e5b368",
					"CannotUnequip": "false",
					"ItemRendererPrefab": "prefabs/itemrenderers/genericanimateditemrenderer.prefab",
					"ItemModel": "",
					"AnimationController": "art/animation/animationcontrollers/weapon/w_pistol.controller",
					"PaperdollOverrideRenderer": "",
					"AttackSummonID": "00000000-0000-0000-0000-000000000000",
					"CannotSheathe": "false",
					"PropVisualEffects": []
				}, {
					"$type": "Game.GameData.WeaponComponent, Assembly-CSharp",
					"Stance": "OneHanded",
					"AnimationStanceID": "ddeda306-872b-4d63-8032-fbaf359d0ed2",
					"StatusEffectsOnLaunchIDs": [],
					"IsDisplayedWhenAlternate": "true",
					"IsUniversalType": "false",
					"AttackID": "2af49303-b215-42aa-b933-7b0497a1c19d",
					"NoiseLevelID": "6bfdad12-a1d0-42cc-b797-c9d2dac2af05",
					"ForceBackScabbard": "false",
					"ScabbardAppearancePiece": {
						"ModelVisualDataPath": ""
					},
					"ScabbardRendererPrefab": "",
					"ScabbardModel": "",
					"AudioEventListID": "00000000-0000-0000-0000-000000000000"
				}
			]
		},{
			"$type": "Game.GameData.AttackFirearmGameData, Assembly-CSharp",
			"DebugName": "Blunderbuss_Serafen",
			"ID": "2af49303-b215-42aa-b933-7b0497a1c19d",
			"Components": [{
					"$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp",
					"KeywordsIDs": ["f25230f4-fca2-44af-b745-03f026152459", "1b6d77c8-1155-4d49-9c7c-548716f0d409", "d0cef78d-856b-4d8c-82d2-59c1ed2aa396"],
					"AttackDistance": 5,
					"MinAttackDistance": 0,
					"AttackVariationID": "7da22f9e-cd53-4546-86cc-c2d150df72cb",
					"CastSpeedID": "eacb53e3-6eb5-422a-92ca-99cc883ae4a9",
					"RecoveryTimeID": "039ef4b4-eeb3-42d3-9817-a8df05c53515",
					"ImpactDelay": 0,
					"ForcedTarget": "None",
					"AffectedTargetType": "All",
					"AffectedTargetConditional": {
						"Conditional": {
							"Operator": 0,
							"Components": []
						}
					},
					"AffectedTargetDeathState": "Alive",
					"HostilityOverride": "Default",
					"PushDistance": 0,
					"FaceTarget": "true",
					"AccuracyBonus": 0,
					"PenetrationRating": 6,
					"DamageData": {
						"DamageType": "Pierce",
						"AlternateDamageType": "Slash",
						"Minimum": 11,
						"Maximum": 15,
						"DamageProcs": []
					},
					"Require****Object": "true",
					"StatusEffectKeywordsIDs": [],
					"StatusEffectsIDs": [],
					"RandomizeStatusEffect": "false",
					"CanGraze": "false",
					"CanCrit": "true",
					"DefendedBy": "Reflex",
					"AfflictionsDefendedBy": "None",
					"AfflictionApplicationModifier": "None",
					"SubstituteHitVisualEffect": "",
					"VisualEffects": [{
							"VisualEffect": "prefabs/effects/items/weapons/fx_action_flash_launch_01.prefab",
							"AttachPoint": "Fx_Bone_02",
							"AttachObject": "Caster",
							"AttachMode": "Attach",
							"MeshType": "None",
							"Event": "OnAnimEvent",
							"AnimEventID": 0,
							"Loop": "false",
							"Scale": "false"
						}, {
							"VisualEffect": "prefabs/effects/items/weapons/fx_muzzle_flash_launch_blunderbuss.prefab",
							"AttachPoint": "Fx_Bone_01",
							"AttachObject": "Caster",
							"AttachMode": "PositionRotation",
							"MeshType": "None",
							"Event": "OnLaunch",
							"AnimEventID": 0,
							"Loop": "false",
							"Scale": "false"
						}, {
							"VisualEffect": "prefabs/effects/items/weapons/fx_arquebus_smoke_linger.prefab",
							"AttachPoint": "Fx_Bone_01",
							"AttachObject": "Caster",
							"AttachMode": "Attach",
							"MeshType": "None",
							"Event": "OnLaunch",
							"AnimEventID": 0,
							"Loop": "false",
							"Scale": "false"
						}, {
							"VisualEffect": "prefabs/effects/items/weapons/fx_blunderbuss_serafen_aoe.prefab",
							"AttachPoint": "Chest",
							"AttachObject": "Target",
							"AttachMode": "Position",
							"MeshType": "None",
							"Event": "OnImpact",
							"AnimEventID": 0,
							"Loop": "false",
							"Scale": "false"
						}
					],
					"AttackOnImpactID": "00000000-0000-0000-0000-000000000000",
					"ExtraAttackID": "c18ff541-cf07-4d0c-ad70-70410aed948f",
					"LaunchBone": "Fx_Bone_01",
					"HitBone": "Chest",
					"OnHitShakeDuration": "None",
					"OnHitShakeStrength": "None",
					"NoiseLevelID": "82bc1ce9-3a81-41ca-a61a-cc1f73a53de7",
					"AllReactNoise": "false",
					"InterruptsOn": "None",
					"InterruptType": "Normal",
					"TargetAngle": 0,
					"ApplyOnceOnly": "false",
					"PathsToTarget": "true",
					"HideFromCombatLog": "false",
					"DoesNotApplyDamage": "false",
					"TreatAsWeapon": "false",
					"BounceData": {
						"Bounces": 0,
						"Multiplier": 0.5,
						"Range": 2,
						"InRangeOrder": "true",
						"NoRepeatTargets": "false",
						"AlwaysBounceAtEnemies": "true",
						"Delay": 0
					}
				}, {
					"$type": "Game.GameData.AttackRangedComponent, Assembly-CSharp",
					"LaunchAttackOnCollision": "false",
					"ProjectileCount": 1,
					"IgnoreMagicDefense": "false",
					"ProjectileConeAngle": 11,
					"ProjectilePrefab": "prefabs/projectiles/items/fx_blunderbuss_serafen_handmortar_projectile.prefab",
					"IsMultiHit": "false",
					"MultiHitTravelDist": 10,
					"MultiHitMaxHits": 0,
					"LaunchSource": "Caster",
					"LaunchOffset": {
						"x": 0,
						"y": 0,
						"z": 0
					},
					"LaunchOffsetRandom": {
						"x": 0,
						"y": 0,
						"z": 0
					}
				}, {
					"$type": "Game.GameData.AttackFirearmComponent, Assembly-CSharp",
					"ClipSize": 1,
					"ReloadTime": 5,
					"ReloadAnimationEndTime": 1.67,
					"FirearmType": "Pistol"
				}
			]
		}, {
					"$type": "Game.GameData.AttackRangedComponent, Assembly-CSharp",
					"LaunchAttackOnCollision": "false",
					"ProjectileCount": 1,
					"IgnoreMagicDefense": "false",
					"ProjectileConeAngle": 11,
					"ProjectilePrefab": "prefabs/projectiles/items/fx_blunderbuss_serafen_handmortar_projectile.prefab",
					"IsMultiHit": "false",
					"MultiHitTravelDist": 10,
					"MultiHitMaxHits": 0,
					"LaunchSource": "Caster",
					"LaunchOffset": {
						"x": 0,
						"y": 0,
						"z": 0
					},
					"LaunchOffsetRandom": {
						"x": 0,
						"y": 0,
						"z": 0
					}
				}, {
					"$type": "Game.GameData.AttackFirearmComponent, Assembly-CSharp",
					"ClipSize": 1,
					"ReloadTime": 5,
					"ReloadAnimationEndTime": 1.67,
					"FirearmType": "Pistol"
				}
			]
		}, {
			"$type": "Game.GameData.AttackAOEGameData, Assembly-CSharp",
			"DebugName": "Blunderbuss_Serafen_AoE",
			"ID": "c18ff541-cf07-4d0c-ad70-70410aed948f",
			"Components": [{
					"$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp",
					"KeywordsIDs": ["f25230f4-fca2-44af-b745-03f026152459", "1b6d77c8-1155-4d49-9c7c-548716f0d409"],
					"AttackDistance": 4,
					"MinAttackDistance": 0,
					"AttackVariationID": "35abdf41-fc3f-4310-8d5d-5d7da644affc",
					"CastSpeedID": "eacb53e3-6eb5-422a-92ca-99cc883ae4a9",
					"RecoveryTimeID": "566840d9-1561-4243-8ca7-889df9869847",
					"ImpactDelay": 0,
					"ForcedTarget": "None",
					"AffectedTargetType": "Hostile",
					"AffectedTargetConditional": {
						"Conditional": {
							"Operator": 0,
							"Components": []
						}
					},
					"AffectedTargetDeathState": "Alive",
					"HostilityOverride": "Default",
					"PushDistance": 0,
					"FaceTarget": "false",
					"AccuracyBonus": 0,
					"PenetrationRating": 6,
					"DamageData": {
						"DamageType": "Pierce",
						"AlternateDamageType": "Slash",
						"Minimum": 5,
						"Maximum": 8,
						"DamageProcs": []
					},
					"Require****Object": "false",
					"StatusEffectKeywordsIDs": [],
					"StatusEffectsIDs": [],
					"RandomizeStatusEffect": "false",
					"CanGraze": "false",
					"CanCrit": "true",
					"DefendedBy": "Reflex",
					"AfflictionsDefendedBy": "None",
					"AfflictionApplicationModifier": "None",
					"SubstituteHitVisualEffect": "",
					"VisualEffects": [],
					"AttackOnImpactID": "00000000-0000-0000-0000-000000000000",
					"ExtraAttackID": "00000000-0000-0000-0000-000000000000",
					"LaunchBone": "RightWeapon",
					"HitBone": "Chest",
					"OnHitShakeDuration": "None",
					"OnHitShakeStrength": "None",
					"NoiseLevelID": "15743f94-1026-40b0-8e13-a667b3f66f63",
					"AllReactNoise": "false",
					"InterruptsOn": "None",
					"InterruptType": "Normal",
					"TargetAngle": 0,
					"ApplyOnceOnly": "false",
					"PathsToTarget": "true",
					"HideFromCombatLog": "false",
					"DoesNotApplyDamage": "false",
					"TreatAsWeapon": "false",
					"BounceData": {
						"Bounces": 0,
						"Multiplier": 0.5,
						"Range": 10,
						"InRangeOrder": "false",
						"NoRepeatTargets": "false",
						"AlwaysBounceAtEnemies": "false",
						"Delay": 0
					}
				}, {
					"$type": "Game.GameData.AttackAOEComponent, Assembly-CSharp",
					"BlastSize": "Small",
					"BlastRadiusOverride": 5,
					"DamageAngle": 360,
					"ExcludePrimaryTarget": "true",
					"IgnoreParentTarget": "true",
					"ExcludeSelf": "false",
					"BlastPhysicsForce": 500,
					"PushFromCaster": "false"
				}, {
					"$type": "Game.GameData.AttackRangedComponent, Assembly-CSharp",
					"LaunchAttackOnCollision": "false",
					"ProjectileCount": 1,
					"IgnoreMagicDefense": "true",
					"ProjectileConeAngle": 145,
					"ProjectilePrefab": "prefabs/projectiles/invisible_projectile.prefab",
					"IsMultiHit": "false",
					"MultiHitTravelDist": 10,
					"MultiHitMaxHits": 0,
					"LaunchSource": "Caster",
					"LaunchOffset": {
						"x": 0,
						"y": 0,
						"z": 0
					},
					"LaunchOffsetRandom": {
						"x": 0,
						"y": 0,
						"z": 0
					}
				}
			]
		}
	]
}

Ok, that's step 1 finished. Hope it looks ok.


Edited by Kexby, 30 July 2018 - 10:56 PM.


#23
Kexby

Kexby

    (2) Evoker

  • Members
  • 72 posts
  • Location:Australia

Step 2.

 

I've given all 3 entries new unique GUIDs and DeBugNames.

 

And created an items.stringtable file and changed the Display Name and Description Text.

 

New BadAss.gamedatabundle:

{
	"GameDataObjects": [{
			"$type": "Game.GameData.WeaponGameData, Assembly-CSharp",
			"DebugName": "Blunderbuss_U_BadAss",
			"ID": "7af150f7-e979-43f1-9df1-3b58c90478b7",
			"Components": [{
					"$type": "Game.GameData.ItemComponent, Assembly-CSharp",
					"DisplayName": 66650,
					"DescriptionText": 66651,
					"FilterType": "Weapons",
					"InventoryAudioEventListID": "57518815-1aa8-49c2-8ee0-0d361b26fd66",
					"IsQuestItem": "false",
					"IsIngredient": "false",
					"IsCurrency": "false",
					"IsAdventuringItem": "false",
					"CanSellForFullValue": "false",
					"MaxStackSize": 1,
					"NeverDropAsLoot": "false",
					"CanBePickpocketed": "true",
					"IsUnique": "true",
					"Value": 35,
					"IconTextureSmall": "gui/icons/items/weapons/blunderbuss/blunderbuss_01_s.png",
					"IconTextureLarge": "gui/icons/items/weapons/blunderbuss/blunderbuss_01_l.png",
					"PencilSketchTexture": "",
					"InspectOnUseButton": [],
					"IsPlaceholder": "false"
				}, {
					"$type": "Game.GameData.EquippableComponent, Assembly-CSharp",
					"EquipmentType": "Blunderbuss",
					"EquipmentSlot": "AnyWeapon",
					"AppearancePiece": {
						"ModelVisualDataPath": "prefabs/items/appearance/weapons/blunderbuss/a_blunderbuss03_v01.asset"
					},
					"ItemModsIDs": ["fea57a9e-7dc1-4f66-8617-1e2f87c0f376", "7d7b81f7-7322-441f-a366-5d15d30379f5", "2dcb5f72-2a69-45c6-a438-3e93a58459a5"],
					"OnEquipVisualEffects": [],
					"RestrictedToClass": [],
					"RestrictedToPlayer": "false",
					"ProficientAbilityID": "f5a2eb61-8c11-41ab-9832-5ad182e5b368",
					"CannotUnequip": "false",
					"ItemRendererPrefab": "prefabs/itemrenderers/genericanimateditemrenderer.prefab",
					"ItemModel": "",
					"AnimationController": "art/animation/animationcontrollers/weapon/w_pistol.controller",
					"PaperdollOverrideRenderer": "",
					"AttackSummonID": "00000000-0000-0000-0000-000000000000",
					"CannotSheathe": "false",
					"PropVisualEffects": []
				}, {
					"$type": "Game.GameData.WeaponComponent, Assembly-CSharp",
					"Stance": "OneHanded",
					"AnimationStanceID": "ddeda306-872b-4d63-8032-fbaf359d0ed2",
					"StatusEffectsOnLaunchIDs": [],
					"IsDisplayedWhenAlternate": "true",
					"IsUniversalType": "false",
					"AttackID": "2af49303-b215-42aa-b933-7b0497a1c19d",
					"NoiseLevelID": "6bfdad12-a1d0-42cc-b797-c9d2dac2af05",
					"ForceBackScabbard": "false",
					"ScabbardAppearancePiece": {
						"ModelVisualDataPath": ""
					},
					"ScabbardRendererPrefab": "",
					"ScabbardModel": "",
					"AudioEventListID": "00000000-0000-0000-0000-000000000000"
				}
			]
		}, {
			"$type": "Game.GameData.AttackFirearmGameData, Assembly-CSharp",
			"DebugName": "Blunderbuss_BadAss",
			"ID": "75e41a87-9eb2-4062-8127-f8f2b121a9e3",
			"Components": [{
					"$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp",
					"KeywordsIDs": ["f25230f4-fca2-44af-b745-03f026152459", "1b6d77c8-1155-4d49-9c7c-548716f0d409", "d0cef78d-856b-4d8c-82d2-59c1ed2aa396"],
					"AttackDistance": 5,
					"MinAttackDistance": 0,
					"AttackVariationID": "7da22f9e-cd53-4546-86cc-c2d150df72cb",
					"CastSpeedID": "eacb53e3-6eb5-422a-92ca-99cc883ae4a9",
					"RecoveryTimeID": "039ef4b4-eeb3-42d3-9817-a8df05c53515",
					"ImpactDelay": 0,
					"ForcedTarget": "None",
					"AffectedTargetType": "All",
					"AffectedTargetConditional": {
						"Conditional": {
							"Operator": 0,
							"Components": []
						}
					},
					"AffectedTargetDeathState": "Alive",
					"HostilityOverride": "Default",
					"PushDistance": 0,
					"FaceTarget": "true",
					"AccuracyBonus": 0,
					"PenetrationRating": 6,
					"DamageData": {
						"DamageType": "Pierce",
						"AlternateDamageType": "Slash",
						"Minimum": 11,
						"Maximum": 15,
						"DamageProcs": []
					},
					"Require****Object": "true",
					"StatusEffectKeywordsIDs": [],
					"StatusEffectsIDs": [],
					"RandomizeStatusEffect": "false",
					"CanGraze": "false",
					"CanCrit": "true",
					"DefendedBy": "Reflex",
					"AfflictionsDefendedBy": "None",
					"AfflictionApplicationModifier": "None",
					"SubstituteHitVisualEffect": "",
					"VisualEffects": [{
							"VisualEffect": "prefabs/effects/items/weapons/fx_action_flash_launch_01.prefab",
							"AttachPoint": "Fx_Bone_02",
							"AttachObject": "Caster",
							"AttachMode": "Attach",
							"MeshType": "None",
							"Event": "OnAnimEvent",
							"AnimEventID": 0,
							"Loop": "false",
							"Scale": "false"
						}, {
							"VisualEffect": "prefabs/effects/items/weapons/fx_muzzle_flash_launch_blunderbuss.prefab",
							"AttachPoint": "Fx_Bone_01",
							"AttachObject": "Caster",
							"AttachMode": "PositionRotation",
							"MeshType": "None",
							"Event": "OnLaunch",
							"AnimEventID": 0,
							"Loop": "false",
							"Scale": "false"
						}, {
							"VisualEffect": "prefabs/effects/items/weapons/fx_arquebus_smoke_linger.prefab",
							"AttachPoint": "Fx_Bone_01",
							"AttachObject": "Caster",
							"AttachMode": "Attach",
							"MeshType": "None",
							"Event": "OnLaunch",
							"AnimEventID": 0,
							"Loop": "false",
							"Scale": "false"
						}, {
							"VisualEffect": "prefabs/effects/items/weapons/fx_blunderbuss_serafen_aoe.prefab",
							"AttachPoint": "Chest",
							"AttachObject": "Target",
							"AttachMode": "Position",
							"MeshType": "None",
							"Event": "OnImpact",
							"AnimEventID": 0,
							"Loop": "false",
							"Scale": "false"
						}
					],
					"AttackOnImpactID": "00000000-0000-0000-0000-000000000000",
					"ExtraAttackID": "c18ff541-cf07-4d0c-ad70-70410aed948f",
					"LaunchBone": "Fx_Bone_01",
					"HitBone": "Chest",
					"OnHitShakeDuration": "None",
					"OnHitShakeStrength": "None",
					"NoiseLevelID": "82bc1ce9-3a81-41ca-a61a-cc1f73a53de7",
					"AllReactNoise": "false",
					"InterruptsOn": "None",
					"InterruptType": "Normal",
					"TargetAngle": 0,
					"ApplyOnceOnly": "false",
					"PathsToTarget": "true",
					"HideFromCombatLog": "false",
					"DoesNotApplyDamage": "false",
					"TreatAsWeapon": "false",
					"BounceData": {
						"Bounces": 0,
						"Multiplier": 0.5,
						"Range": 2,
						"InRangeOrder": "true",
						"NoRepeatTargets": "false",
						"AlwaysBounceAtEnemies": "true",
						"Delay": 0
					}
				}, {
					"$type": "Game.GameData.AttackRangedComponent, Assembly-CSharp",
					"LaunchAttackOnCollision": "false",
					"ProjectileCount": 1,
					"IgnoreMagicDefense": "false",
					"ProjectileConeAngle": 11,
					"ProjectilePrefab": "prefabs/projectiles/items/fx_blunderbuss_serafen_handmortar_projectile.prefab",
					"IsMultiHit": "false",
					"MultiHitTravelDist": 10,
					"MultiHitMaxHits": 0,
					"LaunchSource": "Caster",
					"LaunchOffset": {
						"x": 0,
						"y": 0,
						"z": 0
					},
					"LaunchOffsetRandom": {
						"x": 0,
						"y": 0,
						"z": 0
					}
				}, {
					"$type": "Game.GameData.AttackFirearmComponent, Assembly-CSharp",
					"ClipSize": 1,
					"ReloadTime": 5,
					"ReloadAnimationEndTime": 1.67,
					"FirearmType": "Pistol"
				}
			]
		}, {
					"$type": "Game.GameData.AttackRangedComponent, Assembly-CSharp",
					"LaunchAttackOnCollision": "false",
					"ProjectileCount": 1,
					"IgnoreMagicDefense": "false",
					"ProjectileConeAngle": 11,
					"ProjectilePrefab": "prefabs/projectiles/items/fx_blunderbuss_serafen_handmortar_projectile.prefab",
					"IsMultiHit": "false",
					"MultiHitTravelDist": 10,
					"MultiHitMaxHits": 0,
					"LaunchSource": "Caster",
					"LaunchOffset": {
						"x": 0,
						"y": 0,
						"z": 0
					},
					"LaunchOffsetRandom": {
						"x": 0,
						"y": 0,
						"z": 0
					}
				}, {
					"$type": "Game.GameData.AttackFirearmComponent, Assembly-CSharp",
					"ClipSize": 1,
					"ReloadTime": 5,
					"ReloadAnimationEndTime": 1.67,
					"FirearmType": "Pistol"
				}
			]
		}, {
			"$type": "Game.GameData.AttackAOEGameData, Assembly-CSharp",
			"DebugName": "Blunderbuss_BadAss_AoE",
			"ID": "c6c55d7b-abd0-4ae8-a377-fc17c83e7fdf",
			"Components": [{
					"$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp",
					"KeywordsIDs": ["f25230f4-fca2-44af-b745-03f026152459", "1b6d77c8-1155-4d49-9c7c-548716f0d409"],
					"AttackDistance": 4,
					"MinAttackDistance": 0,
					"AttackVariationID": "35abdf41-fc3f-4310-8d5d-5d7da644affc",
					"CastSpeedID": "eacb53e3-6eb5-422a-92ca-99cc883ae4a9",
					"RecoveryTimeID": "566840d9-1561-4243-8ca7-889df9869847",
					"ImpactDelay": 0,
					"ForcedTarget": "None",
					"AffectedTargetType": "Hostile",
					"AffectedTargetConditional": {
						"Conditional": {
							"Operator": 0,
							"Components": []
						}
					},
					"AffectedTargetDeathState": "Alive",
					"HostilityOverride": "Default",
					"PushDistance": 0,
					"FaceTarget": "false",
					"AccuracyBonus": 0,
					"PenetrationRating": 6,
					"DamageData": {
						"DamageType": "Pierce",
						"AlternateDamageType": "Slash",
						"Minimum": 5,
						"Maximum": 8,
						"DamageProcs": []
					},
					"Require****Object": "false",
					"StatusEffectKeywordsIDs": [],
					"StatusEffectsIDs": [],
					"RandomizeStatusEffect": "false",
					"CanGraze": "false",
					"CanCrit": "true",
					"DefendedBy": "Reflex",
					"AfflictionsDefendedBy": "None",
					"AfflictionApplicationModifier": "None",
					"SubstituteHitVisualEffect": "",
					"VisualEffects": [],
					"AttackOnImpactID": "00000000-0000-0000-0000-000000000000",
					"ExtraAttackID": "00000000-0000-0000-0000-000000000000",
					"LaunchBone": "RightWeapon",
					"HitBone": "Chest",
					"OnHitShakeDuration": "None",
					"OnHitShakeStrength": "None",
					"NoiseLevelID": "15743f94-1026-40b0-8e13-a667b3f66f63",
					"AllReactNoise": "false",
					"InterruptsOn": "None",
					"InterruptType": "Normal",
					"TargetAngle": 0,
					"ApplyOnceOnly": "false",
					"PathsToTarget": "true",
					"HideFromCombatLog": "false",
					"DoesNotApplyDamage": "false",
					"TreatAsWeapon": "false",
					"BounceData": {
						"Bounces": 0,
						"Multiplier": 0.5,
						"Range": 10,
						"InRangeOrder": "false",
						"NoRepeatTargets": "false",
						"AlwaysBounceAtEnemies": "false",
						"Delay": 0
					}
				}, {
					"$type": "Game.GameData.AttackAOEComponent, Assembly-CSharp",
					"BlastSize": "Small",
					"BlastRadiusOverride": 5,
					"DamageAngle": 360,
					"ExcludePrimaryTarget": "true",
					"IgnoreParentTarget": "true",
					"ExcludeSelf": "false",
					"BlastPhysicsForce": 500,
					"PushFromCaster": "false"
				}, {
					"$type": "Game.GameData.AttackRangedComponent, Assembly-CSharp",
					"LaunchAttackOnCollision": "false",
					"ProjectileCount": 1,
					"IgnoreMagicDefense": "true",
					"ProjectileConeAngle": 145,
					"ProjectilePrefab": "prefabs/projectiles/invisible_projectile.prefab",
					"IsMultiHit": "false",
					"MultiHitTravelDist": 10,
					"MultiHitMaxHits": 0,
					"LaunchSource": "Caster",
					"LaunchOffset": {
						"x": 0,
						"y": 0,
						"z": 0
					},
					"LaunchOffsetRandom": {
						"x": 0,
						"y": 0,
						"z": 0
					}
				}
			]
		}
	]
}

items.stringtable:

<?xml version="1.0" encoding="utf-8"?>
<StringTableFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Name>game\items</Name>
  <Entries>
    <Entry>
      <ID>66650</ID>
      <DefaultText>BadAss</DefaultText>
      <FemaleText />
    </Entry>
    <Entry>
      <ID>66651</ID>
      <DefaultText>The Baddest Gun</DefaultText>
      <FemaleText />
    </Entry>
  </Entries>  
</StringTableFile>

Now I'm going to test it in game.


Edited by Kexby, 30 July 2018 - 11:09 PM.


#24
Kexby

Kexby

    (2) Evoker

  • Members
  • 72 posts
  • Location:Australia

Hmm I've done something wrong. I'm getting an error message.

 

I used the console to GiveItem 7af150f7-e979-43f1-9df1-3b58c90478b7

 

But this is the error I recieved:

 

GameDataNotFoundException: Game Data of type 'ItemGameData' not found for 7af150f7-e979-43f1-9df1-3b58c90478b7

 

What have I done wrong?

 

These are my paths:

 

PillarsOfEternityII_Data\override\BadAss\design\gamedata\BadAss.gamedatabundle

 

PillarsOfEternityII_Data\override\BadAss\localized\en\text\game\items.stringtable


Edited by Kexby, 30 July 2018 - 11:33 PM.


#25
TT1

TT1

    Transcendent Spirit of the Obsidian Order

  • Members
  • 299 posts
  • Pillars of Eternity Backer
  • Kickstarter Backer
  • Lords of the Eastern Reach Backer
  • Deadfire Backer
  • Fig Backer
You cannot use letters after F (hexadecimal) on uuid, thats why this is not going to work.

Edited by TT1, 31 July 2018 - 12:52 AM.


#26
Kexby

Kexby

    (2) Evoker

  • Members
  • 72 posts
  • Location:Australia

You cannot use letters after F (hexadecimal) on uuid, thats why this is not going to work.

 

Oops! I know nothing at all about GUIDs, so I just used the generator that Kilay linked for me.

 

I'll try using the generator that Peardox uses.



#27
Kexby

Kexby

    (2) Evoker

  • Members
  • 72 posts
  • Location:Australia

Bummer! It still won't work.

 

I changed the ID to ea4de19d-d80c-4e66-9e33-8818a1e038a3 (I kept generating numbers till I got one without any f's).

 

I've just tested it again, but I'm getting the same error message :unsure:



#28
kilay

kilay

    (5) Thaumaturgist

  • Members
  • 524 posts

 

You cannot use letters after F (hexadecimal) on uuid, thats why this is not going to work.

 

Oops! I know nothing at all about GUIDs, so I just used the generator that Kilay linked for me.

 

I'll try using the generator that Peardox uses.

 

 

No,  tt1 has asnwered to your fisrt quesion about "ID": "kex0e7a2-ec4f-4d5f-a436-53e26ed3e075"

Your mod btw doesn't work cuz you used this command
 

 GiveItem 7af150f7-e979-43f1-9df1-3b58c90478b7

 

 

Instead use

 

Giveitem Blunderbuss_U_BadAss
 


  • TT1 likes this

#29
Kexby

Kexby

    (2) Evoker

  • Members
  • 72 posts
  • Location:Australia

Lol I told you I know nothing about GUIDs, sorry TT1.

 

Kilay I'm going to go try your solution:

 

Giveitem Blunderbuss_U_BadAss

 

*fingers crossed*

 

Update: Nope, still no luck. It's still giving me the same error.

 

I've really messed up somewhere.


Edited by Kexby, 31 July 2018 - 02:23 AM.


#30
house2fly

house2fly

    (8) Warlock

  • Members
  • 1166 posts
When that happens with me it's mostly been a dangling bracket- search for {, }, [, and ] and check there's the same number of each. Also make sure the new UUID for the attack is attached to the weapon itself under "AttackID" and i THINK the AOE attack needs to be attached to the first attack under "ExtraAttackID". As far as I know there should be no problems if they're in the bundle but aren't being used, but you'll want to make sure all the UUIDs are lined up anyway for when you modify the attacks

E: also you didn't paste from the forum into the file by any chance? In your post I see one entry that says "Require****Object" which should say "RequiresHitObject" but accidentally tripped the forum's swear filter. If that somehow made it into your bundle it'd mess it up

Edited by house2fly, 31 July 2018 - 03:49 AM.

  • kilay likes this

#31
kilay

kilay

    (5) Thaumaturgist

  • Members
  • 524 posts

Double post sorry


Edited by kilay, 31 July 2018 - 09:13 AM.


#32
kilay

kilay

    (5) Thaumaturgist

  • Members
  • 524 posts

Lol I told you I know nothing about GUIDs, sorry TT1.

 

Kilay I'm going to go try your solution:

 

Giveitem Blunderbuss_U_BadAss

 

*fingers crossed*

 

Update: Nope, still no luck. It's still giving me the same error.

 

I've really messed up somewhere.

 

 

Use Notepad ++

This is really comfortable to check gamedatabundle , before you need to convert the bundle in json format with some plugin ( I use JSTool )

 


 



#33
Kexby

Kexby

    (2) Evoker

  • Members
  • 72 posts
  • Location:Australia

Yep, I'm using Notepad++ and JSTool as well :)

 

Anyway, I just copied the code into that JSON Validator and I got this message:
 

 

Error: Parse error on line 230:
...ype": "Pistol"    }]}, {    "$type": "Game.
---------------------^
Expecting 'EOF', got ','

 

 

So there is a problem. But I have no idea what it means.

 

I took a screenshot of it:

 

https://imgur.com/a/LBtftpj

 

I think house2fly might be right, I think I have too many curly brackets or something. I just hope somebody with more knowledge than me can see what the problem is and tell me how to fix it.

 

Update:

 

OMG! I think I found the problem, I looked through attacks.gamedatabundle again and realized I missed a section of the code when I copied and pasted it :blush:

 

I've just redone it and this time the validator says it's valid. Phew!

 

I'm off to test it again.


Edited by Kexby, 01 August 2018 - 05:41 PM.


#34
house2fly

house2fly

    (8) Warlock

  • Members
  • 1166 posts

Hit Ctrl+F in Notepad++ and the Find menu includes a "count" option. Looks like you've got one } and one ] too many. I THINK they're both in the AttackFirearmComponent, which in your code above is looking like this:

 

{
     "$type": "Game.GameData.AttackFirearmComponent, Assembly-CSharp",
     "ClipSize": 1,
     "ReloadTime": 5,
     "ReloadAnimationEndTime": 1.67,
     "FirearmType": "Pistol"
    }
   ]
  },


I think it should only need to look like this:

 

{
     "$type": "Game.GameData.AttackFirearmComponent, Assembly-CSharp",
     "ClipSize": 1,
     "ReloadTime": 5,
     "ReloadAnimationEndTime": 1.67,
     "FirearmType": "Pistol"
    
  },



#35
peardox

peardox

    (5) Thaumaturgist

  • Members
  • 564 posts
  • Location:Manchester, UK
  • Deadfire Backer

Member of Slack team now...



#36
peardox

peardox

    (5) Thaumaturgist

  • Members
  • 564 posts
  • Location:Manchester, UK
  • Deadfire Backer

Note that the VERY FINAL object wants to omit the "," or it's junk json


  • Grape_You_In_The_Mouth likes this

#37
Kexby

Kexby

    (2) Evoker

  • Members
  • 72 posts
  • Location:Australia

I can't thank you guys enough! You are brilliant!

 

IT"S WORKING! :bow:

 

Wow! That took a bit of effort, but I've learned so much from this exercise. Apologies to Peardox (I've kind of hijacked your thread). But if anybody else is trying to make their own custom weapon, then I hope my ramblings are useful.

 

Right! On to Step 3 (making this weapon ridiculously overpowered :grin:).

 

Actually, before I do that, I think I'll upload it here. Not just as my own backup, but in case anybody would like to see what I've done so far (before I go crazy).

 

Edit: The forum doesn't like me. It won't let me attach a file :(


Edited by Kexby, 31 July 2018 - 06:15 AM.

  • kilay likes this

#38
Kexby

Kexby

    (2) Evoker

  • Members
  • 72 posts
  • Location:Australia

I just can't win. I've made my changes. But they don't show up in game.

 

I set the Attack Distance to 88

The Accuracy Bonus to 666

The Penetration to 666

The min and max damage to 666

The Reload time to 2

The Blast Size to Large

 

I gave myself the item with the console and although it says it's called BadAss, the stats are still the same as the original blunderbuss.

 

Here is the gamedatabundle file:

{
	"GameDataObjects": [{
			"$type": "Game.GameData.WeaponGameData, Assembly-CSharp",
			"DebugName": "Blunderbuss_U_BadAss",
			"ID": "ea4de19d-d80c-4e66-9e33-8818a1e038a3",
			"Components": [{
					"$type": "Game.GameData.ItemComponent, Assembly-CSharp",
					"DisplayName": 66650,
					"DescriptionText": 66651,
					"FilterType": "Weapons",
					"InventoryAudioEventListID": "57518815-1aa8-49c2-8ee0-0d361b26fd66",
					"IsQuestItem": "false",
					"IsIngredient": "false",
					"IsCurrency": "false",
					"IsAdventuringItem": "false",
					"CanSellForFullValue": "false",
					"MaxStackSize": 1,
					"NeverDropAsLoot": "false",
					"CanBePickpocketed": "true",
					"IsUnique": "true",
					"Value": 35,
					"IconTextureSmall": "gui/icons/items/weapons/blunderbuss/blunderbuss_01_s.png",
					"IconTextureLarge": "gui/icons/items/weapons/blunderbuss/blunderbuss_01_l.png",
					"PencilSketchTexture": "",
					"InspectOnUseButton": [],
					"IsPlaceholder": "false"
				}, {
					"$type": "Game.GameData.EquippableComponent, Assembly-CSharp",
					"EquipmentType": "Blunderbuss",
					"EquipmentSlot": "AnyWeapon",
					"AppearancePiece": {
						"ModelVisualDataPath": "prefabs/items/appearance/weapons/blunderbuss/a_blunderbuss03_v01.asset"
					},
					"ItemModsIDs": ["fea57a9e-7dc1-4f66-8617-1e2f87c0f376", "7d7b81f7-7322-441f-a366-5d15d30379f5", "2dcb5f72-2a69-45c6-a438-3e93a58459a5"],
					"OnEquipVisualEffects": [],
					"RestrictedToClass": [],
					"RestrictedToPlayer": "false",
					"ProficientAbilityID": "f5a2eb61-8c11-41ab-9832-5ad182e5b368",
					"CannotUnequip": "false",
					"ItemRendererPrefab": "prefabs/itemrenderers/genericanimateditemrenderer.prefab",
					"ItemModel": "",
					"AnimationController": "art/animation/animationcontrollers/weapon/w_pistol.controller",
					"PaperdollOverrideRenderer": "",
					"AttackSummonID": "00000000-0000-0000-0000-000000000000",
					"CannotSheathe": "false",
					"PropVisualEffects": []
				}, {
					"$type": "Game.GameData.WeaponComponent, Assembly-CSharp",
					"Stance": "OneHanded",
					"AnimationStanceID": "ddeda306-872b-4d63-8032-fbaf359d0ed2",
					"StatusEffectsOnLaunchIDs": [],
					"IsDisplayedWhenAlternate": "true",
					"IsUniversalType": "false",
					"AttackID": "2af49303-b215-42aa-b933-7b0497a1c19d",
					"NoiseLevelID": "6bfdad12-a1d0-42cc-b797-c9d2dac2af05",
					"ForceBackScabbard": "false",
					"ScabbardAppearancePiece": {
						"ModelVisualDataPath": ""
					},
					"ScabbardRendererPrefab": "",
					"ScabbardModel": "",
					"AudioEventListID": "00000000-0000-0000-0000-000000000000"
				}
			]
		},{
			"$type": "Game.GameData.AttackFirearmGameData, Assembly-CSharp",
			"DebugName": "Blunderbuss_BadAss",
			"ID": "75e41a87-9eb2-4062-8127-f8f2b121a9e3",
			"Components": [{
					"$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp",
					"KeywordsIDs": ["f25230f4-fca2-44af-b745-03f026152459", "1b6d77c8-1155-4d49-9c7c-548716f0d409"],
					"AttackDistance": 88,
					"MinAttackDistance": 0,
					"AttackVariationID": "7da22f9e-cd53-4546-86cc-c2d150df72cb",
					"CastSpeedID": "eacb53e3-6eb5-422a-92ca-99cc883ae4a9",
					"RecoveryTimeID": "039ef4b4-eeb3-42d3-9817-a8df05c53515",
					"ImpactDelay": 0,
					"ForcedTarget": "None",
					"AffectedTargetType": "All",
					"AffectedTargetConditional": {
						"Conditional": {
							"Operator": 0,
							"Components": []
						}
					},
					"AffectedTargetDeathState": "Alive",
					"HostilityOverride": "Default",
					"PushDistance": 0,
					"FaceTarget": "true",
					"AccuracyBonus": 666,
					"PenetrationRating": 666,
					"DamageData": {
						"DamageType": "Pierce",
						"AlternateDamageType": "None",
						"Minimum": 666,
						"Maximum": 666,
						"DamageProcs": []
					},
					"Require****Object": "true",
					"StatusEffectKeywordsIDs": [],
					"StatusEffectsIDs": [],
					"RandomizeStatusEffect": "false",
					"CanGraze": "false",
					"CanCrit": "true",
					"DefendedBy": "Deflect",
					"AfflictionsDefendedBy": "None",
					"AfflictionApplicationModifier": "None",
					"SubstituteHitVisualEffect": "",
					"VisualEffects": [{
							"VisualEffect": "prefabs/effects/items/weapons/fx_action_flash_launch_01.prefab",
							"AttachPoint": "Fx_Bone_02",
							"AttachObject": "Caster",
							"AttachMode": "Attach",
							"MeshType": "None",
							"Event": "OnAnimEvent",
							"AnimEventID": 0,
							"Loop": "false",
							"Scale": "false"
						}, {
							"VisualEffect": "prefabs/effects/items/weapons/fx_muzzle_flash_launch_blunderbuss.prefab",
							"AttachPoint": "Fx_Bone_01",
							"AttachObject": "Caster",
							"AttachMode": "PositionRotation",
							"MeshType": "None",
							"Event": "OnLaunch",
							"AnimEventID": 0,
							"Loop": "false",
							"Scale": "false"
						}, {
							"VisualEffect": "prefabs/effects/items/weapons/fx_arquebus_smoke_linger.prefab",
							"AttachPoint": "Fx_Bone_01",
							"AttachObject": "Caster",
							"AttachMode": "Attach",
							"MeshType": "None",
							"Event": "OnLaunch",
							"AnimEventID": 0,
							"Loop": "false",
							"Scale": "false"
						}
					],
					"AttackOnImpactID": "00000000-0000-0000-0000-000000000000",
					"ExtraAttackID": "00000000-0000-0000-0000-000000000000",
					"LaunchBone": "Fx_Bone_01",
					"HitBone": "Chest",
					"OnHitShakeDuration": "None",
					"OnHitShakeStrength": "None",
					"NoiseLevelID": "82bc1ce9-3a81-41ca-a61a-cc1f73a53de7",
					"AllReactNoise": "false",
					"InterruptsOn": "None",
					"InterruptType": "Normal",
					"TargetAngle": 0,
					"ApplyOnceOnly": "false",
					"PathsToTarget": "true",
					"HideFromCombatLog": "false",
					"DoesNotApplyDamage": "false",
					"TreatAsWeapon": "false",
					"BounceData": {
						"Bounces": 0,
						"Multiplier": 0.5,
						"Range": 4,
						"InRangeOrder": "true",
						"NoRepeatTargets": "false",
						"AlwaysBounceAtEnemies": "true",
						"Delay": 0
					}
				}, {
					"$type": "Game.GameData.AttackRangedComponent, Assembly-CSharp",
					"LaunchAttackOnCollision": "false",
					"ProjectileCount": 4,
					"IgnoreMagicDefense": "false",
					"ProjectileConeAngle": 11,
					"ProjectilePrefab": "prefabs/projectiles/invisible_projectile.prefab",
					"IsMultiHit": "false",
					"MultiHitTravelDist": 88,
					"MultiHitMaxHits": 0,
					"LaunchSource": "Caster",
					"LaunchOffset": {
						"x": 0,
						"y": 0,
						"z": 0
					},
					"LaunchOffsetRandom": {
						"x": 0,
						"y": 0,
						"z": 0
					}
				}, {
					"$type": "Game.GameData.AttackFirearmComponent, Assembly-CSharp",
					"ClipSize": 4,
					"ReloadTime": 2,
					"ReloadAnimationEndTime": 1.67,
					"FirearmType": "Pistol"
				}
			]
		}, {
			"$type": "Game.GameData.AttackFirearmGameData, Assembly-CSharp",
			"DebugName": "Blunderbuss_A_BadAss",
			"ID": "091b9ece-4c73-4b4b-a628-154549b830c5",
			"Components": [{
					"$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp",
					"KeywordsIDs": ["f25230f4-fca2-44af-b745-03f026152459", "1b6d77c8-1155-4d49-9c7c-548716f0d409", "d0cef78d-856b-4d8c-82d2-59c1ed2aa396"],
					"AttackDistance": 88,
					"MinAttackDistance": 0,
					"AttackVariationID": "7da22f9e-cd53-4546-86cc-c2d150df72cb",
					"CastSpeedID": "eacb53e3-6eb5-422a-92ca-99cc883ae4a9",
					"RecoveryTimeID": "039ef4b4-eeb3-42d3-9817-a8df05c53515",
					"ImpactDelay": 0,
					"ForcedTarget": "None",
					"AffectedTargetType": "All",
					"AffectedTargetConditional": {
						"Conditional": {
							"Operator": 0,
							"Components": []
						}
					},
					"AffectedTargetDeathState": "Alive",
					"HostilityOverride": "Default",
					"PushDistance": 0,
					"FaceTarget": "true",
					"AccuracyBonus": 0,
					"PenetrationRating": 666,
					"DamageData": {
						"DamageType": "Pierce",
						"AlternateDamageType": "Slash",
						"Minimum": 666,
						"Maximum": 666,
						"DamageProcs": []
					},
					"Require****Object": "true",
					"StatusEffectKeywordsIDs": [],
					"StatusEffectsIDs": [],
					"RandomizeStatusEffect": "false",
					"CanGraze": "false",
					"CanCrit": "true",
					"DefendedBy": "Reflex",
					"AfflictionsDefendedBy": "None",
					"AfflictionApplicationModifier": "None",
					"SubstituteHitVisualEffect": "",
					"VisualEffects": [{
							"VisualEffect": "prefabs/effects/items/weapons/fx_action_flash_launch_01.prefab",
							"AttachPoint": "Fx_Bone_02",
							"AttachObject": "Caster",
							"AttachMode": "Attach",
							"MeshType": "None",
							"Event": "OnAnimEvent",
							"AnimEventID": 0,
							"Loop": "false",
							"Scale": "false"
						}, {
							"VisualEffect": "prefabs/effects/items/weapons/fx_muzzle_flash_launch_blunderbuss.prefab",
							"AttachPoint": "Fx_Bone_01",
							"AttachObject": "Caster",
							"AttachMode": "PositionRotation",
							"MeshType": "None",
							"Event": "OnLaunch",
							"AnimEventID": 0,
							"Loop": "false",
							"Scale": "false"
						}, {
							"VisualEffect": "prefabs/effects/items/weapons/fx_arquebus_smoke_linger.prefab",
							"AttachPoint": "Fx_Bone_01",
							"AttachObject": "Caster",
							"AttachMode": "Attach",
							"MeshType": "None",
							"Event": "OnLaunch",
							"AnimEventID": 0,
							"Loop": "false",
							"Scale": "false"
						}, {
							"VisualEffect": "prefabs/effects/items/weapons/fx_blunderbuss_serafen_aoe.prefab",
							"AttachPoint": "Chest",
							"AttachObject": "Target",
							"AttachMode": "Position",
							"MeshType": "None",
							"Event": "OnImpact",
							"AnimEventID": 0,
							"Loop": "false",
							"Scale": "false"
						}
					],
					"AttackOnImpactID": "00000000-0000-0000-0000-000000000000",
					"ExtraAttackID": "c18ff541-cf07-4d0c-ad70-70410aed948f",
					"LaunchBone": "Fx_Bone_01",
					"HitBone": "Chest",
					"OnHitShakeDuration": "None",
					"OnHitShakeStrength": "None",
					"NoiseLevelID": "82bc1ce9-3a81-41ca-a61a-cc1f73a53de7",
					"AllReactNoise": "false",
					"InterruptsOn": "None",
					"InterruptType": "Normal",
					"TargetAngle": 0,
					"ApplyOnceOnly": "false",
					"PathsToTarget": "true",
					"HideFromCombatLog": "false",
					"DoesNotApplyDamage": "false",
					"TreatAsWeapon": "false",
					"BounceData": {
						"Bounces": 0,
						"Multiplier": 0.5,
						"Range": 2,
						"InRangeOrder": "true",
						"NoRepeatTargets": "false",
						"AlwaysBounceAtEnemies": "true",
						"Delay": 0
					}
				}, {
					"$type": "Game.GameData.AttackRangedComponent, Assembly-CSharp",
					"LaunchAttackOnCollision": "false",
					"ProjectileCount": 4,
					"IgnoreMagicDefense": "false",
					"ProjectileConeAngle": 11,
					"ProjectilePrefab": "prefabs/projectiles/items/fx_blunderbuss_serafen_handmortar_projectile.prefab",
					"IsMultiHit": "false",
					"MultiHitTravelDist": 88,
					"MultiHitMaxHits": 0,
					"LaunchSource": "Caster",
					"LaunchOffset": {
						"x": 0,
						"y": 0,
						"z": 0
					},
					"LaunchOffsetRandom": {
						"x": 0,
						"y": 0,
						"z": 0
					}
				}, {
					"$type": "Game.GameData.AttackFirearmComponent, Assembly-CSharp",
					"ClipSize": 1,
					"ReloadTime": 2,
					"ReloadAnimationEndTime": 1.67,
					"FirearmType": "Pistol"
				}
			]
		}, {
			"$type": "Game.GameData.AttackAOEGameData, Assembly-CSharp",
			"DebugName": "Blunderbuss_BadAss_AoE",
			"ID": "dbb0a8d7-d06f-4d99-b396-30470f5b74b1",
			"Components": [{
					"$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp",
					"KeywordsIDs": ["f25230f4-fca2-44af-b745-03f026152459", "1b6d77c8-1155-4d49-9c7c-548716f0d409"],
					"AttackDistance": 88,
					"MinAttackDistance": 0,
					"AttackVariationID": "35abdf41-fc3f-4310-8d5d-5d7da644affc",
					"CastSpeedID": "eacb53e3-6eb5-422a-92ca-99cc883ae4a9",
					"RecoveryTimeID": "566840d9-1561-4243-8ca7-889df9869847",
					"ImpactDelay": 0,
					"ForcedTarget": "None",
					"AffectedTargetType": "Hostile",
					"AffectedTargetConditional": {
						"Conditional": {
							"Operator": 0,
							"Components": []
						}
					},
					"AffectedTargetDeathState": "Alive",
					"HostilityOverride": "Default",
					"PushDistance": 0,
					"FaceTarget": "false",
					"AccuracyBonus": 666,
					"PenetrationRating": 666,
					"DamageData": {
						"DamageType": "Pierce",
						"AlternateDamageType": "Slash",
						"Minimum": 666,
						"Maximum": 666,
						"DamageProcs": []
					},
					"Require****Object": "false",
					"StatusEffectKeywordsIDs": [],
					"StatusEffectsIDs": [],
					"RandomizeStatusEffect": "false",
					"CanGraze": "false",
					"CanCrit": "true",
					"DefendedBy": "Reflex",
					"AfflictionsDefendedBy": "None",
					"AfflictionApplicationModifier": "None",
					"SubstituteHitVisualEffect": "",
					"VisualEffects": [],
					"AttackOnImpactID": "00000000-0000-0000-0000-000000000000",
					"ExtraAttackID": "00000000-0000-0000-0000-000000000000",
					"LaunchBone": "RightWeapon",
					"HitBone": "Chest",
					"OnHitShakeDuration": "None",
					"OnHitShakeStrength": "None",
					"NoiseLevelID": "15743f94-1026-40b0-8e13-a667b3f66f63",
					"AllReactNoise": "false",
					"InterruptsOn": "None",
					"InterruptType": "Normal",
					"TargetAngle": 0,
					"ApplyOnceOnly": "false",
					"PathsToTarget": "true",
					"HideFromCombatLog": "false",
					"DoesNotApplyDamage": "false",
					"TreatAsWeapon": "false",
					"BounceData": {
						"Bounces": 0,
						"Multiplier": 0.5,
						"Range": 10,
						"InRangeOrder": "false",
						"NoRepeatTargets": "false",
						"AlwaysBounceAtEnemies": "false",
						"Delay": 0
					}
				}, {
					"$type": "Game.GameData.AttackAOEComponent, Assembly-CSharp",
					"BlastSize": "Large",
					"BlastRadiusOverride": 5,
					"DamageAngle": 360,
					"ExcludePrimaryTarget": "true",
					"IgnoreParentTarget": "true",
					"ExcludeSelf": "false",
					"BlastPhysicsForce": 500,
					"PushFromCaster": "false"
				}, {
					"$type": "Game.GameData.AttackRangedComponent, Assembly-CSharp",
					"LaunchAttackOnCollision": "false",
					"ProjectileCount": 1,
					"IgnoreMagicDefense": "true",
					"ProjectileConeAngle": 145,
					"ProjectilePrefab": "prefabs/projectiles/invisible_projectile.prefab",
					"IsMultiHit": "false",
					"MultiHitTravelDist": 88,
					"MultiHitMaxHits": 0,
					"LaunchSource": "Caster",
					"LaunchOffset": {
						"x": 0,
						"y": 0,
						"z": 0
					},
					"LaunchOffsetRandom": {
						"x": 0,
						"y": 0,
						"z": 0
					}
				}
			]
		}
	]
}

I'm completely baffled, why doesn't the game recognize my changes?



#39
BMac

BMac

    Programmer

  • Developers
  • 410 posts
  • Lords of the Eastern Reach Backer

Your item game data's AttackID is still pointing to the original blunderbuss attack "2af49303-b215-42aa-b933-7b0497a1c19d" rather than the ID you assigned for your custom attack, "75e41a87-9eb2-4062-8127-f8f2b121a9e3".


  • TT1 likes this

#40
Kexby

Kexby

    (2) Evoker

  • Members
  • 72 posts
  • Location:Australia

Genius! That fixed it!

 

So there's a handy tip for anybody who's trying to make their own custom weapon, make sure the ID's match in:

 

"$type": "Game.GameData.WeaponGameData, Assembly-CSharp",

"AttackID": "75e41a87-9eb2-4062-8127-f8f2b121a9e3",

 

and

 

"$type": "Game.GameData.AttackFirearmGameData, Assembly-CSharp",

"ID": "75e41a87-9eb2-4062-8127-f8f2b121a9e3",

 

I've also just realized that I had two GameData.AttackFirearmGameData entries:

 

"$type": "Game.GameData.AttackFirearmGameData, Assembly-CSharp",
            "DebugName": "Blunderbuss_A_BadAss",

 

Is a duplicate of:

 

"$type": "Game.GameData.AttackFirearmGameData, Assembly-CSharp",
            "DebugName": "Blunderbuss_BadAss",

 

So I've deleted the duplicate.


  • Grape_You_In_The_Mouth likes this




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users