Skip to content

Ephemeral Space Viewcones Port#226

Open
YaraaraY wants to merge 23 commits into
funky-station:masterfrom
YaraaraY:esviewcones
Open

Ephemeral Space Viewcones Port#226
YaraaraY wants to merge 23 commits into
funky-station:masterfrom
YaraaraY:esviewcones

Conversation

@YaraaraY

Copy link
Copy Markdown
Collaborator

About the PR

This PR is a cherry-pick port of MANY Ephemeral Space PRs, all written by Mirrorcult!
It adds field of view cones, occluding items and entities that your character wouldn't have line of sight with.

It additionally makes your character always turn towards where your cursor is, and forces you to walk when trying to move in the direction opposite wherever you're facing. If you're running away from something, you have to turn away from it, which hides it from your view, which is scary!!!

The view cone radius can be modified by equipment worn, so wearing a full set of firefighting SCBA gear will significantly reduce your FOV. Since this is the case, I replaced my welding mask overlays. Welding masks now instead set your view cone radius to 1. Yum dot com!

The main thing this PR does outside of a direct cherry-pick is adding four serverside CVars to tweak the new features as desired, particularly for the sake of our downstreams:

  • funkystation.viewcone_enabled: entirely toggles the viewcone system

  • funkystation.viewcone_base_angle: allows setting the base angle of the viewcones

  • funkystation.force_walk_backwards: allows you to force people to walk or not when moving backwards

  • funkystation.always_face_cursor: allows you to toggle whether people should always face their cursor or if it should behave like vanilla where you only face cursor in combat mode

Why / Balance

This changes gameplay quite a bit, and is far more atmospheric and interesting. You can actually sneak up on people now if they aren't looking, and adds more interesting design and gameplay choices when it comes to wearing armor or masks or helmets. Also "It's right behind me, isn't it."

Technical details

99% of this is ES code written by Mirrorcult.

ViewconeAlwaysFaceCursorSystem toggles MouseRotatorComponent and vanilla combat mode rotation based on the active cvars

Test plan

Spawn in as a Urist, move your cursor around. Notice how you automatically face towards it now.
Move opposite your facing direction, notice how you're forced to walk.
Look away from an item. See how it fades away.
Look away from another Urist. See how it fades away.
Equip a welding mask. See how it affects your viewcone.
Toggle all the cvars and see how everything returns to vanilla behaviour.
Mess around with the base viewcone angle cvar and see how it changes.

Media

8mb.video-yka-rsZn9weW.mp4

Requirements

  • I have read and am following the Macrocosm Pull Request Conventions.
  • I have tested this pull request and written instructions on how to test it
  • I have added media to this PR or it does not require an in-game showcase.
  • If I am porting something, I have done my best to respect the appropriate licenses associated with the presented changes.

License

MIT

Breaking changes

All introduced features are bound to cvars and can be fully disabled by downstreams.

Changelog

🆑 Mirrorcult, AraiMaia

  • add: Added view cones! You can no longer see what is directly behind you. Including people sneaking up on you.
  • add: Added cursor facing at all times instead of just combat mode.
  • add: Moving backwards now forces you to walk.

Kara and others added 20 commits July 15, 2026 15:07
* bhijn viewcone

* es

* cleanup

* yorp

* move comps to shared

* rename to occludable

* a second overlay has hit the towers

* tybg

* cleanup + overlay mgmt

* lul

* le coneman has arrived

* diff grain

* fix dat shit

* viewcone effect support + footsteps

* the mob situation is crazy

* comments

* f
* spawn menu, throw effect, verify melee/gun

* slower

* face on throw

* face on usesecondary

* fix status icons and other stuff too probably

* seems better. idk.
* viewcone angle modifying

* helmet

* status effects

* ok i guess

* genuinely going to fucking kill rider

* eyup

* examine
Co-authored-by: mirrorcult <mirrorcult@pm.me>
* occlude things that are being pulled by others

* better logic in general

---------

Co-authored-by: mirrorcult <mirrorcult@pm.me>
* Backwards walking

* fix options

* no footstep on walk

* stupid

* mark

* review

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

RSI Diff Bot; head commit 85e9594 merging into 76e47ab
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/_ES/Effects/viewcone_effects.rsi

State Old New Status
attack Added
footstep Added
forcefield Added
gunfire Added
talk Added

Edit: diff updated after 85e9594

@Teasq

Teasq commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

holy peak 🥹

@Idem778

Idem778 commented Jul 16, 2026

Copy link
Copy Markdown

Honestly this looks amazing, and from what I've seen from the changes with gas masks causing lessened vision it also makes it so if you constantly wear a gasmask or helmet or whatever you get debuffed which is quite realistic because of course helmets and such fog up from breath.
I personally love this change however the camera following the curser even without combat mode seems slightly annoying but that's a Cvar matter

@Anui-ElXx

Copy link
Copy Markdown

this sucks so much

@pirakaplant pirakaplant left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So overall, big fan of this.

I tested this out and it all works. I skimmed the code, it's commented pretty well and everything is in the right namespaces.

The only issue I really have is the fact that it's bound to one's mouse cursor at all times. This means interacting with inventories and UI elements will force characters to face a certain way, even when it wouldn't make sense for them to.

Ephemeral Space fixes this by using shift as the "face cursor" key, and moves walk to spacebar. Not sure if we want to use those controls exactly, but something like that would be ideal.

I have some minor nitpicks besides that (like being able to see puddles behind you, I tried giving them the component that occludes them but it didn't work lol) but ultimately they don't really matter. I just want to see the issue I mentioned above fixed.

EDIT: I just noticed you forgot to update your PR description. It still says the welding masks reduce the FOV to 1°.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants