Risk of Rain 2
You are viewing a potentially older version of this package. View Latest Version
Install

Details

Date Uploaded
2 weeks ago
Downloads
3.1K
Size
27KB
Dependency string
Vibecodeguy-ItemShare-1.6.0

ItemShare

Stop racing your friends to the loot.

Every player collects the same drop for themselves. The orb stays on the ground until the last person has picked it up, then despawns like normal.

Everyone in the lobby needs this installed

The loot logic itself is all server-side, but a Command cube's interaction prompt is drawn by each player's own machine, so hiding a cube you are finished with can only happen there. The mod tells every client which cubes it is done with, and a lobby is refused if somebody is missing it or running a different version — better a clear message at the door than a game where half the players are fighting their own prompts.


Modes

Set General.PickupMode in the config file.

Individual — default

Everyone walks over the orb themselves.

  • First player touches it, gets the item, orb stays
  • Second, third player touch it, get the item, orb stays
  • Last player touches it, gets the item, orb despawns
  • Already collected it? Walking over it again does nothing
  • Playing solo? Behaves exactly like vanilla

You still have to go get your loot, you just are not competing for it.

Artifact of Command works too. Everyone opens the cube and picks their own item, so you are not stuck with whatever the fastest player chose. The cube stays until all players have picked, then disappears. Once you have taken your pick the cube stops responding to you, so you cannot open it twice by accident.

Ping a drop to see who still needs it. Ping a pickup or a Command cube somebody has already taken and the names of the players who have not appear in chat. Untouched drops say nothing, so pinging stays quiet until it actually tells you something.

Instant

The first player to touch the orb takes it and everyone else is handed a copy on the spot, wherever they are. Good if you would rather not run around collecting, or if someone is busy holding a boss and would otherwise miss out.


Config

BepInEx/config/com.majai.itemshare.cfg, created after your first launch.

Key Default What it does
General.PickupMode Individual See above. Read once at startup — restart the game after changing.
Tiers.White / Green / Red / Boss true Share that tier. Turn one off and it goes back to vanilla first-come-first-served.
Tiers.Lunar false Lunar (blue) items.
Tiers.Void false Void items. They corrupt their counterpart, so turning this on means everyone loses the corrupted item.
Tiers.Food false The new FoodTier. Untested, so it defaults to vanilla behaviour.
General.ShareToDead true Dead players are handed items automatically, since they cannot walk over an orb. Either way, a dead player never blocks an orb from despawning.
General.AnnounceProgress true Individual only. Chat line showing collection progress, e.g. [ItemShare] Bandit - 2/4.
General.ShareCommandPicks true Individual only. Artifact of Command: everyone picks their own item from the cube.
General.PingShowsPending true Individual only. Pinging a partly-collected drop lists who is still missing it.
General.ShareEquipment false Instant only. Gives equipment to players with a free slot. Never overwrites equipment someone is holding.

Every tier flag is read live, so you can change those mid-run without restarting.


Things to know

Players who already collected an orb still see it lying there until the last person picks it up. A pickup is a single networked object that every client renders identically, and unlike a Command cube's prompt there is no per-player hook to intercept — the object either exists for everybody or nobody. The chat progress line and the ping report exist to make up for it.

Equipment is left completely vanilla in Individual mode. There is one equipment slot, so "everyone walks over and collects it" does not really mean anything. First to touch it takes it, same as always.

Instant mode does not charge other players for 3D printers. If someone spends an item at a printer or cauldron, only they pay for it, so inventories slowly drift apart over a run. This used to be handled, but the cost API changed shape in a recent game update and the old approach no longer applies. Individual mode is unaffected — it never assumed identical inventories in the first place.

The Scrapper, Meal Prep, the Hoard, the Solus vendor and Lemurian eggs are untouched. They run on the same controller as the Command cube, but they take items from you rather than hand them out, so sharing them would make no sense. Command cubes are identified specifically, and if that detection ever fails the cube just falls back to vanilla.

In Instant mode, Command already worked and is left alone — the cube spawns one orb and the normal instant sharing takes it from there.

Not covered yet: money.


Compatibility

Built and tested against the current Risk of Rain 2 release. It hooks exactly one method, GenericPickupController.AttemptGrant, and does not touch the item catalog, so it should sit fine next to content mods that add items — new items get shared according to their tier automatically.

If a game update breaks it, the pickup API almost certainly moved. Open an issue rather than assuming it is a conflict with another mod.


ภาษาไทย

ของ drop มาแล้วไม่ต้องแย่งกัน ทุกคนเดินไปเก็บของชิ้นเดียวกันได้เอง orb จะหายก็ต่อเมื่อคนสุดท้ายเก็บแล้ว

ทุกคนในห้องต้องลง — logic แชร์ของรันฝั่ง server ก็จริง แต่ปุ่ม interact ของกล่อง Command วาดโดยเครื่องของแต่ละคน การซ่อนกล่องที่ตัวเองเลือกไปแล้วเลยต้องทำที่เครื่องนั้น ถ้าเวอร์ชันไม่ตรงหรือมีคนไม่ได้ลง จะเข้าห้องไม่ได้

โหมด Instant (ตั้งใน config) = คนแรกเก็บแล้วคนอื่นได้ copy ทันทีโดยไม่ต้องเดินไปไหน

ข้อจำกัดที่ควรรู้: คนที่เก็บไปแล้วจะยังเห็น orb ลอยอยู่ จนกว่าคนสุดท้ายจะมาเก็บ เพราะ orb เป็น networked object ตัวเดียวที่ทุกคนเห็นเหมือนกัน จะซ่อนเฉพาะบางคนต้องให้ทุกคนลง mod ด้วย เลยเลือกใช้ข้อความในแชทบอกความคืบหน้าแทน


Credits

Made by majai. Built with BepInEx and HookGenPatcher.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.