JSON Boss Dialogue
LESHY + ROYAL UPDATE! Easily load custom dialogue for all bosses in Kaycee's Mod with a JSON file.
Last updated | 2 years ago |
Total downloads | 5884 |
Total rating | 5 |
Categories | Libraries Misc Act I |
Dependency string | KellyBetty-JSON_Boss_Dialogue-1.1.1 |
Dependants | 2 other packages depend on this package |
This mod requires the following mods to function
BepInEx-BepInExPack_Inscryption
BepInEx pack for Inscryption. Preconfigured and ready to use.
Preferred version: 5.4.1901API_dev-API
The de-facto standard core API for all Inscryption mods. This lets you create new cards, abilities, challenges, map nodes, starter decks, and more.
Preferred version: 2.4.0README
This is a BepInEx plugin mod made for Inscryption. This mod lets you load custom dialogue for all bosses in Kaycee's Mod with a JSON file.
It adds a custom menu screen to Kaycee's Mod, which looks like this:
This mod doesn't change your original game files and shouldn't affect your main game save data, but making a backup of your save file before installation is still advised.
Installation
This mod’s only dependencies are BepInEx and the InscryptionAPI mod.
There are two ways of installing this mod: with the help of a mod manager (like r2modman or the Thunderstore Mod Manager) or manually.
Installation (Mod Manager)
- Download and install r2modman or the Thunderstore Mod Manager.
- Install this mod and all of its dependencies with the help of the mod manager!
Installation (Manual)
- Download and install BepInEx.
- If you're downloading it from its Github page, follow this installation guide.
- If you're downloading "BepInExPack Inscryption" from Thunderstore, follow the manual installation guide on the Thunderstore page itself. This one comes with a preconfigured
BepInEx.cfg
file, so it's advised.
- Download and install the Inscryption API mod following its manual installation guide.
- Find the
BepInEx > plugins
folder. - Place the contents of "JSONBossDialogue.zip" in a new folder within the plugins folder.
Creating the JSON File
When making the JSON file for your custom dialogue, you should be mindful of the following:
- Your JSON file’s name must end in
_bd.json
. This is required in order for this mod to find it. - Your JSON file can be anywhere in the
BepInEx/plugins
folder, including subfolders. (And yes, you can put it in the same folder as your own mod.) - None of the fields are required, but it's strongly encouraged you put something in the 'FileName' and 'Description' fields so that your file is easy to identify in the dialogue selection screen inside the game.
If you don't know how to create a JSON file, an easy way to do it is creating a .txt
file and renaming it to end in .json
.
Afterward, paste the following into the file:
{
"FileName": "",
"Description": "",
"Prospector": {
"PreIntro": "",
"Intro": "",
"BeforePickaxe": "",
"AfterPickaxe": "",
"IfNoGold": "",
"MuleKilled": ""
},
"Angler": {
"PreIntro": "",
"Intro": "",
"GoFish": "",
"AimingHook": "",
"EasyChoose": "",
"HookPull": ""
},
"TrapperTrader": {
"PreIntro": "",
"Intro": "",
"PrePhase2": "",
"Phase2": "",
"PreTrade": "",
"Trade": "",
"PostTrade": ""
},
"Leshy": {
"Intro": "",
"AddCandle": "",
"Deathcards_Intro": "",
"Deathcards_Outro": "",
"PreMoon": "",
"MoonPlayed": "",
"StinkyMoon": "",
"MoonDestroyed": ""
},
"Royal": {
"LeshyConfusion": "",
"WakeUp": "",
"PreIntro": "",
"Intro": "",
"Cannons": "",
"CannonFire": "",
"Rodents": "",
"Limoncello_Charge": "",
"LeshyStop": "",
"Limoncello_Intro": "",
"Limoncello_Mutinee": "",
"Limoncello_NoCards": "",
"Limoncello_Sunk": "",
"Defeated": "",
"Farewell": ""
}
}
Your custom dialogue should go between the second pair of quotation marks in each line. Be sure not to erase any commas!
All custom dialogue can only be one line, regardless of how many lines there normally are in the corresponding original dialogue. I'm sorry, but it's simpler that way. I may add support for multiple lines eventually, though!
Empty Fields
You can leave as many fields empty as you wish. If a field is empty, the mod will let the game play the regular dialogue for the corresponding part.
You can erase any fields, so long as you're mindful of JSON syntax!
For example, let's say I'm making a mod that replaces the Pack Mule with an Unicorn, and I want to add custom dialogue for the Prospector only when he talks about his Pack Mule, making him talk about my unicorn instead. I can simply do:
{
"FileName": "Unicorn Mod",
"Description": "Changes Prospector dialogue so he'll talk about my Unicorn.",
"Prospector": {
"MuleKilled": "YE COWARD!! THAT UNICORN WAS DEFENSELESS!!"
}
}
And this should be all I need! No need to include the Angler or Trapper/Trader fields, for example.
If you're struggling with JSON syntax, you can use an online JSON validator. There are quite a few. I personally like JSONLint!
And here's an explanation of what each field is for:
Filename & Description
Field | Explanation |
---|---|
FileName | The name of your mod. This is the name that will be displayed in the dialogue selection screen when the player hovers over your file. |
Description | The description of your custom dialogue mod. If you don't want to spoil what lines you replaced, that's fine too! |
And here's an explanation of each field and the dialogue lines they replace:
Prospector
You can use this to change the Prospector's dialogue lines during his boss fight.
Field | Dialogue |
---|---|
PreIntro | Leshy's ominous lines before the Prospector's intro. (I think this is skipped in Kaycee's Mod.) |
Intro | Prospector's introduction. |
BeforePickaxe | What the Prospector says before hitting the board with the pickaxe. Defaults to "THAR'S GOLD IN THEM CARDS!". |
AfterPickaxe | What the Prospector says after hitting the board with the pickaxe. Defaults to "G-G-GOLD! I'VE STRUCK GOLD!". |
IfNoGold | What the Prospector says if there are no cards on the board when he's about to strike it (I assume?). Defaults to "N-... NO GOLD?". |
MuleKilled | What the Prospector says when you kill his Pack Mule card. |
Angler
You can use this to change the Angler's dialogue lines during his boss fight.
Field | Dialogue |
---|---|
PreIntro | Leshy's ominous lines before the Angler's intro. |
Intro | Angler's introduction. |
GoFish | What the Angler says after placing his Bait Buckets. |
AimingHook | What the Angler says when he randomly aims his hook at one of your cards. (I think this is skipped in Kaycee's Mod?) |
EasyChoose | What the Angler says when you place a new card on the board and he aims his hook towards it. (I think this is skipped in Kaycee's mod.) |
HookPull | What the Angler says when he pulls one of your cards with his hook. (I think this is skipped in Kaycee's Mod.) |
Trapper / Trader
You can use this to change the Trapper/Trader's dialogue lines during their boss fight.
Field | Dialogue |
---|---|
PreIntro | Leshy's ominous lines before the Trapper's intro. |
Intro | Trapper's introduction. |
PrePhase2 | Trapper switches with Trader. |
Phase2 | Trader's introduction. |
PreTrade | What the Trader says before trading. |
Trade | What the Trader says during the trade. |
PostTrade | What the Trader says after trading. |
Leshy
You can use this to change Leshy's dialogue lines during his boss fight.
Field | Dialogue |
---|---|
Intro | Leshy's lines before his own fight starts. |
AddCandle | Leshy's lines before he lights his third candle. |
Deathcards_Intro | Phase 2. Leshy's lines before he plays deathcards. |
Deathcards_Outro | Leshy's lines after he plays the deathcards. |
PreMoon | Leshy's ines before he takes a photo of the moon and plays it. |
MoonPlayed | Leshy's lines after he plays his Moon card. |
StinkyMoon | Leshy's lines when you use the Stinky sigil to weaken his Moon. |
MoonDestroyed | Leshy's lines when you destroy his Moon card. |
Note: The "StinkyMoon" line will not play during Kaycee's Mod thanks to the Moon's "Made of Stone" sigil, and since this mod only works with Kaycee's Mod, this field does nothing. I'm only including the "StinkyMoon" field in case I decide to do something with it in the future.
Royal
You can use this to change Royal's dialogue lines during his boss fight.
Field | Dialogue |
---|---|
LeshyConfusion | Leshy's lines before he lets Royal take over. |
WakeUp | Royal "wakes up". |
PreIntro | Royal's excited lines before the skull is lifted off the table. |
Intro | Royal's introduction. |
Cannons | What Royal says when he's aiming his cannons. |
CannonFire | What Royal says when he fires his cannons. |
Rodents | Royal's lines when he gives you a pack of Rodent cards. |
Limoncello_Charge | Phase 3: Royal's lines before he charges at you with his ship. |
LeshyStop | Leshy's lines as he stops the Limoncello before it hits the player. |
Limoncello_Intro | Royal introduces the Limoncello. (Gets skipped after a few playthroughs. (?)) |
Limoncello_Mutinee | Royal's lines when one of his skeletons betrays him. |
Limoncello_NoCards | Royal's lines when you run out of squirrels during his fight. |
Limoncello_Sunk | Royal's lines when you defeat the Limoncello. |
Defeated | Royal's line before he tips his hat. Defaults to "Avast ye!". |
Farewell | Royal's goodbye. It defaults to "Farewell.". |
Important Notes
A few things you should keep in mind about your JSON file:
- You can have as many
_bd.json
files in theBepInEx/plugins
directory as you wish. Two different mods that use this custom dialogue mod are perfectly compatible with each other. - This mod may not be compatible with other mods that change boss dialogue.
- Validating your JSON with the help of an online tool can save you a lot of time and headache! Just look up "JSON Validator".
- An online JSON validator tool I personally like is JSONLint, it's neat!
- Feel free to use a
_bd.json
file for custom dialogue when making your own mod! So long as you set this mod as a dependency, it should work.
Help
Q: "I got an error that says no _bd.json
file could be found! What do I do?"
A: Double-check your JSON file. Make sure it ends in _bd.json
and that it's somewhere inside of the BepInEx/plugins
folder.
Q: "I got an error that says it could not load JSON from my _bd.json
file! What does this mean?
A: It means there's something wrong with your file. Make sure you didn't make any mistakes with the JSON syntax (i.e. erasing any commas).
As I mentioned in the "Important Notes" section above, using an online JSON validator tool can help you a lot with this. I personally like JSONLint, it's neat!
Q: "Does this mod support color codes?
A: I don't think so...?? I haven't tested it enough! If you can get color codes working though, you should totally let me know!
Credits
This project uses Newtonsoft.Json for parsing JSON data.
Newtonsoft.Json's license can be found here.