Jump to content

[Tutorial] Find and modify your own Strings for PokeMMO


Recommended Posts

[Tutorial] Find and modify your own Strings for PokeMMO

Note: Guide done with all ROMs in English.

 

What is this guide for?

This guide is to change any text from the game.

There are some instances where game dialog is split between line breaks, so the game has to render a text box for every 2 lines of dialog, but on most cases you can shorten the string to remove any extra fodder and reduce text boxes.

This helps to shorten certain activities like healing in Poke Center, quickly planting and harvesting berries, ignoring extra text on gym reruns, etc.

 

What do I need?

Having both  PokeMMO/data/strings  and  PokeMMO/dump/strings  on your directory.

To get the dump/strings, you have to go to Settings -> Utilities -> Dump Storyline Strings: Run Utility.

This will dump the ROM strings to the second directory.

Really suggest reading nuver9 guide to understand how the localization for the files works.

Also, recommend a Text Editor to find text between files and modify them quickly too, I suggest using Visual Code.

https://code.visualstudio.com/

 

This guide assumes you know how to create your custom string file with the correct language codes and properties.

Depending on where string is found on the dump files, you have to add the line to your _edits.xml files.

 

Recommend using rudes strings as templates and start modifying them yourself for your needs.

https://github.com/rudes/PokeStrings


This is the file convention I use.

dump_BPR_en.xml -> z_strings_en_edits.xml -> Kanto strings.

dump_IPK_0_en.xml -> z_strings_en_johto_edits.xml -> Johto strings.

dump_BPE_en.xml -> z_strings_en_edits.xml -> Hoenn strings.

dump_CPU_0_en.xml -> z_strings_en_sinnoh_edits.xml -> Sinnoh strings.

dump_IRB_0_en.xml -> z_strings_en_unova_0_edits.xml -> Unova strings archive type 0.

dump_IRB_1_en.xml -> z_strings_en_unova_1_edits.xml -> Unova strings archive type 1.

 

Note: Always make sure to have this file in your strings folder or you will have non-updated strings directly from the ROM.

a_placeholder_for_enabling_unova_edits.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<strings lang="en" lang_full="English" is_primary="1">
  <string id="0987654321234567890"></string>
<!-- If you remove this file, you will load over 48,000 lines of incorrect dialog.
The game will revert to using the internal dump version of files when reimporting Unova strings.
That means if you have any string that edits region_id="2" on your system- all MMO specific dialog is not being displayed. 
You may repurpose this file for your own use if you wish, however- please credit nurver, realmadrid1809 and AnonymousPoke. -->
</strings>

 

Steps:

  • Add the a_placeholder_for_enabling_unova_edits.xml file into your string folder.
  • Identify the text you want to modify, taking as an example a random NPC dialog from Unova.
  • image.png.fffcc3e364c027372ca90cbbbd154bf9.png
    image.png.40b58a95b49450c34c6795c055c5bffa.png

 

  • Go into Visual code and search for the string "Skyla's grandfather was"
    image.png.4656a6c0ad2abdae877a04c691ee69d0.png

    As we can see, the string is found on dump_IRB_1_en.xml which means we have to add it into our z_strings_en_unova_1_edits.xml file.

 

  • Copy the entire line from dump to the strings file and make modifications in it.
    <string block_id="0" entry_id="31" table_id="112">Skyla's grandfather was\na legendary Pilot.\n\nSkyla is our city's Gym Leader.\nShe's a really nice person!</string>

    As you can see from the string, it has lots of line breaks \n, and for every 2 lines a next text box has to render the next part of the string, so this is a 2 button interactions to close the conversation.
    We will modify it to show only a "Hello and Goodbye!" message.

     

    <string block_id="0" entry_id="31" table_id="112">Hello and Goodbye!</string>

 

 

  • Restart PokeMMO to load strings modifications, and talk again with the person, it should look like this.
    image.png.a7f6cd582e11e208bd582833978dd158.png

    And the second text box is skipped since the string is shorter now. This doesn't apply if it uses multiple strings since each string is a separate text box.

 

Notes:

  • Some strings from a region can come from a different one. As long as you modify all of them in their respective files, it should be fine.
  • The purpose of this guide is so you can do them yourself and have the more customizable than just downloading one from the internet that can get outdated eventually.
  • To import to mobile / iOS devices, you put the modified files in the cloud or an USB and import them inside your mobile device.
Edited by ClosedBox
Link to comment

Replace Kanto's Pokecenter Text:

