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.
LootVote
Multiplayer item voting: when someone picks up an item, every player votes on who gets it. Supports soft reserves with /sr.
By Lightsage
| Date uploaded | a day ago |
| Version | 1.0.1 |
| Download link | Lightsage-LootVote-1.0.1.zip |
| Downloads | 15 |
| Dependency string | Lightsage-LootVote-1.0.1 |
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.2122RiskofThunder-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.44.0RiskofThunder-R2API_Networking
Networking API around the Unity UNet Low Level API (LLAPI)
Preferred version: 1.0.4README
LootVote
Multiplayer loot distribution by vote. When someone picks up an item, the item is held and every player votes on who should get it.
Every player needs this mod, and the same version of it.
How it works
- Walking onto an item that should be voted on holds the item, and a vote card appears on the left of everyone's screen. It shows the item's icon, name and full description, followed by every player with their character portrait.
- Each player has a circle that is both their vote button and their live vote count. Your own vote is shown with a gold ring.
- Press 1, 2, 3... to vote for the player in that row; each row shows its number. Or press V to show the cursor and click a circle. Your cursor hides again after you vote. You can keep moving while the cursor is out, but you can't shoot.
- Press
`to skip a vote: your name is struck through on everyone's card and the vote stops waiting for you. You can still be voted for, and voting afterwards replaces the skip. - Each row shows whether that player has voted, skipped or is still waiting.
- Void items (which corrupt your normal items) only go to a player who voted for themselves; the card shows a purple strip. If nobody did, the item is left on the ground for anyone to pick up.
- A timer bar (30 seconds by default) shows how long is left. The vote ends when time runs out or once everyone has voted or skipped. If nobody voted, a soft reserver gets the item, otherwise the player who picked it up. The winner gets the item straight into their inventory, even if they're dead, and the result is announced in chat.
- A tie goes to a soft reserver if one is among the tied players (see below). Otherwise the host's
TieBreakersetting decides: a random tied player (default), or the player who picked the item up if they're tied. - If several items are picked up at once, they queue up as a stack of cards and are voted on one at a time.
- The host has a Force end button that ends the vote early using the votes cast so far (with no votes, it goes to a soft reserver or the player who picked it up, as when time runs out).
- The game is never paused.
- When the team leaves a stage, any open vote is ended with the votes cast so far, so no item is left behind.
Teleporter drops
When the teleporter boss dies, its rewards are handled together:
- Yellow boss items go to a vote as soon as they land. Nobody has to walk over them first.
- When those votes are done, the split card opens for the other items. Each player chooses one of:
- Take my share: you get your share of the items.
- Give my share to another player: they get your share, whatever they chose for their own.
- Reject: your share is split between the players taking theirs.
- Once everyone has chosen (or the host presses Force end, which counts anyone who hasn't chosen as taking their share), the items go straight into inventories at random, according to the shares. The result is posted in chat.
Everyone's share is equal. A yellow you won counts as one of your shares: with 4 players, 1 yellow and 3 greens, the yellow's winner gets no greens and everyone else gets one. Items that don't divide evenly go to random players who are taking their share. Choices show live on everyone's card, and you can change yours until everyone has chosen. If nobody takes anything, the items are left on the ground for anyone. Leaving the stage settles the split, with anyone undecided taking their share.
Soft reserves don't apply to the split items. With the Command artifact on, teleporter drops work as normal.
Soft reserves
Each player can soft-reserve a few items (3 by default):
| Command | What it does |
|---|---|
/sr <item> |
Reserve an item. Partial names work, e.g. /sr syringe. |
/sr list |
Show everyone's reserves. |
/sr remove <item or slot #> |
Remove one of your reserves. |
/sr clear |
Remove all your reserves. |
If you are the only player who reserved an item and you pick it up, it's yours, with no vote. Otherwise a reserved item is always voted on when it's picked up, even if its tier normally isn't: when someone else picks it up, or when several players reserved it. Reservers win ties, and are listed at the top of the card. Reserves last for the whole run and are announced in chat. /sr commands are never shown in public chat.
What skips the vote
- Tiers turned off in the config. By default whites and void whites are off.
- Items from printers and cauldrons, scrappers, lunar-coin purchases (the Bazaar shop and lunar pods), void potentials (Void Fields, Void Seeds, Simulacrum, Halcyon shrines, etc.) and Command essences. You either paid for those yourself or picked them from your own reward. Each of these can be switched off in the config.
- Temporary and rental items, lunar coins, and other non-item pickups.
- Games with only one player.
Configuration
Settings are in BepInEx/config/Lightsage.LootVote.cfg, or in-game through Risk of Options. Only the host's gameplay settings count. Each player sets their own vote key.
| Section | Setting | Default |
|---|---|---|
| Tiers | White, VoidWhite, OtherTiers | off |
| Tiers | Green, Red, Boss, Lunar, VoidGreen, VoidRed, VoidBoss, Equipment, LunarEquipment | on |
| Exemptions | PrintersAndCauldrons, Scrappers, LunarPurchases, PotentialsAndEssences | on |
| Voting | VoidNeedsSelfVote: void items only go to someone who voted for themselves | on |
| Voting | TimerSeconds: how long a vote lasts (0 = wait for everyone) | 30 |
| Voting | TieBreaker: Random or Picker (the player who picked the item up wins ties they're part of) |
Random |
| Teleporter | SplitDrops: vote on teleporter yellows and use the split card for the rest. Off: teleporter items are voted on like any other pickup. | on |
| SoftReserve | SlotsPerPlayer (0 turns soft reserves off) | 3 |
| Client | OpenVoteKey | V |
| Client | NumberKeyVoting: vote with 1-9 (turn off if another mod uses the number keys) | on |
| Client | SkipVoteKey | ` |
| Debug | SoloTestMode: run votes alone. F2/F3/F4 drop a green/white/equipment, F5 a fake teleporter reward, F6 a void green. | off |
Known limitations
- With the Command artifact on, almost every drop is an essence. While PotentialsAndEssences is on, very few votes happen.
- A player who leaves mid-vote doesn't count as having voted, so the vote runs until the timer ends (or the host uses Force end).
- Splitscreen isn't supported.
CHANGELOG
1.1.1
- Changing your vote restarts the final countdown. Once everyone has voted, switching your vote (or skipping or declining) restarts the countdown, so others can react. The main vote timer still caps how long a vote can last.
- The final countdown is now 2 seconds by default (was 5), set with
FinalCountdownSeconds.
1.1.0
New:
- Decline an item with X. It counts as your vote, your name turns red on everyone's card, and nobody can vote for you. Votes already cast for you are withdrawn, and those players go back to waiting. If everyone declines, the item is left on the ground for anyone. Voting afterwards replaces the decline. The key can be changed with
DeclineKey. - Final countdown. Once everyone has voted, the timer drops to 5 seconds (if it had more left) instead of the vote ending instantly, so people can still change their minds. Votes with no time limit get the countdown too. The card shows "all votes in". Set it with
FinalCountdownSeconds(0 ends the vote straight away, as before). - Item counts on the cards. Under each player's name: their item counts per tier (white, green, red, yellow, lunar, void) in tier colours, updated live. On the vote card it also shows how many of the item being voted on they already have, e.g. "has 2". Turn it off with
ShowItemCounts. - Lunar items need a self-vote. Lunar items and lunar equipment now follow the void rule: they only go to a player who voted for themselves, otherwise anyone can pick them up. The card shows a blue strip. Set it with
LunarNeedsSelfVote. - Wandering Chef food skips the vote, like a printer, since you cooked it from your own items. Set it with the
WanderingChefexemption. `takes your share on the teleporter split card. If a vote you're part of is also open,`skips that vote first.
Changed:
- Void items of every tier are voted on. The four void tier settings are replaced by one
Voidsetting (on), so void whites are no longer skipped. - The teleporter split summary groups duplicates, e.g. "Ukulele (2), Hopoo Feather" instead of repeating the name.
1.0.1
- First release: item voting with the vote card, queued votes, the host's Force end button,
/srsoft reserves, tier and source exemptions (including void potentials), and Risk of Options support. - Vote with the number keys (1-9) as well as by clicking.
- Votes have a timer bar (30 seconds by default), and each row shows who has voted and who the vote is still waiting on.
- Picking up an item only you soft-reserved gives it to you without a vote.
- Void items only go to a player who voted for themselves; otherwise anyone can pick them up.
- Skip a vote with
`, which strikes your name through. - Choose how ties are broken: at random, or in favour of the player who picked the item up.
- Teleporter drops: yellow boss items are voted on as soon as they land, and the rest are shared out with the split card (take your share, give it to another player, or reject it).
- Open votes and splits are settled when the team leaves a stage, so no item is lost.