Internal Affairs Agent update (#5505)

* holy shit i should've commited a while ago

* passenger thing

* okay error, idk what to do for passengers

* fixed some typos, made records to 1, made chameleon to 1, added fakemindshield, added job filter to ignore passengers hopefully

* redudant

* pricing changes, pointless catalogue, jaws, bombs, a lot of stuff

* prisoner job fix (arrest the prisoner)

* description to desc fix, pwd9 pistol and IA stamp addition

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* reverted jobrequirement, shit is buggy

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
Cepelinas1 2026-03-24 18:45:01 +02:00 committed by GitHub
parent 583f473359
commit 48571a0e70
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 502 additions and 23 deletions

View File

@ -6,7 +6,7 @@ NTAgent-role-greeting-human =
If you're caught, Central Command will deny everything.
NTAgent-briefing =
You've been implanted with a CentComm Radio Implanter.
You've been implanted with a CentComm Radio Implanter, alongside NanoLink.
Use :y to talk through CentComm channels.
objective-issuer-NTAgent = [color=#204cc7]NanoTrasen[/color]

View File

@ -4,3 +4,4 @@ stamp-component-stamped-name-chiefjustice = Chief Justice
stamp-component-stamped-name-prosec = Prosecutor
stamp-component-stamped-name-hate-paperwork = I HATE PAPERWORK!
stamp-component-stamped-name-nanotrasen = Nanotrasen
stamp-component-stamped-name-NTAgent = INTERNAL AFFAIRS

View File

@ -1 +1,32 @@
store-recruiter-name-uplink = Recruiter merchandise
store-preset-name-nanolink = Nanolink
store-category-surveillance = Surveillance
store-category-framing = Framing
store-currency-display-bluespacecoin = NanoCoin
nanolink-centcom-pen-name = CentComm pen
nanolink-centcom-pen-desc = A sleek CentComm Pen. Perfect for document forgery to screw over people, screwing chairs under people or screwing pens into people.
nanolink-spy-monitor-name = Spy Monitor
nanolink-spy-monitor-desc = A device that's connected to the crew monitor servers. Stalk your co-workers with ease!
nanolink-cobra-name = Cobra Pistol
nanolink-cobra-desc = A pistol with a built-in suppressor. While murdering your co-workers is discouraged, framing your co-workers for murder is perfectly fine!
nanolink-glasses-name = Secret Shades
nanolink-glasses-desc = A pair of sunglasses with a built-in sechud.
nanolink-encryption-name = Master Encryption Key
nanolink-encryption-desc = Listen into all radio frequencies with this simple key. Remember not to talk over it though.
nanolink-stampbox-name = Head Stamp Box
nanolink-stampbox-desc = A box containing all Command stamps. Try to be convincing with your permits.
nanolink-tablet-name = Station Records Tablet
nanolink-tablet-desc = A tablet used to view all station records. Conveniently disguised as a station map tablet.
nanolink-agentid-name = Agent ID
nanolink-agentid-desc = A modified ID card that can copy accesses from other cards and change its name and job title at-will. You can also fake signatures with this.
nanolink-decoy-name = Decoy Kit
nanolink-decoy-desc = A confiscated syndicate duffel bag containing hooliganistic tools, such as fake balloons and fake grenades. Management discourages playing with them for amusement.
nanolink-ntfan-name = Duffelbag of Loyalty
nanolink-ntfan-desc = Forfeit your handlers and co-workers respect by showing your love for NanoTrasen!
nanolink-ntstamp-name = IA rubber stamp
nanolink-ntstamp-desc = A rubber stamp with Internal Affairs print. Scare the station by showing that CC is always watching.
nanolink-epistol-name = PDW-9 Energy Pistol
nanolink-epistol-desc = Lethally or non-lethally take down your foes with this military grade energy pistol.

View File

@ -12,3 +12,48 @@
- id: ClothingUniformHarbingerTunic
- id: ClothingOuterCoatHarbingerCoat
- id: AccursedScythe
- type: entity
parent: ClothingBackpackChameleonFill
id: ClothingBackpackChameleonFillNT
suffix: Fill, Chameleon, NT
components:
- type: EntityTableContainerFill
containers:
storagebase: !type:AllSelector
children:
- id: ChameleonPDA
- id: ClothingUniformJumpsuitChameleon
- id: ClothingOuterChameleon
- id: ClothingNeckChameleon
- id: ClothingMaskGasChameleon
- id: ClothingHeadHatChameleon
- id: ClothingHandsChameleon
- id: ClothingEyesChameleon
- id: ClothingHeadsetChameleon
- id: ClothingShoesChameleon
- id: ChameleonControllerImplanterNT
- type: entity
parent: ClothingBackpackDuffel
id: ClothingBackpackDuffelNTFan
name: duffelbag of loyalty
description: A large duffelbag for the most loyal and devoted employees of Nanotrasen.
components:
- type: EntityTableContainerFill
containers:
storagebase: !type:AllSelector
children:
- id: NTHandyFlag
- id: BalloonNT
- id: ClothingUniformJumpsuitNanotrasen
- id: ClothingNeckCloakNanotrasen
- id: NanotrasenFlippo
- id: ClothingOuterCorporateJacket
- id: ClothingLongcoatNanoTrasen
- id: TowelColorNT
- id: ClothingShoesBootsLaceup
- id: ClothingHandsGlovesColorBlue
- id: ClothingEyesGlassesSunglasses
- id: ClothingHeadHatCommandSoft
- id: ClothingHeadHatBeretCommand

View File

@ -0,0 +1,250 @@
# deception
- type: listing
id: PenCentcom
name: nanolink-centcom-pen-name
description: nanolink-centcom-pen-desc
productEntity: PenCentcom
icon:
entity: PenCentcom
cost:
NanoCoin: 2
categories:
- NanolinkDeception
- type: listing
id: NanolinkChameleonProjector
name: uplink-chameleon-projector-name
description: uplink-chameleon-projector-desc
productEntity: ChameleonProjector
cost:
NanoCoin: 3
categories:
- NanolinkDeception
- type: listing
id: NanolinkChameleon
name: uplink-chameleon-name
description: uplink-chameleon-desc
productEntity: ClothingBackpackChameleonFillNT
icon: { sprite: /Textures/Clothing/Uniforms/Jumpsuit/rainbow.rsi, state: icon }
cost:
NanoCoin: 3
categories:
- NanolinkDeception
- type: listing
id: NanolinkAgentIDCard
name: nanolink-agentid-name
description: nanolink-agentid-desc
productEntity: AgentIDCard
cost:
NanoCoin: 3
categories:
- NanolinkDeception
- type: listing
id: NanolinkVoiceMask
name: uplink-voice-mask-name
description: uplink-voice-mask-desc
productEntity: ClothingMaskGasVoiceChameleon
cost:
NanoCoin: 3
categories:
- NanolinkDeception
- type: listing
id: NanolinkBoxHeadStampBase
name: nanolink-stampbox-name
description: nanolink-stampbox-desc
productEntity: BoxHeadStampBase
cost:
NanoCoin: 3
categories:
- NanolinkDeception
- type: listing
id: FakeMindShieldImplantNT
name: uplink-fake-mindshield-name
description: uplink-fake-mindshield-desc
icon: { sprite: Interface/Actions/actions_fakemindshield.rsi, state: icon-on }
productEntity: FakeMindShieldImplantNT
cost:
NanoCoin: 2
categories:
- NanolinkDeception
#Surveillance
- type: listing
id: SpyCrewMonitor
name: nanolink-spy-monitor-name
description: nanolink-spy-monitor-desc
productEntity: SpyCrewMonitor
icon:
entity: SpyCrewMonitor
cost:
NanoCoin: 3
categories:
- NanolinkSurveillance
- type: listing
id: ClothingEyesGlassesHiddenSecurity
name: nanolink-glasses-name
description: nanolink-glasses-desc
productEntity: ClothingEyesGlassesHiddenSecurity
icon:
entity: ClothingEyesGlassesHiddenSecurity
cost:
NanoCoin: 2
categories:
- NanolinkSurveillance
- type: listing
id: EncryptionKeyStationMaster
name: nanolink-encryption-name
description: nanolink-encryption-desc
productEntity: EncryptionKeyStationMaster
icon:
entity: EncryptionKeyStationMaster
cost:
NanoCoin: 5
categories:
- NanolinkSurveillance
- type: listing
id: NanolinkRecordsTablet
name: nanolink-tablet-name
description: nanolink-tablet-desc
productEntity: HandheldStationMapRecordsTablet
icon:
entity: HandheldStationMapRecordsTablet
categories:
- NanolinkSurveillance
conditions:
- !type:ListingLimitedStockCondition
stock: 1
# framing
- type: listing
id: WeaponPistolCobra
name: nanolink-cobra-name
description: nanolink-cobra-desc
productEntity: WeaponPistolCobra
icon:
entity: WeaponPistolCobra
cost:
NanoCoin: 8
categories:
- NanolinkFraming
- type: listing
id: WeaponEnergyGunPistol
name: nanolink-epistol-name
description: nanolink-epistol-desc
productEntity: WeaponEnergyGunPistol
icon:
entity: WeaponEnergyGunPistol
cost:
NanoCoin: 6
categories:
- NanolinkFraming
- type: listing
id: NanolinkJawsOfLife
name: uplink-syndicate-jaws-of-life-name
description: uplink-syndicate-jaws-of-life-desc
productEntity: JawsOfLife
icon:
entity: JawsOfLife
cost:
NanoCoin: 2
categories:
- NanolinkFraming
- type: listing
id: NanolinkFakeBomb
name: uplink-exploding-syndicate-bomb-fake-name
description: uplink-exploding-syndicate-bomb-fake-desc
productEntity: SyndicateBombFake
icon:
entity: SyndicateBombFake
cost:
NanoCoin: 4
categories:
- NanolinkFraming
- type: listing
id: NanolinkDecoyKit
name: nanolink-decoy-name
description: nanolink-decoy-desc
productEntity: ClothingBackpackDuffelSyndicateDecoyKitFilled
icon:
{ sprite: /Textures/Objects/Tools/Decoys/operative_decoy.rsi, state: folded }
cost:
NanoCoin: 3
categories:
- NanolinkFraming
- type: listing
id: NanolinkLobbyingBundle
name: uplink-bribe-name
description: uplink-bribe-desc
productEntity: BriefcaseThiefBribingBundleFilled
icon:
entity: BriefcaseThiefBribingBundleFilled
cost:
NanoCoin: 3
categories:
- NanolinkFraming
- type: listing
id: NanolinkFakeDisk
name: uplink-decoy-disk-name
description: uplink-decoy-disk-desc
productEntity: NukeDiskFake
icon:
entity: NukeDiskFake
cost:
NanoCoin: 1
categories:
- NanolinkFraming
# Pointless
- type: listing
id: NanolinkClownCostume
name: uplink-costume-clown-name
description: uplink-costume-clown-desc
productEntity: ClothingBackpackDuffelSyndicateCostumeClown
cost:
NanoCoin: 2
categories:
- NanolinkPointless
- type: listing
id: NanolinkOutlawGlasses
name: uplink-outlaw-glasses-name
description: uplink-outlaw-glasses-desc
productEntity: ClothingEyesGlassesOutlawGlasses
cost:
NanoCoin: 1
categories:
- NanolinkPointless
- type: listing
id: NanolinkNTFan
name: nanolink-ntfan-name
description: nanolink-ntfan-desc
productEntity: ClothingBackpackDuffelNTFan
cost:
NanoCoin: 10
categories:
- NanolinkPointless
- type: listing
id: NanolinkNTAgentStamp
name: nanolink-ntstamp-name
description: nanolink-ntstamp-desc
productEntity: RubberStampNTAgent
cost:
NanoCoin: 1
categories:
- NanolinkPointless

View File

@ -50,3 +50,23 @@
components:
- type: Implanter
implant: NukeopsUplinkImplant
# NTAgent
- type: entity
parent: BaseImplantOnlyImplanterCentcomm
id: NanolinkImplant
name: nanolink implant
suffix: NanolinkImplant
components:
- type: Implanter
implant: NanolinkSubImplant
- type: entity
parent: [BaseImplantOnlyImplanterCentcomm, ChameleonControllerImplanter]
id: ChameleonControllerImplanterNT
- type: entity
parent: [BaseImplantOnlyImplanterCentcomm, FakeMindShieldImplanter]
id: FakeMindShieldImplantNT
name: fake mindshield implanter

View File

@ -65,3 +65,17 @@
netsync: false
radius: 1.2
color: orange
- type: entity
name: IA rubber stamp
parent: RubberStampBase
id: RubberStampNTAgent
suffix: DO NOT MAP
description: A rubber stamp for stamping important documents. For internal related affairs.
components:
- type: Stamp
stampedName: stamp-component-stamped-name-NTAgent
stampedColor: "#000080"
stampState: "paper_stamp-cap"
- type: Sprite
state: stamp-cap

View File

@ -0,0 +1,36 @@
- type: entity
name: head stamp box
parent: BoxBase
id: BoxHeadStampBase
description: A cardboard box containing all important command member stamps. Other stamps not included.
components:
- type: Item
size: Large
shape:
- 0,0,2,2
- type: EntityTableContainerFill
containers:
storagebase: !type:AllSelector
children:
- id: RubberStampCaptain
- id: RubberStampCE
- id: RubberStampHos
- id: RubberStampCMO
- id: RubberStampHop
- id: RubberStampChiefJustice
- id: RubberStampRd
- id: RubberStampQm
- type: Storage
maxItemSize: Small
grid:
- 0,0,2,2
whitelist:
components:
- Stamp
- type: Sprite
layers:
- state: box
- state: stamp
- type: Tag
tags:
- BoxCardboard

View File

@ -83,3 +83,39 @@
- type: Tag
tags:
- NukeOpsUplink
# NTAgent
- type: entity
parent: [ BaseSubdermalImplant, StorePresetNanolink ]
id: NanolinkSubImplant
name: Nanolink implant
description: This implant lets the user access a hidden NanoTrasen uplink at will.
categories: [ HideSpawnMenu ]
components:
- type: SubdermalImplant
implantAction: ActionOpenNanolinkImplant
whitelist:
components:
- Hands
- type: Store
balance:
NanoCoin: 10
- type: UserInterface
interfaces:
enum.StoreUiKey.Key:
type: StoreBoundUserInterface
requireInputValidation: false
- type: entity
parent: ActionIntrinsicStore
id: ActionOpenNanolinkImplant
name: Open Nanolink
description: Opens the NanoTrasen uplink embedded under your skin.
components:
- type: Action
itemIconStyle: BigAction
priority: -20
icon:
sprite: Objects/Devices/communication.rsi
state: old-radio

View File

@ -422,3 +422,4 @@
- type: AutoImplant
implants:
- RadioImplantCentcomm
- NanolinkSubImplant

View File

@ -19,3 +19,40 @@
- type: storeCategory
id: RecruiterTreasure
name: store-category-recruiter-treasure
# NTAgent (nanolink)
- type: entity
id: StorePresetNanolink
abstract: true
components:
- type: Store
name: store-preset-name-nanolink
categories:
- NanolinkDeception
- NanolinkSurveillance
- NanolinkFraming
- NanolinkPointless
currencyWhitelist:
- NanoCoin
balance:
NanoCoin: 0
- type: storeCategory
id: NanolinkDeception
name: store-category-deception
priority: 0
- type: storeCategory
id: NanolinkSurveillance
name: store-category-surveillance
priority: 1
- type: storeCategory
id: NanolinkFraming
name: store-category-framing
priority: 2
- type: storeCategory
id: NanolinkPointless
name: store-category-pointless
priority: 3

View File

@ -9,3 +9,8 @@
cash:
1: TreatCoin1
canWithdraw: true
- type: currency
id: NanoCoin
displayName: store-currency-display-bluespacecoin
canWithdraw: false

View File

@ -13,56 +13,59 @@
<Box>
<GuideEntityEmbed Entity="PosterLegitNanotrasenLogo" Caption=""/>
</Box>
You're an agent for [color=#204cc7]NanoTrasen[/color], sent here to do some dirty work for them. [color=cyan]The only thing your employers ask of you is to limit the damage you cause to other employees or company property.[/color] Otherwise, you're going to be billed for it.
You're an agent for [color=#204cc7]NanoTrasen[/color], sent here to do some dirty work for them. [color=cyan]The only thing your employers ask of you, is to limit your damage to other employees or company property.[/color] Otherwise, you're going to be billed for it.
[color=red]Remember, no one likes a snitch,[/color] so revealing to others that you work for the Big Man won't do you any favors. Keep your agenda hidden.
[color=red]Remember, no one likes a snitch,[/color] so revealing yourself to others that you work for the Big Man won't do you any favors. Keep your agenda hidden.
##Your Tools
To help you complete your objectives effectively, you've been given a [bold]CentComm radio implanter[/bold] and [bold]NanoTrasen's uplink, named "NanoLink."[/bold]
##The Singular Gadget
Unfortunately, due to budget cuts, your employers didn't really give you access to fancy tools, [bold]except for your radio implanter.[/bold]
NanoLink offers items to help you deceive your fellow co-workers or keep an ear or eye on them. It should be useful for your tasks!
You might have another agent active, which you can easily communicate with by using your radio with [color=cyan]:y[/color]
As for your radio implant, there might be another agent active, and you can easily communicate with them by using your radio with [color=cyan]:y[/color]
You could also contact your [bold]handler[/bold], which is [color=green]Central Command[/color]. They might give you a hand on some things, but don't rely on it.
You can also contact your [bold]handler[/bold], [color=green]Central Command[/color]. They might give you a hand with some things, but don't rely on it.
##Getting Someone Fired
[italic]A certain Employee might've gotten too comfortable with their position, which could potentially spell bad news for NanoTrasen. Have them explore other job opportunities.[/italic]
[italic]A certain employee might've gotten too comfortable in their position, which could potentially spell bad news for NanoTrasen. Help them explore other job opportunities.[/italic]
Getting someone fired might be easy or difficult, depending on their job. If a janitor, it should be easy, but if it's a Command member, it might be harder (especially the Captain.).
Getting someone fired might be easy or difficult, depending on their job. If they're a janitor, it should be easy, but if they're a Command member, it might be harder (especially if it's the Captain).
However, making up a reason shouldn't be too hard. Writing a "credible" report about their breach of [textlink="The Company Policy" link="companyPolicies"] or their behaviour might help you if you spy on them. Otherwise, putting them in a bad spot that you've made up might do the trick too. Convincing them to wear Syndicate clothing would make their bosses [italic]very happy![/italic]
However, making up a reason shouldn't be too hard. Writing a "credible" report about their breach of [textlink="The Company Policy" link="companyPolicies"] or their behavior might help if you spy on them. Otherwise, putting them in a bad spot that you've made up might do the trick too. Convincing them to wear Syndicate clothing would make their bosses [italic]very happy![/italic]
##Getting Someone Framed
[italic]Someone got on NanoTrasen's bad side. They need you to ensure they end up in prison.[/italic]
[italic]Someone has gotten on NanoTrasen's bad side. They need you to ensure that they end up in prison.[/italic]
Framing someone sounds harder than it looks, especially when you don't have easy access to contraband. Though your ingenuity might come in handy. [color=cyan]Remember, they need to end up in prison at Midpoint.[/color]
- [bold]Spy on your target, watch for any opportunities or moments where they commit something illegal, or make them commit something.[/bold] Maybe a clown is willing to pick a fight with them, so you can falsely report the target of starting the fight?
- [bold]Use the environment to your advantage.[/bold] Was there sabotage or an explosion going off? You better inform the Security Officer about a [italic]certain suspicious individual you saw.[/italic]
Framing someone sounds harder than it looks, especially when you don't have easy access to contraband. Still, your ingenuity might come in handy. [color=cyan]Remember, they need to end up in prison at Midpoint.[/color]
- [bold]Spy on your target, and watch for any opportunities or moments where they commit something illegal, or make them commit something illegal.[/bold] Maybe a clown is willing to pick a fight with them, so you can falsely report that the target started it?
- [bold]Use the environment to your advantage.[/bold] Was there sabotage or an explosion going off? You'd better inform the Security Officer about a [italic]certain suspicious individual you saw.[/italic]
Remember, security is usually dumber (or smarter) than they seem. They might be too busy with their jobs to remember your face, but they might remember your small clue. Hell, you could become the Detective's best informant. Just try not to overdo it. Station might wisen up to your antics. [italic]You need to SELL your lie effectively![/italic]
Remember, security is usually dumber (or smarter) than they seem. They might be too busy with their jobs to remember your face, but they might remember your small clue. Hell, you could become the Detective's best informant. Just try not to overdo it. The station might wise up to your antics. [italic]You need to SELL your lie effectively![/italic]
##Auditing a Department
[italic]NanoTrasen needs you to check how their valued departments work.[/italic]
[italic]NanoTrasen needs you to check how their valued departments operate.[/italic]
Auditing a department is a very open-minded objective. How it's done, how much is done is entirely up to you, [bold]but Central Command needs that report from you.[/bold]
Auditing a department is a very open-ended objective. How it's done, and how much is done, is entirely up to you, [bold]but Central Command needs that report from you.[/bold]
- Inspect your chosen Department! You might find certain infractions or SOP breaches.
- Test the reaction time of the Department. Breaking into bridge and seeing how fast Security can escort you out will work. Cutting power from Logistics, just to see how long it takes for Engineering to figure out the problem also helps.
- Inspect your chosen department! You might find certain infractions or SOP breaches.
- Test the department's reaction time. Breaking into bridge and seeing how fast Security can escort you out will work. Cutting power to Logistics just to see how long it takes Engineering to figure out the problem also helps.
You're the auditor! Figure out what's MOST important to audit.
##Defunding a Department
[italic]NanoTrasen needs a good reason why overfunding certain departments is a bad idea.[/italic]
Your job is to pick a Department of your choosing and ensure that their Department Budget is almost all empty by the end of the shift.
Your job is to pick a department of your choosing and ensure that its department budget is nearly empty by the end of the shift.
You can either secretly pocket all of the money or waste their funds on entirely useless things. If they don't have the cash, you can also ensure that the department starts lacking certain things, like chairs or even consoles!
- Withdrawing cash from the ordering console usually leaves a big radio announcement of who done it. Limit your withdrawls or use someone else's ID to take it.
- People are going to notice if certain important objects go missing from their departments, which can arouse unwanted attention. Start small and go from there. Use distractions to your advantage and try to get things unnoticed.
- Withdrawing cash from the ordering console usually leaves a big radio announcement saying who did it. Limit your withdrawals or use someone else's ID to take it.
- People are going to notice if certain important objects go missing from their departments, which can attract unwanted attention. Start small and work from there. Use distractions to your advantage and try to keep things unnoticed.
Remember, some departments might be easier to defund than others. While defunding the Justice department would be easy, it would be more impressive to defund Security.
##Getting Called by Your Handler
From time to time, you might get a small request from [color=green]Central Command Officials[/color] to do some extra work. While it's [italic]not mandatory[/italic] to complete them, they might be willing to help you out later if you help them out.
From time to time, you might get a small request from [color=green]Central Command Officials[/color] to do some extra work. While it's [italic]not mandatory[/italic] to complete them, they might be willing to help you out later if you help them now.
However, if you're [italic]looking[/italic] for extra work, contacting your superiors is always an option!
</Document>