0 of 0

File information

Last updated

Original upload

Created by

SiliconMage

Uploaded by

SiliconMage

Virus scan

Safe to use

Tags for this mod

85 comments

  1. SiliconMage
    SiliconMage
    • premium
    • 2 kudos
    Locked
    Sticky
    Hey all,

    I updated the mod to add support for version 5.0 of Pillars of Eternity II.  Sorry it took so long.  Thanks!
  2. ronyalan
    ronyalan
    • member
    • 8 kudos
    a must have mod

    10/10 
  3. solo16
    solo16
    • premium
    • 1 kudos
    Hi all,

    Could someone teach me how to add Heart Seeker into the mod? 

    Thanks!
    1. JonyTequila
      JonyTequila
      • supporter
      • 2 kudos
      i need to know to add more cohesive cipher spells to it too
  4. digidust
    digidust
    • member
    • 0 kudos
    Hi. Can this be installed on a Mac? Nothing I try is working.
  5. Boneapart
    Boneapart
    • member
    • 0 kudos
    For me this is a must in RTwP, though I disable it in Turn Based. Great to have the option.
  6. vyoria
    vyoria
    • member
    • 0 kudos
    it didn't work for me, said Version Error, can someone help?
  7. Exfinite
    Exfinite
    • supporter
    • 5 kudos
    Not sure if people are interested in this, but the same basic concept of the mod seems to work.  They may have just updated the structure of the files since the mod author posted this.  To make AoE spells harm only enemies, you can do the following (limited testing on my part, seems to work for me):

    Set up a new mod in your override directory:
    .\Pillars of Eternity II\PillarsOfEternityII_Data\override\NoFriendlyFire\

    Within that directory, make two more subdirectories:
    .\Pillars of Eternity II\PillarsOfEternityII_Data\override\NoFriendlyFire\design\gamedata\

    Create a text file within that gamedata directory, called "nofriendlyfire.gamedatabundle"

    For this example, we will make the Fireball Wizard spell hostile-only.  Take the original spell from:
    \Pillars of Eternity II\PillarsOfEternityII_Data\exported\design\gamedata\attacks.gamedatabundle

    I use Notepad++ with the JSTool plugin to format this file (press ctrl+alt+m)

    Search for Fireball...you should see
             "DebugName": "Fireball_Aoe",
    around line 35809 (after formatting).  Copy the entire "$type" structure:

    {
                "$type": "Game.GameData.AttackAOEGameData, Assembly-CSharp",
                "DebugName": "Fireball_Aoe",
                "ID": "5bc9f76b-2113-409f-81c0-5096e66974be",
                "Components": [{
                        "$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp",
                        "KeywordsIDs": ["f0dbb330-1b06-4175-8ce4-efe790b99213", "3f075d80-787a-493e-bbaa-6da3d6dc2d0f"],
                        "AttackDistance": 8,
                        "MinAttackDistance": 0,
                        "AttackVariationID": "4365c4d1-44ce-4b2a-bf11-d895a006b12b",
                        "UseParentEquippableHand": "false",
                        "CastSpeedID": "eacb53e3-6eb5-422a-92ca-99cc883ae4a9",
                        "RecoveryTimeID": "9d15e1c1-c6e1-4b25-bc1d-bf3707f6f534",
                        "OverrideTacticalActionType": "None",
                        "ImpactDelay": 0,
                        "ForcedTarget": "None",
                        "AffectedTargetType": "All",
                        "AffectedTargetConditional": {
                            "Conditional": {
                                "Operator": 0,
                                "Components": []
                            }
                        },
                        "AffectedTargetDeathState": "Alive",
                        "HostilityOverride": "Default",
                        "PushDistance": 0,
                        "FaceTarget": "true",
                        "AccuracyBonus": 0,
                        "PenetrationRating": 7,
                        "DamageData": {
                            "DamageType": "Burn",
                            "AlternateDamageType": "None",
                            "Minimum": 37,
                            "Maximum": 48,
                            "TacticalMinimumOverride": 0,
                            "TacticalMaximumOverride": 0,
                            "DamageProcs": []
                        },
                        "RequiresHitObject": "false",
                        "StatusEffectKeywordsIDs": [],
                        "StatusEffectsIDs": [],
                        "RandomizeStatusEffect": "false",
                        "CanGraze": "true",
                        "CanCrit": "true",
                        "DefendedBy": "Reflex",
                        "AfflictionsDefendedBy": "None",
                        "AfflictionApplicationModifier": "None",
                        "SubstituteHitVisualEffect": "",
                        "VisualEffects": [{
                                "VisualEffect": "prefabs/effects/abilities/cast/fx_cast_wizard_evocation.prefab",
                                "AttachPoint": "LeftWeapon",
                                "AttachObject": "Caster",
                                "AttachMode": "Attach",
                                "MeshType": "None",
                                "Event": "OnAnimEvent",
                                "AnimEventID": 0,
                                "Loop": "true",
                                "Scale": "false"
                            }, {
                                "VisualEffect": "prefabs/effects/abilities/wizzard/fx_fireball_start.prefab",
                                "AttachPoint": "RightWeapon",
                                "AttachObject": "Caster",
                                "AttachMode": "Attach",
                                "MeshType": "None",
                                "Event": "OnAnimEvent",
                                "AnimEventID": 1,
                                "Loop": "true",
                                "Scale": "false"
                            }, {
                                "VisualEffect": "prefabs/effects/abilities/cast/fx_grimoire_close_evocation.prefab",
                                "AttachPoint": "LeftWeapon",
                                "AttachObject": "Caster",
                                "AttachMode": "Attach",
                                "MeshType": "None",
                                "Event": "OnAnimEvent",
                                "AnimEventID": 3,
                                "Loop": "false",
                                "Scale": "false"
                            }, {
                                "VisualEffect": "prefabs/effects/abilities/wizzard/fx_fireball_launch.prefab",
                                "AttachPoint": "RightWeapon",
                                "AttachObject": "Caster",
                                "AttachMode": "PositionRotation",
                                "MeshType": "None",
                                "Event": "OnLaunch",
                                "AnimEventID": 0,
                                "Loop": "false",
                                "Scale": "false"
                            }, {
                                "VisualEffect": "prefabs/effects/abilities/wizzard/fx_fireball_aoe.prefab",
                                "AttachPoint": "Ground",
                                "AttachObject": "Target",
                                "AttachMode": "Attach",
                                "MeshType": "None",
                                "Event": "OnImpact",
                                "AnimEventID": 0,
                                "Loop": "false",
                                "Scale": "true"
                            }
                        ],
                        "AttackOnImpactID": "00000000-0000-0000-0000-000000000000",
                        "ExtraAttackID": "00000000-0000-0000-0000-000000000000",
                        "LaunchBone": "RightWeapon",
                        "HitBone": "Ground",
                        "OnHitShakeDuration": "None",
                        "OnHitShakeStrength": "None",
                        "NoiseLevelID": "82bc1ce9-3a81-41ca-a61a-cc1f73a53de7",
                        "AllReactNoise": "false",
                        "InterruptsOn": "Crit",
                        "InterruptType": "Normal",
                        "TargetAngle": 0,
                        "ApplyOnceOnly": "false",
                        "PathsToTarget": "true",
                        "HideFromCombatLog": "false",
                        "AdditionalAttackOnTooltip": "false",
                        "DoesNotApplyDamage": "false",
                        "TreatAsWeapon": "false",
                        "BounceData": {
                            "Bounces": 0,
                            "Multiplier": 0.5,
                            "Range": 10,
                            "InRangeOrder": "false",
                            "NoRepeatTargets": "false",
                            "AlwaysBounceAtEnemies": "false",
                            "Delay": 0,
                            "NeverBounce": "false"
                        },
                        "AttackValidityConditional": {
                            "Conditional": {
                                "Operator": 0,
                                "Components": []
                            }
                        }
                    }, {
                        "$type": "Game.GameData.AttackAOEComponent, Assembly-CSharp",
                        "BlastSize": "Medium",
                        "BlastRadiusOverride": 2.5,
                        "DamageAngle": 360,
                        "ExcludePrimaryTarget": "false",
                        "IgnoreParentTarget": "false",
                        "ExcludeSelf": "false",
                        "BlastPhysicsForce": 500,
                        "PushFromCaster": "false"
                    }, {
                        "$type": "Game.GameData.AttackRangedComponent, Assembly-CSharp",
                        "LaunchAttackOnCollision": "false",
                        "ProjectileCount": 1,
                        "IgnoreMagicDefense": "false",
                        "ProjectileConeAngle": 145,
                        "ProjectilePrefab": "prefabs/projectiles/wizard/fx_fireball_projectile.prefab",
                        "IsMultiHit": "false",
                        "MultiHitTravelDist": 10,
                        "MultiHitMaxHits": 0,
                        "LaunchSource": "Caster",
                        "LaunchOffset": {
                            "x": 0,
                            "y": 0,
                            "z": 0
                        },
                        "LaunchOffsetRandom": {
                            "x": 0,
                            "y": 0,
                            "z": 0
                        }
                    }
                ]
            }

    Now, go into the new gamedatabundle file that you created (nofriendlyfire.gamedatabundle) and put in the initial necessary structure:

    {
        "GameDataObjects": [

        ]
    }


    Then paste the Fireball_Aoe stuff into that GameDataObjects and remove all of the stuff that we don't want to modify.  Anything with "$type" or "ID" needs to stay, along with anything you want to modify.  Change "AffectedTargetType" from "All" to "Hostile"  For example, I have:

    {
        "GameDataObjects": [{
                "$type": "Game.GameData.AttackAOEGameData, Assembly-CSharp",
                "DebugName": "Fireball_Aoe",
                "ID": "5bc9f76b-2113-409f-81c0-5096e66974be",
                "Components": [{
                        "$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp",
                        "AffectedTargetType": "Hostile"
                    }, {
                        "$type": "Game.GameData.AttackAOEComponent, Assembly-CSharp"
                    }, {
                        "$type": "Game.GameData.AttackRangedComponent, Assembly-CSharp"
                    }
                ]
            }
        ]
    }

    Save this file, start the game, make sure the mod is selected.  The Wizard's spell Fireball should now state that it is Foe AoE instead of AoE.  Might also include a basic manifest.json if you want.  Add in more spells as you see fit, some spells have different components, so be wary...naming convention is pretty straight forward (can usually just take spell name and replace spaces with underscores to find what you need). 

    Here, we are actually changing the attack effects (thus, attacks.gamedatabundle) which are referenced by abilities.gamedatabundle.  If you want to make sure that you are changing the right attack data, you can verify by making double-checking what is being referenced in abilities.gamedatabundle.  For example,
    "Fireball" in abilities.gamedatabundle references "AttackID": "5bc9f76b-2113-409f-81c0-5096e66974be",   Search for 5bc9f76b-2113-409f-81c0-5096e66974be in attacks.gamedatabundle to find the thing we modified above. 

    Somewhat time consuming until you get the hang of it...so I don't want to do it for everything, but feel free to do this if you want to modify a few spells on your own.  That said, if you've read up to here, you may as well take the extra minute or two to get it done :)   Note that you can do things like modify the area, etc, here, if you wanted. 

    Also, if you want to change more than 1 ability, you need to separate the abilities with a comma.  For example (DO NOT USE THIS, IT JUST REPEATS FIREBALL FOR THE EXAMPLE):

    {
        "GameDataObjects": [{
                "$type": "Game.GameData.AttackAOEGameData, Assembly-CSharp",
                "DebugName": "Fireball_Aoe",
                "ID": "5bc9f76b-2113-409f-81c0-5096e66974be",
                "Components": [{
                        "$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp",
                        "AffectedTargetType": "Hostile"
                    }, {
                        "$type": "Game.GameData.AttackAOEComponent, Assembly-CSharp"
                    }, {
                        "$type": "Game.GameData.AttackRangedComponent, Assembly-CSharp"
                    }
                ]
            }, {
                "$type": "Game.GameData.AttackAOEGameData, Assembly-CSharp",
                "DebugName": "Fireball_Aoe",
                "ID": "5bc9f76b-2113-409f-81c0-5096e66974be",
                "Components": [{
                        "$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp",
                        "AffectedTargetType": "Hostile"
                    }, {
                        "$type": "Game.GameData.AttackAOEComponent, Assembly-CSharp"
                    }, {
                        "$type": "Game.GameData.AttackRangedComponent, Assembly-CSharp"
                    }
                ]
            }
        ]
    }

    So yea...that's about it.  The spells I checked in the mod-author's version actually look very similar to what I show here, but it doesn't include the additional stuff in components...not sure if that's new, but doing it this way works for me.  It could be that some of the IDs changed from his version, or something else along those lines...I just don't feel like going through all of them to verify.

    Enjoy!

    -Exfinite
    1. Pepsik
      Pepsik
      • supporter
      • 1 kudos
      Alternatively one can replace "AffectedTargetType": "All" for "AffectedTargetType": "Hostile" straight in the attacks.gamedatabundle in one fell swoop. (I know, "swooping is bad") It will also affect some enemy aoe, but that shouldn't be an issue. (Unless some all atacks should remain as all, but I really can't find an instance for this) Also one should backup the file before making the change. But it is considerably quicker, but perhaps not so safe... (quick test with fan of flames worked, but can't predict, if I will find some problem along the way)
    2. svartalfimposter
      svartalfimposter
      • premium
      • 175 kudos
      Umm.. what's wrong with it?
  8. Phantus13
    Phantus13
    • member
    • 0 kudos
    Too bad this doesn't work. Would love to use it or at least a version of it.
    1. randalllrrmiller
      randalllrrmiller
      • premium
      • 1 kudos
      Ditto
  9. Karmana
    Karmana
    • member
    • 0 kudos
    I installed it; seemed to work on first play after installation, but then after that, acts like it's not enabled. No effect on friendly fire at all. Figured that might help you troubleshoot.

    Related, are you still supporting the mod? Few of us that would love to know! If not, could you post an approval of some sort, for another modder to pick up your work?

    ~Karmana the Aberrant
    1. xeddmc
      xeddmc
      • member
      • 0 kudos
      Agreed. If the source code were available to us, we could work on it.
  10. Meglet42
    Meglet42
    • member
    • 0 kudos
    Having some issues here

    The Mod worked fine until this weekend, specifically last Friday 11/1.

    It now shows it as being 'incompatible' but does not say with which Mod it is incompatible.

    I removed and reinstalled several times, sorted the load order as well with no change.

    Tried using the 1.8 version as well, no change.

    I am currently using the 'Level 33 Cap Purist Version' and 'No Such Thing as Cheating' mod as well.

    Any input you have would be great, as I keep getting yelled at by my party to stop hitting them with spells. ;)

    thanks in advance
  11. AngelicZR
    AngelicZR
    • member
    • 0 kudos
    V5.0 Compatibility??