CTHULHU Posted Monday at 08:11 PM Posted Monday at 08:11 PM Hello everyone, I need help with unpacking localization files BMS scripts do not help The file format is unknown translate_words_map_en.zip
Supporter wq223 Posted Tuesday at 02:25 AM Supporter Posted Tuesday at 02:25 AM 6 hours ago, CTHULHU said: Hello everyone, I need help with unpacking localization files BMS scripts do not help The file format is unknown translate_words_map_en.zip 15.18 MB · 3 downloads I have uploaded the link to this file in discord, but I am dealing with the cn version. I downloaded your file and it should be similar. You can try this script. My script can only decompress and re-merge. I don’t know much about localization. https://drive.google.com/file/d/1SgG59QqW4qTxM1m5W7HoKo3VeZ6mbyQZ/view?usp=sharing
CTHULHU Posted Tuesday at 10:28 AM Author Posted Tuesday at 10:28 AM 7 hours ago, wq223 said: I have uploaded the link to this file in discord, but I am dealing with the cn version. I downloaded your file and it should be similar. You can try this script. My script can only decompress and re-merge. I don’t know much about localization. https://drive.google.com/file/d/1SgG59QqW4qTxM1m5W7HoKo3VeZ6mbyQZ/view?usp=sharing Thanks a lot !!!
kangmin Posted Wednesday at 12:44 AM Posted Wednesday at 12:44 AM 22 hours ago, wq223 said: I have uploaded the link to this file in discord, but I am dealing with the cn version. I downloaded your file and it should be similar. You can try this script. My script can only decompress and re-merge. I don’t know much about localization. https://drive.google.com/file/d/1SgG59QqW4qTxM1m5W7HoKo3VeZ6mbyQZ/view?usp=sharing hi sorry, new to these stuff, how do i use this? im trying to get a hold of the sound files of this game, its so epiccc like the sfx and music thanks for your help in advance!
unokiller Posted Wednesday at 06:16 AM Posted Wednesday at 06:16 AM On 11/18/2025 at 9:25 AM, wq223 said: Tôi đã tải lên liên kết đến tệp này trong bất hòa, nhưng tôi đang xử lý phiên bản cn. Tôi đã tải xuống tệp của bạn và nó sẽ tương tự. Bạn có thể thử tập lệnh này. Tập lệnh của tôi chỉ có thể giải nén và hợp nhất lại. Tôi không biết nhiều về bản địa hóa. https://drive.google.com/file/d/1SgG59QqW4qTxM1m5W7HoKo3VeZ6mbyQZ/view?usp=sharing did you find the game .ttf font in any mpk file?
Supporter wq223 Posted Wednesday at 06:35 AM Supporter Posted Wednesday at 06:35 AM 19 minutes ago, unokiller said: did you find the game .ttf font in any mpk file? ttf fonts I think they should be in the engine folder, maybe not packaged
unokiller Posted Wednesday at 06:43 AM Posted Wednesday at 06:43 AM 5 minutes ago, wq223 said: ttf fonts I think they should be in the engine folder, maybe not packaged <Root> <!-- Usage domestic oversea oversea_en oversea_kr oversea_ja oversea_zh_tw... --> <Font> <!-- normal text, in China mainland --> <Name>FZSKBXKJW.TTF</Name> <File>FZSKBXKJW.TTF</File> <Usage>domestic|oversea_zh_cn</Usage> </Font> <Font> <!-- title text, in China mainland, plus HongKong/TaiWan --> <Name>AaShiSongTi-2.ttf</Name> <File>AaShiSongTi-2.ttf</File> <Usage>domestic|oversea_zh_cn|oversea_zh_tw</Usage> </Font> <Font> <!-- normal text (mobile), in China mainland --> <Name>FZSKBXKJW_mobile.TTF</Name> <File>FZSKBXKJW_mobile.TTF</File> <Usage>domestic|oversea_zh_cn</Usage> </Font> <Font> <!-- art text, in China mainland --> <Name>ZHJB-Xiangjiahong.TTF</Name> <File>ZHJB-Xiangjiahong.TTF</File> <Usage>domestic|oversea_zh_cn</Usage> </Font> <Font> <!-- ShouJinTi, another art text, in China mainland --> <Name>ZH-cjxkt.ttf</Name> <File>ZH-cjxkt.ttf</File> <Usage>domestic|oversea_zh_cn</Usage> </Font> <Font> <!-- numbers, in all regions --> <Name>yyslsnumeral.ttf</Name> <File>yyslsnumeral.ttf</File> <Usage>domestic|oversea</Usage> </Font> <Font> <!-- normal text, in HongKong/TaiWan --> <Name>HanYiQuanTangShiS.ttf</Name> <File>HanYiQuanTangShiS.ttf</File> <Usage>oversea_zh_tw</Usage> </Font> <Font> <!-- art text, in HongKong/TaiWan --> <Name>ZHJB-Xiangjiahong_fanti.TTF</Name> <File>ZHJB-Xiangjiahong_fanti.TTF</File> <Usage>oversea_zh_tw</Usage> </Font> <Font> <!-- title text, in Janan --> <Name>FOTTsukuMinPr6-D.ttf</Name> <File>FOTTsukuMinPr6-D.ttf</File> <Usage>oversea_ja</Usage> </Font> <Font> <!-- normal text, in Janan --> <Name>FOTTsukuMinPr6-RB.ttf</Name> <File>FOTTsukuMinPr6-RB.ttf</File> <Usage>oversea_ja</Usage> </Font> <Font> <!-- art text, in Janan --> <Name>NEWRPGGAMEH72_ManyoGyoshoN-E.ttf</Name> <File>NEWRPGGAMEH72_ManyoGyoshoN-E.ttf</File> <Usage>oversea_ja</Usage> </Font> <Font> <!-- title text, in Korea --> <Name>SunBatang-Medium.ttf</Name> <File>SunBatang-Medium.ttf</File> <Usage>oversea_ko</Usage> </Font> <Font> <!-- normal text, in Korea --> <Name>SunBatang-Light.ttf</Name> <File>SunBatang-Light.ttf</File> <Usage>oversea_ko</Usage> </Font> <Font> <!-- art text, in Korea --> <Name>GowunBatang-Bold.ttf</Name> <File>GowunBatang-Bold.ttf</File> <Usage>oversea_ko</Usage> </Font> <Font> <!-- title text, in Europe --> <Name>AlegreyaSans-Medium.ttf</Name> <File>AlegreyaSans-Medium.ttf</File> <Usage>oversea_en|oversea_es|oversea_de|oversea_fr</Usage> </Font> <Font> <!-- normal text, in Europe --> <Name>AlegreyaSans-Regular.ttf</Name> <File>AlegreyaSans-Regular.ttf</File> <Usage>oversea_en|oversea_es|oversea_de|oversea_fr</Usage> </Font> <Font> <!-- art text, in Europe --> <Name>MrsEavSmaCap.ttf</Name> <File>MrsEavSmaCap.ttf</File> <Usage>oversea_en|oversea_es|oversea_de|oversea_fr</Usage> </Font> </Root> I found the contents of a file like this when I extract resources.mpk
Supporter wq223 Posted Wednesday at 06:49 AM Supporter Posted Wednesday at 06:49 AM 6 minutes ago, unokiller said: <Root> <!-- Usage domestic oversea oversea_en oversea_kr oversea_ja oversea_zh_tw... --> <Font> <!-- normal text, in China mainland --> <Name>FZSKBXKJW.TTF</Name> <File>FZSKBXKJW.TTF</File> <Usage>domestic|oversea_zh_cn</Usage> </Font> <Font> <!-- title text, in China mainland, plus HongKong/TaiWan --> <Name>AaShiSongTi-2.ttf</Name> <File>AaShiSongTi-2.ttf</File> <Usage>domestic|oversea_zh_cn|oversea_zh_tw</Usage> </Font> <Font> <!-- normal text (mobile), in China mainland --> <Name>FZSKBXKJW_mobile.TTF</Name> <File>FZSKBXKJW_mobile.TTF</File> <Usage>domestic|oversea_zh_cn</Usage> </Font> <Font> <!-- art text, in China mainland --> <Name>ZHJB-Xiangjiahong.TTF</Name> <File>ZHJB-Xiangjiahong.TTF</File> <Usage>domestic|oversea_zh_cn</Usage> </Font> <Font> <!-- ShouJinTi, another art text, in China mainland --> <Name>ZH-cjxkt.ttf</Name> <File>ZH-cjxkt.ttf</File> <Usage>domestic|oversea_zh_cn</Usage> </Font> <Font> <!-- numbers, in all regions --> <Name>yyslsnumeral.ttf</Name> <File>yyslsnumeral.ttf</File> <Usage>domestic|oversea</Usage> </Font> <Font> <!-- normal text, in HongKong/TaiWan --> <Name>HanYiQuanTangShiS.ttf</Name> <File>HanYiQuanTangShiS.ttf</File> <Usage>oversea_zh_tw</Usage> </Font> <Font> <!-- art text, in HongKong/TaiWan --> <Name>ZHJB-Xiangjiahong_fanti.TTF</Name> <File>ZHJB-Xiangjiahong_fanti.TTF</File> <Usage>oversea_zh_tw</Usage> </Font> <Font> <!-- title text, in Janan --> <Name>FOTTsukuMinPr6-D.ttf</Name> <File>FOTTsukuMinPr6-D.ttf</File> <Usage>oversea_ja</Usage> </Font> <Font> <!-- normal text, in Janan --> <Name>FOTTsukuMinPr6-RB.ttf</Name> <File>FOTTsukuMinPr6-RB.ttf</File> <Usage>oversea_ja</Usage> </Font> <Font> <!-- art text, in Janan --> <Name>NEWRPGGAMEH72_ManyoGyoshoN-E.ttf</Name> <File>NEWRPGGAMEH72_ManyoGyoshoN-E.ttf</File> <Usage>oversea_ja</Usage> </Font> <Font> <!-- title text, in Korea --> <Name>SunBatang-Medium.ttf</Name> <File>SunBatang-Medium.ttf</File> <Usage>oversea_ko</Usage> </Font> <Font> <!-- normal text, in Korea --> <Name>SunBatang-Light.ttf</Name> <File>SunBatang-Light.ttf</File> <Usage>oversea_ko</Usage> </Font> <Font> <!-- art text, in Korea --> <Name>GowunBatang-Bold.ttf</Name> <File>GowunBatang-Bold.ttf</File> <Usage>oversea_ko</Usage> </Font> <Font> <!-- title text, in Europe --> <Name>AlegreyaSans-Medium.ttf</Name> <File>AlegreyaSans-Medium.ttf</File> <Usage>oversea_en|oversea_es|oversea_de|oversea_fr</Usage> </Font> <Font> <!-- normal text, in Europe --> <Name>AlegreyaSans-Regular.ttf</Name> <File>AlegreyaSans-Regular.ttf</File> <Usage>oversea_en|oversea_es|oversea_de|oversea_fr</Usage> </Font> <Font> <!-- art text, in Europe --> <Name>MrsEavSmaCap.ttf</Name> <File>MrsEavSmaCap.ttf</File> <Usage>oversea_en|oversea_es|oversea_de|oversea_fr</Usage> </Font> </Root> I found the contents of a file like this when I extract resources.mpk Font files should have specific file headers, maybe look for
KenUaena Posted Wednesday at 04:16 PM Posted Wednesday at 04:16 PM On 11/18/2025 at 9:25 AM, wq223 said: I have uploaded the link to this file in discord, but I am dealing with the cn version. I downloaded your file and it should be similar. You can try this script. My script can only decompress and re-merge. I don’t know much about localization. https://drive.google.com/file/d/1SgG59QqW4qTxM1m5W7HoKo3VeZ6mbyQZ/view?usp=sharing thanks for the script, but seems like the output is not really usable at this stage the text is kinda mess up (string get connected to each other with no delimiter or new line), and each of the .dat file got some unknown binary text as well (prob some kind of padding or header) guess we need to research more on how to decompress these translation file
Supporter wq223 Posted Wednesday at 06:38 PM Supporter Posted Wednesday at 06:38 PM 2 hours ago, KenUaena said: thanks for the script, but seems like the output is not really usable at this stage the text is kinda mess up (string get connected to each other with no delimiter or new line), and each of the .dat file got some unknown binary text as well (prob some kind of padding or header) guess we need to research more on how to decompress these translation file Maybe some kind of custom serialization structure, in other games most use bindict, but this one doesn't look like it
user854221 Posted Thursday at 06:01 AM Posted Thursday at 06:01 AM Here my analysis: Header: 24 bytes: [ Int64 EntryCount Int64 ValueCount Int32 Timestamp Int32 Padding ] Buckets: [24-528] bytes, based on allocated bucket TableEntries: EntryCount * [ 8 Bytes Hash(or id?), Int32 RelativeOffset, (formula: text_start = current_entry_offset + 8 + value) Int32 TextLength ] Values: ValueCount * [ Byte[ValueLength] Data ] Null value have zero length and no hash. Successfully unpack and pack, the game load new text normally. 1
Supporter wq223 Posted Thursday at 07:56 AM Supporter Posted Thursday at 07:56 AM 1 hour ago, user854221 said: Here my analysis: Header: 24 bytes: [ Int64 EntryCount Int64 ValueCount Int32 Timestamp Int32 Padding ] Buckets: [24-528] bytes, based on allocated bucket TableEntries: EntryCount * [ 8 Bytes Hash(or id?), Int32 RelativeOffset, (formula: text_start = current_entry_offset + 8 + value) Int32 TextLength ] Values: ValueCount * [ Byte[ValueLength] Data ] Null value have zero length and no hash. Successfully unpack and pack, the game load new text normally. A bit similar to bindict Bindict also has a bucket part, and it is also 8 bytes but they are int32 hash int32 value index offset
unokiller Posted Thursday at 09:46 AM Posted Thursday at 09:46 AM 3 hours ago, user854221 said: Here my analysis: Header: 24 bytes: [ Int64 EntryCount Int64 ValueCount Int32 Timestamp Int32 Padding ] Buckets: [24-528] bytes, based on allocated bucket TableEntries: EntryCount * [ 8 Bytes Hash(or id?), Int32 RelativeOffset, (formula: text_start = current_entry_offset + 8 + value) Int32 TextLength ] Values: ValueCount * [ Byte[ValueLength] Data ] Null value have zero length and no hash. Successfully unpack and pack, the game load new text normally. Did you succeed? any method?
Unlock777 Posted Thursday at 10:37 PM Posted Thursday at 10:37 PM 16 hours ago, user854221 said: Ecco la mia analisi: Intestazione: 24 byte: [ Int64 EntryCount Int64 ValueCount Int32 Timestamp Int32 Padding ] Bucket: [24-528] byte, in base al bucket allocato TableEntries: EntryCount * [ 8 Byte Hash(o id?), Int32 RelativeOffset, (formula: text_start = current_entry_offset + 8 + value) Int32 TextLength ] Valori: ValueCount * [ Byte[ValueLength] Data ] I valori nulli hanno lunghezza zero e nessun hash. Una volta decompressi e compressi correttamente, il gioco carica normalmente il nuovo testo. Were you able to create a script to extract and replace the text files?
user854221 Posted 23 hours ago Posted 23 hours ago tool.py Here a working script that will output json file with { hash: text, ... } 1
dest1yo Posted 7 hours ago Posted 7 hours ago Thanks for some info from here and made a tool for unpacking and packing localize map files, if someone is interested in it. https://github.com/dest1yo/wwm_utils 2
Unlock777 Posted 7 hours ago Posted 7 hours ago (edited) 2 hours ago, dest1yo said: Thanks for some info from here and made a tool for unpacking and packing localize map files, if someone is interested in it. https://github.com/dest1yo/wwm_utils VirusTotal detected it as a Trojan https://www.virustotal.com/gui/file/2b3a35a72096a0564c6f439fffed55449d7a366bb8d5094549b2f0d06d2de7a0/detection Microsoft Trojan:Script/Wacatac.B!ml Edit: It is probably a false positive, since it is only detected by Microsoft. Edited 5 hours ago by Unlock777
dest1yo Posted 6 hours ago Posted 6 hours ago 34 minutes ago, Unlock777 said: VirusTotal detected it as a Trojan https://www.virustotal.com/gui/file/2b3a35a72096a0564c6f439fffed55449d7a366bb8d5094549b2f0d06d2de7a0/detection Microsoft Trojan:Script/Wacatac.B!ml https://github.com/dest1yo/wwm_utils/issues/1 Reference for new people see this later
Members Dipzzzy Posted 6 hours ago Members Posted 6 hours ago btw whats the different with this two file translate_words_map_en & translate_words_map_en_diff
dest1yo Posted 6 hours ago Posted 6 hours ago 2 minutes ago, Dipzzzy said: btw whats the different with this two file translate_words_map_en & translate_words_map_en_diff `diff` is a patch, basically used to update strings for the main one. I haven't compared in detail what aspects it typically modifies, but the structure is the same, you can unpack them to check. Theoretically, our tool should merge the two files into main one when packing and set the `diff` file as a default file that doesn't include entries, but I haven't started working on that yet. If it's one like `_cn` version, it's very suitable for direct editing.
dest1yo Posted 6 hours ago Posted 6 hours ago 3 minutes ago, dest1yo said: `diff` is a patch, basically used to update strings for the main one. I haven't compared in detail what aspects it typically modifies, but the structure is the same, you can unpack them to check. Theoretically, our tool should merge the two files into main one when packing and set the `diff` file as a default file that doesn't include entries, but I haven't started working on that yet. If it's one like `_cn` version, it's very suitable for direct editing. Also I guess it is easy to handle the merging for them, might check that at some point when I am free.
Unlock777 Posted 5 hours ago Posted 5 hours ago 55 minutes ago, dest1yo said: https://github.com/dest1yo/wwm_utils/issues/1 Reference for new people see this later I updated the comment, writing that it is probably a false positive, so as not to cause alarm. Can you tell me if it extracts the text files and packages them? (They should be: \Where Winds Meet\Package\HD\oversea\locale\translate_words_map_en and translate_words_map_en_diff)
dest1yo Posted 4 hours ago Posted 4 hours ago 42 minutes ago, Unlock777 said: I updated the comment, writing that it is probably a false positive, so as not to cause alarm. Can you tell me if it extracts the text files and packages them? (They should be: \Where Winds Meet\Package\HD\oversea\locale\translate_words_map_en and translate_words_map_en_diff) Check README, it has the info
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now