User:JJRcop/Identity

From /tg/station 13 Wiki
Jump to navigation Jump to search
Rough draft, trying to get all the necessary info for a better skilled writer to rewrite. JJRcop (talk) 17:08, 4 February 2017 (UTC)
This is a page for a feature that has not been merged into the main codebase yet, and currently has a pull request open. The pull request may or may not be accepted, so this feature could not appear in the game at all. Please do not reference or link to this page from others unless the PR gets merged


The gears and cogs mostly ish

At the moment, only human mobs participate in the identity system, but it can be expanded to other mobs in the future. Mobs that participate in the identity system have a voiceprint and a faceprint. One is used when speaking, and the other is associated with your mob's appearance. In human's case, it's literally their unique identifier.

Each mind datum has a list of remembered voiceprints and a list of remembered faceprints. When someone talks, their voiceprint is transmitted through saycode, so their voice is not tied to their mob.

There are a few identity classes, how well you remember them, but they can fit into two groups: interesting, and not interesting. Interesting identities are identities which you either examined or manually set the name of (also if they are pre-known). You can think of these identities as ones that your character has committed to remembering, and made an effort to not forget. Not interesting identities are a part of the crowd, you don't remember their face, you can't recall their voice. You only remember these identities for 50 seconds after the last time they speak or did an action in front of you, then you forget them, unless you rename them manually or examine them within those 50 seconds.

Voiceprints

When someone speaks and you don't know their name, they will show up as Unknown, unless they are visible. If they are visible to you, the system will look at their uniform, which can contain a var, identity_name. If it does, that person will simply show up as the identity name. So for example, the engineer's jumpsuit's identity_name is "Engineer", so they will show up as "Engineer", the medical doctor's jumpsuit's identity_name is "Doctor", jester's suit is "Jester", etc.

If they are wearing an exosuit that obscures the jumpsuit, the system will attempt to grab the identity_name off of that instead. Failing that, they will just show up as Unknown.

Accents

Everyone gets a distinct-ish accent, which will change the color your name in chat a little bit, the current colors are black, brown, dark green, dark red, navy, and purple. Your accent can also change your name into one of three other fonts, or stay in the normal font, as well as making your name slightly bigger, slightly smaller, or remaining normal sized. This assists in making distinctions between different people who are talking, and only affects the name in chat, not the message itself.

Click-to-edit

If you don't want to use the identity manager to edit your voiceprint memory, you can just click on any name in the chat to rename it from there. Please remember though, that voiceprints will not automatically link themselves to faces unless you examine the person while they have spoken in the last 50 seconds.

Faceprints

Faceprints are used when examining someone. When you examine someone, and you don't already know their name, the system will first check if they are wearing an ID. If they are, it will attempt to gather the name written on the ID. Failing that, it will gather basic information on their appearance, using two attributes, in order of priority:

  • Their identity_name from their uniform/exosuit
  • Failing that, will default to gender, or "Unknown" if they have no gender or it's "plural" or "neuter"
    • If this defaults to gender or "Unknown", it no longer counts as an attribute and two more will be added
  • If their hair is not obscured
    • Hair color
    • Hair style
  • Hat if available
    • Failing that, mask if available
  • Eye color

After collecting at most two attributes, it will put those attributes together, and there's your name.

If you've heard someone speak in the past 50 seconds and examine them, their faceprint will automatically be linked with their voiceprint, otherwise you will just remember their faceprint alone. If you do this, and can't see their face, there is no faceprint to be linked. If you do this, and you already have manually renamed the voiceprint they used in the last 50 seconds, the name you chose for that voiceprint will override anything mentioned above, and be used instead.

Who knows who

At roundstart, and for latejoins a little bit after that, which is configurable, you will automatically know the coworkers in your department's names. Heads of Staff count as a department in this instance, so all heads know each other. An exception is made for the clown and the captain, everyone knows their names.

Team antagonists will know each other initially, so in the case of conversion antags, only the initial of those antags will know each other. Anyone else who is converted will not automatically know their peers.

Silicons know everyone... kinda.. more on that later.

(Ghosts always see real names, of course)


The identity manager

This is a new tgui interface that allows you to more finely manipulate your memory of faceprints and voiceprints. You can manually rename both faceprints and voiceprints using this menu, forget them completely, and manage which ones are linked together. It is sorted first by type: Manually set/edited names (and pre-known ones) are bold and are at the top, names you acquired via examining someone appear as normal, and are in the middle, and finally, names that you only acquire via hearing someone without renaming or examining them, are in italics, and are at the bottom of the list. The names are also sorted among their own type by most recently spoken sorted in descending order. If you click directly on a name it will become selected and will automatically be placed at the very top of the results for as long as it stays selected.

Silicons hold all the records

Silicons ignore their mind's voiceprint and faceprint memory and get their identity info directly from the crew records, this means if you edit the crew records, you edit what they see for names. This is all based off your picture in the crew records and your "voice sample", which is a new field added with the identity system. You can change the voice sample by inserting a cassette tape into a security records computer, or just erase it so that the AI won't be able to know what your name is anymore. If you update either the front or side photo, it will try to use the faceprint of the person in the center-most place in the photo. If neither the front or side photos have any faceprint information then the record loses its faceprint and the AI will have a bit more difficulty tracking you, at least when trying to use facial recognition.

The AI isn't out of luck just yet though, when anyone speaks, no matter if they are in the crew records or not, you can instantly jump to the location that they spoke from, and if a mob is currently occupying those coordinates, you will automatically start tracking them. (Hopefully it's the speaker)


I'm really someone else!

There are various ways to borrow someone's voiceprint for a bit. You can take a copy of their UE which also contains their voiceprint, the voice changer was changed from the chameleon mask to the chameleon headset and lets you record people then use their voice as your own. This all gets extremely easy for changelings. You can also take someone's face by injecting yourself with their UI, again very easy for changelings.