You are viewing a potentially older version of this package. View all versions.
REPO_JP-ExtractionAutoRevive-1.3.0 icon

ExtractionAutoRevive

【Host Only MOD】Revives dead players on extraction collection no matter where they are.納品回収時に死亡プレイヤーをどこにいようが蘇生させるMOD

By REPO_JP
Date uploaded 2 weeks ago
Version 1.3.0
Download link REPO_JP-ExtractionAutoRevive-1.3.0.zip
Downloads 6195
Dependency string REPO_JP-ExtractionAutoRevive-1.3.0

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2304 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2304

README

ExtractionAutoRevive

Host-only automatic revive mod for extraction cleanup, with delayed revive support for electrified death pit heads.

Overview

ExtractionAutoRevive is a host-only mod that changes the game's built-in extraction/shop cleanup revive flow so dead players can be revived even if their death head is not inside the extraction point.

Normal death heads are revived immediately. Electrified death pit heads are queued and revived only after the pit rescue effect has ended and the head has settled enough to avoid dropping again immediately.

Features

Player-facing behavior

  • Automatically revives dead players during extraction cleanup
  • Works for normal extraction cleanup and shop cleanup
  • Uses Revive(true) for the actual revive call
  • Delays revive for electrified death pit heads until the rescue effect has ended
  • Avoids reviving pit heads while they are still moving too fast
  • Clears pending delayed revive entries on scene changes, run transitions, extraction completion, and truck return related transitions
  • Host-only behavior

Technical behavior

  • Hooks the game's existing cleanup revive path instead of building a second independent player scan
  • Temporarily overrides PlayerDeathHead.Revive() only while extraction/shop cleanup is running
  • Uses DeathPitSaveEffect.timeCurrent > 0f as the main electrified pit-head detection rule
  • Stores pending delayed revives in a Dictionary<int, PendingReviveEntry>
  • Uses PhotonView.ViewID as the primary queue key when available
  • Starts the pending monitor only when delayed pit-head entries actually exist
  • Avoids double-handling when the vanilla truck auto-revive flow should take over
  • Does not force-write extraction/truck flags on death heads, helping preserve the game's existing eye-flash style behavior

Installation

  1. Install BepInEx 5.4.x for REPO
  2. Put ExtractionAutoRevive.dll into BepInEx/plugins
  3. Install on the host
  4. Start the game

Usage

No command is required. When extraction/shop cleanup runs, the host automatically handles revive logic.

Configuration

General

EnableMod

Setting name EnableMod

Description Enables or disables the mod

Default true

Minimum Boolean only

Maximum Boolean only

Log

EnableLog

Setting name EnableLog

Description Enables standard mod logs

Default true

Minimum Boolean only

Maximum Boolean only

EnableVerboseLog

Setting name EnableVerboseLog

Description Enables verbose diagnostic logs

Default false

Minimum Boolean only

Maximum Boolean only

PitHead

PitHeadExtraDelaySeconds

Setting name PitHeadExtraDelaySeconds

Description Additional wait time after the death pit electricity effect ends before revive is allowed

Default 0.35

Minimum 0

Maximum 5

PitHeadMaxVelocityToRevive

Setting name PitHeadMaxVelocityToRevive

Description Maximum allowed head velocity magnitude before delayed revive can occur

Default 1.0

Minimum 0

Maximum 20

PendingCheckIntervalSeconds

Setting name PendingCheckIntervalSeconds

Description Polling interval for the delayed pit-head revive monitor while queued entries exist

Default 0.05

Minimum 0.02

Maximum 1

Notes

  • This is a host-only mod
  • Delayed revive handling is intended specifically for death heads still in the death pit rescue electricity state
  • The mod keeps the vanilla cleanup flow and only changes the revive condition/path during that cleanup window

Contact


ExtractionAutoRevive

納品回収用のホスト専用自動蘇生MODです。 穴のビリビリ救出演出中の死亡頭には遅延蘇生も対応しています。

概要

ExtractionAutoRevive は、ゲーム本体の納品所/ショップ回収時の既存蘇生フローを変更し、死亡頭が納品所の中に入っていなくても死亡プレイヤーを蘇生できるようにするホスト専用MODです。

通常の死亡頭は即時に蘇生されます。 穴のビリビリ救出演出中の死亡頭はキューに積まれ、演出終了後かつ頭の動きが十分に落ち着いてから蘇生されます。

特徴

プレイヤー向け挙動

  • 納品回収時に死亡プレイヤーを自動蘇生
  • 通常納品回収とショップ回収の両方で動作
  • 実際の蘇生呼び出しに Revive(true) を使用
  • 穴ビリビリ頭は救出演出終了まで遅延蘇生
  • 頭の移動が速すぎる間は蘇生を待機
  • シーン切替、ラン遷移、全納品完了、トラック帰還関連遷移で遅延キューを自動消去
  • ホスト専用動作

