Every docs URL answers with Markdown when you add .md. Site map: llms.txt
Game Text Search
Search every line of RDR2's English text by words, label hash or key, see how the game stores it, and copy the Lua that replaces it in RedM.
Documentația este deocamdată în engleză.
Game Text Search looks through all 259,297 lines of RDR2’s American English text: spoken dialogue, menus, prompts, item names and descriptions, help text and journal entries. Search by words, or find one label by its hash or its key, and copy a line of Lua that swaps that text for your own.
What it is for
- Finding the label behind a piece of text you saw in game, so a script can replace or reuse it.
- Putting text on a label hash you found in a script or a dump.
- Checking how the game words something (an item, a prompt, a store) before you write your own UI to match it.
Quick start
- Type in the search box. It searches as you type once there are two characters.
- Pick All text, Spoken lines or Everything else.
- Click a result to open it. You get the hash in hex, unsigned and signed, the key when it is known, the text as the game stores it, and a
client.lualine.
The search and the filter are kept in the URL (?q=saloon&kind=dialogue), so a link opens the same results.
What you can type
| Input | Example | What happens |
|---|---|---|
| Words | saloon, moonshine still |
Every label whose text holds all the words, in any order. Case does not matter. |
| Hex hash | 0x0000F96B, 0000F96B |
That one label, shown first. 8 hex digits work without 0x when there is a letter in them. |
| Decimal hash | 63851 |
The same label. Signed numbers work too. |
| Key | BRT1_F_HARMOUTS |
The label whose key hashes to it, plus any text that contains the word. |
A word matches anywhere inside a line, so saloon also finds saloons. The key name is searched together with the text where it is known.
An exact hit (a hash or a key) is listed first and the panel title names it, for example Label 0x0000F96B. Word results follow in the order of their hashes, not by relevance.
The filters
| Filter | Shows | Lines |
|---|---|---|
| All text | Everything | 259,297 |
| Spoken lines | Subtitles of spoken dialogue | 183,520 |
| Everything else | Menus, prompts, items, help text, journal | 75,777 |
The filters apply to word results. An exact hash or key hit is always shown.
The page shows at most 100 rows. When there are more, the title says so (294 matches, first 100); add another word to narrow it down.
Reading a result
Each row shows the label hash, the text, and under it the key or key name not known, plus spoken line for dialogue.
Only 27,294 of the 259,297 labels have a known key. The game stores a label under the hash of its key and the key itself is not in the files, so most labels are known only by their hash. That is normal, and the hash is all you need to replace the text.
The text in the list is cleaned for reading: ~n~ becomes a line break and the formatting codes (~z~, ~sl:...~ and similar) are taken out. When the stored text differs from what you see, the open row shows it under As stored. Named tokens such as ~INPUT_JUMP~ are kept, because the game draws a button there.
Replacing a line
Every open result has a client.lua block. For the label 0x0000F96B:
-- replace this line of game text for everyone running the resource (Cfx native ADD_TEXT_ENTRY_BY_HASH)
AddTextEntryByHash(0x0000F96B, "~z~Jumping Jeremiah!")The string is the text exactly as stored, codes included, so the line keeps its formatting until you change it. Edit the text between the quotes and put the line in a client script.
AddTextEntryByHash is a Cfx native (ADD_TEXT_ENTRY_BY_HASH). Cfx’s native reference lists it with no game restriction, so it is there in RedM as well as FiveM. It only changes the text on the clients that run your resource.
Warning
This has not been tested in game for this page. Try it on one line on a test server before you build anything on it.
Tips
- Keep the leading
~z~on a spoken line when you replace it. That is how the game marks dialogue subtitles. ~n~is a line break inside the text. Use it instead of a real new line in the Lua string.- Got a hash from the Hash Calculator that matched a Game text label? Its Open button lands on this page with the label already found.
Limitations
- American English only. Other languages are not included.
- Text is read from the base game and the latest update (the update wins where both have a line). Text added by other resources is not here.
- Most labels have no known key name.
- Search is plain substring matching. There is no fuzzy matching, no stemming and no ranking.
- Replacing text with
AddTextEntryByHashis not verified in game by fivemad.