You are viewing a potentially older version of this package. View all versions.
Lightsage-LootVote-1.1.1 icon

LootVote

Multiplayer item voting: when someone picks up an item, every player votes on who gets it. Supports soft reserves with /sr.

Date uploaded a day ago
Version 1.1.1
Download link Lightsage-LootVote-1.1.1.zip
Downloads 82
Dependency string Lightsage-LootVote-1.1.1

This mod requires the following mods to function

bbepis-BepInExPack-5.4.2122 icon
bbepis-BepInExPack

Unified BepInEx all-in-one modding pack - plugin framework, detour library

Preferred version: 5.4.2122
RiskofThunder-HookGenPatcher-1.2.9 icon
RiskofThunder-HookGenPatcher

MMHOOK generation at runtime.

Preferred version: 1.2.9
RiskofThunder-RoR2BepInExPack-1.44.0 icon
RiskofThunder-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.0
RiskofThunder-R2API_Core-5.3.0 icon
RiskofThunder-R2API_Core

Core R2API module

Preferred version: 5.3.0
RiskofThunder-R2API_Networking-1.0.4 icon
RiskofThunder-R2API_Networking

Networking API around the Unity UNet Low Level API (LLAPI)

Preferred version: 1.0.4

README

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.
  • Press X to decline an item you don't want: it counts as your vote, your name turns red, and nobody can vote for you (votes already cast for you go back to waiting). If everyone declines, the item is left for anyone to pick up. Voting afterwards replaces the decline.
  • Each row shows whether that player has voted, skipped or is still waiting, and their item counts per tier (white, green, red, yellow, lunar, void) in tier colours, updated live, plus how many of the item being voted on they already have (e.g. "has 2").
  • Void and lunar items (which have downsides) only go to a player who voted for themselves; the card shows a purple (void) or blue (lunar) strip. If nobody did, the item is left on the ground for anyone to pick up. This includes lunar equipment.
  • A timer bar (30 seconds by default) shows how long is left. The vote ends when time runs out. Once everyone has voted or skipped, the timer drops to 2 seconds (if it had more left) so people can still change their minds; changing a vote restarts those 2 seconds (the main timer still applies). 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 TieBreaker setting 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:

  1. Yellow boss items go to a vote as soon as they land. Nobody has to walk over them first.
  2. When those votes are done, the split card opens for the other items. Each player chooses one of:
    • Take my share (or press `): 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.
  3. 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 only whites are off (void whites are voted on with the other void items).
  • 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.), Command essences and Wandering Chef cooking. 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, OtherTiers off
Tiers Green, Red, Boss, Lunar, Void (all void tiers), Equipment, LunarEquipment on
Exemptions PrintersAndCauldrons, Scrappers, LunarPurchases, PotentialsAndEssences, WanderingChef on
Voting VoidNeedsSelfVote: void items only go to someone who voted for themselves on
Voting LunarNeedsSelfVote: lunar items and equipment only go to someone who voted for themselves on
Voting TimerSeconds: how long a vote lasts (0 = wait for everyone) 30
Voting FinalCountdownSeconds: countdown once everyone has voted (0 = end straight away) 2
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 ShowItemCounts: item counts per tier under each name on the cards on
Client NumberKeyVoting: vote with 1-9 (turn off if another mod uses the number keys) on
Client SkipVoteKey (also takes your share on the split card) `
Client DeclineKey X
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 WanderingChef exemption.
  • ` 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 Void setting (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, /sr soft 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.