Baldur's Gate 3

Baldur's Gate 3

View Stats:
Traveler Jul 6, 2023 @ 4:53pm
Anyone hoping for an AI controlled companions mod?
Divinity Original Sin 2 had one, so I'm hoping BG3 gets one as well relatively soon. I know some people prefer controlling their entire party, but for me it makes companions feel... less like companions and more like the player roleplaying as multiple characters. I also enjoy the randomness sometimes. In one battle the AI might make an action that puts you in a really good position, or they might do something kinda stupid and now you're on the ropes.
Last edited by Traveler; Jul 6, 2023 @ 4:57pm
< >
Showing 1-15 of 23 comments
Rusted Metal Jul 6, 2023 @ 5:20pm 
Fully agree, the companions don't feel like companions they feel like just other characters i control

I have been using a modified version of Crown Of Madness, it's a bit janky but works pretty well, they avoid damaging me with AOE's and act on their own and it's very fun, hopefully someone will make a better version then mine.
Rummil Jul 8, 2023 @ 11:40am 
In the older Baldur's Gate it essentially had a AI dialog, but your outcome change what they did in game or what happened to you.

I think that having the AI in the game, where I can say Minsc smash that hamsters head in. He would turn around and would tell me he won't and x y z and etc. Or issue other commands and actions for the people to do. But it doesn't use MIC in the game i don't think so not sure how it would work in this game.

It would add so much more depth and dialog to the game., if they did this
Dremall Jul 8, 2023 @ 11:48am 
The problem with A.I. in video games is that it tends to lead to a reload.
Xav Jul 8, 2023 @ 12:35pm 
Originally posted by Rusted Metal:
Fully agree, the companions don't feel like companions they feel like just other characters i control

I have been using a modified version of Crown Of Madness, it's a bit janky but works pretty well, they avoid damaging me with AOE's and act on their own and it's very fun, hopefully someone will make a better version then mine.

Did you edit the effect directly? How so? In my testing I used dominate and charm to verify that party ai would work but it's way too impractical to use in a playthrough. I planned to try and implement a party ai mod of some sort (if nobody else does) but I'd only be able to do it if Larian releases the toolset for it, but it could end up being 1-2 years after launch before they release a toolset (IF they even release it at all).
yeah sometimes i'd definitely prefer to just let my companions use their abilities on their own without me having to direct every single persons turn. it makes combat take so long when i have to control 4 characters.

