

Have you installed too many card mods and want your runs through Kaycee's Mod to be a little more streamlined? This is the mod for you.
This mod adds a screen to the setup of each run through Kaycee's Mod. It allows you to toggle which cards will or will not appear in the upcoming run through the use of 'packs.' Mods that use this API can register themselves as packs, and players can turn each pack on or off as they wish.
This mod uses the API's concept of a "mod prefix" on each card to identify which card belongs to which pack.
When you deactivate a pack for a run through Kaycee's Mod, this mod will temporarily remove all metacategories from all cards in that pack. This will prevent the card from appearing in card choice nodes, trader nodes, rare card selection nodes, etc. However, other references to these cards (such as Evolve or Ice Cube) will remain.
This mod will also try to remove encounters from each region that contain excluded cards. However, most card pack mods don't come with encounters, which means that a lot of pack combinations will result in not having any valid encounters. In this situation, the mod reverts to using the game's default encounters.
Packs are discovered by looking at the entire card pool and seeing what cards belong to which prefix. Each card is grouped with its prefix, and assigned a Pack based on that prefix. The game will create a default pack art and attempt to create a default description for every pack of cards it discovers, but mod creators can build their own pack descriptions and pack arts as well.
This mod comes with pack definitions and custom art for the following mods:
As with most mods, you need BepInEx installed.
You will also need the API installed.
The zip file should be structured in the same way as your Inscryption root directory. Just drop the 'BepInEx' folder into your Inscryption directory and you're golden.
This cannot be stressed enough. This mod relies on the mod prefix to sort out which cards belong to which pack, so it is your responsibility to make sure that you've selected a mod prefix for your cards and that all your cards use it.
If you use JSON Loader to build your cards, it's really easy to add a pack definition to your mod. Here's what you need to do:
{
"Title": "Incredible Card Expansion",
"Description": "This card pack is full of cards that will blow your mind.",
"ModPrefix": "boom",
"PackArt": "Artwork/boom_pack.png",
"ValidFor": ["Nature"]
}
You can also create a card pack using this API directly. All you need to do is ask the PackManager to create a PackInfo object for the mod prefix associated with your cards.
using Infiniscryption.PackManager;
public static void CreatePack()
{
PackInfo incrediPack = PackManager.GetPackInfo("boom");
incrediPack.Title = "Incredible Card Expansion";
incrediPack.SetTexture(TextureHelper.GetImageAsTexture("Artwork/boom_pack.png");
incrediPack.Description = "This card pack is full of cards that will blow your mind.";
incrediPack.ValidFor.Add(CardTemple.Nature);
}
It is strongly recommended however that you do not create a hard dependency between your card pack and this API. Instead, you can create a soft dependency using the following pattern:
public static void TryCreatePack()
{
try
{
CreatePack()
} catch (Exception ex)
{
Plugin.Log.LogInfo("Could not create pack. Pack Manager API is not installed");
}
}
Using this pattern will allow you to create the pack when the user has installed the Pack Manager API, but will not force the user to have installed that API if they do not want it.
You can put the following placeholders into the description of your pack to help dynamically generate the text that will appear when the user hovers over it on the screen:
Each pack has a completely optional "ValidFor" property, which is a list of CardTemples. This is meant to allow you to indicate which zones/biomes the card pack is valid for. By default, the game only has a single zone available in Kaycee's Mod. That zone is Leshy's Cabin, which is the Nature zone. However, other mods, such as the "P03 for Kaycee's Mod" mod, may add other playable zones. The pack definition includes the idea of "ValidFor" in order to provide some amount of future-proofing.
There's an example of this: my side decks mod can't allow the SideDeck metacategory to be removed. To do this, you need to add a 'protected metacategory.' Here is the relevant snippet of code from my side decks mod. Notice how I wrapped the call to the pack manager in a separate method surrounded by a try-catch. This prevents a soft lock if the player hasn't installed the Pack Manager.
private static void RegisterMetacategoriesInner()
{
PackManager.AddProtectedMetacategory(SideDeckManager.SIDE_DECK);
}
private static void RegisterMetacategories()
{
try
{
RegisterMetacategoriesInner();
}
catch (Exception)
{
SideDecksPlugin.Log.LogInfo($"Error registering pack manager exception - pack manager plugin not loaded. This is not a problem.");
}
}
A template (blank) pack art PNG is included in this package.
1.0.1
1.0