PEAK
Install with App

Details

Latest version
0.1.22
Last Updated
First Uploaded
Downloads
1K
Likes
2
Size
247KB
Dependants

Sun Mirror ☀️🪞

Catch the sun with a frisbee and blind your teammate with the reflection.

Found a bug, or want something changed? Join the Discord. Thunderstore has no comments, so that is the only place I can actually hear you.

Sun Mirror in action

Pick up a frisbee and hold left mouse button. A bright spot of sunlight crawls across whatever you point at. Walk it up a teammate's body and into their eyes: hands fly up over the face, spiral eyes, dazed mouth, and they can't move or look away. Hold it there and they drop.

Then they get up, and the same target can't be blinded again for four seconds. A frisbee should not be able to switch a person off.

It works on people who don't have the mod

with the mod vanilla, no mod
Hands up over the face yes yes
Head flinches back yes yes
Frozen in place yes yes
Falls over after four seconds yes yes
Spiral eyes, spinning yes yes
Dazed mouth yes no
Look locked on the glare yes no
Blinding flare on their screen yes no

The pose, the flinch, the rooting and the fall all travel through the game's own networking, so a stranger who has never heard of this mod still reacts, still gets stuck, and still falls over. Only the one holding the mirror needs it installed.

Install

Mod manager (r2modman / Gale / Thunderstore Mod Manager): find Sun Mirror, click Install, launch modded. Manual: drop Roman.SunMirror.dll into BepInEx/plugins/.

Works with PEAK 3.0.1, the current game update.

It needs daylight. The beam only works when the sun actually reaches you: not at night, not in shade, not indoors. That is deliberate.

Feedback

Join the Sun Mirror Discord — bugs, ideas, clips, all welcome. Thunderstore has no comments, so that is where I can actually hear you. Prefer GitHub? Open an issue.

Either way: a bug report with your BepInEx/LogOutput.log attached is worth ten without it.


Configuration

BepInEx/config/Roman.SunMirror.cfg, or an in-game config manager.

  • Spot — Size, SpreadPerMeter, SpriteBrightness, ContrastRing: size, punch and edge contrast of the light spot. SignalLightBrightness: an actual lamp on your mirror, off by default. It lit up the ground and walls around you — a second light source where there should only be the glare. Turn it up only if you want the mirror visible from far away at that price.

  • Emote — MaxBlindSeconds, FallAtMaxBlind, EyesOnly, BlindSfxName: how long the daze lasts, whether the victim drops, whether only eye hits count, and the sound on contact.

  • Emote — VanillaFlinchForce: the head flinch that reaches players without the mod. Keep it low; high values knock people over.

  • Emote — RootVictim, RootFallShake, RootRepeatSeconds: the hold. It runs through the game's own mechanics, so it reaches a player without the mod, and it does no damage at all. The victim is pinned where they stand — rigid, so the pose and the flinching stay visible — and gets a camera shake. Someone on a wall is pinned too, not dropped: a fall would send them off the mountain, and while the pin holds the game keeps their airtime counter at zero, so no fall damage builds up.

    RootRepeatSeconds is how often the pin is refreshed while the beam holds, 0 for a single pin. Refreshing matters because the game lets a pinned player work loose by jumping, and each new pin resets that. The four-second cap and the pause after it are untouched, so the victim always gets a window to escape.

  • Emote — BlindStatusType, BlindStatusAmount: experimental, off by default. The game can show a status effect on the victim screen, with sound and particles, even when they do not have the mod. These two settings switch it on. Start small: statuses in PEAK do real damage and they stack. Drowsy is the gentlest, it drains by itself. Do not use Spores — at 0.5 the victim starts turning into a zombie.

  • Reflection — RealMirror, RealMirrorResolution: the actual mirror surface. Lower the resolution if you are tight on performance.

  • Model — FlashEmission, FlashPulseAmount: how brightly the mirror glows while you aim, and how much that glow shimmers. FlashPulseAmount is the only thing in the mod that varies brightness over time; set it to 0 for a dead-steady glow. Push the emission too high and the game's auto-exposure starts chasing it, which makes the whole scene pulse.

  • Debug — DebugKeys: developer keys, off by default.

How it is built, and what it cannot do

The mirror is the game's own frisbee, reskinned. It is held low with both hands so it never blocks your view, and the face turned towards your target is a real reflective surface rendered with the game's own mirror shader. You see the back of it, they see the glare — like a real signal mirror.

The beam spreads by 9 mm per metre. That is the real divergence of a sunbeam off a flat mirror: the sun is 0.53° across, so at 60 m the spot is about a metre wide. It only works in actual sunlight for the same reason.

Spiral eyes, the dazed mouth and the movement lock are delivered by this mod's own networking, so a player without the mod will not get them. That is a limit of how Photon works, and it should be one: delivering the rest would mean running code on someone else's machine, and nothing should do that unless they installed it themselves.

A victim holding an item will not show the hands-to-face pose — the item-hold animation overrides it.

Built with PEAKLib and BepInEx. No third-party models or textures are bundled: everything is either generated at runtime or reused from the game's own assets.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.