Tharagon
Tharagon
SMSatisfactory Modding
Created by Tharagon on 1/15/2025 in #help-developing-mods
Best method to override existing FGMessages (ADA/Alien Lines) ?
I’m creating a Mod to replace the English voice lines with localized German voices. Currently I’m using a simple “pak hack” (RemapDirectories ) to replace the .wem files, the audio files that Wwise creates, which are stored in .pak files, not .utocs. However, I also need to adjust the subtitle timings and the actual subtitles (many translations are sub-optimal), which are stored via FGMessages within .utoc-containers. Finally, it would probably also be easier to use my own sound events instead of adapting the .wem files to the existing events, so in effect I would probably exchange most of the FGMessage’s content. I’m wondering which technique would be the best to do that. CDO manipulation I’m unsure if CDO’s even exist for DataAssets like the FGMessages and also, I’m wondering if CDO manipulation would eventually lead to all dialogue audio being held permanently in memory (not sure how Wwise would handle this if all FGMessages were loaded). Pak Hack Even though I regularly hear how bad ‘patching’ is, so far, I have the feeling that patching the vanilla assets (ProjectParams.GeneratePatch) would be the easiest option for this particular use case. As far as I understand it, some SML features won’t work with it (no entry points?), which, however, wouldn't be relevant here anyway - concerns remain about the robustness when it comes to game updates. But so far I have not been able to get this to work with .utoc content anyway. I remapped the content to the base game’s structure via DeploymentContext.RemapDirectories and flagged .GeneratePatch, but I heard there is another option that needs to be ticked, which I don’t know. Function hooking I guess in theory I could hook into some game function, that is processing the FGMessages, and replace certain data on the fly, I haven’t investigated this can of worms yet. But it seems quite complicated for what I have in mind. What do you think would be the best approach?
23 replies