Jump to content

Recommended 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.

Link to comment
Share on other sites

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:

Link to comment
Share on other sites

 

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

 

  • Like 1
Link to comment
Share on other sites

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
Link to comment
Share on other sites

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
  • Like 1
Link to comment
Share on other sites

Double post sorry

Edited by kilay
Link to comment
Share on other sites

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 )

 

 

 

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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"
    
  },

Link to comment
Share on other sites

Member of Slack team now...

OK Fair warning has been applied

 

I'm gonna move the domain to https://perspak.com early Feb but will keep all content

 

There are reasons behind this move which basically boil down to unifying my release schedule

 

My friends are welcome to play (I'll set you up your own areas if you desire them)

 

Please note that this process is messy so may take a few weeks 

Link to comment
Share on other sites

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

  • Like 1

OK Fair warning has been applied

 

I'm gonna move the domain to https://perspak.com early Feb but will keep all content

 

There are reasons behind this move which basically boil down to unifying my release schedule

 

My friends are welcome to play (I'll set you up your own areas if you desire them)

 

Please note that this process is messy so may take a few weeks 

Link to comment
Share on other sites

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
  • Like 1
Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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".

  • Like 1
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

Heheh I've just tested it again.

 

This is insanely fun, it's a total cheat! I'm having a blast (literally :biggrin: ).

 

There is just one final step I'd like to do. At the moment, it still has the original Additional Effects:

 

Additional Effects

 

Inaccurate: -10 Ranged Accuracy

Fine: +15% Damage, +4 Accuracy, +1 Penetration

Explosive Shot: Basic attacks deal the best of Pierce or Slash damage in a small AoE

 

I'd like to keep Fine and Explosive Shot, but get rid of Inaccurate.

 

Are the 'Additional Effects' in this section of the code?

 

"ItemModsIDs": ["fea57a9e-7dc1-4f66-8617-1e2f87c0f376", "7d7b81f7-7322-441f-a366-5d15d30379f5", "2dcb5f72-2a69-45c6-a438-3e93a58459a5"],

 

If so, then I'm guessing that the first entry is for Inaccurate. If I simply delete that first ID, will it remove Inaccurate from my Blunderbuss?

 

Thank you all so much for your help. I'm almost done (I promise).

Link to comment
Share on other sites

Yep, those are the additional effects. I'm not sure if they're in order, but you can search for the UUID in the game's items.gamedatabundle to confirm the name. there'll probably be a million entries so try ID": "[uUID]".

 

If you make a weapon or armour you can of course make enchantments as well, which is not really more advanced but requires a lot more copying and assigning new UUIDs. To make a new enchantments you need an itemmod which has an ability or a statuseffect which could require an attack, and maybe you want to make a recipe for it, etc

Link to comment
Share on other sites

Aha! Yep, I found it. The first ID is for Inaccurate, so I simply deleted it (which did the trick, my blunderbuss no longer has the Inaccurate modifier :)).

 

Well, I actually think I'm finished with this mod. Yay for me! And BIG thank you's to everybody who helped. You guys are awesome!

 

Here's the final BadAss.gamedatabundle (if anybody is interested):

{
	"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": ["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": "75e41a87-9eb2-4062-8127-f8f2b121a9e3",
					"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.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 not sure if anybody wants an overpowered cheating blunderbuss, but should I upload it to Nexus? I'm just thinking it might help other newbie modders to see what I've done (cause studying other people's mods is a really big help when you're trying to learn).

 

I'd really like to attach it to this post, but I get this message:

 

Error You aren't permitted to upload this kind of file

 

I'm guessing this is because I'm new around here and don't have enough posting privileges yet :no: .

Edited by Kexby
  • Like 1
Link to comment
Share on other sites

Aha! Yep, I found it. The first ID is for Inaccurate, so I simply deleted it (which did the trick, my blunderbuss no longer has the Inaccurate modifier :)).

 

Well, I actually think I'm finished with this mod. Yay for me! And BIG thank you's to everybody who helped. You guys are awesome!

 

I'm not sure if anybody wants an overpowered cheating blunderbuss, but should I upload it to Nexus? I'm just thinking it might help other newbie modders to see what I've done (cause studying other people's mods is a really big help when you're trying to learn).

 

Now that you've understood the basic maybe you could refine your Blunderbuss Badass with a proper damage, other status effects and what you like. So people will have more interest to download it. 666 of damage and 88 of range is really too much. Add some visual effects to your weapon could be another good idea (there are lot of them).

Even you should get rid of the stringtables giving it proper name and some lore, checking in game that all is working properly.

But for that is better talk in other place (Slack or PM) without flood this thread.

 

Glad you sort out. Keep on it.

Edited by kilay
Link to comment
Share on other sites

You're right Kilay, I shouldn't have flooded Peardox's thread (I'm sorry Peardox).

 

I just thought, if I posted my progress here on the official forum (instead of on Slack), then other beginners could follow it and hopefully learn something from it.

 

But I think I'll use Slack from now on (I just need to get the hang of using it :biggrin: ).

Link to comment
Share on other sites

I'm glad you liked it @Kexby

@Kilay (I think) expressed an interest in interest in expanding the Mod tutorials

 

I completely agree with him

Feel free to grab any of us in Slack

Here's @Kilay's PM to me

 

hey peardox , are you planning to make other tutorials? cuz i have in mind to make something more detailed about items (with itemmods, status effect, various attacks etc) (edited)

The answer is yep but I'm really busy on other crap

 

This appears a good learning curve for both you + @housefly to educate both yourselves and others

 

Ideally I'd like you on a shared project with an experienced member - @kilay, @tt1, @spherikal, @Ethics Gradiant, @Xarastras for example (I'd do it if everyone else is busy - I'm busier)

If you can't find one of the core PM me and I'll do a #mod-dev with you guys / guyesses

If you can't find me email me @ simon@peardox.com

  • Like 1

OK Fair warning has been applied

 

I'm gonna move the domain to https://perspak.com early Feb but will keep all content

 

There are reasons behind this move which basically boil down to unifying my release schedule

 

My friends are welcome to play (I'll set you up your own areas if you desire them)

 

Please note that this process is messy so may take a few weeks 

Link to comment
Share on other sites

I'm glad you liked it @Kexby

 

@Kilay (I think) expressed an interest in interest in expanding the Mod tutorials

 

I completely agree with him

 

Feel free to grab any of us in Slack

 

Here's @Kilay's PM to me

 

hey peardox , are you planning to make other tutorials? cuz i have in mind to make something more detailed about items (with itemmods, status effect, various attacks etc) (edited)

 

The answer is yep but I'm really busy on other crap

 

This appears a good learning curve for both you + @housefly to educate both yourselves and others

 

Ideally I'd like you on a shared project with an experienced member - @kilay, @tt1, @spherikal, @Ethics Gradiant, @Xarastras for example (I'd do it if everyone else is busy - I'm busier)

 

If you can't find one of the core PM me and I'll do a #mod-dev with you guys / guyesses

 

If you can't find me email me @ simon@peardox.com

 

That would be fantastic! We definitely need more tutorials.

 

I really hope Kilay gets time to expand this tutorial, cause I'd love to take my mod even further and really make it unique :).

 

Once I have more experience and know what the heck I'm doing, then writing tutorials is something I really enjoy doing (I love to teach). And I like to share what I've learned with others (it actually helps me to learn if I write it all out).

 

I just need to figure out how to use Slack (it's a bit complicated :rolleyes: ).

Edited by Kexby
Link to comment
Share on other sites

Don't worry @Kexby

 

We'll teach you Slack as you go - our intend is to educate and aid each other - your wishes coincide with our own

 

@Kilay is one of my best to tutor you on item-mod, statuseffects and abilities (maybe witha little @tt1)

 

If you can then write a tutorial expanding on my Sticky (First Mod) no one will be happier than myself and the gang

 

I should note that @kilay in on a flowcharting project ATM

 

This is part of a documentation library we're building

 

Everyone needs a day off

Hit us on Slack and we'll hook you up with a decent tutor

 

Do this QUICKLY as both myself and @Kilay are considering expending my sticky

OK Fair warning has been applied

 

I'm gonna move the domain to https://perspak.com early Feb but will keep all content

 

There are reasons behind this move which basically boil down to unifying my release schedule

 

My friends are welcome to play (I'll set you up your own areas if you desire them)

 

Please note that this process is messy so may take a few weeks 

Link to comment
Share on other sites

I was recently asked about commenting mods by @tonpix and it's obvious that particularly in tutorials this is desirable
 
So here are our findings
 
If you wanna comment yur mod you HAVE to use decompressed JSON / XML - a gamedatabundle is compressed JSON which explains why this ain't reliable on that kind of file
 
If everything is on one line this WON'T work 100%
 
Most modders use 'prettified' JSON. This increases filesize a bit but makes for easy maintenance.
 
We've got some new more advanced tutorials planned by members of our team so I'm advising commenting for those
 
OK - here we go...
 
I'm using Convo Mod (final) as a testbed
 
Let's Start off with 09_cv_dawnstars_priestess.conversationbundle
 
This file is JSON so uses CStyle comments
 
Here's a modified code snippet
=============================================
{"Conversations": [
{
"ID": "b598ec6e-0c75-448d-9852-ea05530df607", 
/*
 
This is my Waenglith convo mod
 
Go read the forum post
 
*/
"Filename": "Conversations/09_Port_Maje/09_cv_Dawnstars_Priestess.conversation",
"ConversationScriptNode": { // This is another comment
"RequiresValidChildNode": false,
"NotSkippable": false,
"IsQuestionNode": false,
"HideSpeaker": false,
=============================================
 
You'll notice the /* .... */ section. This is a multi-line comment. Such sections are to explain what you're doing
 
You'll also notice a // bit. This is a single line comment (which is fine in fully formatted JSON etc but will break compressed JSON
 
The other Mod filetype is XML (DOMStyle) such as 09_cv_dawnstars_priestess.stringtable
 
Here I'm going to comment an added string...
 
 
=============================================
<!-- 
Add a question we can trigger later
-->
    <Entry>
      <ID>106</ID>
      <DefaultText>"Let me see what you have."</DefaultText>
      <FemaleText />
    </Entry>
=============================================
 
This is a different style of commenting explicit to DOM-based coding (HTML and XML being examples)
 
The <!-- .... --> is a comment in this case
 
We've tried many tests on commented code and every one passes our tests
 
These constructs allow us to explain in code what we're doing
 
I'm recommending our group comment their code whether a published mod or tutorial to help the newbie see what we're doing and why

=============================================

Edited by peardox
  • Like 2

OK Fair warning has been applied

 

I'm gonna move the domain to https://perspak.com early Feb but will keep all content

 

There are reasons behind this move which basically boil down to unifying my release schedule

 

My friends are welcome to play (I'll set you up your own areas if you desire them)

 

Please note that this process is messy so may take a few weeks 

Link to comment
Share on other sites

That will be a huge help Peardox. Let's see if I've got this right.

 

// This is a single line comment

 

/*

This is a multi line comment

that uses more than one line

*/

 

You said the // single line comments could break some code types. So would it be better to just use /*  */ for all comments, single and multi?

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...