should definitely have AI controlled team mates and then you can enter tactical mode to take direct control of them for when it matters. The only reason I think they didnt do this is because spell slots and other resources are very limited, so the AI would probably just blow all its spell slots every combat, and the power of a team is being able to coordinate multiple spells into a specific outcome but with AI team mates they definitely wouldnt coordinate with you (which is when you'd want to take control if you had a specific strategy in mind)
Oz270 Jul 8, 2023 @ 10:46pm 
Would love to see a mod like that, makes the companion feel more like their own character rather than just characters.

Though the downside would be staring at the screen till it's your turn and that'll get old after the 50th battle.
Rusted Metal Jul 8, 2023 @ 11:08pm 
Originally posted by Xav:
Did you edit the effect directly? How so? In my testing I used dominate and charm to verify that party ai would work but it's way too impractical to use in a playthrough. I planned to try and implement a party ai mod of some sort (if nobody else does) but I'd only be able to do it if Larian releases the toolset for it, but it could end up being 1-2 years after launch before they release a toolset (IF they even release it at all).

I edited the target conditions of the actual spell i also made it an AOE spell so that i don't have to do it for every companion

// Original Code data "TargetConditions" "not Ally() and not Dead() and Tagged('HUMANOID')" // Edited Code data "TargetConditions" "Ally() and Tagged('HUMANOID')"

And edited the status

//Original Code data "Boosts" "CannotHarmCauseEntity();ActionResourceBlock(ReactionActionPoint);AiArchetypeOverride(madness,99)" //Edited Code data "Boosts" "CannotHarmCauseEntity();CannotHarmAlliedEntity();CannotHarmFriendlyEntity();AiArchetypeOverride(madness,99)"


That status edit is super scuffed because there is no mention of the terms:
CannotHarmAlliedEntity()
CannotHarmFriendlyEntity()

i just made those up based on the one that is actually used but they seem to work because they won't attack each other so i guess one of them is an ACTUAL defined term lol

the weird thing is that they sometimes do attack each other and if you remove either of those they start attacking each other constantly... it's so scuffed it's unbelievable, but works 98% of the time and i am pretty happy with that.

also i also tried to edit the AIOveride you see there but it just results in a frozen unmoving not attacking party member until the status is removed.
Last edited by Rusted Metal; Jul 8, 2023 @ 11:14pm
Nox Phantom Aug 6, 2023 @ 4:57pm 
Originally posted by Rusted Metal:
Originally posted by Xav:
Did you edit the effect directly? How so? In my testing I used dominate and charm to verify that party ai would work but it's way too impractical to use in a playthrough. I planned to try and implement a party ai mod of some sort (if nobody else does) but I'd only be able to do it if Larian releases the toolset for it, but it could end up being 1-2 years after launch before they release a toolset (IF they even release it at all).

I edited the target conditions of the actual spell i also made it an AOE spell so that i don't have to do it for every companion

// Original Code data "TargetConditions" "not Ally() and not Dead() and Tagged('HUMANOID')" // Edited Code data "TargetConditions" "Ally() and Tagged('HUMANOID')"

And edited the status

//Original Code data "Boosts" "CannotHarmCauseEntity();ActionResourceBlock(ReactionActionPoint);AiArchetypeOverride(madness,99)" //Edited Code data "Boosts" "CannotHarmCauseEntity();CannotHarmAlliedEntity();CannotHarmFriendlyEntity();AiArchetypeOverride(madness,99)"


That status edit is super scuffed because there is no mention of the terms:
CannotHarmAlliedEntity()
CannotHarmFriendlyEntity()

i just made those up based on the one that is actually used but they seem to work because they won't attack each other so i guess one of them is an ACTUAL defined term lol

the weird thing is that they sometimes do attack each other and if you remove either of those they start attacking each other constantly... it's so scuffed it's unbelievable, but works 98% of the time and i am pretty happy with that.

also i also tried to edit the AIOveride you see there but it just results in a frozen unmoving not attacking party member until the status is removed.

Know its been a while since this thread and i apologize for reviving it and for a request im about to make; could you please share this mod whit the rest of us, preferebly trough nexus. My thanks for reading and possibly considering my request.
dbix11 Aug 6, 2023 @ 6:50pm 
I know it ruins the experience for me. My fantasy is to be healing and supporting my group from the back line.
Xav Aug 7, 2023 @ 8:48am 
The solution above seems like it would require you to waste an action at the start of every fight.

I'll require better tools before I try to make anything, hopefully Larian releases a toolset soon, though it's possible that since this is a licensed property, contractual obligations might affect it's release. Hopefully not.
d0mek1618 Aug 7, 2023 @ 10:13am 
I sincerely hope they will make a mod which lets you decide if you wish to control your companions or the AI does. Even the old games had AI companions (Fallout 1,2, Arcanum).
Nox Phantom Aug 8, 2023 @ 3:05pm 
Ladies and gentleman i was able to turn friends cantrip into well "let ai controlthese characters" cantrip what i did was change lines on its status_BOOST.txt into:

new entry "FRIENDS"
type "StatusData"
data "StatusType" "BOOST"
data "DisplayName" "hf01f3bfdg8763g4dfagb043g9864f584101e;1"
data "Description" "hf61260e8g3c54g48b7g9ce8gbf362d66d134;2"
data "Icon" "Spell_Enchantment_Friends"
data "StackId" "FRIENDS"
data "StatusPropertyFlags" LoseControl;OverheadOnTurn;LoseControlFriendly"
data "ManagedStatusEffectType" "Negative"
data "ManagedStatusEffectGroup" "6435c10a-c67d-4f79-8813-b84b0762f92b"

and spell_target into:
new entry "Target_Friends"
type "SpellData"
data "SpellType" "Target"
data "Level" "0"
data "SpellSchool" "Enchantment"
data "SpellProperties" "ApplyStatus(FRIENDS,100,-1)"
data "TargetRadius" "9"
data "TargetConditions" "Character() and not Enemy()"
data "Icon" "Spell_Enchantment_Friends"
data "DisplayName" "h8f8a19a6gb008g490dgb644gb10fe05748fc;1"
data "Description" "h21bab19cg2de1g46f5g9805g7fb58680f3ff;2"
data "ExtraDescription" "h7eac983dg27b7g46d4g8821ga217d9f33411;4"
data "TooltipStatusApply" "ApplyStatus(FRIENDS,100,10)"
data "TooltipPermanentWarnings" "676ef361-c11d-4e5a-bcae-3b0332cbebf5"
data "PrepareSound" "Spell_Prepare_Control_Gen_L1to3_01"
data "PrepareLoopSound" "Spell_Prepare_Control_Gen_L1to3_01_Loop"
data "CastSound" "Spell_Cast_Control_Friends_L0"
data "TargetSound" "Spell_Impact_Control_Friends_L0"
data "CastTextEvent" "Cast"
data "UseCosts" "ActionPoint:1"
data "SpellAnimation" "554a18f7-952e-494a-b301-7702a85d4bc9,,;,,;af94aac1-d8eb-4ccb-9520-694ade11b61c,,;f5db4001-b136-4c48-9aa4-026c4a7dd3b7,,;22dfbbf4-f417-4c84-b39e-2039315961e6,,;,,;5bfbe9f9-4fc3-4f26-b112-43d404db6a89,,;,,;,,"
data "VerbalIntent" "Control"
data "SpellFlags" "IsSpell;HasSomaticComponent"
data "PrepareEffect" "2fa6b127-6f8a-4150-8be6-6f62b7a85911"
data "CastEffect" "d2ef6b50-243f-478d-85c6-892086a1477e"
data "TargetEffect" "e1b340b6-78a9-413a-bb7e-8299848238ae"
data "AmountOfTargets" "3"

both files can be found in public/shared/stats/generated/data after using lslib toolkit to unpack Shared.pak file in bg3 data

it works only problem is that you cant change companions equipment, effect end on long rest and cant control them out of combat but am working on that not sure if possible but will make updated post if find out how

now i got it to work as a toggle by writing it like
new entry "FRIENDS"
type "StatusData"
data "StatusType" "BOOST"
data "DisplayName" "hf01f3bfdg8763g4dfagb043g9864f584101e;1"
data "Description" "hf61260e8g3c54g48b7g9ce8gbf362d66d134;2"
data "Icon" "Spell_Enchantment_Friends"
data "StackId" "FRIENDS"
data "StatusPropertyFlags" "LoseControl;OverheadOnTurn;LoseControlFriendly_TOGGLE"
data "Toggle" "Yes"
data "TickType" "StartTurn"
data "TickFunctors" "IF(Combat())"
data "ManagedStatusEffectType" "Negative"
data "ManagedStatusEffectGroup" "6435c10a-c67d-4f79-8813-b84b0762f92b"
Last edited by Nox Phantom; Aug 8, 2023 @ 5:00pm
dbix11 Aug 8, 2023 @ 7:28pm 
In response to the poster above me

Woah
Khaos Aug 8, 2023 @ 7:34pm 
Wait...there was a mod to have the AI control the other characters in DoS2?
Xav Aug 8, 2023 @ 9:56pm 
Originally posted by Nox Phantom:
Ladies and gentleman i was able to turn friends cantrip into well "let ai controlthese characters" cantrip what i did was change lines on its status_BOOST.txt into:

new entry "FRIENDS"
type "StatusData"
data "StatusType" "BOOST"
data "DisplayName" "hf01f3bfdg8763g4dfagb043g9864f584101e;1"
data "Description" "hf61260e8g3c54g48b7g9ce8gbf362d66d134;2"
data "Icon" "Spell_Enchantment_Friends"
data "StackId" "FRIENDS"
data "StatusPropertyFlags" LoseControl;OverheadOnTurn;LoseControlFriendly"
data "ManagedStatusEffectType" "Negative"
data "ManagedStatusEffectGroup" "6435c10a-c67d-4f79-8813-b84b0762f92b"

and spell_target into:
new entry "Target_Friends"
type "SpellData"
data "SpellType" "Target"
data "Level" "0"
data "SpellSchool" "Enchantment"
data "SpellProperties" "ApplyStatus(FRIENDS,100,-1)"
data "TargetRadius" "9"
data "TargetConditions" "Character() and not Enemy()"
data "Icon" "Spell_Enchantment_Friends"
data "DisplayName" "h8f8a19a6gb008g490dgb644gb10fe05748fc;1"
data "Description" "h21bab19cg2de1g46f5g9805g7fb58680f3ff;2"
data "ExtraDescription" "h7eac983dg27b7g46d4g8821ga217d9f33411;4"
data "TooltipStatusApply" "ApplyStatus(FRIENDS,100,10)"
data "TooltipPermanentWarnings" "676ef361-c11d-4e5a-bcae-3b0332cbebf5"
data "PrepareSound" "Spell_Prepare_Control_Gen_L1to3_01"
data "PrepareLoopSound" "Spell_Prepare_Control_Gen_L1to3_01_Loop"
data "CastSound" "Spell_Cast_Control_Friends_L0"
data "TargetSound" "Spell_Impact_Control_Friends_L0"
data "CastTextEvent" "Cast"
data "UseCosts" "ActionPoint:1"
data "SpellAnimation" "554a18f7-952e-494a-b301-7702a85d4bc9,,;,,;af94aac1-d8eb-4ccb-9520-694ade11b61c,,;f5db4001-b136-4c48-9aa4-026c4a7dd3b7,,;22dfbbf4-f417-4c84-b39e-2039315961e6,,;,,;5bfbe9f9-4fc3-4f26-b112-43d404db6a89,,;,,;,,"
data "VerbalIntent" "Control"
data "SpellFlags" "IsSpell;HasSomaticComponent"
data "PrepareEffect" "2fa6b127-6f8a-4150-8be6-6f62b7a85911"
data "CastEffect" "d2ef6b50-243f-478d-85c6-892086a1477e"
data "TargetEffect" "e1b340b6-78a9-413a-bb7e-8299848238ae"
data "AmountOfTargets" "3"

both files can be found in public/shared/stats/generated/data after using lslib toolkit to unpack Shared.pak file in bg3 data

it works only problem is that you cant change companions equipment, effect end on long rest and cant control them out of combat but am working on that not sure if possible but will make updated post if find out how

now i got it to work as a toggle by writing it like
new entry "FRIENDS"
type "StatusData"
data "StatusType" "BOOST"
data "DisplayName" "hf01f3bfdg8763g4dfagb043g9864f584101e;1"
data "Description" "hf61260e8g3c54g48b7g9ce8gbf362d66d134;2"
data "Icon" "Spell_Enchantment_Friends"
data "StackId" "FRIENDS"
data "StatusPropertyFlags" "LoseControl;OverheadOnTurn;LoseControlFriendly_TOGGLE"
data "Toggle" "Yes"
data "TickType" "StartTurn"
data "TickFunctors" "IF(Combat())"
data "ManagedStatusEffectType" "Negative"
data "ManagedStatusEffectGroup" "6435c10a-c67d-4f79-8813-b84b0762f92b"

Tested this out, it works pretty well. Dialogues are occasionally bugged due to the status, but making it toggleable fixes that for the most part. Nicely done!
< >
Showing 1-15 of 23 comments
Per page: 1530 50

Date Posted: Jul 6, 2023 @ 4:53pm
Posts: 23