No Man's Sky language-switcher


After the latest mildly-hyped upgrade, how is No Man’s Sky? It’s an early beta of a half-decent $20 indie game, currently marked down to $30 on sale for $60. With some mods (Faster Walk, Faster Scan, and Reduced Launch Cost, at a minimum) and the save editor, you can work around most of the remaining design flaws and bugs, making it possible to see the originally-promised game off in the distance.

Still plenty of deliberate user-hostile design decisions, including some brand new ones (like stretching out the limited quest content by adding real-time delays between each step in a chain, ranging from 1 to 6 hours (!)).

Modding is still possible, in a fragile, clunky way, but one early mod that I liked hasn’t worked for a long time: changing the suit audio to Japanese.

With some hints from one of the forums and a copy of Sony’s PSARC tool, I was able to come up with a crude but functional method to generate a working mod for any of the supported languages. All of the other languages seem to be quieter than the English voice, but that’s actually a bonus, given how annoying the damn thing can be.

Edit to set the location of your game data and psarc, choose your standard language and what you want to replace it with, and run the script. It will chug for about 5 10 minutes extracting the language-specific audio from the right PAK file, then repack them under the localized language patha. The resulting mod is about 4 8 megabytes.

Releasing it as a batch file not only avoids the copyright problem that helped sink the original mod, but also allows you to apply any of the 14 supplied localizations to any other, so someone playing the game in Korean could have a Polish space suit, for instance.

[Update: Oh, FFS, NMS! You changed the paths for all the audio files between 1.55 and 1.57? Are you all descended from the surviving deck-chair-rearrangers on the Titanic?

…and now replaced with a more robust version that will be easier to fix the next time they move everything around.]


@echo off
setlocal EnableDelayedExpansion

set "PCBANKS=D:\SteamLibrary\steamapps\common\No Man's Sky\GAMEDATA\PCBANKS"
set PSARC=D:\psarc.exe

REM   Supported Languages:
REM     CHINESE(PRC), CHINESE(TAIWAN), ENGLISH(US), FRENCH(FRANCE), GERMAN,
REM     ITALIAN, JAPANESE, KOREAN, POLISH, PORTUGUESE(BRAZIL),
REM     PORTUGUESE(PORTUGAL), RUSSIAN, SPANISH(MEXICO), SPANISH(SPAIN)

set OLDLANG=ENGLISH(US)
set NEWLANG=JAPANESE

REM   v1.57 pak files containing all AUDIO/.../*.{WEM,BNK}
set AUDIOPAKS=NMSARC.5B11B94C.pak NMSARC.761ACED1.pak NMSARC.FE28D146.pak

echo Creating mod to replace %OLDLANG% suit audio with %NEWLANG%:

if exist AUDIO (
  rmdir /s/q AUDIO
)
mkdir AUDIO\%OLDLANG%
mkdir AUDIO\WINDOWS\%OLDLANG%

for %%p in (%AUDIOPAKS%) do (
  echo extracting from %%p
  call :extract_audio AUDIO %%p
  call :extract_audio AUDIO/WINDOWS %%p
)

%PSARC% create --overwrite --output=_MOD_%NEWLANG%.pak  --nocompress AUDIO
echo _MOD_%NEWLANG%.pak created.
rmdir /s/q AUDIO
exit /b

:extract_audio
set pak=%PCBANKS%\%2
set files=
for /f %%i in ('%PSARC% list "%pak%" ^| find "%1/%NEWLANG%/"') do (
  set files=!files! "%%i"
)
if defined files (
  %PSARC% extract --to="%1/%OLDLANG%" --input="%pak%" --strip-all %files%
)
exit /b


Comments via Isso

Markdown formatting and simple HTML accepted.

Sometimes you have to double-click to enter text in the form (interaction between Isso and Bootstrap?). Tab is more reliable.