Skip to content

Small Ninja rework - #258

Open
Miguel4387 wants to merge 23 commits into
funky-station:masterfrom
Miguel4387:ninja-rework
Open

Small Ninja rework#258
Miguel4387 wants to merge 23 commits into
funky-station:masterfrom
Miguel4387:ninja-rework

Conversation

@Miguel4387

@Miguel4387 Miguel4387 commented Jul 31, 2026

Copy link
Copy Markdown

About the PR

  • Beggining the comms or criminal records hack notifies security on the radio
  • Spider Charge can be defused, has a much longer countdown and larger explosion.
  • Ninja spawns with voice changer implant, so you can play mind games if you steal comms
  • Removed glove emag and door emag objective
  • Reworked the shurikens to be laced with nocturine but be unable to affect people with >=30% piercing armor (good way to deal with civilians and steal accesses and radios)
  • RD server notifies sci upon research being stolen
  • Replaced survive objective with "survive and extract" as well as adding a method for the ninja to return to the clan after achieving all their objectives using a new item, the spider clan pager, (extracting deletes them and applies greentext)
  • Edited the guidebook to accomodate for the changes
  • Other small changes

Why / Balance

Ninja should be encouraged to be more stealthy and these changes aim to do that, making ninja more vulnerable to security especially while attempting to achieve their objectives.

Also the extract mechanic so ninjas don't hang around and do nothing for the rest of the round. Also means the station cant be sure if the threat is still active or not.

Technical details

Added the spider clan pager as well as its systems and components under _Funkystation/Ninja

Had to make a new function to handle checking how much armor someone has for the throwing stars under Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem

Added the warning message to the commsHackerSystem, CriminalRecordsHackerSystem and ResearchStealerSystem
Also added parameter OverrideName to the SendRadioMessage function in RadioSystem so it doesn't use the entity. (It would cause the comms hack to broadcast which comms console was being hacked specifically)

Added the ability to recall the spider charge, with functionality almost exactly the same as the recall katana one (with exceptions like if its armed)
Also added the OnUnstuck function to the SpiderChargeSystem to defuse it

Added function GetDistanceFromStation to StationSystem, it gets the distance of an entity to the station grid.

Made a shitty bandaid fix so that plastic explosives like the spider charge can be unsticked from windows with grilles (it just completely ignores grilles now when checking if they're reachable)

Test plan

Tested all of the added functionalities as I added them to make sure they worked properly. Also tested different maps to ensure nothing broke.

Ensured spider charge cant be unsticked without disarming it and that it was correctly disarmed, made sure all the popups and greentext worked correctly, etc.

Media

Comms.Warning.1.mp4
Ninja.Extract.And.Pager.1.mp4
Throwing.Star.Changes.1.mp4
Spider.Charge.Changes.1.1.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

There should be no breaking changes, hopefully.

Changelog

🆑

  • add: Added the ninja pager which can be used to extract if you're far away from the station and have done all your objectives
  • tweak: Ninja beggining the comms or criminal records hack notifies security on the radio
  • tweak: RD server notifies sci upon research being stolen
  • tweak: Spider Charge can be defused, has a much longer countdown and larger explosion
  • tweak: Ninja spawns with voice changer implant
  • tweak: Ninja throwing stars have nocturine but are unable to inject people with >=30% piercing armor
  • tweak: Replaced survive objective with "survive and extract" as well as adding a method for the ninja to return to the clan
  • tweak: Edited ninja guidebook entry
  • remove: ninja door emag glove functionality and objective

@jhardtmadsen-blip

Copy link
Copy Markdown

is there anything stopping sec from just sitting near the hackable objects and waiting for the alert and then shooting the ninja cuz they have to stand still, cuz if not that does not sound fun, especially for the crime terminals which are generally only in sec

@Miguel4387

Miguel4387 commented Jul 31, 2026

Copy link
Copy Markdown
Author

The terminals are not only in sec, they're also found in checkpoints and the bridge. Also if sec does that then the ninja is free to go do their other objectives.

Also this would also be an issue without this PR anyway since sec would be able to see the doafter bar

(also thats not fun for sec either)

@jhardtmadsen-blip

Copy link
Copy Markdown

The terminals are not only in sec, they're also found in checkpoints and the bridge. Also if sec does that then the ninja is free to go do their other objectives.

Also this would also be an issue without this PR anyway since sec would be able to see the doafter bar

(also thats not fun for sec either)

i just feel like the announcement is gonna do the opposite of make them be stealthy cuz it outs their location often thus making them incentivized to go loud and take out sec, also not all maps have checkpoints with those terminals iirc

@Miguel4387

Copy link
Copy Markdown
Author

I dont think ninja would have fun taking out sec... seriously ninja's strong because of its ability to avoid combat. Sec's too slow and cant even see them. These announcements also dont give out their specific location, since theres a bunch of comms and criminal records consoles the ninja could be hacking, if you DO go loud and give out your location that just means sec is much more likely to know which exact one you're using and interrupt you at your most vulnerable.

If it happens ninja is too powerful when fighting sec I could also nerf their armor or weapons but I dont think thats neccessary

@jhardtmadsen-blip

Copy link
Copy Markdown

I dont think ninja would have fun taking out sec... seriously ninja's strong because of its ability to avoid combat. Sec's too slow and cant even see them. These announcements also dont give out their specific location, since theres a bunch of comms and criminal records consoles the ninja could be hacking, if you DO go loud and give out your location that just means sec is much more likely to know which exact one you're using and interrupt you at your most vulnerable.

If it happens ninja is too powerful when fighting sec I could also nerf their armor or weapons but I dont think thats neccessary

people will happily do the unfun thing if they feel they should/its the best way

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

RSI Diff Bot; head commit b2ffd0d merging into 29b3d4b
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/_Funkystation/Objects/Devices/ninja_pager.rsi

State Old New Status
icon-unshaded Added
icon Added
inhand-left-unshaded Added
inhand-left Added
inhand-right-unshaded Added
inhand-right Added

Edit: diff updated after b2ffd0d

@Miguel4387
Miguel4387 marked this pull request as ready for review August 4, 2026 14:20

@salpphie salpphie left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Genuinely very happy with the changes to Ninja. And especially the ability to just extract when done. We have issues with ninja's just loitering or going to CC when it doesn't make sense as an antag to follow to evac. I definitely approve of these changes.

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.

3 participants