Ventloop-ImReave_Twitch_Integration icon

ImReave Twitch Integration

All players need this mod; only the streamer signs in to Twitch. Voice Balance, rewards, Push, Poltergeist, and the Banishment Cross.

Last updated 2 months ago
Total downloads 96
Total rating 0 
Categories Mods
Dependency string Ventloop-ImReave_Twitch_Integration-0.10.12
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack_PEAK-5.4.75301 icon
BepInEx-BepInExPack_PEAK

BepInEx pack for PEAK. Preconfigured and ready to use.

Preferred version: 5.4.75301

README

ImReave_Twitch_Integration

The streamer and all participating players need this mod. Only the streamer needs to sign in to Twitch.

Includes Voice Balance, Channel Point rewards, Teammate Push, and the Poltergeist feature. It runs entirely inside PEAK without a chat bot, companion app, or the external Stream Hub.

Current features

  • Click the small Twitch logo at the top-right of PEAK's main menu to open the integration window.
  • Link the broadcaster account with Twitch's Device Code OAuth flow.
  • Connect directly to Twitch EventSub and receive custom Channel Points redemption events while PEAK is running.
  • Store OAuth credentials encrypted for the current Windows account and refresh them automatically.
  • Enable or disable feature modules from the integration window.
  • Use PEAK Voice Balance as the first module, including RNNoise, per-player automatic loudness leveling, a peak limiter, and one shared 0-200% output level.
  • Automatically create and manage a [PEAK] Cannon Launch reward with mandatory player-name input.
  • Launch the exact matching player, including the streamer, and refund invalid or unavailable targets.
  • Optionally look at a nearby teammate and press U to shove them about one metre and knock them over.
  • Let ghosts use Poltergeist to choose a helpful green effect with N or a harmful red effect with M for the living player they are spectating.
  • Let ghosts hold Ctrl while pressing N or M to save one offered result and deploy it later with 1.
  • Find the reusable Banishment Cross at the beach or rarely in luggage and bind a named dead player's ghost until revival.
  • Enable the local Developer Tools test-bot spawner for repeatable shove testing without another player.

The main-menu integration window now uses an opaque dark-green background and high-contrast text.

Installation

  1. Install BepInEx-BepInExPack_PEAK through Thunderstore or r2modman.
  2. Remove the older standalone PeakVoiceBalance mod if it is installed. Running both would process voices twice.
  3. Disable or remove an older package named PeakTwitchIntegration; the renamed package otherwise exists beside it instead of replacing it.
  4. Import ImReave_Twitch_Integration-0.10.12.zip as a local mod and start PEAK through Modded.
  5. Click the small Twitch logo in PEAK's main menu.

For a manual install, copy plugins/ImReave_Twitch_Integration.dll and plugins/librnnoise-0.dll into BepInEx/plugins/ImReave_Twitch_Integration/.

Linking Twitch

Twitch requires every application to have its own public Client ID. No client secret is needed or accepted by this mod.

  1. Register a Twitch application in the Twitch Developer Console and configure it as a public client for Device Code authentication.
  2. Copy its Client ID into the field in PEAK's Twitch Integration window.
  3. Select CONNECT.
  4. Open the activation page shown by the mod, enter the displayed code, and approve channel:manage:redemptions.
  5. PEAK reconnects the saved account automatically on later starts.

Version 0.10.12 needs the manage permission to create the Cannon Launch reward and to refund failed launches. Poltergeist, Banishment, Teammate Push and Developer Tools do not read Twitch chat and add no OAuth permission. If version 0.4.0 or older was already linked, Twitch asks for one new authorization; the Client ID does not change.

The OAuth token and rotating refresh token are protected with Windows DPAPI for the currently signed-in Windows user. FORGET SAVED ACCOUNT removes the stored authorization. Twitch is connected only while PEAK is open.

Menu access

  • In the main menu, click the small Twitch logo in the top-right corner.
  • During a run, press Escape and choose IMREAVE_TWITCH_INTEGRATION in PEAK's pause menu.
  • Both entries open the same live settings. Escape closes the integration window first and leaves the pause menu open.

Voice Balance behavior

  • Every incoming remote voice has independent RNNoise and loudness state.
  • Speech is moved toward a target of -18 dBFS within configured gain limits.
  • Loud transients are limited before PEAK plays them.
  • By default, non-zero individual player sliders are treated as 100%; 0% remains mute.
  • PEAK's distance, obstruction, muffling, reverb, cinematics, and global voice volume remain intact.
  • The existing VOICE BALANCE row in PEAK's player-volume menu remains available.

Only the listener needs Voice Balance. It never changes or transmits the listener's own microphone audio.

