Vibecodeguy-ItemShare icon

ItemShare

Co-op loot sharing. Every player walks over the same drop and collects it for themselves, and it only despawns once everyone has. Artifact of Command included. Every player in the lobby needs it.

Last updated a month ago
Total downloads 5249
Total rating 1 
Categories Tweaks AI Generated
Dependency string Vibecodeguy-ItemShare-1.7.1
Dependants 1 other package depends on this package

This mod requires the following mods to function

bbepis-BepInExPack-5.4.2121 icon
bbepis-BepInExPack

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

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

MMHOOK generation at runtime.

Preferred version: 1.2.9
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
Vibecodeguy-PickupShareApi-1.0.0 icon
Vibecodeguy-PickupShareApi

Library. Lets a loot-sharing mod publish which players have already collected which drop, so another mod can move that drop without the lobby losing track. Does nothing on its own.

Preferred version: 1.0.0

README

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
  • Once you have collected one it stops being drawn for you, so a cluster of drops thins out as you work through it
  • 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.HideCollectedOrbs true Individual only. A drop you have collected stops being drawn for you. Others still see it until everyone has it.
General.SilenceRemoteNotificationErrors true Suppresses a vanilla error logged for every pickup that belongs to another player. Leave it on; it is a large part of why multiplayer used to stutter on pickups.
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

A drop you have collected disappears for you but not for anyone else. That is deliberate — the pickup is one networked object shared by the whole lobby, so it cannot actually despawn until the last player has it. Only your view of it is hidden. If you would rather see every drop until it really goes away, turn off HideCollectedOrbs.

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.