

COMPATIBLE WITH COSMETICS UPDATE V0.4.0.
This mod is a host-only mod that merges touching enemy drop orbs into one orb, transfers the combined value to the surviving orb, prioritizes indestructible-effect orbs, and reduces merge-check load with contact-queue processing.
Enemy drop orbs created from defeated enemies can combine with each other when they touch. The host decides the merge result, updates the surviving orb value, and removes the losing orb over the network. Participants do not need to install the mod to see the merged result.
The latest version changes the merge decision order and performance model. The surviving orb is now selected by indestructible effect first, then player-held state, then higher value. The merge scan is also optimized so normal operation uses queued contact pairs instead of repeatedly checking every tracked orb against every other tracked orb.
The surviving orb is selected with the following order.
This means an indestructible-protected orb is kept even if the other orb is being held or has a higher value.
The original merge scan checked tracked orbs as broad pair candidates. This version keeps the same merge behavior while reducing unnecessary work.
Orb-to-orb collision callbacks enqueue only the touching pair. The merge loop then processes queued pairs up to a configured limit per tick. This avoids expensive full-pair checks during normal contact-heavy situations.
A fallback all-pair scan is still available for rare cases where Unity collision callbacks do not enqueue a pair. This fallback is slower, but it runs at a lower configurable frequency.
Indestructible orb and indestructible drone targets are cached for a short interval. This avoids repeated scene-wide searches during every priority comparison.
Two independent limit systems are included.
If MaxOrbValue is set to 0, value is unlimited.
If it is set to 1 or higher, that number becomes the maximum allowed value for a merged orb.
A merge is rejected when either condition is true.
When this happens, the orbs do not merge. Both orbs only receive invincibility again so they do not immediately break from the attempted impact. No merge-success effect is played in this case.
If MaxOrbMergeCount is set to 0, merge count is unlimited.
If it is set to 1 or higher, an orb lineage that has already reached that many successful merges can no longer merge again.
Merge count starts at 0 on a fresh orb.
After a successful merge, the resulting orb stores max(left lineage, right lineage) + 1.
This prevents bypassing the cap by forcing survival onto a lower-count orb.
When the merge-count cap blocks a merge, both orbs only receive invincibility again and no success effect is played.
A built-in network-visible impact effect can be played at the merge position. This is a success-only effect. If a merge is rejected by a cap, this effect is not played.
A built-in electricity visual based on the game's death-pit save effect can be replayed while post-merge invincibility is active. This visual can be disabled independently.
BepInEx/plugins folder[General] MergeCheckIntervalfloat0.050.011.00Lower values react faster. Higher values reduce merge processing frequency.
[General] MergeArmDelayfloat0.200.0010.00Use a low value for aggressive instant merging. Use a higher value if fresh drops should settle before merging.
[General] ReMergeCooldownfloat0.050.0010.00Low values allow faster chain merges. Higher values slow repeated merges.
[General] ContactSkinfloat0.020.0010.50The normal queued contact path uses Unity collision callbacks. This value mainly affects fallback matching.
[General] MaxOrbValueint0010000000 means unlimited.
If the cap would be exceeded, the merge is cancelled and both orbs only receive invincibility.
[General] MaxOrbMergeCountint0010000 means unlimited.
If the cap would be exceeded, the merge is cancelled and both orbs only receive invincibility.
[Performance] MaxQueuedPairsPerTickint8164Raise this if many orb piles should merge faster. Lower this if you want to reduce per-frame processing spikes.
[Performance] EnableFallbackPairScanbooltruefalsetrueKeep this enabled if some touching orbs rarely fail to enqueue contact pairs. Disable it for maximum performance if the contact queue is enough.
[Performance] FallbackPairScanIntervalfloat0.500.105.00Lower values are more responsive but heavier. Higher values are lighter but fallback merges may be delayed.
[Performance] IndestructibleTargetCacheIntervalfloat0.150.052.00Lower values update priority detection faster. Higher values reduce scene lookup frequency.
[Debug] DebugLogboolfalsefalsetrueLeave this disabled for normal play. Enable it only when verifying merge behavior.
[Effect] PlayNetworkMergeEffectbooltruefalsetrueThis effect is not played when a merge is blocked by a cap.
[Effect] PlayInvincibilityElectricityEffectbooltruefalsetrueDisable it if you want cleaner visuals.
This mod is intended for REPO with BepInEx 5. Because the merge decision is host-authoritative, it is best used as a host-side gameplay mod.
※Mod created by AI
COSMETICS UPDATE V0.4.0対応済み.
REPOが好きな日本人のための日本人のみのREPOのDiscordサーバーあります! 参加は以下のリンクから! https://discord.gg/h5ATY4m5bZ
このMODは、ホスト専用の、敵ドロップオーブ同士が接触した時に1つへ合体し、残ったオーブへ合計金額を引き継ぎ、不滅効果付きオーブを優先しつつ、接触キュー処理で負荷を軽減するMODです。
敵を倒した時に出るオーブ同士が接触すると、1つのオーブにまとまります。 マージ結果、金額更新、敗者オーブ削除はホスト側で決定されます。 参加者はMOD未導入でもマージ結果を確認できます。
最新版では、残るオーブの優先順位と処理負荷が改善されています。 残るオーブは、不滅効果付き、プレイヤー保持中、高額の順で決定されます。 通常処理は全ペア走査ではなく、接触したペアだけをキュー処理する方式です。
残るオーブは次の順で決まります。
つまり、不滅効果付きオーブは、相手が保持中または高額でも優先して残ります。
旧版は追跡中オーブ同士を広くペア判定していました。 今回の版では機能を維持したまま、不要な判定を減らしています。
オーブ同士の衝突イベントで、接触したペアだけをキューへ登録します。 マージ処理はキューに入ったペアだけを、1Tickの上限数まで処理します。 通常時の全ペア判定を避けるため、大量のオーブがある場面でも負荷が下がります。
Unity側の衝突イベントが入らない稀な状況向けに、全ペア補助判定も残しています。 ただし、通常より低頻度で動作します。
不滅オーブと不滅ドローンの対象判定は、短い間隔でキャッシュ更新します。 これにより、優先順位比較ごとのシーン全体検索を避けています。
このMODには2種類の上限があります。
MaxOrbValue を 0 にすると無制限です。
1 以上にすると、その値がマージ後オーブの最大金額になります。
次のどちらかに当てはまるとマージは拒否されます。
この場合はマージされません。 代わりに両方のオーブへ無敵だけ再付与され、ぶつけた衝撃でそのまま壊れにくくなります。 この失敗時にはマージ成功演出は再生されません。
MaxOrbMergeCount を 0 にすると無制限です。
1 以上にすると、その回数に達したオーブ系統はそれ以上マージできなくなります。
マージ回数は新規オーブで 0 から始まります。
成功マージ後の結果オーブには max(左系統, 右系統) + 1 が保存されます。
これにより、低回数側へ逃がす抜け道を防いでいます。
マージ回数上限で拒否された場合も、両方に無敵だけ再付与され、成功演出は再生されません。
マージ成功時だけ、マージ地点に既存のネットワーク可視エフェクトを再生できます。 これは成功時専用の演出です。 上限によってマージが拒否された場合は再生されません。
成功マージ後の無敵中に、ゲーム内の穴落下救済で使われる既存のビリビリ演出を再生できます。 この演出は個別にオフにできます。
BepInEx/plugins に配置[General] MergeCheckIntervalfloat0.050.011.00小さい値ほど反応が早くなります。 大きい値ほどマージ処理頻度が下がります。
[General] MergeArmDelayfloat0.200.0010.00生成直後からすぐ吸わせたいなら低めにします。 ドロップが少し落ち着いてからマージさせたいなら高めにします。
[General] ReMergeCooldownfloat0.050.0010.00低い値ほど連鎖マージが早くなります。 高い値ほど連続マージが遅くなります。
[General] ContactSkinfloat0.020.0010.50通常の接触キュー処理はUnityの衝突イベントを使います。 この値は主にフォールバック判定に影響します。
[General] MaxOrbValueint0010000000 は無制限です。
上限を超える場合、マージは中止され、両方のオーブへ無敵だけ再付与されます。
[General] MaxOrbMergeCountint0010000 は無制限です。
上限を超える場合、マージは中止され、両方のオーブへ無敵だけ再付与されます。
[Performance] MaxQueuedPairsPerTickint8164大量のオーブを早くマージさせたい場合は上げます。 1フレームの処理負荷を下げたい場合は下げます。
[Performance] EnableFallbackPairScanbooltruefalsetrue稀に接触キューに入らないオーブがある場合は有効にします。 最大限軽量化したい場合は無効化できます。
[Performance] FallbackPairScanIntervalfloat0.500.105.00小さい値ほど補助判定の反応が早くなりますが重くなります。 大きい値ほど軽くなりますが、補助判定によるマージが遅くなります。
[Performance] IndestructibleTargetCacheIntervalfloat0.150.052.00小さい値ほど優先順位判定の反映が早くなります。 大きい値ほどシーン検索頻度が下がります。
[Debug] DebugLogboolfalsefalsetrue通常プレイでは無効のままにしてください。 挙動確認時のみ有効化してください。
[Effect] PlayNetworkMergeEffectbooltruefalsetrue上限でマージが拒否された場合は再生されません。
[Effect] PlayInvincibilityElectricityEffectbooltruefalsetrue余計な演出を減らしたい場合は無効化できます。
このMODは REPO + BepInEx 5 向けです。 マージ判定はホスト主導なので、ホスト側ゲームプレイ改造MODとして使う想定です。
※AI生成MOD