Steps:

  1. Identify the text in the game.
    image.png.89c2986628c7aebce66ccd4c7b1372f9.png
  2. Find to which dump file it belongs inside Visual Code.
    image.png.5cd2d06101ec376dbad8954217b685ca.png

    As you can see, below are the next text chats from the next Poke Center dialogs ,so we can modify them all together.
    <string id="1725571">Welcome to our POKéMON CENTER!\n\nWould you like me to heal your\nPOKéMON back to perfect health?</string>
    <string id="1725665">Okay, I'll take your POKéMON for a\nfew seconds.</string>
    <string id="1725713">We hope to see you again!</string>
    <string id="1725739">Thank you for waiting.\nWe've restored your POKéMON to\n\nfull health.</string>

     

  3. Add it to custom string file and modify it. Since it comes from dump_BPR, the destination file should be z_strings_en_edits.xml .
    <string id="1725571">Hello</string>
    <string id="1725665">Working on it</string>
    <string id="1725713">See you later</string>
    <string id="1725739">\n</string>

     

  4. Restart game and test.
    image.png.a08f61fb0e2f562c92e395791bbd747b.png
    image.png.4e9e03e43cac139ad2f5fdaead50d0f1.png
    image.png.391b73b153b5c2e2fa57d30e23892964.png
    image.png.e3e80267d1720a4b49f7063dc01d69c0.png
     

Notes:

For 'faster' strings, instead of replacing the text, only place a \n (line break).

<string id="1725571">\n</string>
<string id="1725665">\n</string>
<string id="1725713">\n</string>
<string id="1725739">\n</string>

 

 

Hoenn Poke Center:

Do the same steps, but now search for the next Text.
image.png.1b4411c069613f8d64778c25fe245ec0.png

Edited by ClosedBox
Link to comment

Replace Harvest Berry Text:

Steps:

  1. Identify the text in the game.
    image.png.45cdd043021520e04cef21cccd1506ce.png

    This is a bit harder to find because it uses two variables, one is the number of berries, and the second one is using the berry name.
    For each variable, we have to look for something like {00}, in this case, we will try to find the text "There are {".
    image.png.1869eb40a86dd05f41f0bf3f18e35561.png

    If we proceed the dialog ,we can see which one aligns with our intended string target.

    image.png.14ed60eaf68b0268c37b0b07b39e7ff1.png
    image.png.813ff1da4cd4062dc556d7aeb7497af8.png

    We can see the string we want to modify is the one from strings_en_xml.xml. This means it's a custom-made string from PokeMMO, so we want to modify it inside our z_strings_en_edits.xml file.
     
  2. Find it inside Visual Code.
    <string id="16780329">There are {01} {00}!\n\nWould you like to pick the {00}?</string>

     
  3. Copy it into your custom string file and make modifications to it.
    z_strings_en_edits.xml
    <string id="16780329">Pick up {01} {00}?</string>

     
  4. Restart the game and test.
    image.png.d1d76c3282f04ba3939c50e0ac203c69.png

    As you can see, it skips the first text box telling you how many berries there are, and goes directly into the prompt box.

This can be repeated for egg shunting, removing extra dialog from the caregiver.

 

Notes:

  • This is only for harvesting, If you noticed when finding the string on strings_en.xml, you can find in the same column the other strings used for planting which can help you speed your process too.
    Spoiler

    All planting strings.

  • Suggest changing to \n (line break) to skip dialog entirely.
Edited by ClosedBox
Link to comment

I'll take a moment to elaborate on the "placeholder" file. It is recommend to use when modding strings otherwise the client can default to the internal string dumps instead of the ones created for PokeMMO. That means move descriptions, item descriptions, etc. are being displayed from the original ROMs. We came up with this file as a way to "trick" the game into using the correct strings when modded files are downloaded. For example the "outdated smoke ball" description was just one of the subjects of many official and unofficial bug reports, and has wasted both parties time.

Some users have reported that it causes missing text. If this happens, that means that client's primary string container is not populating correctly. To work around this, set another language like Spanish to have the primary=1 flag, and set English to 0. This achieves the same effect that the placeholder file implements and can be done instead of using said placeholder. The placeholder file was created to be a means of easily drop / dropping / distributing a fix for the broken modded strings.

If you are using modded strings you got from someone on Discord, Youtube, Twitch, your clanmates, etc and you are not using one of the aforementioned fixes, I highly advise you check your in-game text to see if you have ROM or PokeMMO text. See the documentation thread which was linked in the OP for more information.

Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.