At last, i was just thinking they didn't translate some voices ... you did great job here. just one thing, I cannot get exactly what your script does, and what was the issue with the game files for it to not use the correct voice files.
Mind sharing an explanation? oh and why batch file ? ps file works fine without it.
Hello, I was like you at the beginning, I said the same thing about the voices. In fact, everything is well translated but by default, whatever the language chosen, it loads the files in English, especially for a large part of the content that was released after the official release of the game (forgotten by the developers? Maybe).
Regarding the explanations of the script, it will scan the language files at the root of your game and therefore detect the language that must be applied (the files are identifiable as Voices_XX.ba2) Then, it will take the names of these files then put them in the "Fallout76Custom.ini" file, a file which does not exist natively but which can be created and its content will be loaded in priority (in particular compared to the "Fallout76.ini "). Then, I just needed to know the argument in the file to call the language files (sResourceIndexFileList) to add the file names inside. Then, I knew that the game would load the language files that I inserted as a priority for all languages including English.
Finally, for the batch file, I created it to run the powershell because by default on the system, the execution of a .ps1 file is blocked and to make it easier for people who need to use the script, I concluded that either I had to compile it, or put arguments in a .bat which would allow me to put the arguments to run the batch.
Then, it will take the names of these files then put them in the "Fallout76Custom.ini" file, a file which does not exist natively but which can be created and its content will be loaded in priority (in particular compared to the "Fallout76.ini ").
I noticed that yesterday when adding a mod to my list, and it's a pretty neat idea. It works really well. I'll keep that in mind for next update. I didn't know there was an argument named "sResourceIndexFileList", my guess is that it force the game to check its own files? Or is it usable to any mod too?
Finally, for the batch file, I created it to run the powershell because by default on the system, the execution of a .ps1 file is blocked and to make it easier for people who need to use the script, I concluded that either I had to compile it, or put arguments in a .bat which would allow me to put the arguments to run the batch.
Makes sens, some gamers are using family versions of windows, where ps is restricted. I understand now the use of all theses params pushed in batch. Works perfectly on pro versions without batch though.
Nice work on this, you saved many players sanity around the world ! (including mine !)
PS : Native french too here, just keeping english for this website
I noticed that yesterday when adding a mod to my list, and it's a pretty neat idea. It works really well. I'll keep that in mind for next update. I didn't know there was an argument named "sResourceIndexFileList", my guess is that it force the game to check its own files? Or is it usable to any mod too?
I found this argument on internet =). Yes, I think it must make a comparison between the content of the .ba2 file initially loaded and the .ba2 that you put with the argument 'sResourceIndexFileList' and it takes, if existing equivalent data, the data coming from the .ba2 of 'sResourceIndexFileList '. So I think this argument works for other mods too but I think it is recommended to use the 'sResourceArchive2List' argument. Afterwards, I'm not sure.
Makes sens, some gamers are using family versions of windows, where ps is restricted. I understand now the use of all theses params pushed in batch. Works perfectly on pro versions without batch though.
No, all versions of Windows by default prevent the execution of Powershell scripts (per default : restricted) If you were able to launch it without constraints, it is because you must have defined the "Set-executionpolicy -executionpolicy Bypass" argument one time. Link :Microsoft Powershell - Execution Policy
Nice work on this, you saved many players sanity around the world ! (including mine !)
Your welcome =)
PS : Native french too here, just keeping english for this website
it looks like it grabs a list of *Voices_*.ba2 files in Fallout76\Data and inserts them into the sResourceIndexFileList
i don't have a non-english version installed atm so i don't know what the problems are but that suggests they may not load the voices files?
one thing, it does robustly look through Steam library paths for the F76 location which is nice. but it uses a naive location of the documents folder so it won't find mine.
Documents isn't guaranteed to be a subfolder of $env:USERPROFILE, a more robust way to get that location is [environment]::getFolderPath("mydocuments")
Thanks @parasyte13 for the comment about the "my documents" environment variable. I've taken your variable, which is actually better than the one in powershell.
Concerning the fix I'm proposing, I'll clarify the description because basically, if the language of the game chosen is a non-English voice, some voices of different NPCs will be in English when they shouldn't be.
16 comments
My script works on Windows only. The Steam Deck runs on a Linux distribution so not compatible.
just one thing, I cannot get exactly what your script does, and what was the issue with the game files for it to not use the correct voice files.
Mind sharing an explanation?
oh and why batch file ? ps file works fine without it.
I was like you at the beginning, I said the same thing about the voices.
In fact, everything is well translated but by default, whatever the language chosen, it loads the files in English, especially for a large part of the content that was released after the official release of the game (forgotten by the developers? Maybe).
Regarding the explanations of the script, it will scan the language files at the root of your game and therefore detect the language that must be applied (the files are identifiable as Voices_XX.ba2)
Then, it will take the names of these files then put them in the "Fallout76Custom.ini" file, a file which does not exist natively but which can be created and its content will be loaded in priority (in particular compared to the "Fallout76.ini ").
Then, I just needed to know the argument in the file to call the language files (sResourceIndexFileList) to add the file names inside.
Then, I knew that the game would load the language files that I inserted as a priority for all languages including English.
Finally, for the batch file, I created it to run the powershell because by default on the system, the execution of a .ps1 file is blocked and to make it easier for people who need to use the script, I concluded that either I had to compile it, or put arguments in a .bat which would allow me to put the arguments to run the batch.
PS : I speak french better than english =)
It works really well. I'll keep that in mind for next update.
I didn't know there was an argument named "sResourceIndexFileList", my guess is that it force the game to check its own files?
Or is it usable to any mod too?
Works perfectly on pro versions without batch though.
Nice work on this, you saved many players sanity around the world ! (including mine !)
PS : Native french too here, just keeping english for this website
So I think this argument works for other mods too but I think it is recommended to use the 'sResourceArchive2List' argument. Afterwards, I'm not sure.
If you were able to launch it without constraints, it is because you must have defined the "Set-executionpolicy -executionpolicy Bypass" argument one time.
Link : Microsoft Powershell - Execution Policy
u speaking of some voice lines missing in non english versions and voice effects on bots missing?
i don't have a non-english version installed atm so i don't know what the problems are but that suggests they may not load the voices files?
one thing, it does robustly look through Steam library paths for the F76 location which is nice. but it uses a naive location of the documents folder so it won't find mine.
Documents isn't guaranteed to be a subfolder of $env:USERPROFILE, a more robust way to get that location is [environment]::getFolderPath("mydocuments")
Thanks @parasyte13 for the comment about the "my documents" environment variable.
I've taken your variable, which is actually better than the one in powershell.
Concerning the fix I'm proposing, I'll clarify the description because basically, if the language of the game chosen is a non-English voice, some voices of different NPCs will be in English when they shouldn't be.