技術的挙動

  • 別の全プレイヤー走査を作らず、ゲーム本体の既存回収蘇生経路へ乗る構成
  • 納品/ショップ回収処理中だけ PlayerDeathHead.Revive() を一時的に差し替え
  • 穴ビリビリ頭判定の主条件に DeathPitSaveEffect.timeCurrent > 0f を使用
  • 遅延蘇生キューを Dictionary<int, PendingReviveEntry> で管理
  • キューキーは可能な限り PhotonView.ViewID を使用
  • 遅延対象が存在する時だけ監視コルーチンを起動
  • バニラのトラック自動蘇生が優先されるべき状況では二重処理を回避
  • 頭の extraction/truck フラグを強制書き換えせず、ゲーム本来の目の点滅演出系フローを壊しにくい構成

導入方法

  1. REPO 用の BepInEx 5.4.x を導入
  2. ExtractionAutoRevive.dllBepInEx/plugins に配置
  3. ホストへ導入
  4. ゲームを起動

使い方

コマンドは不要です。 納品所/ショップの回収処理が走ると、ホストが自動で蘇生処理を行います。

設定項目

General

EnableMod

設定値名 EnableMod

設定内容説明 MOD全体の有効/無効

初期値 true

設定可能最小値 Boolean only

設定可能最大値 Boolean only

Log

EnableLog

設定値名 EnableLog

設定内容説明 通常ログの出力有効/無効

初期値 true

設定可能最小値 Boolean only

設定可能最大値 Boolean only

EnableVerboseLog

設定値名 EnableVerboseLog

設定内容説明 詳細診断ログの出力有効/無効

初期値 false

設定可能最小値 Boolean only

設定可能最大値 Boolean only

PitHead

PitHeadExtraDelaySeconds

設定値名 PitHeadExtraDelaySeconds

設定内容説明 穴ビリビリ救出演出終了後に蘇生を許可するまでの追加待機時間

初期値 0.35

設定可能最小値 0

設定可能最大値 5

PitHeadMaxVelocityToRevive

設定値名 PitHeadMaxVelocityToRevive

設定内容説明 遅延蘇生を許可する頭の最大速度量

初期値 1.0

設定可能最小値 0

設定可能最大値 20

PendingCheckIntervalSeconds

設定値名 PendingCheckIntervalSeconds

設定内容説明 遅延蘇生キュー監視のチェック間隔

初期値 0.05

設定可能最小値 0.02

設定可能最大値 1

補足

  • ホスト専用MODです
  • 遅延蘇生処理は、穴のビリビリ救出演出中の死亡頭を主対象にしています
  • バニラの回収フローを維持しつつ、その回収処理中だけ蘇生条件/蘇生経路を変更する作りです

連絡先

CHANGELOG

Changelog

[1.3.0] - Updated

Changed

  • Reworked the revive flow to piggyback on the game's extraction and shop cleanup revive loop instead of scanning players from a separate trigger
  • Replaced the generic PlayerDeathHead.Revive() extraction-only condition during cleanup with custom host-only handling that can revive dead players regardless of where their death head is
  • Changed the actual revive call to PlayerAvatar.Revive(true) so the truck-heal style revive path is used

Added

  • Delayed revive handling for death heads that are still in the death pit electricity rescue state
  • Main pit-head detection based on DeathPitSaveEffect.timeCurrent > 0f instead of particle playback state
  • Extra wait after the electricity rescue effect ends before revive is allowed
  • Velocity gate for delayed pit-head revive so heads are not revived while they are still moving too fast
  • Pending revive queue keyed by PhotonView.ViewID when available, with fallback identity handling
  • Dictionary-based pending revive storage
  • Queue monitor that runs only while pending pit-head revives exist
  • Queue cleanup on scene changes, run transitions, extraction completion, and truck return related transitions
  • Stronger dead-state checks that do not rely only on gameObject.activeSelf
  • Log config options for normal logs and verbose logs
  • Config options for pit-head extra delay, max revive velocity, and queue monitor interval
  • Guard logic to avoid fighting the vanilla truck auto-revive flow after all extraction points are completed
  • Preservation of the game's existing extraction / truck eye-flash flow by not force-writing extraction or truck flags on death heads

[1.2.0] - Updated

Changed

  • Moved the custom revive behavior onto the game's extraction cleanup path instead of reviving from ExtractionPoint.StateSet
  • Replaced direct full-player scanning on extraction state changes with a patch around PlayerDeathHead.Revive() only while extraction/shop cleanup is running
  • Added delayed revive handling for electrified death pit heads and immediate revive for normal heads

[0.1.1] - Updated

Changed

  • Refactoring based on received cleanup advice (no behavior change)

    • Replaced player enumeration from Resources.FindObjectsOfTypeAll<PlayerAvatar>() to GameDirector.instance.PlayerList
    • Replaced health checks from reflection (GetField / GetValue) to direct access player.playerHealth.health
    • Replaced revive invocation from reflection (MethodInfo.Invoke) to direct call player.Revive(true)
    • Replaced extraction flag updates from reflection (SetValue) to direct assignment player.playerDeathHead.inExtractionPoint = true and player.playerDeathHead.inTruck = true

[0.1.0] - Initial Release

Added

  • Host-only automatic revive triggered by extraction completion
  • Event-driven design
  • Host-only guard
  • Detailed logging