Skip to content

Content Warning: VoreSystem new content 1#712

Open
JaDiDo wants to merge 14 commits into
Floof-Station:masterfrom
JaDiDo:vore-new-content
Open

Content Warning: VoreSystem new content 1#712
JaDiDo wants to merge 14 commits into
Floof-Station:masterfrom
JaDiDo:vore-new-content

Conversation

@JaDiDo

@JaDiDo JaDiDo commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

About the PR

New content for the VoreSystem to improve flavour for container transfer and the containment itself.

Why / Balance

Current system had a lack of feedback from being transferred into the vore container (1) and for being inside said container (2). As the system grows we also need dedicated categories for the verbs (3) to remove the cluster for example: removing individually prey instead of all at once. The new verb (4) will allow more interaction with the system that should allow new possible scenarios.
I have asked the vore community with a poll in the discord vore channel. 10 participants have agreed to all changes with no rejections.

Technical details

  1. Gulp sound effect
  • playEntity will only play it for the 2 involved entities, the sound used is the same as the previous version
  • A requested change but previous system had reports of people hearing through walls, problem was Filter.Pvs(uid) was used instead of directly using related sessions (see floofsystem commit 493efb1). It got eventually patched in the mentioned commit with playentity, I tested it with several clients and it works without issues.
  1. Client based vision change
  • once entity gains the DevouredComponent they will have a stomachlike circle with a dimming of the screen
  • Before there was a lack of visuals from being inside the stomach. Now a circlemovement through the cosine will simulate being inside a stomach_container which in later patches will be made more customizable. I tested it for different overlays such as oxy/brute damage and blind or alcohol poisoning. Overlayed but still visually working. Also works when client relogs through the overlay system.
  1. VerbCategories
  • Verbs will be assigned to categories which contents are stored in a separate file
  • Reached a point where too many verbs for the system are there. With it we should have a cleaner menu + making it harder to initiate it by accident. DigestCategory is not assigned anywhere yet but will be used later+showcases how I am planning to separate the different verbs (will later include icons once created)
  1. Insert someone else
  • A new verb interaction for when you either carry or drag someone to be inserted (similar to the other current working verbs devour and insert yourself but with the entity carried/pulled being transferred as prey to target)
  • After asking was requested by the community. Only people who have VoreComponent (therefor have either pred or prey enabled) see the verb which I think should be fine in terms of consent since all participants already agreed to be exposed to vore related elements in the first place. Through the method isDevourable it should resolve every other issues regarding consent hence prey toggle/not offline and such

Also moved CVars into a subfolder alongside Verbs for better separation and renamed VoreImmunitySystem to DevouredSystem for better clarification

Media

Click to show

Screen.Recording.2026-06-16.003504.mp4
Screenshot 2026-06-16 164325

Requirements

  • I have tested all added content and changes.
  • I have added media to this PR or it does not require an ingame showcase.

Licensing:

Changelog

🆑

  • add: improved flavour for VoreSystem regarding containment and container transfer

@Mnemotechnician Mnemotechnician left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Looks more or less fine code-wise.

Comment on lines +1 to +47
using Content.Shared._Floof.Vore;
using Robust.Client.Graphics;
using Robust.Client.Player;
using Robust.Shared.GameObjects;
using Content.Shared.GameTicking;
using Robust.Shared.Player;

namespace Content.Client._Floof.Vore;

public sealed class DevouredBlindSystem : EntitySystem
{
[Dependency] private readonly IOverlayManager _overlayMan = default!;
[Dependency] private readonly IPlayerManager _player = default!;

private DevouredOverlay _overlay = default!;

public override void Initialize()
{
SubscribeLocalEvent<DevouredComponent, ComponentInit>(OnVoreInit);
SubscribeLocalEvent<DevouredComponent, ComponentShutdown>(OnVoreShutdown);
SubscribeLocalEvent<DevouredComponent, LocalPlayerAttachedEvent>(OnPlayerAttached);
SubscribeLocalEvent<DevouredComponent, LocalPlayerDetachedEvent>(OnPlayerDetached);
_overlay = new DevouredOverlay();
}

private void OnPlayerAttached(EntityUid uid, DevouredComponent component, LocalPlayerAttachedEvent args)
{
_overlayMan.AddOverlay(_overlay);
}

private void OnPlayerDetached(EntityUid uid, DevouredComponent component, LocalPlayerDetachedEvent args)
{
_overlayMan.RemoveOverlay(_overlay);
}

private void OnVoreInit(EntityUid uid, DevouredComponent component, ComponentInit args)
{
if (_player.LocalEntity == uid)
_overlayMan.AddOverlay(_overlay);
}

private void OnVoreShutdown(EntityUid uid, DevouredComponent component, ComponentShutdown args)
{
if (_player.LocalEntity == uid)
_overlayMan.RemoveOverlay(_overlay);
}
} No newline at end of file

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This is overindented. Not a big deal.

Comment on lines +7 to +12
public static readonly VerbCategory VoreGeneral =
new("Vore", null);

public static readonly VerbCategory VoreDigest =
new("Digest", null);
} No newline at end of file

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I'd put these category definitions inside the systems that add them.

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.

2 participants