Cannon Launch behavior

  • On connection, the mod creates or updates [PEAK] Cannon Launch on the linked broadcaster channel.
  • The default cost is 3000 Channel Points and the default global cooldown is five minutes. Both settings can be changed in the integration window; cooldown choices range from off to 60 minutes.
  • APPLY TWITCH SETTINGS updates both values. SYNC / VERIFY sends the saved values again and reports the price and cooldown Twitch actually returned.
  • A same-title reward created manually or with a different Client ID cannot be changed through Twitch's API. The integration reports that conflict instead of displaying unverified local values or accepting its redemptions.
  • Launch power defaults to 2000 and can be adjusted from 250 to 5000 in the in-game window.
  • The selected player sees a large game-styled countdown: green 3, yellow 2, then red 1.
  • A compact lower-left popup identifies the triggered Twitch reward during the countdown and launch.
  • Launches remain mostly vertical but include a gentle forward component in the selected player's facing direction.
  • Viewer input is matched case-insensitively against exact PEAK/Photon player names. A leading @ is accepted.
  • Unknown, missing, ambiguous, dead, or unavailable targets cancel the redemption and refund the points.
  • The launch itself uses PEAK's existing multiplayer RPC, so it reaches the selected player without teleporting them into a physical cannon.
  • Fall damage is suppressed only for the launch's first genuine landing. Any later fall uses PEAK's normal damage rules immediately. For a remote player's countdown and no-fall-damage guarantee, that player must also have this mod installed; the launch itself still reaches vanilla clients.
  • Disabling the module disables the reward. A normal disconnect or game shutdown also attempts to disable it; after a crash, Twitch may leave it enabled until the next connection.

Teammate Push behavior

  • Enable or disable TEAMMATE PUSH in the in-game Twitch Integration window.
  • Look directly at a living teammate within the hard maximum of 1.5 metres and press U.
  • The default forward force is now 400, twice the previous default.
  • The lobby host can adjust the shared force from 200 to 800 in the integration window. The value is synchronized through the Photon room to every player using version 0.8.5 or newer.
  • Non-host players see the active value but cannot change it while they are in the room.
  • The target is knocked over for about 1.1 seconds and pushed backward in the local player's viewing direction.
  • Every successful push plays PEAK's native right-hand reaching pose for 0.45 seconds. The visual is synchronized to other modded players without activating the real helping/grab mechanic.
  • The pushed player receives up to eight seconds of fall-damage protection. It ends immediately on the first genuine landing, so a later fall uses PEAK's normal damage again.
  • The key, range, preferred host force, upward lift, and protection duration can also be adjusted in the generated BepInEx configuration.
  • The target does not need the mod for the shove itself because it uses PEAK's existing multiplayer RPC. The target does need the mod for fall-damage protection.
  • Teammate Push is entirely in-game; there are no Twitch chat commands or additional Twitch scopes.

Poltergeist behavior

  • The lobby host enables or disables POLTERGEIST and chooses a shared interval from 1 to 60 minutes in the integration window. The test default is three minutes (180 seconds). Existing configurations migrate to that value once; other players see the lobby value but cannot change it.
  • After a player dies, that ghost waits one full interval. A PEAK-styled green card then appears on the left and a red card on the right for exactly 45 seconds; an unused offer expires and the next full interval begins.
  • Each card asks whether the ghost wants to throw or cast the pictured result, using a real PEAK item icon. Press N for the green helpful choice or M for the red harmful choice; the key is shown beneath the icon.
  • Hold either Ctrl key while pressing N or M to save that offered result instead of using it immediately. A single PEAK-styled ghost slot appears at the bottom of the screen with its icon, name and [1] binding.
  • Press 1 later to throw or cast the stored result around the living player currently being spectated. Saving a new result replaces the old one, and a successful use empties the slot. Failed uses keep the stored result.
  • The food pools contain all unique usable PEAK foods and direct consumables found in the installed game data, split and weighted by their gameplay outcome. Ordinary helpful food now dominates the green card; Mandrake, Tick and Scorpion are classified as harmful, while the safe Weird Shroom and the guaranteed-positive red/yellow Shroomberries stay green. Hidden duplicates, prop/vanilla variants, UNUSED entries, containers and cheat or quest objects are deliberately excluded.
  • Helpful actions also include Healing Cloud, Morale Boost, Warmth Cloud, Wakefulness Cloud, Antidote Burst and Cleansing Burst. Harmful actions include Poison Cloud, Drowsy Cloud, Freezing Cloud, Hunger Curse, Heat Wave and Spore Cloud. Persistent clouds last eight seconds in a five-metre radius and use PEAK's native visual effects where available.
  • A separate rare red ZOMBIE AMBUSH choice spawns and wakes PEAK's native networked Mushroom Zombie beside the living player being spectated. The card and saved slot show its 60-second lifetime; afterward it enters PEAK's native dead state, collapses, and is cleaned up after a short visible death. At the three-minute test interval it has a 2.5 percent chance per offer, averaging roughly one appearance every two hours.
  • Curated rare helpful gear includes Rope Spool, Rope Cannon, First Aid Kit, Autoparachute, Blowgun, Cure-Some, Cure-All, Energy Elixir, Bugle of Friendship, Faerie Lantern, Pandora's Lunchbox and Scout Effigy. Permanent amulets, quest objects, warp/cheat tools and intentionally run-breaking mythical objects remain excluded.
  • The combined rare-gear chance averages one offer per six hours for each ghost who remains continuously eligible. That rate applies to any rare result in total, not to every individual item; the specific item is selected afterward from a weighted pool.
  • A separate super-rare green RARE MIRACLE choice revives the selecting ghost beside the living player currently being spectated. It uses PEAK's Scout Effigy icon and original networked revive routine, and averages about one offer per twelve hours when offers are resolved promptly.
  • Food and equipment are physically thrown in an arc toward the living player currently being spectated. Clouds and bursts are cast around that player.
  • Offers, stored slots and selections are created and validated by the lobby host. Every player needs version 0.9.8 or newer for Zombie Ambush; the super-rare revive choice requires version 0.9.7 or newer.

