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.
AntiValuableGrief
【Client MOD】Detects players who grief by destroying valuables.貴重品を破壊する荒らし行為を検出するMOD
By REPO_JP
| Last updated | 2 weeks ago |
| Total downloads | 800 |
| Total rating | 2 |
| Categories | Mods Tools Client-side |
| Dependency string | REPO_JP-AntiValuableGrief-1.2.0 |
| Dependants | 0 other packages depend on this package |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2100README
AntiValuableGrief
Overview
This mod is a host-only mod that detects players who cause large valuable damage, shows a red warning popup with J-key teleport support, and can optionally trigger a hidden enemy investigate reaction when severe loss is detected.
Main behavior
- Monitors valuable damage during level gameplay
- Attributes damage to the current holder or a recent holder of the damaged valuable
- Tracks both recent loss inside the configured time window and total loss for the current level
- Shows a red animated warning popup when the configured recent loss threshold is exceeded
- Displays both
LOSSfor the configured time window andTOTALfor the whole level in the popup - Lets the mod user teleport to the currently warned player with
Jwhile the popup is visible - Stops monitoring after the final extraction is completed when the related setting is enabled
- Prints the level damage ranking to the console when entering the shop
Hidden optional feature
This mod also includes an optional hidden feature that is disabled by default.
When enabled, it checks whether the offender reaches the configured border amount. Only when that border is reached or exceeded, the mod sends an investigate command using the nearest level point to that offender.
The investigate range is based on the current loss amount using the configured divisor, with minimum and maximum range clamps.
Default behavior for the hidden feature:
- Disabled by default
- No investigate is executed below the border amount
- Investigate is executed only at or above the configured border amount
- Uses the offender's nearest level point as the investigate origin
Important notes
- This is a host-only monitoring mod
- Monitoring can stop after the final extraction is completed, so post-clear damage can be excluded from counting
- The popup teleport works only while the currently displayed warning popup is visible
- The hidden investigate feature is an extra bonus system and is disabled by default
Installation
- Install BepInEx 5 for REPO
- Place
AntiValuableGrief.dllin yourBepInEx/pluginsfolder - Start the game once to generate the config file
- Adjust the config values if needed
Configuration
EnableMod
- Description: Enable or disable the entire mod
- Default:
true - Minimum:
false - Maximum:
true
RecentHolderGraceSeconds
- Description: How many seconds a player is still treated as the recent holder after releasing a valuable
- Default:
3.0 - Minimum: No hard clamp in code. Practical minimum is
0 - Maximum: No hard clamp in code
LossWindowSeconds
- Description: Time window in seconds used for recent loss accumulation
- Default:
15.0 - Minimum: No hard clamp in code. Practical minimum is greater than
0 - Maximum: No hard clamp in code
WarningLossThreshold
- Description: Recent loss amount required to trigger the warning popup
- Default:
2000 - Minimum: No hard clamp in code. Practical minimum is
0 - Maximum: No hard clamp in code
IgnoreUnownedValueLoss
- Description: Ignore damage events when no responsible current or recent holder can be identified
- Default:
true - Minimum:
false - Maximum:
true
IgnoreAlreadyHauledValuables
- Description: Ignore valuables that are already counted as hauled
- Default:
true - Minimum:
false - Maximum:
true
StopMonitoringAfterFinalExtraction
- Description: Stop monitoring after the final extraction is completed so post-clear damage is not counted
- Default:
true - Minimum:
false - Maximum:
true
ShowWarningOverlay
- Description: Show the animated red warning popup on screen
- Default:
true - Minimum:
false - Maximum:
true
WarnInConsole
- Description: Print warning information to the BepInEx console and log
- Default:
true - Minimum:
false - Maximum:
true
WarningFontSize
- Description: Font size used by the warning popup text
- Default:
30 - Minimum: No hard clamp in code. Practical minimum is around
16 - Maximum: No hard clamp in code
WarningDisplaySeconds
- Description: How long the warning popup stays visible before fading out
- Default:
4.0 - Minimum: The popup system uses at least
0.5 - Maximum: No hard clamp in code
TeleportToWarningPlayerKey
- Description: Key used to teleport to the currently warned player while the popup is visible
- Default:
J - Minimum: Any valid
KeyCode - Maximum: Any valid
KeyCode
WarningCooldownSeconds
- Description: Cooldown before the same player can trigger another warning popup
- Default:
5.0 - Minimum: No hard clamp in code. Practical minimum is
0 - Maximum: No hard clamp in code
PrintLossRankingOnShopEnter
- Description: Print the level damage ranking once when entering the shop
- Default:
true - Minimum:
false - Maximum:
true
RankingMaxEntries
- Description: Maximum number of players shown in the shop ranking output
- Default:
10 - Minimum: No hard clamp in code. Practical minimum is
1 - Maximum: No hard clamp in code
EnableHiddenEnemyInvestigateOnLoss
- Description: Enable the hidden optional enemy investigate reaction feature
- Default:
false - Minimum:
false - Maximum:
true
HiddenInvestigateUseNearestLevelPointBorderline
- Description: Only execute the hidden investigate feature when the offender reaches or exceeds this border amount
- Default:
1000 - Minimum: No hard clamp in code. Practical minimum is
0 - Maximum: No hard clamp in code
HiddenInvestigateUseRecentLossForBorderline
- Description: Use the recent loss amount inside the configured time window for the hidden border check. If disabled, use the current event loss instead
- Default:
true - Minimum:
false - Maximum:
true
HiddenInvestigateRangeDivisor
- Description: Hidden investigate range is calculated as current loss amount divided by this value
- Default:
10 - Minimum: No hard clamp in code. Practical minimum is greater than
0 - Maximum: No hard clamp in code
HiddenInvestigateMinimumRange
- Description: Minimum range clamp for the hidden investigate feature
- Default:
5 - Minimum: No hard clamp in code. Practical minimum is
0 - Maximum: No hard clamp in code
HiddenInvestigateMaximumRange
- Description: Maximum range clamp for the hidden investigate feature
- Default:
100 - Minimum: No hard clamp in code. Practical minimum is greater than or equal to the minimum range
- Maximum: No hard clamp in code
HiddenInvestigatePathfindOnly
- Description: Use the pathfind-only investigate mode for the hidden feature
- Default:
false - Minimum:
false - Maximum:
true
EnableDebugLog
- Description: Enable detailed debug logs for holder tracking, value loss handling, and state transitions
- Default:
false - Minimum:
false - Maximum:
true
Technical notes
- Valuable loss is detected from synchronized valuable break and value-loss events
- Responsibility is assigned using the current holder first and the recent holder as fallback
- Recent loss and total level loss are tracked separately
- The hidden investigate feature is intended as an extra punishment-style mechanic and is disabled by default
Use case
This mod is intended for quickly identifying players who are repeatedly causing valuable damage during a live run, then checking them immediately with the popup and J teleport while still keeping a level-wide loss record for later review.
※Mod created by AI
日本語
REPOが好きな日本人のための日本人のみのREPOのDiscordサーバーあります! 参加は以下のリンクから! https://discord.gg/h5ATY4m5bZ
概要
このMODは、ホスト専用の、貴重品に大きな損害を与えたプレイヤーを検知し、JキーTP付きの赤い警告ポップアップを表示し、さらに重度損害時に敵の調査命令を飛ばす裏機能も任意で使えるMODです。
主な挙動
- レベル中の貴重品損害を監視します
- 壊れた貴重品を現在持っている、または直前まで持っていたプレイヤーへ責任を割り当てます
- 指定時間内の損害額と、そのレベル全体の累計損害額を別々に集計します
- 指定時間内の損害額がしきい値を超えると、赤い警告ポップアップを表示します
- ポップアップには
LOSSとして指定時間内損害額、TOTALとしてそのレベル累計損害額を表示します - ポップアップ表示中は
Jキーで現在警告中のプレイヤーへTPできます - 設定が有効なら、最終納品完了後は監視を停止し、以後の損害はノーカウントにできます
- ショップに入った時、そのレベルの損害額ランキングをコンソールへ出力します
裏機能
このMODには、初期値オフの裏機能があります。
この機能を有効にすると、責任者プレイヤーの損害額が設定したボーダーライン以上になった時だけ investigate を実行します。
investigate の中心は、その責任者に一番近い LevelPoint です。
範囲は今回の損害額をベースに、設定した割る数、最小値、最大値で計算します。
初期仕様では
- 初期値オフ
- ボーダーライン未満では investigate しない
- ボーダーライン以上の時だけ investigate する
- investigate の中心は責任者に最も近い LevelPoint です。
注意点
- このMODはホスト専用監視MODです
- 最終納品完了後に監視停止を有効にしている場合、クリア後の損害はカウントされません
JキーTPは、その瞬間に表示中のポップアップがある時だけ有効です- 裏機能はおまけ要素であり、初期値では無効です
導入方法
- REPO に BepInEx 5 を導入します
AntiValuableGrief.dllをBepInEx/pluginsフォルダへ配置します- ゲームを1回起動して config を生成します
- 必要に応じて config を調整します
設定項目
EnableMod
- 内容: MOD全体の有効無効
- 初期値:
true - 最小値:
false - 最大値:
true
RecentHolderGraceSeconds
- 内容: 貴重品を手放してから何秒以内なら直前保持者として責任候補にするか
- 初期値:
3.0 - 最小値: コード上の固定下限なし。実用上は
0以上 - 最大値: コード上の固定上限なし
LossWindowSeconds
- 内容: 指定時間内損害額を合算する時間窓の秒数
- 初期値:
15.0 - 最小値: コード上の固定下限なし。実用上は
0より大きい値 - 最大値: コード上の固定上限なし
WarningLossThreshold
- 内容: 警告ポップアップを出すために指定時間内で必要な損害額
- 初期値:
2000 - 最小値: コード上の固定下限なし。実用上は
0以上 - 最大値: コード上の固定上限なし
IgnoreUnownedValueLoss
- 内容: 現在保持者や直前保持者が特定できない損害イベントを無視するか
- 初期値:
true - 最小値:
false - 最大値:
true
IgnoreAlreadyHauledValuables
- 内容: 既に haul 済みとして扱われている貴重品を無視するか
- 初期値:
true - 最小値:
false - 最大値:
true
StopMonitoringAfterFinalExtraction
- 内容: 最終納品完了後に監視を停止し、以後をノーカウントにするか
- 初期値:
true - 最小値:
false - 最大値:
true
ShowWarningOverlay
- 内容: 画面中央下に赤い警告ポップアップを表示するか
- 初期値:
true - 最小値:
false - 最大値:
true
WarnInConsole
- 内容: BepInExコンソールとログに警告を出力するか
- 初期値:
true - 最小値:
false - 最大値:
true
WarningFontSize
- 内容: 警告ポップアップの文字サイズ
- 初期値:
30 - 最小値: コード上の固定下限なし。実用上は
16前後以上 - 最大値: コード上の固定上限なし
WarningDisplaySeconds
- 内容: 警告ポップアップを表示し続ける秒数
- 初期値:
4.0 - 最小値: ポップアップ処理上の下限は
0.5 - 最大値: コード上の固定上限なし
TeleportToWarningPlayerKey
- 内容: ポップアップ表示中に現在警告中プレイヤーへTPするキー
- 初期値:
J - 最小値: 任意の
KeyCode - 最大値: 任意の
KeyCode
WarningCooldownSeconds
- 内容: 同じプレイヤーへ連続警告を出す前のクールダウン秒数
- 初期値:
5.0 - 最小値: コード上の固定下限なし。実用上は
0以上 - 最大値: コード上の固定上限なし
PrintLossRankingOnShopEnter
- 内容: ショップ入場時にそのレベルの損害額ランキングを出力するか
- 初期値:
true - 最小値:
false - 最大値:
true
RankingMaxEntries
- 内容: ランキング表示の最大件数
- 初期値:
10 - 最小値: コード上の固定下限なし。実用上は
1以上 - 最大値: コード上の固定上限なし
EnableHiddenEnemyInvestigateOnLoss
- 内容: 裏機能の investigate 反応を有効にするか
- 初期値:
false - 最小値:
false - 最大値:
true
HiddenInvestigateUseNearestLevelPointBorderline
- 内容: この値以上の損害額になった時だけ investigate を実行するボーダーライン
- 初期値:
1000 - 最小値: コード上の固定下限なし。実用上は
0以上 - 最大値: コード上の固定上限なし
HiddenInvestigateUseRecentLossForBorderline
- 内容: ボーダーライン判定に指定時間内損害額を使うか。オフなら今回1回の損害額を使います
- 初期値:
true - 最小値:
false - 最大値:
true
HiddenInvestigateRangeDivisor
- 内容: investigate 範囲 = 今回損害額 ÷ この値
- 初期値:
10 - 最小値: コード上の固定下限なし。実用上は
0より大きい値 - 最大値: コード上の固定上限なし
HiddenInvestigateMinimumRange
- 内容: investigate 範囲の最小値
- 初期値:
5 - 最小値: コード上の固定下限なし。実用上は
0以上 - 最大値: コード上の固定上限なし
HiddenInvestigateMaximumRange
- 内容: investigate 範囲の最大値
- 初期値:
100 - 最小値: コード上の固定下限なし。実用上は最小値以上
- 最大値: コード上の固定上限なし
HiddenInvestigatePathfindOnly
- 内容: 裏機能 investigate を pathfindOnly モードで実行するか
- 初期値:
false - 最小値:
false - 最大値:
true
EnableDebugLog
- 内容: 保持者追跡、損害集計、状態遷移などの詳細ログを出力するか
- 初期値:
false - 最小値:
false - 最大値:
true
技術メモ
- 貴重品損害は同期済みの破損、価値減少イベントから取得します
- 責任者は、現在保持者優先、必要なら直前保持者へフォールバックします
- 指定時間内損害額とレベル累計損害額は別々に追跡します
- 裏 investigate 機能はおまけ要素で、初期値オフです
用途
このMODは、貴重品を繰り返し壊しているプレイヤーをその場で見つけ、確認し、追跡しやすくしつつ、レベル全体の損害傾向もショップ到達時に確認できるようにするためのMODです。
※AI生成MOD