Custom Identity/E.G.O Preview creator
This mode is designed for creating elegant preview imitation of Identities and E.G.O preview information using all the program's features. It may be useless if you're skilled in image editing.
Initially, knowledge of limbus localization syntax is required, as you'll need to edit them (Сreate localization files and add the required number of objects; write Skill Display info). This shouldn't be a problem if you're localizing Limbus Company and have worked with them many times.
Examples of created previews



Initial requirements (Quick overview)
Skills, passives, and keywords localization files.
Skills Display Info.
Cutted images of status effects and skill icons.
Portrait image (In case with Identities, it is recommended to use a good looking frame of the first or second image from the teaser video (With upscale if the quality is poor). If E.G.O, image just can be cutted from official image and insterted without interfering elements around (Skill icons and name in case with Identities), maybe with a little padding towards the inside).
Requirements creation
Localization files
You can create all required files from program instead of writing them manually in text editor. To do this, first, you need to enable this option in the settings window:

This will allow you to:
Manually create localization files by context menu for open file button:
Create additional json objects by context menu for the disabled 'Next object' button:

Create additional Upties in Skills (Probably useless for Identity/E.G.O Preview Creator since Skill files there do not require multiple upties):

Select Affinities for Skills (It is used only to highlight the skill name in the drop-down list for selecting Skills in the Preview Creator UI):

Input manual colors for keywords (This can be used instead of adding keyword colors to display them in this program without touching the "
[⇲] Assets Directory\Color Dictionaries\Keyword Colors.cd.txt" file. Suitable for template keywords, which you will create based on this guide):
Initial info:
6 Skills
First: 2 Coins, Envy affinity
Second: 2 Coins, Wrath affinity
Third: 3 Coins, Lust affinity
Alt third (№3-2): 1 Coin, Lust affinity
Fourth (Must belong to Yi Sang): 2 Coins, Pride affinity
Defense: 1 Coin (No desc -> Unnecessary), Sloth affinity
4 Passives
2 Status effects
Basic samples of JSON localization files:
{
"Manual File Type": "Skills",
"dataList": [
{
"id": 1000, // Specify any IDs as you wish (1000, 2000, 3000, 3500 as example for three skills including alternative third (3-2))
"levelList": [
{
"Affinity": "Skill Affinity name", // Sign affinity to color skill name at drop-down list for selection in the corresponding color (Not really necessarily)
"level": 4, // There must be one and only Uptie Level (Number does not matter)
"name": "Skill №1 name",
"desc": "Skill №1 desc",
"coinlist": [
{ // First
"coindescs": [
{
"desc": "Coin №1 desc"
}
]
},
{ // Second
"coindescs": [
{
"desc": "Coin №2 desc"
}
]
}
// Some other coins after
]
}
]
}
// Some other skills
]
}{
"Manual File Type": "Passives",
"dataList": [
{
"id": 1000,
"name": "Passive №1 name",
"desc": "Passive №1 desc"
// Summary descs is not required
},
{
"id": 2000,
"name": "Passive №2 name",
"desc": "Passive №2 desc"
}
// Some other passives
]
}{
"Manual File Type": "Keywords (BattleKeywords)",
"dataList": [
{
"id": "Keyword1ID",
"name": "Keyword №1 name",
"desc": "Keyword №1 desc",
"Color": "#e30000"
// "Color" property is recommended to use instead of "[⇲] Assets Directory\Color Dictionaries\Keyword Colors.cd.txt" file with color pairs
},
{
"id": "Keyword2ID",
"name": "Keyword №2 name",
"desc": "Keyword №2 desc",
"Color": "#f8c200"
}
// Some other keywords
]
}Actual files used on images above (Keyword IDs in the text are those already added to the game; use "MTL" custom localization property to view them through program due to Shorthands presence in the text as [KeywordID:`Name`]):
{
"Manual File Type": "Skills",
"dataList": [
{
"id": 1000,
"levelList": [
{
"Affinity": "Envy",
"level": 4,
"name": "Презренная вещь",
"desc": "[WhenUse] Сила в столкновении повышается против целей, на которых есть [GazeRyoshu:`Взор`] или [ContemptRyoshu:`Презрение`]\n[WhenUse] Сила монет повышается за каждые X единиц в сумме силы [Laceration:`Кровотечения`] и [Vibration:`Тремора`] на цели",
"coinlist": [
{
"coindescs": [
{
"desc": "[OnSucceedAttack] Повышает счётчик [Laceration:`Кровотечения`] и [Vibration:`Тремора`]"
}
]
},
{
"coindescs": [
{
"desc": "[OnSucceedAttack] Наносит [GazeRyoshu:`Взор`]"
}
]
}
]
}
]
},
{
"id": 2000,
"levelList": [
{
"Affinity": "Wrath",
"level": 4,
"name": "Испытайте сей трепет",
"desc": "[WhenUse] Сила в столкновении повышается против целей, на которых есть [GazeRyoshu:`Взор`] или [ContemptRyoshu:`Презрение`]\n[WhenUse] Сила монет повышается за каждые X единиц в сумме силы [Laceration:`Кровотечения`] и [Vibration:`Тремора`] на цели",
"coinlist": [
{
"coindescs": [
{
"desc": "[OnSucceedAttack] Наносит [Laceration:`Кровотечение`] и [Vibration:`Тремор`]"
}
]
},
{
"coindescs": [
{
"desc": "[SuperCoin]\n[OnSucceedAttack] Повышает счётчик [Laceration:`Кровотечения`] и [Vibration:`Тремора`]\n[OnSucceedAttack] Наносит [GazeRyoshu:`Взор`]\n[OnSucceedAttack] Если счётчик [Vibration:`Тремора`] цели равен X и более, [VibrationExplosion:`Провоцирует Тремор`] и понижает его счётчик"
}
]
}
]
}
]
},
{
"id": 3000,
"levelList": [
{
"Affinity": "Lust",
"level": 4,
"name": "Трепет, Презрение",
"desc": "Если на цели есть [GazeRyoshu:`Взор`], наносит ей больше [Laceration:`Кровотечения`] и [Vibration:`Тремора`] этим навыком\n[BeforeAttack] Если на всех противниках в сумме X и более [GazeRyoshu:`Взора`] или Y и более [ContemptRyoshu:`Презрения`], использует 「Ниспадающий каскадом взор, полный трепета подле презрения」 вместо этого\n[WhenUse] Сила монет и урон повышаются за каждые X единиц в сумме силы [Laceration:`Кровотечения`] и [Vibration:`Тремора`] на цели",
"coinlist": [
{
"coindescs": [
{
"desc": "[OnSucceedAttack] Наносит [Laceration:`Кровотечение`] и [Vibration:`Тремор`]"
}
]
},
{
"coindescs": [
{
"desc": "[OnSucceedAttack] Повышает счётчик [Laceration:`Кровотечения`] и [Vibration:`Тремора`]"
}
]
},
{
"coindescs": [
{
"desc": "[SuperCoin]\nНаносит больше урона за каждые X [GazeRyoshu:`Взора`] на цели\n[OnSucceedAttack] Наносит [GazeRyoshu:`Взор`]\n[UnBrokenCoinOnSucceedAttack] [Switch_Vibration:`Преобразует амплитуду`] в [VibrationBleeding:`Тремор — Кровоизлияние`]\n[OnSucceedAttack] [VibrationExplosion:`Провоцирует Тремор`] и понижает его счётчик"
}
]
}
]
}
]
},
{
"id": 3500,
"levelList": [
{
"Affinity": "Lust",
"level": 4,
"name": "Ниспадающий каскадом взор, полный трепета подле презрения",
"desc": "Внешние эффекты не могут вызвать повторное использование этого навыка\nДополнительными целями становятся противники с [GazeRyoshu:`Взором`] или [ContemptRyoshu:`Презрением`]\n• Наносит меньше урона дополнительным целям\n• Если цель только одна, наносит ей больше урона (В фокусированных столкновениях за одну цель считается Часть)\n[WhenUse] Сила монет и урон повышаются за каждые X единиц в сумме силы [Laceration:`Кровотечения`] и [Vibration:`Тремора`] на цели\n[WhenUse] Наносит больше урона за каждые X единиц в сумме [GazeRyoshu:`Взора`] на всех целях\n[EndSkill] [GazeRyoshu:`Взор`] и [ContemptRyoshu:`Презрение`] снимаются с целей, по которым попала атака",
"coinlist": [
{
"coindescs": [
{
"desc": "[SuperCoin]\nНаносит больше урона, если на цели есть [ContemptRyoshu:`Презрение`]\n[OnSucceedAttack] Наносит [Laceration:`Кровотечение`] и повышает его счётчик\n[OnSucceedAttack] Наносит [Vibration:`Тремор`] и повышает его счётчик\n[OnSucceedAttack] [Switch_Vibration:`Преобразует амплитуду`] в [VibrationBleeding:`Тремор — Кровоизлияние`]\n[OnSucceedAttack] [VibrationExplosion:`Провоцирует Тремор`] и понижает его счётчик"
}
]
}
]
}
]
},
{
"id": 4000,
"levelList": [
{
"Affinity": "Pride",
"level": 4,
"name": "Я должен выстрелить / В любой момент",
"desc": "[StartBattle] Выбирает целью в первую очередь 「ЭГО Корп. N::Прeзрение, Трепет」 Рёшу\n[StartBattle] Количество целей повышает за каждые X [BoseProjektil:`Разорванных воспоминаний`]\n[WhenUse] Сила монет повышается за каждые X [Breath:`Дыхания`]\n[WhenUse] Базовая сила повышается за каждые X единиц счётчика [Breath:`Дыхания`]\n[WhenUse] Получает [Breath:`Дыхание`] за каждое [BoseProjektil:`Разорванное воспоминание`]\n[EndSkill] Теряет (Количество [BoseProjektil:`Разорванных воспоминаний`] × X) СД\n[EndSkill] Если было X [BoseProjektil:`Разорванных воспоминаний`] в начале боевой фазы, теряет их и восстанавливает СД",
"coinlist": [
{
"coindescs": [
{
"desc": "[SuperCoin]\n• Эта монета наносит урон только основной цели"
}
]
},
{
"coindescs": [
{
"desc": "[SuperCoin]\n• Эта монета наносит урон только дополнительным целям\n• Если попадание первой монетой не было критическим, а 「ЭГО Корп. N::Прeзрение, Трепет」 Рёшу выжила после него, то лишь 1 случайная дополнительная цель получает урон\nНаносит больше урона за каждое [BoseProjektil:`Разорванное воспоминание`] и за каждый 1% потерянных ОЗ главной цели\nНаносит больше урона при критическом попадании за каждое [BoseProjektil:`Разорванное воспоминание`] и за каждую единицу силы своего [Breath:`Дыхания`]\n[OnSucceedAttack] Наносит [Laceration:`Кровотечение`] и повышает его счётчик"
}
]
}
]
}
]
},
{
"id": -1000,
"levelList": [
{
"Affinity": "Sloth",
"level": 4,
"name": "В хватку",
"desc": "[StartBattle] Если нет [ContemptPersonality:`Презрения взора`], то получает его, если всех противниках в сумме X и более [GazeRyoshu:`Взора`] или Y и более [ContemptRyoshu:`Презрения`]\n[WhenUse] Итоговая сила повышается, если есть [ContemptPersonality:`Презрение взора`]\n[WhenUse] Если получает удар, наносит [Laceration:`Кровотечение`] атакующему"
}
]
}
]
}{
"Manual File Type": "Passives",
"dataList": [
{
"id": 1000,
"name": "Рука @#$, которую я упустила",
"desc": "Наносит [GazeRyoshu:`Взор`] целям при попадании по ним.\n• Наносит больше [GazeRyoshu:`Взора`], если имеется [GazePersonality:`Взор презрения`].\n\nНаносит [GazeRyoshu:`Взор`] атакующему при получении удара.\n• Если при этом имеется [ContemptPersonality:`Презрение взора`], то при получении удара от последней монеты наносит атакующему урон Леностью, равный X% полученного от этой монеты урона.\n\nЕсли Рёшу использовала навык 「Ниспадающий каскадом взор, полный трепета подле презрения」 и в конце атаки сняла [GazeRyoshu:`Взор`] или [ContemptRyoshu:`Презрение`] с противника: получает ((Снятый с противника [GazeRyoshu:`Взор`] / X) + (Снятое с противника Презрение × Y)) [GazePersonality:`Взора презрения`] на следующий ход."
},
{
"id": 2000,
"name": "Хватка, препятствующая падению",
"desc": "Если Рёшу оглушили, она получает [Protection:`Защищённость`] и [ContemptPersonality:`Презрение взора`] на следующий ход.\n\nПри своей смерти накладывает следующие эффекты на 3 противников с наибольшим значением [GazeRyoshu:`Взора`] или [ContemptRyoshu:`Презрения`] (В убывающем порядке):\n• Наносит [Binding:`Связывание`] на следующий ход;\n• Наносит [Laceration:`Кровотечение`] и повышает его счётчик;\n• Наносит [Vibration:`Тремор`] и повышает его счётчик."
},
{
"id": 3000,
"name": "Позвольте мне показать всем кое-что очень интересное",
"desc": "Если 「ЭГО Корп. N::Рoковая пуля」 И Сан тоже участвует в битве:\n• Начало боевой фазы: используемый им навык 「Выстрел на определение цели」 приобретает следующие эффекты:\n - [BeforeUse] Если Рёшу имеет [ContemptPersonality:`Презрение взора`] и может использовать свои базовые навыки, то использует 「Я должен выстрелить / В любой момент」 вместо этого и выбирает Рёшу его главной целью;\n - [BeforeUse] Если главной целью не является Рёшу и она может использовать свои базовые навыки, указывает ей провести одностороннюю атаку своим первым навыком 「Презренная вещь」 против главной цели. (Она не опускает ОЗ этой цели ниже 1; Может атаковать союзников)"
},
{
"id": 4000,
"name": "Оно струится и плачет",
"desc": "Выбранный в команду первее остальных союзник наносит [Laceration:`Кровотечение`] своим целям при попадании по ним.\n• Если на цели уже есть [Laceration:`Кровотечение`], то повышает его счётчик вместе с этим.\n\nЕсли этот же союзник получает удар от противника, наносит атаковавшему [Vibration:`Тремор`].\n• Если на атакующем уже есть [Vibration:`Тремор`], то повышает его счётчик вместе с этим."
}
]
}{
"Manual File Type": "Keywords",
"dataList": [
{
"id": "VibrationBleeding",
"name": "Тремор — Кровоизлияние",
"desc": "• При [VibrationExplosion:`Провокации Тремора`] на себе получает урон Похотью, равный (Сумма силы [VibrationBleeding:`Тремора`] и [Laceration:`Кровотечения`] / X), а счётчик [Laceration:`Кровотечения`] понижается\n※ Сохраняет все остальные свойства обычного [Vibration:`Тремора`]",
"Color": "#e30000"
},
{
"id": "GazePersonality",
"name": "Взор",
"desc": "• Максимальное значение: 7\n• Получает больше урона от Рёшу и наносит больше урона ей же за каждые X [GazePersonality:`Взора`] на себе\n• При смерти перемещается на другого союзника с наименьшим значением [GazePersonality:`Взора`] или без него (Не активируется при смерти от атаки Рёшу 「Ниспадающий каскадом взор, полный трепета подле презрения」)\n• Конец хода: при значении X и более превращается в [ContemptPersonality:`Презрение`]",
"Color": "#e30000"
},
{
"id": "ContemptPersonality",
"name": "Презрение",
"desc": "• Получает меньше урона от Рёшу и наносит меньше урона ей же\n• Не может получить [GazePersonality:`Взор`], пока этот эффект активен\n• При смерти перемещается на другого союзника с наименьшим значением [ContemptPersonality:`Презрения`]/[GazePersonality:`Взора`] или без него (Не активируется при смерти от атаки Рёшу 「Ниспадающий каскадом взор, полный трепета подле презрения」)",
"Color": "#e30000"
}
]
}Skills Display Info
Skills Display Info file is needed to know how to display skill header (Icon, frame, affinity). These files can be created in the Skills Display Info mager window:


By default, when saving the Skills Display Info json file with the selected skill icons in the same directory as these icons or in a parent directory, the path to the image files will be changed to the relative one. That is, if skill icon is positioned as C:\Work\Images\Skill 1.png, and the Skills Display Info json file was saved in C:\Work , then the path to Skill 1.png inside the json file will look like :Current-Directory:\Images\Skill 1.png. This allows you to make them portable, but nevertheless, be careful if you change location of the Skills Display Info file.
Created json text example Display Info file with first N Corp. E.G.O::Contempt, Awe Ryōshū skill:
{
"Skills Info": [
{
"(Name)": "Contemptous Thing",
"ID": 1000, "Icon ID": ":Current-Directory:/../Skill Icons/Skill 1.png",
"Specific": {
"Affinity": "Envy",
"Damage Type": "Pierce",
"Action": "Attack",
"Rank": 1
},
"Characteristics": { "Coins List": ["Regular", "Regular"] },
"Attributes": { "Show Affinity Icon": true } // This option must be excluded for defense skills
}
// Some other constructors
]
}Actual files used on images above:
{
"Skills Info": [
{
"(Name)": "Contemptous Thing",
"ID": 1000, "Icon ID": ":Current-Directory:/Skill Icons/Skill 1.png",
"Specific": {
"Affinity": "Envy",
"Damage Type": "Pierce",
"Action": "Attack",
"Rank": 1
},
"Characteristics": { "Coins List": ["Regular", "Regular"] },
"Attributes": { "Show Affinity Icon": true }
},
{
"(Name)": "Be Awed",
"ID": 2000, "Icon ID": ":Current-Directory:/Skill Icons/Skill 2.png",
"Specific": {
"Affinity": "Wrath",
"Damage Type": "Pierce",
"Action": "Attack",
"Rank": 2
},
"Characteristics": { "Coins List": ["Regular", "Unbreakable"] },
"Attributes": { "Show Affinity Icon": true }
},
{
"(Name)": "Awe, Contempt",
"ID": 3000, "Icon ID": ":Current-Directory:/Skill Icons/Skill 3.png",
"Specific": {
"Affinity": "Lust",
"Damage Type": "Pierce",
"Action": "Attack",
"Rank": 3
},
"Characteristics": { "Coins List": ["Regular", "Regular", "Unbreakable"] },
"Attributes": { "Show Affinity Icon": true }
},
{
"(Name)": "Cascading Gaze of Awe Underneath Contempt",
"ID": 3500, "Icon ID": ":Current-Directory:/Skill Icons/Skill 3-2.png",
"Specific": {
"Affinity": "Lust",
"Damage Type": "Pierce",
"Action": "Attack",
"Rank": 3
},
"Characteristics": { "Coins List": ["Unbreakable"] },
"Attributes": { "Show Affinity Icon": true }
},
{
"(Name)": "I Shall Fire / Anytime",
"ID": 4000, "Icon ID": ":Current-Directory:/Skill Icons/Skill 4.png",
"Specific": {
"Affinity": "Pride",
"Damage Type": "Pierce",
"Action": "Attack",
"Rank": 3
},
"Characteristics": { "Coins List": ["Unbreakable", "Unbreakable"] },
"Attributes": { "Show Affinity Icon": true }
},
{
"(Name)": "To Grasp",
"ID": -1000, "Icon ID": ":Current-Directory:/Skill Icons/Defense.png",
"Specific": {
"Action": "Guard",
"Affinity": "Sloth"
},
"Characteristics": { "Coins List": ["Regular"] }
// No "Show Affinity Icon": true attribute
}
]
}Optional custom keywords in text
In the "Localization files" step, a keyword file was created that could potentially act as a Bufs*.json file to display keywords in text via [KeywordID].
So, recalling what was said in Base setup about Additional Keywords Directory, you can specify in this property the folder with this keyword file. The only requirement is that the file name must start with "Bufs" (Bufs 「N Corp. E.G.OːːContempt, Awe」.json as example). Also copy cutted keyword icons to the [⇲] Assets Directory\[⇲] Limbus Images\Keywords.

Otherwise, you can disable these options at the bottom of settings window to remove underline and sprites from all keywords:

Creating image itself
In the title bar, there are special button to switch ui.

This will transform the interface into this mode.

You can find various image settings here, but adding text is the only thing need detailed explaining:
At the bottom of the list there is a section called "Text info sources", select all previously created files in it.

After files are selected, you will have access to a menu at the bottom called "Selected item settings" corresponding to the text item added to the column (The files described above in the steps about creating requirements were used).

For skills, to add displaying you need to select both "Skills ID from localization file" and "Skill constructor from Display Info".

To save the output image, click on the scans canvas icon in the titlebar or Ctrl + P.
Remarks
Column items have context menu on right click (Move up/down, remove options).
To reset slider value or selected file, press
Left Shift+Right clickon the slider or file selection button.You can hide/show "[Column №1/2 Add item..]" buttons via Ctrl + F.
Left-clicking on a section header collapses/expands it.
For more precise adjustment through the sliders you can clamp the right or left part of slider line and Thumb will start to shift to the side at 1px speed.
The appearance of all descriptions depends on the custom localization settings you have selected and should be identical to how you see it when editing localization file.
All selected files that are in the same (Or sub-folder) together with the saved (Save it first somewhere before attaching images or files) project file are marked as relative through
:Current-Directory:in path (Exactly the same as in Skills Display Info) to indicate the full path to the project json file, maybe that allows to share it without without having to re-select all files.
Last updated

