Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
| Date uploaded | 3 months ago |
| Version | 1.2.0 |
| Download link | sack-ExponentialItemsReloaded-1.2.0.zip |
| Downloads | 56 |
| Dependency string | sack-ExponentialItemsReloaded-1.2.0 |
This mod requires the following mods to function
bbepis-BepInExPack
Unified BepInEx all-in-one modding pack - plugin framework, detour library
Preferred version: 5.4.2100RiskofThunder-R2API_Language
API for modifying the language localisation of the game
Preferred version: 1.0.0README
Exponential Items Reloaded
What it does
Configurable exponential item grants on authoritative inventory pickups:
effectiveGrant = Clamp(vanillaCount * LinearPickupMultiplier * ExponentialBase ^ stacksBeforePickup, spareRoomUnderCap).
Blacklist / whitelist entries only change how the count is evaluated — loot tables, printers, chests, director cards, etc. never change.
Classic pacing with defaults: pickups grow like 1 → 2 → 4 → 8 → ….
Artifact
Registers Artifact of Exponents. When RequireArtifact is enabled (default), the math only engages while this artifact is on for the run (server-checked).
Set RequireArtifact = false to mirror always-on cheat-style profiles.
Build (source in this repo)
References BepInEx core and R2API from your Thunderstore profile’s BepInEx\plugins siblings (nested R2API.Core.dll paths). References RoR2 itself from Ro2ManagedDir=…\Risk of Rain 2_Data\Managed.
Thunderstore zip (one command)
From PowerShell inside this repo:
.\BuildAndZipThunderstore.ps1 -Ro2InstallDir "YOUR_STEAM_PATH\Risk of Rain 2"
You get CryptidLabs-ExponentialItemsReloaded-<version>.zip with manifest.json, README.md, optional icon.png, and plugins\ExponentialItemsReloaded.dll — suitable for uploading at Thunderstore – create package.
Or build manually:
dotnet build -c Release /p:Ro2ManagedDir="…\Risk of Rain 2_Data\Managed"
Key files:
| File | Responsibility |
|---|---|
Configuration/ModConfig.cs |
BepInEx ConfigEntry layout (Thunderstore-visible sections/order). |
Configuration/KeyValueListParser.cs / ConfigParser.cs |
Reusable parsers for delimited identifiers and Key=Value rows. |
Services/ItemConfigRegistry.cs |
Resolves textual identifiers against ItemCatalog, caches Dictionary<ItemDef,int>. |
Services/ExponentialGrantEvaluator.cs |
Multiplayer-safe grant math after blacklist / caps / artifact gates. |
Hooks/InventoryGrantPatches.cs |
Harmony prefix on Inventory.GiveItem(ItemDef,int) (single patch to avoid double-applying). |
Content/ExponentArtifact.cs |
ContentAddition.AddArtifactDef + LanguageAPI strings. |
Config tips
- Prefer
ItemDef.namevalues (e.g.PaulsGoatHoof,BoostSyringe,Feather) — not English pick-up text. - Unknown names log warnings and are skipped.
- Toggle
9_Debug.VerboseLoggingfor successful registrations, filter hits, and final grant traces. - Edits apply live (BepInEx
SettingChangedrebuilds cached dictionaries when the catalog is ready).
Credits
Original idea by Horse5333
Updated for modern RoR2 by mr.cleann__