Reporting back!
Reformatted with btrfs, steam now does this when I open the game (didn’t before):
anddd it works! Can’t believe this whole headache was just exfat all along lol!
Thank you for your help :D
Reporting back!
Reformatted with btrfs, steam now does this when I open the game (didn’t before):
anddd it works! Can’t believe this whole headache was just exfat all along lol!
Thank you for your help :D
I think you’ve just pointed me in the direction of a solution…
The comment you’re referring to seems to be this one:
mv Launcher Launcherbak
ln -s bin Launcher
ln -s ./bin/bg3_dx11.exe ./bin/LariLauncher.exe
cp ./Launcherbak/*.dll ./bin
creating a symlink to trick steam into thinking it’s running the launcher when it actually runs the game. BUT … my SSD is formatted as exFAT, which doesn’t support symlinks, so I can’t do this.
So I’m guessing proton is trying to create a symlink at pfx/dosdevices/c when it installs .NET, but fails, which is also probably why everyone else seems to have a breezy time with it. Not sure why my other games haven’t run into this though… maybe they haven’t needed to install anything there?
I will report back after reformatting my entire SSD lol
I think you’ve just pointed me in the direction of a solution…
I tried to create a symlink “c:” pointing to …/drive_c, but I couldn’t. “Operation not permitted” I then got ptsd flashbacks to the last time this happened - turns out it was because my SSD is formatted as exFAT, which doesn’t support symlinks.
I’m guessing proton is trying to create this symlink when it installs .NET, but fails, which is probably why everyone else seems to have a breezy time with it. Not sure why my other games haven’t run into this though… maybe they haven’t needed to install anything there?
I will report back after reformatting my entire SSD lol
Ohh, is the “c” just a symlink to the drive_c folder?
I need STEAM_COMPAT_DATA_PATH because my proton is installed in a different steam library than the game, all of my proton games use this. I tried to remove it anyway and try just ‘–skip-launcher’, but now the game doesn’t launch lol
The command likely won’t work for you because you don’t have proton installed at that location
Still the same error unfortunately.
Interestingly though, when I try to install .NET manually via protontricks-launch -v --appid 1086940 /home/user/Downloads/windowsdesktop-runtime-6.0.35-win-x64.exe
I get the following error:
/media/user/T7/Main/Games/SteamInstalled/steamapps/compatdata/1086940/pfx/dosdevices/c:/windows: No such file or directory
Going down that tree I see the entire path is there except for “/c” at the end. I manually added a “c” folder, but then I get stuck at this error:
protontricks (ERROR): Active compatibility tool was found, but it's not a Proton installation supported by Protontricks.
Proton installation could not be found!
I know my proton installation works because all my other games use it fine. Proton is on a different drive than BG3, could that cause issues?
No, installed from debian repository
I already skip the launcher but this error still happens. My launch args are
STEAM_COMPAT_DATA_PATH=/home/user/.local/share/Steam/steamapps/compatdata %command% --skip-launcher
I see!
I installed protontricks and read through the usage instructions
I’ve done protontricks-launch --appid 1086940 /home/user/Downloads/windowsdesktop-runtime-6.0.35-win-x64.exe
but it looks like it’s stuck?
pressure-vessel-locale-gen: Missing locale en_US.UTF-8
pressure-vessel-locale-gen: Generating locale en_AU.UTF-8...
pressure-vessel-locale-gen: Generated locale en_AU.UTF-8 successfully
pressure-vessel-locale-gen: Generating locale en_US.UTF-8...
pressure-vessel-locale-gen: Generated locale en_US.UTF-8 successfully
pressure-vessel-adverb[101880]: W: Container startup will be faster if missing locales are created at OS level
0084:err:file:init_redirects /media/user/T7/Main/Games/SteamInstalled/steamapps/compatdata/1086940/pfx/dosdevices/c:/windows: No such file or directory
Thank you for pointing me in the right direction, I’ve never used protontricks before
Edit: using protontricks 1086940 dotnetdesktop7
seems to get past that point, but then I get another error
protontricks (ERROR): Active compatibility tool was found, but it's not a Proton installation supported by Protontricks.
Proton installation could not be found!
my proton is installed in a different steam library than BG3, could this cause issues?
Yes all the others I play work fine, I have only had an issue with BG3
Thank you, Yes experimental is the one I tried as per people’s recommendation on protondb. I have also tried 9, 8, 7 but all give the same error. Putting the --skip-launcher argument in still brings me this error. I can’t even get to the launcher 😭
Yep it’s not near finished. This is one of those projects that’s sat in my “keep an eye on it” bookmarks for a good while, I figured I’d post it to get some attention on it, because it does look very promising.
I found some here: https://docs.spacebar.chat/setup/server/#setup
I patched together some version of this using nested dictionaries:
var abilities: Dictionary = {
AbilityData.Trigger.BEFORE_ATTACK : {},
AbilityData.Trigger.ON_ATTACK : {},
AbilityData.Trigger.ON_HIT : {},
AbilityData.Trigger.ON_KILL : {},
AbilityData.Trigger.ON_DEATH : {},
AbilityData.Trigger.ON_JUMP : {},
AbilityData.Trigger.PASSIVE : {}
}
with each value being another key:value pair of { "ability_id": <ability-node> }
so I can keep a reference to the Ability node and use dictionary functions like .has() to check if a character has a specific ability:
func has_ability(ability_data: AbilityData) -> bool:
if abilities[ability_data.trigger_type].has(ability_data.id):
return true
return false
Then when a trigger fires, it calls this (I omitted the return code):
// Activates all abilities with the specified trigger type. Returns an array containing each ability that was activated this way.
//trigger_type is an enum
//data is just a resource containing things like position, target, ability owner, etc
func trigger(trigger_type: AbilityData.Trigger, data: AbilityActivationData) -> Array[Ability]:
var abilities_to_activate: Dictionary = abilities.get(trigger_type)
// Loops through the list of Ability nodes.
for ability in abilities_to_activate.values():
ability.activate(data)
abilities_activated.append(ability)
This seems to work, but it still gives me that tickling sensation that it could be a little cleaner.
I think I understand…
Instead of the player iterating through and calling all of its abilities, the ability just connects directly to whichever signal it needs on the player?
My current setup is to add each Ability as a node to the player, so right now it follows the “call down, signal up” adage that I hear everyone say. What would be a good way to implment the other way? I assume I should rework my current setup otherwise it’d be “signal down, signal up”?
Win11 doesn’t let you past setup if you dont have an internet connection.
Thanks for your input! The other commenters pointed out that I can use Godot’s is_instance_valid()
function to check if the bullet’s owner exists before attempting to call anything on it, so will be reworking the system to use #2 + that.
Definitely sounds like the way to go the more I think about it. Thanks!
The longer I’m using the signal chain the more I’m wanting to rework it to just be a reference lol. Good point with checking if the instance is valid, if any other errors come up I could just patch around them in a similar fashion.
That said, you can probably simplify your signal code if you connected the bullet killed_enemy signal directly to the player’s on-hit handler. It seems like the weapon on-kill handler is redundant?
Ah I see what you mean, killed_enemy(enemy-object) signals directly to the player which can then pass that enemy to it’s abilities if needed. You’re correct that the weapon signal is mostly redundant, it was just the easiest node to connect to the bullet’s signals, as it’s responsible for spawning them.
I think I’ll change the whole system to just use a reference. Thanks for your input!
Reporting back!
Reformatted with btrfs, steam now does this when I open the game (didn’t before):
anddd it works! Can’t believe this whole headache was just exfat all along lol!
Thank you for your help :D