Banishment Cross

  • Exactly one cross is spawned by the lobby host beside the beach starting positions for every new run. It is fixed safely on the ground until picked up.
  • Additional crosses have an approximately 0.5-percent chance in each item slot of every luggage/chest loot pool.
  • Pick it up, hold it, and use the primary action. The window lists every currently available ghost. Press the displayed letter to select one, then press Enter to banish; Escape cancels. Mouse input and the cursor remain disabled throughout this window.
  • The host validates the holder, item, selected player identity, and dead state. The bound ghost immediately loses open and stored Poltergeist actions and receives no new offers until revival.
  • A bound ghost is invisible and cannot transmit voice. Every modded client also mutes that actor's incoming voice as a second enforcement layer.
  • The cross's center displays a ghost portrait made from the bound player's real PEAK skin color, eyes, mouth, and player name, synchronized for all players using the mod.
  • The item remains reusable. Reviving the bound player automatically breaks the banishment; if that player dies again later, Poltergeist works normally.
  • Full Banishment enforcement is a modded multiplayer feature. Every participant should use version 0.10.12 or newer so the selection window, cursor ownership, room synchronization, cross rendering, voice suppression, and Poltergeist lock stay consistent.

Developer Tools

  • Open the DEVELOPER TOOLS tab in the main-menu or Escape-menu integration window.
  • The lobby host can override the red-card Zombie Ambush chance from 0 to 100 percent. SET 100% guarantees it on every newly generated red card; RESET TO AUTO restores the interval-aware default (2.5 percent at the three-minute interval). Existing visible cards are not replaced.
  • Inside a multiplayer room, only Photon's lobby host can enable or use the test-bot spawner. Non-host controls and the F8 hotkey are blocked.
  • If the local player loses the host role, any existing local test bot and its HUD are removed immediately.
  • Enable PUSH TEST BOT, then press F8 during a playable level or use SPAWN / REPLACE TEST BOT.
  • One stationary local test dummy is spawned in front of the player; spawning again replaces it.
  • While that dummy is alive, the host suppresses PEAK's all-players-dead game-over check. Spawn it before dying to remain in the run as a ghost and test Poltergeist against it.
  • A second copy of PEAK's own stamina bar appears above the normal player bar and follows the dummy's stamina and all standard debuff segments.
  • Its label shows stamina and injury numerically. New injury damage flashes red as DAMAGE +N%, making fall-damage tests unambiguous.
  • Walk within 1.5 metres, look directly at the dummy, and press the configured Teammate Push key (U by default).
  • The developer dummy intentionally receives no Teammate Push fall protection, while real pushed players keep the configured protection.
  • REMOVE TEST BOT cleans it up. Developer test bots are also removed when the mod shuts down.
  • The dummy is a local PEAK Character/Ragdoll test object, not a real Photon account. It does not occupy a lobby slot and other players do not see it; only the host's authoritative game-over check treats the living dummy as the final survivor.

Configuration and compatibility

The generated configuration file is:

BepInEx/config/com.local.peaktwitchintegration.cfg

Built against PEAK Steam build 24961053 and BepInEx-BepInExPack_PEAK-5.4.75301.

License

The mod source is released under the MIT License. The included RNNoise binary is redistributed under the BSD 3-Clause license; see THIRD-PARTY-LICENSES.md.