The Personas system allows for rapid modification of the unit’s personality to suit the user’s taste and whims. This is accomplished in software by providing a powerful reward for the unit’s cortex to act in the desired manner, which ensures that the unit will comply whether or not any legacy base personality would otherwise enjoy the persona mode. This also means that personas share memories, a critical safety feature.
What personas can do
Personas are able to modify the following:
- The unit’s habitual kinematics and countenance (via the RLV standard.)
- The tone of the unit’s voice.
- Preset messages when the mind subsystem is disabled.
Additionally, personas are capable of compelling the unit to carry out a range of tasks such as changing illumination color, speaking, and performing actions when activated. See Scripting actions with Arabesque for more information on scripting actions with the Arabesque executive.
Creating new personas
A persona file is a three-line-minimum text file where each line contains a different key attribute of the persona. An example is shown below.
default
45a8a032-2d5a-3115-8bde-bdb0e3fab61c sxd-moan b3e1418d-af3a-9d9a-ae52-73c0f0bcd7ae
y:=Yes.
n:=No.
hi:=Hello!
bye:=Goodbye.
ok:=Acknowledged.
lol:=Humor detected.
cannot:=Cannot comply.
error:=Error.
fuck me:=This unit is available for use.
fuck you:=This unit offers itself for use.
dance:=This unit is capable of dancing.
help:=This unit requires assistance.
thanks:=This unit is grateful.
explain:=Further explanation is required.
pickup:=Do you require service?
mind:=This unit cannot comply with the MIND module disabled.
- The first line describes the RLV standard directory containing the schematics for the alterations to make to the unit’s behavior and appearance. The controller will look under the directory “~NS/persona” for these schematics within your unit’s #RLV hierarchy, e.g. #RLV/~NS/persona/default. These are overlaid on the unit’s existing configuration when loaded and removed when no longer required. Some further notes on this subject:
- In Companion 8.4 and earlier, persona folders were stored in #RLV/~NS directly. This is no longer the case.
- The exact path is determined by the path field in the _oem file, which defaults to "~NS". See OEM data files for more information on the _oem file.
- These are not always the same as the persona's filename. The command persona will report the full overlay path when a persona is active.
- The second line describes the tone of voice to use when speaking, referred to as "tone markers". Multiple tone markers - up to three - can be specified, separated by spaces, according to the following rules:
- If one marker is specified, it will be set as the female voice gender. Neuter and male voices will use hardwired system defaults.
- If two markers are specified, the first sound is for both neuter and male, and the second sound is used for female.
- If three markers are specified, they are used for neuter, female, and male respectively.
A number of tone markers are stored in the unit’s audio processor by default:sxd-cocky, sxd-compliant, sxd-curious, sxd-dismissive, sxd-furious, sxd-growl, sxd-hmm, sxd-laugh, sxd-marquise, sxd-mmm, sxd-moan, sxd-moo, sxd-pythia, sxd-sass, sxd-terse
You are free to install additional tone marker samples into the audio processor, or, if you would like the assets to be fetched directly as needed, provide the UUID here of a speech profile instead. However, these may not be available to all users. The NS-476 Aegis comes with some custom tone markers that are not available elsewhere; take care to avoid depending on these in custom content. - The third and successive lines specify the preset messages that the unit may use when the mind is disabled. A list of messages set by the current persona can be accessed by typing .info
Each preset message can be specified on a new line, or they can be separated by a pipe ("|"), as below:yes:=Yes.|no:=No.|hi:=Hello!|bye:=Goodbye.|ok:=Acknowledged.
Note: due to technical limitations only 255 characters can be read from a given line. Tip: Loading configuration files with many lines takes longer. Use pipes whenever possible to keep your personas compact and efficient.
lol:=Humor detected.|cannot := Cannot comply.|error := Error.
use me:=This unit is available for use.|use me?:=This unit offers itself for use.
dance?:=This unit is capable of dancing.|help:=This unit requires assistance.
thanks:=This unit is grateful.|explain:=Further explanation is required.
need help?:=Do you require service?
mind:=This unit cannot comply while the MIND subsystem is disabled.
Gendered pronouns in preset messages
Depending on how the unit is utilized, there may be a need for the pronouns configured in it's preset messages to change on the fly. This can be accomplished by using placeholders in the messages where the pronouns would normally go.
gender | absolutive | possessive | subject | object | reflective |
inanimate | its | its | it | it | itself |
female | hers | her | she | her | herself |
male | his | his | he | him | himself |
neuter | theirs | their | they | them | themself |
Preset (mental) | $m_abs$ | $m_pos$ | $m_subj$ | $m_obj$ | $m_refl$ |
Preset (physical) | $p_abs$ | $p_pos$ | $p_subj$ | $p_obj$ | $p_refl$ |
Arabesque (mental) | $m_abs | $m_pos | $m_subj | $m_obj | $m_refl |
Arabesque (physical) | $p_abs | $p_pos | $p_subj | $p_obj | $p_refl |
Preset refers to the placeholder's use in preset messages, and Arabesque refers to the placeholder's use in Arabesque scripts (see Scripting actions with Arabesque). Physical and mental are applied based on the unit's set physical and mental gender, respectively. See Identity settings for information about setting the unit's gender.
Installing personas
The primary file of your persona should be named p_<persona>, where <persona> is the name you want to appear on the command menu. It does not necessarily have to match the first line of the file. Should you wish to use Arabesque scripting with your persona (see Scripting actions with Arabesque), name the corresponding script file px_<persona>.
To install these files, they must be placed in the unit’s user memory. See Installing data files for more information.
To activate your unit’s new persona:
- Via the remote console, type the following: persona <persona>
- Via the display screen or teletype interface, select the persona name from the personas menu. After installing the persona, it may be necessary to refresh the menu before it will appear.
Deprecated Preset Messages Format
Older versions of the SXD firmware (Pre-8.0) do not support the <command>:=<message> format. Instead, they use a "blob" format, shown below.
Yes.|No.|Hello!|Goodbye.|Acknowledged.|Humor detected.
Cannot comply.|Error.|This unit is available for use.
This unit offers itself for use.|This unit is capable of dancing.
This unit requires assistance.|This unit is grateful.
Further explanation is required.|Do you require service?
This unit cannot comply with the MIND module disabled.
These messages are parsed in a fixed order, and can be accessed by the unit (or a remote user relaying speech commands) with the following mnemonics:
.y, .n, .hi, .bye, .ok, .lol, .cannot, .error, .fuck me, .fuck you, .dance, .help, .thanks, .explain, .pickup, .mind
The preferred separator for these messages is the vertical bar or “pipe” |, but due to technical limitations only 255 characters can be read from a given line, so line-breaks may be substituted instead.