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.
Repo Contracts
Playtest build: team contract objectives for R.E.P.O. with ranked voting, queued goals, physical rewards, and multiplayer verification still requested.
CHANGELOG
Changelog
0.5.3
- Updated Pressure Plate Extraction to bind to one seeded random extraction point instead of generic extraction completion.
- Plate count now scales from current player count plus completed-level difficulty progress, capped for sanity.
- The controlled extraction point blocks item turn-in while its plates are unsecured.
- Items used as plate weights are protected from break/destroy damage while resting on a plate.
- Added a world marker for the extraction point controlled by the pressure plates.
- Updated the Thunderstore README with realistic playtest expectations, currently verified solo/local behavior, and multiplayer verification areas.
- Publication note: this is a playtest build. The core contract loop is usable, but voting sync, pressure plates, reward visibility, and compatibility should still be verified with real multiplayer groups.
0.5.2
- Implemented Pressure Plate Extraction as a playable puzzle contract.
- Pressure plates spawn near the nearest extraction point when the contract activates.
- Plates can be secured by players standing on them or by placing enough item weight on them, so solo players can complete the objective.
- Multiple smaller items can combine to meet a plate's medium weight requirement.
- Contract progress now tracks secured plates and fails only if extraction completes before all required plates are secured.
- Added synchronized plate position data so clients can recreate the same plate layout from host state.
0.5.1
- Added Blender-authored world assets for future/puzzle contracts:
- Gallery Code safe, keypad, and clue card.
- Simon Extraction four-button module.
- Pressure Plate Extraction lit and unlit plates.
- Holdout zone beacon.
- Cursed Loot world marker.
- Heavy Haul world marker.
- Exported
.blendsource files and.fbxruntime/import files. - Copied Blender FBX outputs into the Unity project under
Assets/RepoContracts/Models/Blender. - Added Unity model importer metadata for the new FBX assets.
0.5.0
- Added a full packaged Repo Contracts asset folder with icons, markers, UI frames, banners, warning panels, concept art, and UI SFX.
- Added runtime PNG loading for packaged assets.
- Skinned the truck contract board cards with generated difficulty card frames.
- Skinned the in-run contract HUD and notifications with generated UI panels and banners.
- Added a finished Glass Cargo protected item sprite marker layered onto the existing pulsing target marker.
- Added Unity-importable sprite textures and prefab stubs under
Assets/RepoContracts. - Updated Thunderstore packaging to include the Repo Contracts asset folder beside the DLL.
0.4.3
- Fixed stale vote carryover by tying player votes to a fresh board session each level.
- Finished queues now retire at level transition so the next gameplay level asks for new votes.
- Unfinished locked queues are preserved across level transitions instead of being failed automatically.
- Glass Cargo can reselect a target if an unfinished queue carries into a new level and the old target no longer exists.
0.4.2
- Removed stale
TruckScreenText.NextLeveloptional hook probing now that extraction completion is handled through verifiedRoundDirectorhooks. - Cleaned startup hook-audit logging so missing
TruckScreenText.NextLevelno longer appears as a Repo Contracts warning.
0.4.1
- Aligned public defaults with the safe-contract design decisions.
- Added
Discipline.EnableDisciplineDebtas a future/off-by-default setting; failed contracts only miss their own rewards by default. - Changed public prototype contract rewards back to money-bag physical drops instead of shop, weapon, upgrade, or cosmetic rewards.
- Deferred cash rewards that complete during the final extraction window so they can spawn at the next truck-board opportunity.
- Updated documentation and roadmap around safe public contracts versus experimental/asset-heavy contracts.
0.4.0
- Added the package icon to Thunderstore metadata.
- Added a configurable discipline system. Failed and unfulfilled contracts now create discipline debt that withholds future contract rewards.
- Added discipline debt to multiplayer contract sync and the in-run overlay.
- Enabled additional fully hooked contracts: Debt Collector, No Deaths, No Damage, Limited Healing, and No Loud Tools.
- Added projectile weapon use tracking through
ItemGun.Shoot. - Updated the Thunderstore README and manifest description to explain voting, rewards, final-extraction-safe payouts, and discipline.
0.3.1
- Added reward delivery context so contracts can detect when cash rewards would be wasted during or after final extraction.
- Cash and money-bag rewards now convert to a non-cash substitute during the final extraction window, preferring shop-item rewards and then cosmetic tokens.
- Non-cash rewards that fail to spawn during final extraction now prefer cosmetic-token fallback instead of useless late money bags.
0.3.0
- Moved contract reward drops to the contract board/TV area so money bags are visible after completion.
- Added first-pass reward spawning for random shop items, weapons, and upgrade items, with money-bag fallback if no safe item prefab is available.
- Added direct cosmetic token rewards for survival contracts, with money-bag fallback if the cosmetic system is unavailable.
- Clarified No One Left Bent: it now completes on the next successful extraction and fails if any player dies before that extraction completes.
- Widened and word-wrapped the in-run contracts overlay so longer rules are readable.
0.2.9
- Fixed Glass Cargo completion by hooking the exact valuable extraction step before the game destroys and removes the extracted object.
- Normal extracted valuables now publish item extraction events from the extraction point's per-item haul processing.
0.2.8
- Fixed Glass Cargo not completing when the marked item was included in the extraction haul but the normal item-extracted event did not resolve before the object was moved or destroyed.
- Glass Cargo now completes directly from the captured extraction candidate list when the marked target is part of a successful extraction.
0.2.7
- Simplified the Glass Cargo HUD tracker by removing turn/direction instructions.
- Changed Glass Cargo failure so normal damage is allowed and only breaking/destroying the marked item fails the contract.
0.2.6
- Fixed Glass Cargo falsely failing when the marked item is destroyed by the normal extraction sequence.
- Glass Cargo now treats marked-item damage or destruction inside the extraction zone as extraction-safe.
- Moved the Glass Cargo world beacon to the item renderer center instead of above the item.
- Made the Glass Cargo beacon smaller and genuinely transparent.
- Removed the world beacon once a player grabs the marked item while keeping the HUD tracker active.
0.2.5
- Fixed contract board selection by using board-plane targeting instead of tiny trigger-collider hits.
- Tightened card text sizing and line length so rows stay inside their colored bars.
- Increased row height and spacing for cleaner, more readable contract cards.
0.2.4
- Added Photon room-property sync for contract offers, selected queue, active contract, progress, status, and Glass Cargo target metadata.
- Clients now rebuild their board and HUD from host-published contract state instead of relying on local-only TODO sync logs.
- Improved contract board aiming by using wider card hitboxes and forgiving sphere-cast selection.
- Cleaned up contract board visuals with clearer card spacing, borders, and shorter text lines.
0.2.3
- Restored Glass Cargo as a random protected valuable so the team cannot choose an easy target.
- Limited Glass Cargo target selection to eligible breakable valuables.
- Reworked the Glass Cargo HUD tracker into a clearer target compass with item name, distance, turn direction, and above/below guidance.
0.2.2
- Changed Glass Cargo target selection to mark the first eligible valuable a player grabs while the contract is active.
- Updated Glass Cargo objective text so players know they create the target by grabbing loot.
- This avoids selecting an unknown hidden item somewhere in the level.
0.2.1
- Made Glass Cargo targets much easier to find with a larger pulsing world beacon.
- Added a HUD tracker for Glass Cargo that points toward the marked item and shows distance, even when the item is off-screen or behind walls.
- Added the marked target name to the contracts overlay.
0.2.0
- Added verified gameplay hooks for enemy kills, player deaths, successful extractions, valuable damage, and valuable destruction.
- Clean Sweep now progresses from successful extraction value instead of debug-only events.
- Monster Hunter and Melee Clause now progress from actual enemy deaths.
- No One Left Bent now fails on actual player death events, even if the player is revived later.
- Glass Cargo now chooses a real valuable target, marks it in-world, completes when that item extracts, and fails if that item is damaged or destroyed.
0.1.8
- Baked in the calibrated truck-window TV placement defaults.
- Added controller support for contract selection: D-pad/left stick changes highlighted contract and face buttons assign vote ranks.
0.1.7
- Added in-game TV placement calibration mode.
- Press
F9while the board exists, then use numpad keys to move/rotate/scale the TV and save offsets.
0.1.6
- Moved the default contract TV farther up and toward the right-side window wall.
- Reworked the TV layout into compact colored contract rows by difficulty.
- Added automatic host tally/queue lock when every player has voted for ranks 1, 2, and 3.
0.1.5
- Moved the default TV placement toward the right-side truck window wall.
- Reduced screen/text scale further so the contract list stays inside the TV panel.
0.1.4
- Reworked the truck board into a smaller side-window TV-style screen.
- Removed blocking colliders from the TV body and made contract card hitboxes trigger-only.
- Tightened board text layout so it reads like a compact screen instead of oversized floating text.
- Added board placement config offsets for easier truck-side tuning.
0.1.3
- Added a physical truck contract board built from runtime primitives and world text.
- Added local ranked voting controls: point at a contract card and press
1,2, or3. - Added host vote tally/queue lock control with configurable
Controls.ContractBoardLockKeydefaulting toL. - Added an in-run contracts overlay toggled by configurable
Controls.ContractHudKeydefaulting toC.
0.1.2
- Quieted optional hook probing so missing methods no longer emit HarmonyX lookup warnings.
- Added gameplay-level gating before contract offer generation.
- Added
Debug.AutoLockFirstOffersForDebugand disabled auto-locking by default.
0.1.1
- Fixed optional Harmony hooks so missing R.E.P.O. methods are skipped with warnings instead of throwing during startup.
0.1.0
- Added initial contract definitions and weighted rarity selection.
- Added runtime tracking for active team contracts.
- Added Harmony hooks for enemy hits, player damage, truck healing, and level completion.
- Added host-side money-bag reward spawning.
- Added design plan and Thunderstore metadata.