-
Posts
72 -
Joined
-
Last visited
Content Type
Profiles
Forums
Blogs
Everything posted by Kexby
-
First Mod (spoilers)
Kexby replied to peardox's topic in Pillars of Eternity II: Deadfire: Modding (Spoiler Warning!)
Yep, I'm using Notepad++ and JSTool as well Anyway, I just copied the code into that JSON Validator and I got this message: 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 I've just redone it and this time the validator says it's valid. Phew! I'm off to test it again. -
First Mod (spoilers)
Kexby replied to peardox's topic in Pillars of Eternity II: Deadfire: Modding (Spoiler Warning!)
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. -
First Mod (spoilers)
Kexby replied to peardox's topic in Pillars of Eternity II: Deadfire: Modding (Spoiler Warning!)
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 -
First Mod (spoilers)
Kexby replied to peardox's topic in Pillars of Eternity II: Deadfire: Modding (Spoiler Warning!)
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. -
First Mod (spoilers)
Kexby replied to peardox's topic in Pillars of Eternity II: Deadfire: Modding (Spoiler Warning!)
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: 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 -
First Mod (spoilers)
Kexby replied to peardox's topic in Pillars of Eternity II: Deadfire: Modding (Spoiler Warning!)
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. -
First Mod (spoilers)
Kexby replied to peardox's topic in Pillars of Eternity II: Deadfire: Modding (Spoiler Warning!)
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 ). 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 ). To make things easier, I've cloned an existing Blunderbuss: https://pillarsofeternity.gamepedia.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. -
First Mod (spoilers)
Kexby replied to peardox's topic in Pillars of Eternity II: Deadfire: Modding (Spoiler Warning!)
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. -
First Mod (spoilers)
Kexby replied to peardox's topic in Pillars of Eternity II: Deadfire: Modding (Spoiler Warning!)
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? -
Hey folks, I've been experimenting with some mods and I've just deleted my failures. But now, when I try to load my save game I'm getting an error message saying the game can't load the map. I'm guessing this is because I've deleted the mods that the save was using. This isn't a problem, as that save game was just for testing, but I'd just like to be sure for the future: If you're using mods and you delete them, will this mess up any saved game that was using those mods? Cheers.
-
Excellent! I've just downloaded your mod (I'm going to study what you've done, maybe I can figure this out ). As for making a new ability from scratch, that might be a bit beyond me at this point (I'm just starting to learn about PoE modding). But I always do this, I think of a simple mod, manage to get it working, then I get over confident and go a bit crazy trying to improve it even more. I thought the changes I wanted to make would be fairly simple, increase the duration of summons (done!) and remove the resource cost. Looks like I over-estimated my abilities. But I'm not going to give up. I just wish somebody would write some more tutorials (hint hint ). But thanks again for trying to help. I really appreciate it. Now I'm off to study your mod.
-
I sure can: I named it AbilityCost.gamedatabundle and put it in it's own folder in the override directory (the game seems to recognize it). { "GameDataObjects": [{ "$type": "Game.GameData.GenericAbilityGameData, Assembly-CSharp", "DebugName": "If_Their_Bones_Sleep", "ID": "0b6fe527-9b0e-49ad-84a5-08f2e7d0e678", "Components": [{ "$type": "Game.GameData.GenericAbilityComponent, Assembly-CSharp", "KeywordsIDs": ["e57043d7-547f-452e-a678-0e2e48f886f2"], "DisplayName": 652, "Description": 795, "UpgradeDescriptions": [], "UpgradedFromID": "00000000-0000-0000-0000-000000000000", "Vocalization": "ChanterInvocation1", "Icon": "gui/icons/abilities/chanter/summon_skeletons.png", "UsageType": "PerEncounter", "UsageValue": 6, "AbilityClass": "None", "AbilityLevel": 1, "IsPassive": "false", "TriggerOnHit": "false", "IsModal": "false", "ModalGroupID": "00000000-0000-0000-0000-000000000000", "IsCombatOnly": "false", "IsNonCombatOnly": "false", "HideFromUI": "false", "HideFromCombatLog": "false", "UniqueSet": "None", "NoiseLevelID": "6bfdad12-a1d0-42cc-b797-c9d2dac2af05", "DurationOverride": 0, "ClearsOnMovement": "false", "CannotActivateWhileInStealth": "false", "CannotActivateWhileInvisible": "false", "ActivationPrerequisites": { "Conditional": { "Operator": 0, "Components": [] } }, "ApplicationPrerequisites": { "Conditional": { "Operator": 0, "Components": [] } }, "DeactivationPrerequisites": { "Conditional": { "Operator": 0, "Components": [] } }, "PowerLevelScaling": { "BaseLevel": 0, "LevelIncrement": 1, "MaxLevel": 0, "DamageAdjustment": 1, "DurationAdjustment": 1, "BounceCountAdjustment": 0, "ProjectileCountAdjustment": 0, "AccuracyAdjustment": 0, "PenetrationAdjustment": 0 }, "StatusEffectKeywordsIDs": [], "StatusEffectsIDs": [], "VisualEffects": [], "SelfMaterialReplacementID": "00000000-0000-0000-0000-000000000000", "AttackID": "49623249-099d-4596-bf55-afe19a67b6b4", "AITargetingConditional": { "Conditional": { "Operator": 0, "Components": [] }, "Scripts": [] }, "AudioEventListID": "14b543b2-1a82-4bf7-a6a2-97aa8c90b2b5" }, { "$type": "Game.GameData.ProgressionUnlockableComponent, Assembly-CSharp" } ] }, { "$type": "Game.GameData.GenericAbilityGameData, Assembly-CSharp", "DebugName": "If_Their_Bones_Sleep_Beckoner", "ID": "1e492430-d38f-4291-9a28-2b33831b8a8b", "Components": [{ "$type": "Game.GameData.GenericAbilityComponent, Assembly-CSharp", "KeywordsIDs": ["c6c7bce3-e562-46f6-bb36-4867a4d2f2be", "e57043d7-547f-452e-a678-0e2e48f886f2"], "DisplayName": 652, "Description": 795, "UpgradeDescriptions": [{ "String": 4371 } ], "UpgradedFromID": "00000000-0000-0000-0000-000000000000", "Vocalization": "ChanterInvocation1", "Icon": "gui/icons/abilities/chanter/summon_skeletons.png", "UsageType": "Spell", "UsageValue": 3, "AbilityClass": "Chanter", "AbilityLevel": 1, "IsPassive": "false", "TriggerOnHit": "false", "IsModal": "false", "ModalGroupID": "00000000-0000-0000-0000-000000000000", "IsCombatOnly": "false", "IsNonCombatOnly": "false", "HideFromUI": "false", "HideFromCombatLog": "false", "UniqueSet": "None", "NoiseLevelID": "6bfdad12-a1d0-42cc-b797-c9d2dac2af05", "DurationOverride": 0, "ClearsOnMovement": "false", "CannotActivateWhileInStealth": "false", "CannotActivateWhileInvisible": "false", "ActivationPrerequisites": { "Conditional": { "Operator": 0, "Components": [] } }, "ApplicationPrerequisites": { "Conditional": { "Operator": 0, "Components": [] } }, "DeactivationPrerequisites": { "Conditional": { "Operator": 0, "Components": [] } }, "PowerLevelScaling": { "BaseLevel": 0, "LevelIncrement": 1, "MaxLevel": 0, "DamageAdjustment": 1, "DurationAdjustment": 1, "BounceCountAdjustment": 0, "ProjectileCountAdjustment": 0, "AccuracyAdjustment": 0, "PenetrationAdjustment": 0 }, "StatusEffectKeywordsIDs": [], "StatusEffectsIDs": [], "VisualEffects": [], "SelfMaterialReplacementID": "00000000-0000-0000-0000-000000000000", "AttackID": "efc96b35-0d77-4c96-b119-de9c207697c9", "AITargetingConditional": { "Conditional": { "Operator": 0, "Components": [] }, "Scripts": [] }, "AudioEventListID": "14b543b2-1a82-4bf7-a6a2-97aa8c90b2b5" }, { "$type": "Game.GameData.ProgressionUnlockableComponent, Assembly-CSharp" } ] }, ] } Thanks so much for taking a look at this for me (I have no idea what I'm doing ).
-
Hey Kilay, Thanks for trying to help. I changed everything just as you said, but still no luck Neither of these two worked for me: "UsageType": "None" "UsageType": "PerEncounter" I'm really stumped. The icon for the ability is on my bar and I can cast it on the ground (my character goes through the motions and a message tells me I've successfully cast it) but nothing is summoned. I'm not sure what to try next, this modding business is much harder than I thought it would be .
-
Thanks for those links house2fly. They should be a big help. I guess all I can really do is make the changes and see what they do in game (and pray I don't break my game ). Update: I've just tried it. I changed the entry to: "UsageType": "None", But I'm afraid it didn't work. Bummer . The icon completely disappeared from my bar. Update 2: Ok, I tried changing the usage type to: "UsageType": "Spell", Just to see what would happen. Well, at least the icon was present this time and I could actually 'cast' the ability. But nothing happened. No summons appeared. Clearly, I'm missing a step.
-
Aha! I will try that. Thank you very much house2fly. When I was looking through statuseffects.gamedatabundle, I noticed these entries: "DurationType": "Infinite", "Duration": 0, So I'm just wondering if simply changing "Duration": 30, to "Duration": Infinite, would be enough to make this work. Or should I actually define a Duration Type (like in the above example)? And then set its Duration to 0? One more question (sorry to be a pest). I'm now trying to remove the resource cost (Phrases) from the summon abilities, so that they can be freely cast at any time. In the first code example I posted for the summon skeleton ability (in abilities.gamedatabundle). There is an entry that says: "UsageType": "ClassAccruedResource", If I change that to something like: "UsageType": "none", Will it remove the resource cost from the ability, so that it now costs nothing to use it? Thanks muchly
-
Hey there, I'm working on my first mod. I want to increase the duration of summons. I just need to know if I'm on the right track. I've looked through abilities.gamedatabundle and found this entry (for summoning a phantom): { "$type": "Game.GameData.GenericAbilityGameData, Assembly-CSharp", "DebugName": "But_Reny_Darets_Ghost_Beckoner", "ID": "b1a11c5c-3412-486c-8b39-4e0a50d23086", "Components": [{ "$type": "Game.GameData.GenericAbilityComponent, Assembly-CSharp", "KeywordsIDs": ["c6c7bce3-e562-46f6-bb36-4867a4d2f2be", "e57043d7-547f-452e-a678-0e2e48f886f2"], "DisplayName": 649, "Description": 789, "UpgradeDescriptions": [{ "String": 4371 } ], "UpgradedFromID": "00000000-0000-0000-0000-000000000000", "Vocalization": "ChanterInvocation1", "Icon": "gui/icons/abilities/chanter/summon_phantom.png", "UsageType": "ClassAccruedResource", "UsageValue": 3, "AbilityClass": "Chanter", "AbilityLevel": 1, "IsPassive": "false", "TriggerOnHit": "false", "IsModal": "false", "ModalGroupID": "00000000-0000-0000-0000-000000000000", "IsCombatOnly": "false", "IsNonCombatOnly": "false", "HideFromUI": "false", "HideFromCombatLog": "false", "UniqueSet": "None", "NoiseLevelID": "6bfdad12-a1d0-42cc-b797-c9d2dac2af05", "DurationOverride": 0, "ClearsOnMovement": "false", "CannotActivateWhileInStealth": "false", "CannotActivateWhileInvisible": "false", "ActivationPrerequisites": { "Conditional": { "Operator": 0, "Components": [] } }, "ApplicationPrerequisites": { "Conditional": { "Operator": 0, "Components": [] } }, "DeactivationPrerequisites": { "Conditional": { "Operator": 0, "Components": [] } }, "PowerLevelScaling": { "BaseLevel": 0, "LevelIncrement": 1, "MaxLevel": 0, "DamageAdjustment": 1, "DurationAdjustment": 1, "BounceCountAdjustment": 0, "ProjectileCountAdjustment": 0, "AccuracyAdjustment": 0, "PenetrationAdjustment": 0 }, "StatusEffectKeywordsIDs": [], "StatusEffectsIDs": [], "VisualEffects": [], "SelfMaterialReplacementID": "00000000-0000-0000-0000-000000000000", "AttackID": "33deb1d9-b37b-423f-8412-ba0c477d266b", "AITargetingConditional": { "Conditional": { "Operator": 0, "Components": [] }, "Scripts": [] }, "AudioEventListID": "10c5979b-3fb2-43ae-84e9-d7201204117c" }, { "$type": "Game.GameData.ProgressionUnlockableComponent, Assembly-CSharp" } ] }, { "$type": "Game.GameData.GenericAbilityGameData, Assembly-CSharp", "DebugName": "If_Their_Bones_Sleep", "ID": "0b6fe527-9b0e-49ad-84a5-08f2e7d0e678", "Components": [{ "$type": "Game.GameData.GenericAbilityComponent, Assembly-CSharp", "KeywordsIDs": ["c6c7bce3-e562-46f6-bb36-4867a4d2f2be", "e57043d7-547f-452e-a678-0e2e48f886f2"], "DisplayName": 652, "Description": 795, "UpgradeDescriptions": [], "UpgradedFromID": "00000000-0000-0000-0000-000000000000", "Vocalization": "ChanterInvocation1", "Icon": "gui/icons/abilities/chanter/summon_skeletons.png", "UsageType": "ClassAccruedResource", "UsageValue": 3, "AbilityClass": "Chanter", "AbilityLevel": 1, "IsPassive": "false", "TriggerOnHit": "false", "IsModal": "false", "ModalGroupID": "00000000-0000-0000-0000-000000000000", "IsCombatOnly": "false", "IsNonCombatOnly": "false", "HideFromUI": "false", "HideFromCombatLog": "false", "UniqueSet": "None", "NoiseLevelID": "6bfdad12-a1d0-42cc-b797-c9d2dac2af05", "DurationOverride": 0, "ClearsOnMovement": "false", "CannotActivateWhileInStealth": "false", "CannotActivateWhileInvisible": "false", "ActivationPrerequisites": { "Conditional": { "Operator": 0, "Components": [] } }, "ApplicationPrerequisites": { "Conditional": { "Operator": 0, "Components": [] } }, "DeactivationPrerequisites": { "Conditional": { "Operator": 0, "Components": [] } }, "PowerLevelScaling": { "BaseLevel": 0, "LevelIncrement": 1, "MaxLevel": 0, "DamageAdjustment": 1, "DurationAdjustment": 1, "BounceCountAdjustment": 0, "ProjectileCountAdjustment": 0, "AccuracyAdjustment": 0, "PenetrationAdjustment": 0 }, "StatusEffectKeywordsIDs": [], "StatusEffectsIDs": [], "VisualEffects": [], "SelfMaterialReplacementID": "00000000-0000-0000-0000-000000000000", "AttackID": "49623249-099d-4596-bf55-afe19a67b6b4", "AITargetingConditional": { "Conditional": { "Operator": 0, "Components": [] }, "Scripts": [] }, "AudioEventListID": "14b543b2-1a82-4bf7-a6a2-97aa8c90b2b5" }, { "$type": "Game.GameData.ProgressionUnlockableComponent, Assembly-CSharp" } ] }, There is an entry that says "DurationOverride": 0, I'm wondering if I change that 0 to something like 6, if it will increase the duration of my summons. Or am I completely off track? If so, then there is another entry (under PowerLevelScaling) that says "DurationAdjustment": 1, Would changing that number have the desired effect? Thanks for any and all advice (I'm very new to this).
-
I've just done this. You need to make 4 images, all in .png format. I found the easiest way to do this was to open 4 existing portraits in Photoshop, then copy and paste (and resize) my custom portrait over the existing ones. Then all I had to do was re-save the files with new names. For example, I made a new portrait for a female Orlan. So I named the files like this: female_orlan_g_convo.png female_orlan_g_lg.png female_orlan_g_si.png female_orlan_g_sm.png It works a treat