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.
StarPointer
Super Mario Galaxy's Co-op experience brought to Risk of Rain. Only playable in Multiplayer.
By SMouth
| Date uploaded | 13 hours ago |
| Version | 0.1.5 |
| Download link | SMouth-StarPointer-0.1.5.zip |
| Downloads | 7 |
| Dependency string | SMouth-StarPointer-0.1.5 |
This mod requires the following mods to function
bbepis-BepInExPack
Unified BepInEx all-in-one modding pack - plugin framework, detour library
Preferred version: 5.4.2120RiskofThunder-R2API_Language
API for modifying the language localisation of the game
Preferred version: 1.1.0RiskofThunder-R2API_Prefab
API for Prefab creation, networking and duplication
Preferred version: 1.1.1RiskofThunder-RoR2BepInExPack
Simplify the modding ecosystem of Risk of Rain 2, making it easier for modders to create and maintain their mods while preventing harmful bugs.
Preferred version: 1.46.0README
Star Pointer
Super Mario Galaxy's Co-op experience brought to Risk of Rain. Only playable in Multiplayer.
A spectator support survivor: watch a teammate, move a free star cursor, and help with roots, Star Bits, shrines and shake healing.
Controls
| Control | Action |
|---|---|
| Mouse | Move the compact 32-pixel cursor; extremely sensitive spin with immediate reversals |
| WASD | Smooth camera orbit: inverted A/D, W/S reversed again in 0.1.3 |
| Scroll up / down | Smooth zoom in / out |
| Primary (left mouse by default) | Hold enemies in lunar roots, or activate an affordable interactable/shrine |
| Secondary (right mouse by default) | Spend $1, then fire a two-round burst; at $0, fire free gray singles for quarter damage |
| Utility (Shift by default) | Toggle binding to the watched teammate's camera; toggle off for free orbit/zoom |
| Special (R by default) | Watch the next living normal teammate |
| Middle mouse | Ping what the cursor is hovering over |
| Hover over dropped Star Bits | Collect each for $1 with the enlarged collection radius |
| Shake the cursor over an ally | After 0.5 seconds, heal 1% of maximum HP per second while shaking |
Skill controls follow your RoR2 bindings. Mouse and keyboard are required. Free camera orbit accelerates/decelerates and defaults to 105 degrees/second. Zoom is limited to 2–40 meters. Binding follows the watched player's actual camera pose and disables independent orbit/zoom until toggled off.
The camera can clip through stage geometry. Terrain fading activates only while the Star Pointer camera is inside world collision geometry. Only screen windows covering the watched player and living enemies become transparent; surrounding terrain remains opaque. A wall between an unclipped camera and a target stays opaque. Native materials preserve triplanar/splat textures, and ambient occlusion adds depth cues. Other players retain normal terrain rendering. World geometry still blocks gameplay raycasts; fading a wall does not remove its collision. The compact cursor spins 18 degrees per pixel of mouse motion, reverses immediately and has no spin dead zone; this affects only its appearance.
Star Bits
Enemies killed by anyone drop three collectibles by default. Each gives $1, disappears after 30 seconds and uses Sale Star's model at half item scale. Bits spin on all axes and receive a random ROYGBIV color with a matching pixel light. Lights are stronger in 0.1.4, with the closest 32 enabled per camera to limit lighting cost. Fired bits spin four times faster. In the Star Pointer camera, bits fade out within 0.75 meters of camera depth and smoothly regain full opacity at four meters. Native dither fading preserves the model and colors; other players see full-opacity bits. Light intensity fades along with the bit.
Holding Secondary deducts $1 once before launching two paid rounds. Paid rounds gently home toward visible enemies near the flight direction. Free gray shots travel straight and deal one quarter of paid-round damage. Fired bits cannot be collected.
Attacks use the watched player's damage, attack speed, critical chance and native on-hit effects. Their items stay in their inventory. Normal shared kill money still applies; collectibles add $1 each. Opening a menu, changing the watched player or losing input cancels any reserved follow-up round.
Helping your team
Shake healing needs no skill button. It allows a halo three meters beyond the ally's body radius and 0.35 seconds of missed hover or motion. It requires back-and-forth cursor movement; a stationary cursor, camera movement or tiny jitter does not qualify. Native healing crosses and positional sound play on the healed ally at most once per second. Healing modifiers apply normally.
Primary applies lunar roots to enemies and activates native interactables, including Shrines of the Mountain and similar free/affordable shrines. Money, lunar/void coins and free costs are supported. HP, item and equipment costs remain unavailable. The mod adds no HUD text.
Star Pointer has no gameplay HP and cannot collect items. It contributes neither an in-zone player nor a required player to teleporter/holdout charging. It dies when every connected non-passive teammate is dead; pending normal revives are respected. Other Star Pointers, drones and disconnected users cannot sustain the run. All-passive parties lose after stage initialization.
Skins
- Player 2: orange, default.
- Player 1: blue, alternate in Appearance.
Installation
Install through a Thunderstore-compatible manager. All participants and the host/dedicated server need the same version and dependencies. Select Star Pointer in character selection.
For manual installation, install the dependencies in manifest.json and copy plugins/StarPointer into BepInEx/plugins. The package includes the shared Passive Players API; install only one copy of PassivePlayers.dll.
Settings appear in BepInEx/config/local.starpointer.survivor.cfg after first launch. The former default orbit speed of 90 is treated as 105 in this release; other custom speeds are retained.
Current limits
Early release: build, policy tests, installed-game API/asset checks and archive validation pass; live multiplayer and rendering coverage remains pending. Terrain fading preserves original shaders/material arrays and uses an extra occluder-only camera pass while clipping. This has an additional rendering cost. Ambient occlusion requires the game's post-processing layer. Transparent compositing, large combined terrain meshes, different render targets, unusual shaders and mixed/split-screen cameras need in-game validation. Native roots do not silence attacks or guarantee cancellation of scripted boss movement. Choice-pickup panels and unusual modded interactions need further coverage.
Models, textures, shaders and sound load from the installed game. No extracted game assets are distributed.
For mod developers
PassivePlayers.dll provides a shared marker and registration API for survivors that should not sustain a wiped team. See PASSIVE_PLAYER_API.md. Its plugin GUID is local.passiveplayers.api.
CHANGELOG
0.1.6
- Correct vertical camera movement: holding W raises the camera around the watched player; holding S lowers it.
0.1.5
- Activate terrain fading only when the Pointer camera is inside world collision geometry, using two-sided surface-crossing probes for non-convex meshes instead of camera-to-target casts or a proximity sphere.
- Limit fading to screen windows covering the watched player and living enemies. Draw the remaining terrain at full opacity using its native textures; overlapping windows share one fade layer.
- Remove cursor spin inertia and dead zone. Mouse movement drives 18 degrees of rotation per pixel, with immediate direction reversal and a 10,800-degree/second limit. Cursor size, aiming and healing gesture detection are unchanged.
0.1.4
- Replace terrain shader swapping with a transparent composite of occluders rendered using their original materials, retaining complete triplanar/splat texture layers.
- Increase Star Bit lights to intensity 2 and range 4.5, force pixel lighting and illuminate all layers; enable the nearest 32 per camera to bound cost.
- Fade Star Bits near the Pointer camera using their native dither shader: fully faded at 0.75 meters, fully visible at four meters; preserve other views and restore render properties.
- Change shake-heal warm-up to 0.5 seconds, retaining 1% max HP/second.
- Fix cursor pings by bypassing the native screen-center aim rewrite inside ping generation.
- Shrink the cursor from 64 to 32 pixels, increase spin sensitivity/speed/response, and prevent diagonal movement from canceling spin.
0.1.3
- Increase default orbit speed to 105 degrees/second and smooth acceleration, deceleration and zoom. Reverse W/S again.
- Toggle Align Camera to continuously bind to the watched camera; toggle off to resume independent controls.
- Allow camera clipping; add camera-scoped terrain transparency and ambient occlusion with render-state restoration.
- Increase cursor size, bit collection radius and healing halo; add mouse-driven visual pointer spin.
- Reduce collectible lifetime to 30 seconds and add subtle matching-color lights.
- Spend $1 once for two paid rounds with gentle homing; retain straight quarter-damage gray singles at $0.
- Reduce shake-heal warm-up to 0.1 seconds and increase base healing to 1% maximum HP/second.
- Route middle-mouse pings through the free cursor.
- Exclude Star Pointer from holdout/teleporter in-zone and total player counts.
- Resolve shrine interactions through native entity locators, including Shrines of the Mountain.
- Update the Thunderstore description to the requested Super Mario Galaxy co-op blurb.
0.1.2
- Invert A/D orbit controls, retaining inverted W/S.
- Add scroll-wheel zoom: up moves closer, down moves farther away.
- Add networked healing crosses and positional sound on allies receiving shake healing, throttled to once per second per ally.
- Replace Star Bit sprites with render-only Sale Star models at half item scale.
- Give each bit a synchronized random ROYGBIV color and spin it on all axes; fired bits spin four times faster.
- Render free quarter-damage shots in gray.
- Add a Thunderstore-facing README and validated upload ZIP.
0.1.1
- Remove added HUD text and invert W/S orbit controls.
- Fire three Star Bits for $1 and free gray quarter-damage singles at $0.
- Apply the lunar root effect while holding enemies.
- Add shake healing with a one-second warm-up, 0.5% max HP per second, a forgiving radius and 0.35-second grace.
0.1.0
- Initial Star Pointer survivor, skins, spectator camera, collectibles, remote interactions and shared Passive Players API.