Texture Replacer
A planned to be full fledged texture replacing system for Inscryption, currently it has a full fledged deathcard system replacement module.
About this mod Author’s original text
Texture Replacer
This package is fully open source, meaning anyone that wishes to contribute may, as long as my license is applied to all forks of this project, additionally rights for contributors code still applies, e.g. if code in this mod did not come from me, YOU MUST ASK THE CODE'S AUTHOR FOR USAGE OF THAT SECTION OF CODE. If you wish to contribute or find bugs please send them to the Github found here: Also if this package ever at any point needs updating DM @thincreator3483 on discord.
What does this mod do?;
A ton for surprising little it shows within the game, allow us to break this into sections of explanation, it should help with understanding exactly what this does.
Deathcards Module
This can be toggled on and off via config property Deathcards Module in the Modules section, if toggled off none of this module will occur, if on all of it will occur based on circumstances.
Loaders
These all load on Launch, and when configs related to the Module changes, Any references to Objects or parsers can be looked at in the code, or when you use the mod in C# for whatever reason, likely not ideal to but code comments are there if you do.
- Loads RESERVED-NORIGHT found in TextureReplacer/Deathcards/{Chosen System}, and parses its contents for Subpath = ApplyNoRight = Inverse Apply and |-> ApplyNoRight = Inverse Apply, with this it parses out the Subpath name, and associates it with two bools, one that says "hey do we apply a RESERVED-NoRight.png for this path?" the other asks "Should this be applied in reverse where we switch the black in the given NoRight to cut a hole rather than paste a filling?" Oh yeah and with the |-> it utilizes the subpath from the previously applied subpath properties.
- Scans the path tree of TextureReplacer/Deathcards/{Chosen System} to get the subpaths and within those subpaths it defines a List of List> for each base set, if it spots a Emissive folder within it does the same however its added as a emissive set, technically a emissive set is by default added for each subpath, however if there is no Emissive folder it will be empty, which we handle dont worry.
- Loads RESERVED-Presets.csv found in TextureReplacer/Deathcards/{Chosen System}, and parses it into 3 components, one a List of Names, two a Conditions Object that will be associated with the name, and three a Preset Object that will be associated with the name.
- Loads RESERVED-Saves.csv if it exists in TextureReplacer/Deathcards/{Chosen System}, and does pretty much the same as step 3, however rather than a Preset Object its a SavedImages Object.
Deathcard Portrait Handlers
There are 3 Portrait Handling systems that we utilize to give the most cutomization possibilities to modders, there is a Portrait Randomizer which randomizes portraits for every deathcard not yet in Saves, and not found in the Presets, there is a Preset Handler which checks if Conditions between the deathcard and the presets conditions match and if they do completely we than apply the specified Preset, and lastly there is a Save Handler which does the same as the Preset Handler however, rather than applying a specified Preset it applies the saved randomized portrait or preset from a saved base64 string, this last one is done to optimize the handling so theres not visible lag every time you look at a deathcard.
Portrait Randomization
Runs when theres not a save and the names not found in Presets.
- Choses randomized peices from each Set that was loaded in HandleTrees, tries to choose a associated emission if that fails it continues without causing errors.
- Compiles the randomized peices into a Emission and Portrait
- Calls and Passes the Emission and Portrait into the LostEye handler, and overwrites the previous Emission and Portrait with the output of the handler.
- Sets the Deathcard head to the Portrait, and the Deathcard eyes_emissive to the Emission.
- Kills the base games Deathcards base.
- Enacts a sa
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.
Install these first, or the mod will not work: