Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Bot Commands

Bot commands are not usable by any Discord user. These commands are passed into the commandHandler module directly by Alter Ego. Their purpose is to allow greater flexibility in behavior for Prefabs, Events, Puzzles, and Flags. They allow many built-in restrictions placed on Players’ actions to be bypassed.

Bot commands can only be used when a game is in progress. They can only be entered on the spreadsheet. Unlike other commands, bot commands must not start with the command prefix.

Bot commands which act upon Players generally have three different arguments that can be used in place of a Player’s name, but this isn’t always the case.

These arguments are:

  • player
    • The command will act on the Player who caused the command to be executed. For Prefabs, this is the Player who equipped/unequipped the Inventory Item. For Puzzles, this is the Player who solved/unsolved the Puzzle.
  • room
    • The command will act on all Players in the same Room as the Player who caused the command to be executed. Alternatively, for Events, this is all Players in all Rooms affected by the Event.
  • all
    • The command will act on all living Players, except for NPCs and Players with the Free Movement role.

destroy

Destroys an item.

Aliases

destroy ds

Examples

destroy VOLLEYBALL at beach
ds CAN OF GASOLINE on SHELVES at Warehouse
destroy NOTE in LOCKER 1 at Men's Locker Room
ds WRENCH in TOOL BOX 1 at beach-house
destroy WHITE GLOVES in BREAST POCKET of TUXEDO at dressing room
ds all in TRASH CAN at lounge
destroy player BLUE BIRD MUSIC BOX
ds all FACE
destroy room NUMBERED BRACELETds Vivian's VIVIANS LAPTOP in VIVIANS SATCHEL
destroy SHOTPUT BALL in Cassie's MAIN POCKET of LARGE BACKPACK 1
ds all in Hitoshi's HITOSHIS TROUSERS
destroy all in Evad's FRONT POCKET of DENIM OVERALLS 6

Details

Destroys an item in the specified location or in the player’s inventory. The prefab ID or container identifier of the item must be given.

To destroy a room item, the display name or ID of the room it’s in must be given at the end of the command, following “ at“. To destroy an inventory item, the name of the player must be given followed by 's before the item’s identifier.

If, when destroying an inventory item, “player” is supplied instead of a player’s name, then the given item will be destroyed from the inventory of the player who caused this command to be executed. If “room” is supplied instead, then the command will be executed on all players in the room as the initiating player. If “all” is supplied instead, then the command will be executed on all living players, including NPCs and players with the Free Movement role.

It is possible to specify the container from which to destroy the item. To do so, add the container’s preposition or “ in“ after the item’s identifier, followed by the container’s name. If the container is another item, its identifier or prefab ID must be used. The ID of the inventory slot to destroy the item from can also be specified, followed by “of”. If you enter “all” in place of an item’s identifier and specify a container, all items in that container will be destroyed.

It is also possible to destroy an inventory item by specifying only the ID of the equipment slot it’s equipped to instead of the item’s identifier. This will destroy whatever is equipped to that equipment slot.

Note that if you destroy an inventory item, the player will be notified if it is an item they have equipped, and its unequipped commands will be executed. The player will not be notified if it is an item they have stashed.

event

Triggers or ends an event.

Aliases

event trigger end

Examples

event trigger RAIN
event end EXPLOSION
trigger INTRUDER LOOSE ALERT
end BLACKOUT

Details

Triggers or ends the specified event.

If trigger is used, the event must not already be ongoing. Its triggered commands will be executed. If end is used, the event must be ongoing. Its ended commands will be executed.

Triggered/ended commands will not be executed if this command was called by the triggered/ended commands of another event. They will executed if they were called by the commands of a different type of game entity, however.

exit

Locks or unlocks an exit.

Aliases

exit room lock unlock

Examples

exit lock Carousel DOOR
exit unlock Chancellor's Quarters DOOR
lock warehouse DOOR 3
unlock floor-b1-hall-3 ELEVATOR

Details

Locks or unlocks an exit in the specified room. The corresponding entrance in the room the exit leads to will also be locked/unlocked. When an exit is locked, players will be unable to move through that exit.

fixture

Activates or deactivates a fixture, or sets its recipe tag.

Aliases

fixture object activate deactivate

Examples

fixture activate BLENDER
fixture deactivate MICROWAVE
fixture tag BLENDER puree
activate KEURIG Kyra
deactivate OVEN player
fixture activate FIREPLACE Log Cabin
fixture deactivate FOUNTAIN flower-garden
fixture tag BLENDER puree kitchen
activate FREEZER player "player plugs in the FREEZER."
deactivate WASHER 1 laundry-room "WASHER 1 turns off"

Details

This command has three sub-commands:

  • activate: Activates the specified fixture. When a fixture is activated, it will begin processing the recipe with the highest count of ingredients satisfied by the room items contained inside of it. If no recipe is found, it will look for one that it can process every second while it is activated.
  • deactivate: Deactivates the specified fixture. It will stop processing and looking for recipes.
  • tag: Sets the fixture’s recipe tag. This will immediately stop any ongoing recipe processes. If it is currently activated, it will begin looking for recipes it can process that satisfy the new tag. The spreadsheet will be updated with the new tag on the next save.

Keep in mind that a fixture can only be activated/deactivated if it has a recipe tag. If there is a puzzle whose state is supposed to match that of the fixture’s, you must use the puzzle command to update it separately.

If there are multiple fixtures with the same name, you can specify the room the fixture is in.

Alternatively, you may specify a player to activate/deactivate the fixture. In this case, only fixtures in the same room as the player can be activated/deactivated. When a player is supplied, a narration will be sent. You may also enter “ player“ instead of directly specifying the name of a player. In this case, the player who caused this command to be executed will be the one made to activate/deactivate the fixture.

It is possible to supply a custom narration for the fixture being activated/deactivated. Simply add a string of text surrounded by quotation marks at the end of the command. This can be done even without supplying a player. If the “ player“ argument is used, the text “player” (case-sensitive) within a custom narration will be replaced with the display name of the player who activates/deactivates the fixture.

It is recommended that you do not add line breaks to cells on the sheet. To add line breaks to the narration, enter \n. It will be replaced with an actual line break in the sent message.

Likewise, because the normal comma character is used as a delimiter in lists of bot commands, you can use the full-width comma character instead (), and it will be replaced with a normal comma in the message.

flag

Set and clear flags.

Aliases

flag setflag clearflag

Examples

flag set COLD SEASON FLAG true
setflag HOT SEASON FLAG False
flag set TV PROGRAMMING 4
setflag INDOOR TEMPERATURE {THERMOSTAT}
flag set TV PROGRAMMING += 1
setflag INDOOR TEMPERATURE -= 4.1
flag set player BALANCE += 150
setflag player BALANCE -= 21.5
flag set SOUP OF THE DAY "French Onion"
setflag BLOOD SPLATTER “player WAS HERE”
flag set PRECIPITATION `findEvent('RAIN').ongoing === true || findEvent('SNOW').ongoing === true`
setflag RANDOM ANIMAL `getRandomString(['dog', 'cat', 'mouse', 'owl', 'bear'])`
flag clear BLOOD SPLATTER
clearflag TV PROGRAMMING
flag clear player DEBT
clearflag player DEBT

Details

Set and clear flags.

  • set: Sets the flag value as the specified input. If the flag does not already exist, then a new one will be created with the specified name. The specified value must be a boolean, number, or string. String values must be surrounded by quotation marks. If a string contains “player”, and the command was executed because of a player’s actions, it will be replaced with their display name. To add or subtract from the flag’s current number value, prefix the number to add or subtract with += or -=. If you want to set the flag’s value script, surround your input with `tics`. This script will immediately be evaluated, and the flag’s value will be set accordingly. Whether the flag’s value or value script is set, the flag’s set commands will be executed, unless the flag was set by another flag.

  • clear: Clears the flag value. This will replace the flag’s current value with null. When this is cleared, the flag’s cleared commands will be executed, unless the flag was cleared by another flag.

For both sub-commands, if the command was executed because of a player’s actions, and the ID of the flag contains “ player“ (case-sensitive), “player” will be replaced with the player’s name. If a flag with that ID exists, it will have its value set or cleared accordingly. Otherwise, “player” will be treated as a literal part of the ID.

instantiate

Generates an item.

Aliases

instantiate create generate is gn

Examples

instantiate RAW FISH on FLOOR at Beach
create PICKAXE in LOCKER 1 at mining-hub
generate 3 EMPTY DRAIN CLEANER in CUPBOARDS at Kitchen
instantiate GREEN BOOK in MAIN POCKET of LARGE BACKPACK 1 at dorm-library
is 4 SCREWDRIVER in TOOL BOX at Beach House
gn WET CLAY POT (quality = excellent) on POTTERY WHEEL at Art Studio
instantiate KATANA in player RIGHT HAND
create GORILLA MASK on all FACE
instantiate NECK CLAMP to room NECK
generate VIVIANS LAPTOP in Vivian's VIVIANS SATCHEL
is 2 SHOTPUT BALL in Cassie's MAIN POCKET of LARGE BACKPACK
gn 3 GACHA CAPSULE (color=metal + character=upa) in Asuka's LEFT POCKET of GAMER HOODIE

Details

Generates a room item or inventory item in the specified location. The prefab ID must be used. A quantity can also be set by supplying a number before the prefab ID. If no quantity is given, the item will be instantiated with a quantity of 1.

If the prefab has procedural options, they can be manually selected in parentheses. To do this, write the name of the procedural tag and the poss tag to select within it, separated by an equal sign (=). Multiple procedural selections can be made, separated by a plus sign (+).

To instantiate a room item, the display name or ID of the room must be given at the end, following “at”. The container to put it in must also be specified after the prefab’s ID, preceded by the container’s preposition or “in”. If the container is a fixture with a child puzzle, the puzzle will be its container. If the container is another room item, the container’s identifier, prefab ID, or name can be used.

To instantiate an inventory item, the name of the player must be given followed by 's. It is possible to instantiate an inventory item directly to a player’s equipment slot by specifying the equipment slot’s ID. In this case, the player will be notified that they equipped the item, and the prefab’s equipped commands will be executed. However, a container item can be specified instead by entering its preposition or “in” followed by its identifier, prefab ID, or name. The player will not be notified when the item is instantiated this way.

If, when instantiating an inventory item, “player” is supplied instead of a player’s name, then the prefab will be instantiated in the inventory of the player who caused this command to be executed. If “room” is supplied instead, then the command will executed on all players in the room as the initiating player. If “all” is supplied instead, then the command will be executed on all living players, including NPCs and players with the Free Movement role.

If the container to instantiate the item into is a room item or inventory item, the ID of the inventory slot to instantiate the item into can be specified, followed by “of” before the container’s identifier.

kill

Kills a player.

Aliases

kill die

Examples

kill Platt
die Strickland Wu Obi Katou
kill player
die room

Details

Kills the listed players. Player names must be separated by a space. If, instead of specifying the names of players, you enter “player”, then the player who caused this command to be executed will be killed. If “room” is used instead, then all players in the room with the initiating player will be killed, including NPCs and players with the Free Movement role. However, if the command was issued by an event and the “room” argument is used, all players in all rooms that have the event’s room tag will be killed.

When a player is killed, they are removed from the list of living players and added to the list of dead players. This prevents them from using any player commands, thus making them unable to interact with the game world. When a player dies, they are dead permanently. To bring them back to life, they must be manually edited on the spreadsheet. Only use this command if you are absolutely sure.

Upon death, the player will be removed from whatever room and whisper channels they were in. The player will be notified, and a narration will be sent indicating that they have died. All status effects the player had will be cleared. They will retain any items they had in their inventory, but they will not be accessible in any way. In order to make the player’s corpse inspectable, it must be manually added to the appropriate location as a fixture, and their inventory items must be manually added as room items.

A dead player will retain the Player role. To remove the Player role and give them the Dead role, use the reveal command.

move

Moves the given player to the specified room.

Aliases

move go enter walk m

Examples

move Flint Chancellor's Office
enter player general-managers-office
go player Dining Hall
move room ultimate-conference-hall
m all Elevator

Details

Forcibly moves the given players to the specified room. When a player is moved, they will be removed from the room channel they were already in and added to the destination room channel. They will move to the given destination immediately, without consuming any stamina, and with no regard for whether the room is adjacent to their current room or the exit leading to it is locked.

You can select multiple players by separating their names with a space. If instead of providing the names of players, you enter “all”, all living players will be moved to the specified room, except for players who are already in that room, NPCs, and players with the Free Movement role. However, if you instead use “player”, the player who caused this command to be executed will be moved to the given destination. If “room” is used instead, then all players in the room with the initiating player will be moved, including NPCs and players with the Free Movement role. However, if the command was issued by an event and the “room” argument is used, all players in all rooms that have the event’s room tag will be moved.

When this command is used to move a player to a room that is not adjacent to their current room, the narration in the destination room will not specify which exit they entered from.

puzzle

Solves or unsolves a puzzle.

Aliases

puzzle solve unsolve attempt

Examples

puzzle solve TERMINAL
puzzle unsolve SEARCH QUERY
solve AISHA PROGRAM Ava
unsolve BURIED TREASURE Jackie
solve USERNAME jl
solve USERNAME doublehelix
puzzle solve CALL BUTTON Floor B2 Hall 1
puzzle unsolve SWITCH dorm-6
solve DRINK IN PROGRESS player "Amy begins preparing a drink for player."
unsolve DRINK IN PROGRESS player "Amy places a glass of TEQUILA SUNRISE on the BAR counter for player."
puzzle attempt COMPARTMENT player
attempt 3D PRINTER rabbit Huiyu

Details

Solves or unsolves a puzzle. You may specify an outcome, if the puzzle has more than one solution. When a puzzle is solved, it will execute the solved commands for the outcome it was solved with. When a puzzle is unsolved, it will execute the unsolved commands for the outcome it currently has. If there is a fixture whose state is supposed to match that of the puzzle’s, you must use the fixture command to update it separately.

If there are multiple puzzles with the same name, you can specify the room the puzzle is in.

Alternatively, you may specify a player to solve/unsolve the puzzle. In this case, only puzzles in the same room as the player can be solved/unsolved. When a player is supplied, a narration will be sent. You may also enter “player” instead of directly specifying the name of a player. In this case, the player who caused this command to be executed will be the one made to solve/unsolve the puzzle.

It is possible to supply a custom narration for the puzzle being solved/unsolved. Simply add a string of text surrounded by quotation marks at the end of the command. This can be done even without supplying a player. If the “player” argument is used, the text “player” (case-sensitive) within a custom narration will be replaced with the display name of the player who solves/unsolves the puzzle.

Additionally, if you specify a player, you can make them attempt the puzzle with the attempt option. This makes it possible to force the player to fail the puzzle because they didn’t provide a correct solution or they didn’t satisfy the requirements for the puzzle to be solved/unsolved.

It is recommended that you do not add line breaks to cells on the sheet. To add line breaks to the narration, enter \n. It will be replaced with an actual line break in the sent message.

Likewise, because the normal comma character is used as a delimiter in lists of bot commands, you can use the full-width comma character instead (), and it will be replaced with a normal comma in the message.

say

Sends a message.

Aliases

say

Examples

say Unit_050 Welcome. If you would like to listen to piano music, you may request a song, and I will perform it for you.
say Trash Disposal A strange smell begins emanating from the INCINERATOR.

Details

Sends a message. A room or player must be specified.

If a message is sent to a room, it will be treated as a narration.

If the name of a player is specified and that player is an NPC, the player will speak in the channel of the room they’re in. Their dialog will be treated just like that of any normal player’s. The image URL set in the player’s Discord ID will be used for the player’s avatar. It is not possible to use this command on a non-NPC player.

It is recommended that you do not add line breaks to cells on the sheet. To add line breaks to the command, enter \n. It will be replaced with an actual line break in the sent message.

Likewise, because the normal comma character is used as a delimiter in lists of bot commands, you can use the full-width comma character instead (), and it will be replaced with a normal comma in the message.

set

Sets a fixture, puzzle, or group of room items as accessible or inaccessible.

Aliases

set

Examples

set accessible puzzle ROCK CLIMBING WALL
set inaccessible puzzle LOGIN Infirmary
set accessible fixture BUNSEN BURNER
set inaccessible fixture UNDERBRUSH path-2
set accessible puzzle items LOCK robotics-lab
set inaccessible puzzle items LOOSE CRATE
set accessible fixture items DOLLHOUSE
set inaccessible fixture items TOP OF THE SHELVES Library

Details

Sets a fixture, puzzle, or group of room items as accessible or inaccessible. You have to specify whether to set a fixture or puzzle, even if you want to set a group of room items. When you use the optional “items” argument, it will set all of the items contained in that fixture or puzzle as accessible/inaccessible at once. This will also update the accessibility of all child items contained inside of those room items. It is not possible to set the accessibility of individual room items.

You can also specify a room display name or ID at the end of the command. If you do, only fixtures/puzzles/room items in the room you specify can be set as accessible/inaccessible. This is useful if you have multiple fixtures or puzzles with the same name in different locations.

setdefaultroomicon

Sets the default room icon.

Aliases

setdefaultroomicon

Examples

setdefaultroomicon https://media.discordapp.net/attachments/1290826220367249489/1441259427411001455/sLPkDhP.png
setdefaultroomicon

Details

Sets the icon that will display by default when the given room’s information is sent to a player, if there exists no specific icon for that room. The icon given must be a URL with a .jpg, .jpeg, .png, .gif, .webp, or .avif extension. To reset the default icon, simply do not specify a new icon.

Note that this will not persist across bot reboots. When the bot is rebooted, the default room icon will be reverted to whatever is set for the DEFAULT_ROOM_ICON_URL setting in your .env file.

setdest

Updates an exit’s destination.

Aliases

setdest

Examples

setdest Truck DOOR Mountain Cave TRUCK
setdest Mountain Entrance TRUCK Mountain Entrance TRUCK
setdest motor-boat PORT docks BOAT
setdest wharf MOTOR BOAT wharf MOTOR BOAT

Details

Replaces the destination for the specified room’s exit. Given the following initial room setup:

Room IDExitsLeads ToFrom
room-1EXIT Aroom-2EXIT B
room-2EXIT Broom-1EXIT A
EXIT Croom-3EXIT D
room-3EXIT Droom-2EXIT C

If the destination for room-1’s EXIT A is set to room-3’s EXIT D, players passing through EXIT A would emerge from EXIT D from that point onward. The Rooms sheet will be updated to reflect the updated destination, like so:

Room IDExitsLeads ToFrom
room-1EXIT Aroom-3EXIT D <- updated
room-2EXIT Broom-1EXIT A
EXIT Croom-3EXIT D
room-3EXIT Droom-1EXIT A <- updated

Note that this will leave room-2’s EXIT B and EXIT C without exits that lead back to them, which will result in errors next time rooms are loaded. To prevent this, this command should be used sparingly, and all affected exits should have their destinations reassigned.

setdisplayicon

Sets a player’s display icon.

Aliases

setdisplayicon sdi

Examples

setdisplayicon kyra https://cdn.discordapp.com/attachments/697623260736651335/912103115241697301/mm.png
setdisplayicon player https://cdn.discordapp.com/attachments/697623260736651335/911381958553128960/questionmark.png
setdisplayicon player

Details

Sets the icon that will appear as the given player’s avatar when their communications are mirrored as webhook messages. Webhook messages are primarily sent in spectate channels to reflect a player’s dialog, narrations, and monologs. However, webhook messages are also sent in room and whisper channels when a player uses the say, gesture, and narrate commands. Because NPCs don’t have Discord accounts, all of their communications are sent as webhook messages.

To set a player’s display icon, you must provide an image URL with an extension of .jpg, .jpeg, .png, .webp, or .avif. To reset a player’s display icon to their default display icon, simply specify the player without providing an image URL. If you enter “player” instead of a player’s name, then the player who caused this command to be executed will have their display icon set.

When player data is reloaded, all players will have their display icon reverted to their default display icon. For standard players, this is their server avatar, or their account avatar if they don’t have one set. For NPCs, this is the display icon given for them on the sheet in lieu of a Discord user ID.

Note that if the player is inflicted with a status effect with the concealed behavior attribute, their display icon will be updated to the image URL set in the DEFAULT_CONCEALED_ICON_URL setting in your .env file, thus overwriting one that was set manually. However, this command can be used to update their display icon again afterwards. When the status is cured, it will be reset to their default display icon.

This command will not change the player’s avatar when they send messages to room channels normally.

setdisplayname

Sets a player’s display name.

Aliases

setdisplayname sdn

Examples

setdisplayname Sadie Zinnia
sdn player an individual wearing a PLAGUE DOCTOR MASK
setdisplayname player
sdn player

Details

Sets the name that will be used to refer to a player in narrations in lieu of their actual name. It will also be set as their username when their communications are reflected with webhook messages. Webhook messages are primarily sent in spectate channels to reflect a player’s dialog, narrations, and monologs. However, webhook messages are also sent in room and whisper channels when a player uses the say, gesture, and narrate commands. Because NPCs don’t have Discord accounts, all of their communications are sent as webhook messages.

To set a player’s display name, enter their actual name, followed by the new display name. Display names can contain spaces, but they have a maximum length of 32 characters. If the display name does not begin with a proper noun, the first letter should not be capitalized. To reset a player’s display name to their actual name, simply specify the player without providing a display name. If you enter “player” instead of a player’s name, then the player who caused this command to be executed will have their display name set.

Setting a player’s display name will not change their name on the spreadsheet, and when player data is reloaded, their display name will be reverted to their actual name.

Note that if the player is inflicted with a status effect with the concealed behavior attribute, their display name will be updated, thus overwriting one that was set manually. However, this command can be used to update their display name again afterwards. When the status is cured, their display name will be reset.

This command will not change the player’s nickname in the server.

setpos

Sets a player’s position.

Aliases

setpos

Examples

setpos player 200 5 350
setpos room 400 -10 420
setpos vivian x 350
setpos player y 10
setpos all z 250

Details

Sets the specified player’s position. If the “player” argument is used in place of a name, then the player who caused the command to be executed will have their position updated. If the “room” argument is used instead, then all players in the same room as the player who caused the command to be executed will have their positions updated. Lastly, if the “ all“ argument is used, then all players will have their positions updated, except for NPCs and players with the Free Movement role. You can set individual coordinates with the “x”, “y”, or “z” arguments and the value to set it to. Otherwise, a space-separated list of coordinates in the order x y z must be given.

setpronouns

Sets a player’s pronouns.

Aliases

setpronouns

Examples

setpronouns Lain female
setpronouns Amadeus neutral
setpronouns Platt male
setpronouns Unit_050 it\it\its\its\itself\false
setpronouns Asuka she\it\her\its\herself\false
setpronouns Hollow ey\em\eir\eirs\emself\true
setpronouns Aeries xey\xem\xeir\xeirs\xemself\true
setpronouns player female
setpronouns player neutral
setpronouns player male
setpronouns player ey\em\eir\eirs\emself\true
setpronouns player

Details

Sets the pronouns that will be used in the given player’s description and other places where pronouns are used. This will not change their pronouns on the spreadsheet, and when player data is reloaded, their pronouns will be reverted to their original pronouns.

To set a player’s pronouns, enter their name, followed by a set of pronouns. If you enter “player” instead of a player’s name, then the player who caused this command to be executed will have their pronouns set. Pronoun sets must be given in the form: subjective\objective\dependent possessive\independent possessive\reflexive\plural. Pay close attention. Because bot command sets are separated by a forward slash (/), you must use a backward slash (\) to separate pronouns in a pronoun set. However, you can also use shorthand for the most common pronoun sets:

  • “female” (she\her\her\hers\herself\false),
  • “male” (he\him\his\his\himself\false), and
  • “neutral” (they\them\their\theirs\themself\true).

Note that if the player is inflicted with a status effect with the concealed behavior attribute, their pronouns will be set to “neutral”, thus overwriting any that were set manually. However, this command can be used to update their pronouns again afterwards. When the status is cured, their pronouns will be reset.

setroomicon

Sets a room’s display icon.

Aliases

setroomicon

Examples

setroomicon Living Room https://media.discordapp.net/attachments/1290826220367249489/1441259427411001455/sLPkDhP.png
setroomicon kitchen

Details

Sets the icon that will display when the given room’s information is sent to a player. This will override whatever is set as the DEFAULT_ROOM_ICON_URL setting in your .env file, but only for the given room. The icon given must be a URL with a .jpg, .jpeg, .png, .gif, .webp, or .avif extension. To reset a room’s icon, simply do not specify a new icon. When this command is used, the new icon will be saved to the sheet in place of the old one.

setvoice

Sets a player’s voice.

Aliases

setvoice

Examples

setvoice player a deep modulated voice
setvoice player a high digitized voice
setvoice Persephone multiple overlapping voices
setvoice Ghost a disembodied voice
setvoice Typhos Diego
setvoice player Haru
setvoice player

Details

Sets a player’s voice descriptor that will be used when the player’s dialog is heard by someone who can’t see their face.

To set a player’s voice, enter their name, followed by a voice descriptor. It is assumed that voice descriptors will be written in the form “a(n) [adjective] voice”. It is also possible to enter the name of another player (living or dead) instead of a voice descriptor. In this case, the first player’s voice will sound exactly like the second player’s, which they can use to deceive other players. If you enter “player” instead of a player’s name, then the player who caused this command to be executed will have their voice set.

Setting a player’s voice will not change their voice descriptor on the spreadsheet, and when player data is reloaded, their voice will be reverted to their original voice descriptor.

Note that unlike other commands which change a player’s characteristics, the player’s voice will not be changed by being inflicted or cured of a status effect with the concealed behavior attribute. If this command is used to change a character’s voice, it must be used again to change it back to normal. It can be reset to their original voice descriptor by specifying the player without providing a voice descriptor.

Because the normal comma character is used as a delimiter in lists of bot commands, you cannot enter a comma in a voice string with this command. Instead, use the full-width comma character (). It will be replaced with a normal comma in the voice string.

status

Inflict or cure status effects on a player.

Aliases

status inflict cure

Examples

status add player heated
status add room safe
inflict all deafened
inflict Diego heated
status remove player injured
status remove room restricted
cure Flint injured
cure all deafened

Details

This command has two sub-commands:

  • add/inflict: Inflicts the specified player with the given status effect. The player will receive the “ Description When Inflicted“ message for the specified status effect. If they already have that status effect and there is a status listed in the “When Duplicated” column, they will be cured of the given status effect and inflicted with that instead. If the inflicted status has a timer, the player will be cured and then inflicted with the status effect in the “Develops Into” column when the timer reaches 0, if there is one. If the status effect is fatal, they will simply die when the timer reaches 0 instead.
  • remove/cure: Cures the specified player of the given status effect. The player will receive the “Description When Cured” message for the specified status effect. If there is a status listed in the “When Cured” column, they will then be inflicted with that status effect.

If instead of providing the name of a player, you enter “all” or “living”, all living players will be inflicted/cured of the given status effect, except for NPCs and players with the Free Movement role. However, if you instead use “player”, the player who caused this command to be executed will be inflicted/cured. If “room” is used instead, then all players in the room with the initiating player will be inflicted/cured, including NPCs and players with the Free Movement role.

tag

Adds or removes a room’s tags.

Aliases

tag addtag removetag

Examples

tag add Kitchen video surveilled
tag remove Kitchen audio surveilled
addtag vault soundproof
removetag freezer cold

Details

This command has two sub-commands:

  • add/addtag: Adds a tag to the given room. Events that affect rooms with that tag will immediately apply to the given room, and any tag that gives a room special behavior will immediately activate those functions. The new tag will be added to the spreadsheet on the next save.
  • remove/removetag: Removes a tag from the given room. Events that affect rooms with that tag will immediately stop applying to the given room, and any tag that gives a room special behavior will immediately stop functioning. The tags will be removed from the spreadsheet on the next save.

Note that unlike the moderator version of this command, you cannot add/remove multiple tags at once.

wait

Waits a set number of seconds.

Aliases

wait

Examples

wait 5
wait 60
wait 300

Description

Not a true command, but a pseudo-command. When this command is used in a list of commands, Alter Ego will wait for the given number of seconds before executing the next command.