CustomCrosshairV2

版本 v0.2.0·更新於 2026-10-12

A configurable custom crosshair replacement for Risk of Rain 2.

模組介紹 作者原文

AI-Generated Project Notice

Everything in this project—including the code, architecture, documentation, prompts, implementation plans, and this README—has been generated with AI assistance. The project is being manually reviewed and tested in Risk of Rain 2, but AI-generated work should not be assumed correct without verification.

RoR2 Custom Crosshair

A work-in-progress Risk of Rain 2 mod that replaces the normal gameplay crosshair with a configurable, procedural crosshair system inspired by modern competitive shooters.

The current implementation focuses on local visual customization only. It does not modify weapon behavior, projectile spread, networking, or other gameplay mechanics.

Current Status

The current prototype is implemented, builds successfully, deploys into the development r2modman profile, and has been manually tested in-game by the project owner. The currently implemented visual framework appears to be working as intended based on testing completed so far.

Working foundation

  • Procedural crosshair rendering.
  • BepInEx configuration persistence.
  • RiskOfOptions in-game configuration.
  • Live configuration updates without restarting the game.
  • Local-player-only crosshair behavior.
  • Spectator protection.
  • Normal gameplay replacement.
  • Sprint replacement.
  • Special skill crosshairs can remain vanilla when intentionally preserved.
  • Resolution-aware scaling using a 1920x1080 reference.
  • HUD-scale compensation.
  • Pixel-aligned symmetric geometry.
  • True outline rendering that does not tint translucent fills.
  • Crosshair lifecycle survives normal gameplay state changes.
  • No R2API dependency is currently required.
  • No gameplay networking or configuration synchronization.

Current Crosshair Framework

The renderer is divided into four independently configurable visual systems.

Inner Bars

Four centered bars with independent settings for:

  • Enabled
  • Static / Dynamic mode
  • Length
  • Thickness
  • Gap
  • RGB color
  • Opacity
  • Outline enabled
  • Outline thickness
  • Outline RGB
  • Outline opacity

Outer Bars

A second four-bar layer with the same independent controls as Inner Bars.

Inner and Outer Bars can be enabled at the same time and use the same exact center and scaling rules.

Circle

A hollow circular crosshair layer with:

  • Enabled
  • Static / Dynamic mode
  • Radius
  • Thickness
  • RGB color
  • Opacity
  • Outline enabled
  • Outline thickness
  • Outline RGB
  • Outline opacity

The circle is rendered as generated ring geometry rather than a texture-based approximation.

Center Dot

A separate centered dot with:

  • Enabled
  • Size
  • RGB color
  • Opacity
  • Outline enabled
  • Outline thickness
  • Outline RGB
  • Outline opacity

The current dot is square so it remains pixel-exact at small sizes.

Static and Dynamic Modes

Static and Dynamic modes currently render the same geometry.

This is intentional.

Dynamic mode is reserved specifically for future visualization of actual weapon/projectile spread.

Dynamic mode will not represent:

  • charge state
  • cooldown
  • windup
  • readiness
  • time remaining
  • shots remaining
  • skill stock

Those concepts will be handled by separate indicator systems.

The current renderer already exposes independent future dynamic offsets for:

  • Inner Bars
  • Outer Bars
  • Circle

This allows any combination of Static and Dynamic layers later without another renderer rewrite.

Configuration Layout

RiskOfOptions currently exposes separate configuration categories for:

  • General
  • Inner Bars
  • Outer Bars
  • Circle
  • Center Dot

Existing older crosshair configuration is migrated into Inner Bars on first launch of the newer framework.

Default behavior keeps Inner Bars enabled while Outer Bars, Circle, and Center Dot start disabled so existing users retain approximately the same appearance after migration.

Current Technical Architecture

Crosshair replacement

The mod works through Risk of Rain 2's HUD crosshair-selection flow instead of permanently forcing CrosshairUtils.RequestOverrideForBody.

This was chosen b

安裝與使用 安裝:BepInEx 外掛

  1. 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
  2. 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
  3. 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
  4. 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。

帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。

前置依賴

下面這些內容需要先安裝,否則該模組不會生效:

RiskofThunder-HookGenPatcherRune580-Risk_Of_Optionsbbepis-BepInExPack

檔案與校驗

檔案名稱
CustomCrosshairV2-0.2.0.zip
檔案大小
269.7 KiB