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.
PartialCommand
BETA. Three artifacts that work like Command for a percentage of your drops: 75%, 50% and 25%.
| Last updated | a day ago |
| Total downloads | 23 |
| Total rating | 0 |
| Categories | Mods Artifacts Survivors of the Void Seekers of the Storm Update Alloyed Collective AI Generated |
| Dependency string | The_Nerdgasm_Community-PartialCommand-0.1.0 |
| Dependants | 0 other packages depend on this package |
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.2121RiskofThunder-RoR2BepInExPack
Simplify the modding ecosystem of Risk of Rain 2, making it easier for modders to create and maintain their mods while preventing harmful bugs.
Preferred version: 1.43.0RiskofThunder-R2API_Language
API for modifying the language localisation of the game
Preferred version: 1.1.0README
PartialCommand
Artifact of Command lets you choose every item you pick up. These three do the same for a fraction of your drops.
| Artifact | Choosable drops | Icon |
|---|---|---|
| Artifact of Direct | 75% | ![]() |
| Artifact of Suggest | 50% | ![]() |
| Artifact of Ask | 25% | ![]() |
Each drop rolls separately. Every icon is a pie wedge showing that artifact's chance, redrawn when you change the config.
Beta
This release is a beta. Bug reports welcome.
A useful report includes:
- The
[Info: PartialCommand]line from the BepInEx console for that run. - Which of the three artifacts were enabled.
- Your
MultipleArtifactsandMaximumChancesettings. - Singleplayer or multiplayer, and whether you were the host.
- Any other mods that touch items, drops or artifacts.
How it works
Command operates through a flag. A spawning pickup droplet is tagged with
PickupArtifactFlag.COMMAND when Command is enabled, and PickupDropletController.CreatePickup
reads that tag to spawn a command cube in place of the item.
Every command-eligible drop funnels through one method:
PickupDropletController.CreatePickupDroplet(CreatePickupInfo, Vector3, Vector3)
This mod puts a Harmony prefix there and sets the same flag on a percentage of droplets. The cube-spawning code stays untouched. Coverage matches Command: chests, shrines, printers, scrappers, boss drops, Scavenger bags.
Deliberate limits:
- Rolls happen on the server only.
- With real Artifact of Command enabled, all three go dormant.
- Droplets already flagged COMMAND (command chests) or DELUSION are left alone.
- Pickups Command itself skips stay skipped: artifacts, void coins, anything without an item tier.
Rolls come from a dedicated Xoroshiro128Plus seeded from the run seed, separate from the drop
tables' own generators.
Config
BepInEx/config/com.zackman.partialcommand.cfg, written on first launch.
| Key | Default | Meaning |
|---|---|---|
Chances.Direct |
75 |
Percent of drops that become choosable. |
Chances.Suggest |
50 |
" |
Chances.Ask |
25 |
" |
Behaviour.MultipleArtifacts |
Highest |
How several enabled artifacts combine. |
Behaviour.MaximumChance |
100 |
Hard ceiling on the final number. 100 disables it. |
Turning on more than one
MultipleArtifacts resolves the combination:
Highest(default): only the most generous enabled artifact counts.Independent: each enabled artifact rolls on its own, and any success wins.
| Enabled | Highest |
Independent |
|---|---|---|
| Direct | 75% | 75% |
| Suggest | 50% | 50% |
| Ask | 25% | 25% |
| Direct + Suggest | 75% | 87.5% |
| Direct + Ask | 75% | 81.25% |
| Suggest + Ask | 50% | 62.5% |
| Direct + Suggest + Ask | 75% | 90.625% |
Both modes clamp the result into [0, MaximumChance] before rolling, and every config value is
scrubbed of NaN and infinities on the way in.
The first drop of each run logs the result, repeating only when the answer changes:
[Info: PartialCommand] Artifact of Direct 75% + Artifact of Ask 25% [Highest] -> 75% of drops choosable this run.
Common surprises
Artifact of Command is also enabled. All three go dormant. The console reports it on the first drop of the run.
A chance is set to 0. The artifact still appears in the lobby and can still be selected, and it never fires. The console reports this too.
Config edited while the game is running. BepInEx does not watch the file, so hand edits take effect at the next restart. Under ConfigurationManager the rolls change immediately while the tooltip keeps showing the old percentage, since descriptions are language tokens built at startup.
Percentages read as "per chest". They apply per droplet. A boss dropping three items rolls three times, so 25% gives roughly a 58% chance that at least one is choosable.
Coverage you might expect and will not get. Anything without an item tier is skipped, including artifact pickups and void coins. Void cradles and multishop terminals carry their own choice and stay untouched. Real Command strips multishops, shop terminals and scrappers out of stages; these artifacts leave them in place.
Hot-reloading the plugin. Registration has to happen before ArtifactCatalog initialises, so a
ScriptEngine-style reload logs rejections instead. Restart the game after changing artifact
registration.
Resuming a saved run. The roll stream reseeds from the run seed on every run start, including resume, so the sequence after a reload will not line up with an uninterrupted run.
A game update moving the hook. If CreatePickupDroplet changes shape, Harmony logs a patch
failure at startup and the mod loads inert. Check the console before suspecting the config.
Multiplayer
Everyone in the lobby needs this installed. A mismatched rule catalog refuses the connection.
Rolls happen on the server, so the host's config governs the lobby. A client with different numbers
in their own .cfg sees those numbers in the tooltip while the host's values drive the game.
Building
Requires the .NET SDK. Directory.Build.props holds the paths to the game
assemblies and to the BepInEx profile the R2API references resolve against.
dotnet build src/PartialCommand.csproj -c Release
The DLL lands in src/bin/Release/PartialCommand.dll. The helper script builds and writes a
Thunderstore zip to dist/:
pwsh ./build.ps1 -Package
Renaming an artifact
Names and chances are paired in src/PartialArtifacts.cs:
Add(new PartialArtifact("Direct", "Artifact of Direct", ModConfig.DirectChance));
Add(new PartialArtifact("Suggest", "Artifact of Suggest", ModConfig.SuggestChance));
Add(new PartialArtifact("Ask", "Artifact of Ask", ModConfig.AskChance));
The second argument is the display name, safe to change at any time.
The first argument is the internal key. It feeds cachedName and from there the rule id
Artifacts.PARTIALCOMMAND_<Key>. Changing a key resets saved lobby selections, and a host and
client running different keys cannot connect. The order of the three Add calls fixes each
artifact's index. Leave the order alone.
Custom icons
Icons are drawn at runtime. To override one, drop a PNG next to the DLL at icons/<key>_on.png or
icons/<key>_off.png, for example icons/ask_on.png. Anything missing falls back to the generated
wedge.


