OsmarBriones-ExtractionPointReward icon

ExtractionPointReward

Spawns configurable item rewards when completing an extraction point. Fully configurable. Only Host, clients don't need it.

CHANGELOG

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.0.0] - 2026-10-01

Added

  • Initial public release of ExtractionPointReward for R.E.P.O.
  • Reward item spawning upon extraction point completion with physics separation.
  • Configurable per-slot weighted probability tables.
  • Item preservation across levels: reward items secured in the truck, held by players, or in player inventory can persist across levels throughout the run when PreserveItemsBetweenLevels is enabled.
  • Configurable MaxPreservedItems setting (range 0..100, default 10) to cap maximum concurrently preserved reward items.
  • Centralized reusable item preservation routines in RepoAPI.Items.ItemPreservation.
  • Patches for SemiFunc.OnSceneSwitch, PunManager.SetItemNameLOGIC, StatsManager.ItemRemove, and StatsManager.RunStartStats.
  • Distinct visual aura for rewarded items: Visuals/RewardItemVisuals.cs attaches a centered pulsating light aura (defaulting to sci-fi electric cyan/teal) that dynamically disables while grabbed or equipped. By default, original item material colors and textures remain completely unchanged (EnableColorModification defaults to false), with optional material color tinting available via config.
  • Comprehensive [Visuals] configuration section in com.osmar.ExtractionPointReward.cfg allowing customization of aura RGB channels, intensity, radius, and optional material color multipliers.

Changed

  • Migrated project structure to the modern RepoKit methodology.
  • Integrated RepoAPI as git submodule for shared item providers and weighted keys.
  • Modernized build configuration with Directory.Build.props and dynamic game path resolution.
  • Standardized BepInEx plugin GUID to com.osmar.ExtractionPointReward.
  • Renamed Harmony patches to <TargetType>_<TargetMethod>_Patch standard.
  • Balanced default item drop weights across reward slots: cheap consumables are common (weight 10), utility/support is moderate (weight 6), standard weapons are rare (weight 3), high-end weapons/carts are very rare (weight 2), permanent upgrades are ultra-rare jackpot rewards (weight 1), and Power Crystal is disabled by default (weight 0).
  • Expanded reward capacity from 3 to 5 slots with independent Enabled toggles per slot. By default, Slot 1 (drops only health packs) and Slot 2 (balanced random pool) are active, while Slots 3 to 5 are disabled.
  • Implemented symmetric horizontal spawn placement dynamically centered based on the number of currently active slots.
  • Updated documentation with ARCHITECTURE.md and refreshed README.md.