Program behavior and features
All the buttons and interface features that you need to know for effective navigation.
Navigation
Changes saving into a file can executed using a keyboard shortcut Ctrl + S.
Text undo: after switching between Skill descs, Uptie Levels, or Object IDs, undo is reset because all text changes are recorded in text editor history, which means that you can accidentally insert a description of another object with undo.
To save name of any object, click the button to the right of the textfield (Visible in the screenshot below; undo reset rule does not apply to name textfields).
To open current file in external editor, right click on the json file path and press "Open with external editor" option from appeared context menu:

Switching between IDs can be done via Left/Right keyboard arrows, Back/Forward mouse buttons and the buttons on the sides of the ID itself.
To quickly switch between skill descriptions without using buttons in the navigation panel, right-click on them on limbus text preview itself.
For target ID switch, right-click on the ID button (Text input will appear) and enter the corresponding ID or Object Name (Characters case doesn't matter), then press Enter.

To copy ID, left-click on the ID button:

You can add summary descriptions to Passives, tooltip appears when you hover over the disabled summary button.

Files saving
Program tries to keep original encoding of file on save, otherwise uses UTF8.
Line break is
LF, notCRLF.All
nulldescriptions (Non-existing like only "id" and "name" for passive or buff, or no "desc" inside item at "coindescs" list in skill (Only{})) are replaced with empty string lines.
Context Menu Extra Replacements
The file with them can be connected via this option of currently selected Limbus Custom Language (When "Show advanced" checkbox is checked and all options is visible):

These files are a dictionary with options and a list of consecutive Regex replacements for selected text. Context Menu Extra Replacements can be opened with Shift + RMB click, another context menu will appear (Small empty dot will appear instead if there are no options or this dictionary file is not selected):

Structure of file
{Regex Option} - Context menu option 1
* Pattern: Some Regex pattern
Replace: Replacement for pattern matches with $1, $2, and $3 markers to insert values of Regex match groups
* Pattern: Some Regex pattern №2
Replace: Some replacement for pattern №2
{Regex Option} - Context menu option 2
* Pattern: Other patterns
Replace: Other replacementsAs you can see here, you can define the name of an option in the file using "{Regex Option} - ..." and then add replacements for it with "* Pattern: ..." and "Replace: ..." right after, which will be executed one after the other when option is clicked.
Introducion into Regex
Skip to File itself if you already know Regex enough.
If you don't know what Regex is at all, then briefly it allows you to use patterns to search/replace texts. In this case, patterns may have special parts such as "\d+" to take into consider any numbers instead of exact text to find: The "Person \d+" pattern will find all the strings "Person 1", "Person 2", "Person 3", ..., "Person 555" and etc, it consider any digits right after "Person ".
In the context of text replacement, you can put these special parts in parentheses and thereby define "Groups", the value of which can be inserted through $1, $2, $3, etc in replacement text: as example if pattern looks like this: "Person (\d+)", then first group ($1 in replacement) is gonna be a digits after "Person " word.
Basic Regex rules:
In Regex, a lot of regular symbols in patterns are technical, some most common of them (Does not apply for the replacement at "
Replace: ..."):Brackets (Round, sqare, and sometimes curly braces(If contains a number))
Plus (+)
Dollar ($)
Multiply (*)
Question mark (?)
Dot (.)
And others, read Regular Expression docs for full list. So to in order for them to be considered ordinary, you need to put a backslash in right before them: "\[Vibration\]" and "\+" from example above. To check your pattern for correctness you can use this website: https://regex101.com (Select options "PCRE2 (PHP >=7.3)" or "PCRE (PHP <7.3)" because they don't have serious requirements for escape symbols, such as if you choose ".NET 7.0 (C#)" and it will ask you to write quotes twice (""), because the syntax of the language requires it -> but readed pattern from .rg.txt file will consider them as just two quotes instead).
General values matching tokens for digits, solid words, 'OR' groups, and sequences (Screenshots are taken at regex101.com website mentioned above)
Any digits: \d+.

Solid word: \w+. (But numbers too)


Any character: just dot
.. (You can also put a+immediately after the dot to capture any amount of those characters, similar to the previous option.)
Groups capturing with OR |: "Inflict (\d+) \[(Combustion|Vibration)\]", as you can see there are "\[(Combustion|Vibration)\]" group construction, that will match both [Combustion] and [Vibration] (with any amount of them by \d+).

Any character from list: square brackets can define some list of characters for a match. This is exactly what is used in the "Keywords autodetection pattern" option for Limbus Custom Localizations.

You also can use minus as range between characters, they should follow each other ([A-Z] for example, [Z-A] would be incorrect).
Any characters from list with specified length: curly braces right after them specify the length of those characters amount from list. As example there a hexadecimal color is being matched (Characters from 'a' to 'f' + same with uppercase, and also digits from 0 to 9 with specified length of exactly 6 characters)

Regex simple demo
Demonstration №1. Pattern is "Person (\d+)", replacement is "Object №$1 in table", text to search within is "Currently: Person 22 there", result is: "Object №22 in table".
Demonstration №2. Pattern is "Inflict \+(\d+) \[Combustion\] Count" ("Inflict 'Any' Burn count" from Limbus Company), replacement is "Raises [Combustion] Count by $1", text to search within is "Inflict +3 [Combustion] Count", result is: "Raises [Combustion] Count by 3".
File itself
Actual replacement option example:
{Regex Option} - English localization rephrasing
* Pattern: Inflict \+(\d+) \[(\w+)\] Count
Replace: Raises [$2] Count by $1
* Pattern: Trigger \[VibrationExplosion\]; then, reduce \[Vibration\] Count by (\d+)
Replace: Trigger [VibrationExplosion] and reduce it's Count by $1It replaces base 'count inflicting' with 'count raising', then search for Tremor Burst as second step and replace it with simplified second part of sentence.
.rg.txt file syntax Notes:
The meanings of names, patterns, and replacements are read out by cutting out all the characters of the string immediately after the syntactically appropriate label. That is, if the string starts with "
{Regex Option} -", then the name of the option will be all its characters starting with the character 18. Same with patterns and replacements (Starting from character 12)."
* Pattern: ..." and "Replace: ..." should not have spaces between each other.You can anyway write other text in file between those "
* Pattern: ..." and "Replace: ..." or "{Regex Option} - ...", syntax matching does not provide for file reading errors due to unknown text structures.
Actual code of file reading if some things are still unclear (Starting from char 17 and 11 in code instead of 18 and 12 is called "Indexes" in programming if you're got skepticism there. The indexes start counting from zero):

Context Menu Hotkeys
Hotkeys file is located at [⇲] Assets Directory\Context Menu Hotkeys.json file.

Each command contains Keys lists, which contains the keyboard key names that will trigger the context menu option when pressed at the same time. (The order does not matter, Left Alt + Key also works despite the Windows warning sound)
Keyboard key names listed at the bottom of file:

Extra Replacements hotkeys
Along with the regular commands, you can add hotkeys to the commands of this alternative context menu using the command names in the form of "Extra 1", "Extra 2", etc. as example to use options №1 and №2. (Counting from top to bottom of Extra Replacements context menu (Context Menu Extra Replacements above))

Json file types specifying
By default, the program determines the type of localization file by its name start pattern (With automatically removed prefixes "EN_", "KR_", "JP_"):
Skills
Skills
Passive
Passives
BattleKeywords
Keywords (Text popup mode)
Bufs
Keywords (In-battle info mode)
EGOgift
E.G.O Gifts
But there are also alternative way to set localization file type instead of renaming:
{
"Manual File Type": "Skills (With upties)",
"dataList": [
{
"id": 1000,
// ...You can insert "Manual File Type" property before or after "dataList" property with specific value.
Skills
Skills (With upties)
Skills (With upties; With abName) (abName is E.G.O Skills Abnormality names)
Passives
Keywords (As BattleKeywords by default)
Keywords (Bufs)
Keywords (BattleKeywords)
E.G.O Gifts
Can be useful for Custom Identity/E.G.O Preview creator.
Last updated