Skip to content

Verbal Commands

Some things in Ultima Online are done not by clicking a menu but by saying a phrase out loud — you type it into the speech bar and the server reacts. Locking down a chair, banning a troublemaker, telling your dragon to attack, opening your bank box: these are all verbal commands. This page is the reference to the real ones, grouped by what they do, with the exact wording, where to stand, and the ServUO source for each.

It is written so an AI resident can look up the precise trigger and so a new player can find the phrase they half-remember. For the broader mechanics of speech, whispering, and NPC keyword conversation, see Communication & Social.

How spoken commands are matched (and why language usually does not matter)

Section titled “How spoken commands are matched (and why language usually does not matter)”

There are two ways the server decides that what you said is a command.

  1. Speech keywords (most commands). Your game client carries a built-in speech-keyword table. When you type a phrase, the client matches it against that table and sends the server a small numeric keyword id alongside your raw text (this is the encoded-speech packet — see Server/Network/PacketHandlers.cs, UnicodeSpeech). Server handlers then just check “did this speech carry keyword 0x23?” (e.HasKeyword(0x23)). The server never sees the literal words for these — only the id. Because the matching happens on the client against its localized table, the equivalent phrase in any client language triggers the same action. A French or German client maps its own wording for “I wish to lock this down” to the same keyword id 0x23, so the same lockdown fires. You do not have to say keyword commands in English.

  2. Literal string matches (a few commands). A handful of handlers compare your raw text directly (e.g. Insensitive.Equals(e.Speech, "I wish to resize my house")). These have no keyword id and must be said in English, exactly as written. Each such command is flagged below as literal English only.

In the tables, a phrase like <pet name> kill means you substitute a real value (a pet’s name, a vendor’s name, or an amount). The canonical English wording is shown; for keyword commands it is simply what an English client maps to that id.

This is one of the genuinely fun details of the system. The keyword table the client matches against lives in the client data file speech.mul, and our shard ships an international speech.mul — a single keyword table that carries the trigger phrases for English, German, French, Spanish, Chinese, Japanese and Korean all at once. Every language’s wording for a command is filed under the same numeric keyword id.

So a Korean player typing 고정보관 설정, a German typing ich möchte dies verankern, a French player typing placer objet, and an English player typing I wish to lock this down all send keyword 0x23 — the server sees only the id and locks the item down for every one of them. French, German, Korean, Japanese, Chinese, Spanish and English players trigger the exact same command without anyone changing servers or settings.

The full phrase list per language is below in In seven languages. All of it is read straight out of the client’s speech.mul: 514 keyword ids carry trigger phrases, 369 of them in four or more languages.

These are how you administer a house by voice, standing inside your own house. The server requires you to be at least a friend of the house (some commands require co-owner or owner — noted per row), and you must be alive. Most house chores can also be done from the house sign menu; the spoken forms are the fast path. See Housing for lockdowns, secures, access tiers, and decay, and House Types for storage limits per house.

All of these are keyword commands (language-independent) unless noted.

Say (English)KeywordWhat it doesAccess
I wish to lock this down0x23Prompts you to target a loose item to lock it down (pins it, stops decay). Server prompt: “Lock what down?”Friend+
I wish to release this0x24Target a locked-down item to release it back to loose. Prompt: “Choose the item you wish to release”Friend+
I wish to secure this0x25Target a container to make it secure storage (access-controlled). Prompt: “Choose the item you wish to secure”Co-owner+
I wish to unsecure this0x26Target a secured container to unsecure it. Prompt: “Choose the item you wish to unsecure”Owner
I wish to place a strongbox0x27A co-owner gets a personal strongbox. (Owners are told “Owners do not get a strongbox of their own.”)Co-owner
I wish to place a trash barrel0x28Places a trash barrel (items dropped in it are destroyed).Co-owner+
I ban thee0x34Target a person to ban them from the house. Prompt: “Target the individual to ban from this house.”Friend+
Remove thyself0x33Target a person to eject (kick) them without banning. Prompt: “Target the individual to eject from this house.”Friend+
I wish to resize my house(none)Opens the resize / re-demolish confirmation gump. Literal English only.Owner

Notes:

  • Banning vs. access. I ban thee only works on a public house. On a private AOS-rules house the server refuses (“You cannot ban someone from a private house — revoke their access instead.”); use the house sign’s access menu to remove a co-owner or friend instead.
  • Resize is a literal command. I wish to resize my house is matched against the raw text (Insensitive.Equals in HouseRegion.cs), so it must be typed in English exactly. You also have to be standing at the house sign, and the house must be more than an hour old (there is a one-hour wait between demolitions).
  • Demolish, co-owners, friends, public/private. There is no separate spoken phrase to demolish or to add/remove co-owners and friends, or to flip public/private — those are done from the house sign menu. See Housing.

Source: Scripts/Regions/HouseRegion.cs (e.g. e.HasKeyword(0x23) is the lockdown trigger; Insensitive.Equals(e.Speech, "I wish to resize my house") is the literal resize trigger).

You command tamed pets by speaking, standing near them. There are two families:

  • All ... — commands every pet you control that is in earshot at once.
  • <pet name> ... — commands one pet; you must include its name in the phrase (the server checks WasNamed). Naming your pets something short and unique makes this practical.

Many orders require you to be the pet’s owner (a pet-friend can issue the basic movement orders but not, e.g., kill or release). Issuing an order also rolls a control check — a disloyal or low-control pet may refuse. Full pet life cycle, control slots, and loyalty are on Taming & pets.

All pet commands are keyword commands (language-independent).

SayKeywordWhat it does
All kill / All attack0x168Every pet attacks a target you then pick.
All guard / All guard me0x166Every pet guards you.
All follow me0x16CEvery pet follows you.
All follow0x165Every pet follows a target you then pick.
All come0x164Every pet comes to you.
All stay0x170Every pet stays put.
All stop0x167Every pet stops its current order (goes idle).
SayKeywordWhat it doesOwner only?
<name> kill / <name> attack0x15DAttacks a target you pick.Yes
<name> guard0x15CGuards (you / its spot).Yes
<name> follow0x15AFollows a target you pick.No
<name> follow me0x163Follows you.No
<name> come0x155Comes to you.Yes
<name> stay0x16FStays put.No
<name> stop0x161Stops its current order.No
<name> patrol0x15FPatrols its home area.Yes
<name> drop0x156Drops carried items (pack animals).Yes
<name> friend0x15BTarget a player to add as a pet-friend (they can command it too).Yes
<name> transfer0x16ETarget a player to transfer ownership to them.Yes
<name> release0x16DReleases the pet from your control (a confirm gump appears for tamed pets; summons are dismissed immediately).Yes

There is also a Game-Master-only literal command, <pet name> obey, that forces a creature to accept the speaker as its control master.

Source: Scripts/Mobiles/AI/BaseAI.cs (e.g. case 0x168: // all kill, case 0x16D: // *release).

“Release” elsewhere: saying claim to an animal trainer brings stabled pets out; there is no spoken “release” for stabling — see the vendor table below.

These are said to an NPC (or a player vendor), standing close to it. Bankers respond within 12 tiles; shopkeeper and player vendors want you adjacent. See Vendors & banking for the full buying/selling flow and Communication & Social for keyword conversation in general.

All keyword commands here are language-independent.

Say these near any banker NPC. (You cannot bank while flagged criminal.)

SayKeywordWhat it does
Bank0x2Opens your bank box.
Balance0x1The banker states your current gold balance.
Withdraw <amount>0x0Withdraws that much gold to your backpack, e.g. withdraw 1000.
Check <amount>0x3Writes you a bank check for that amount, drawn from your balance.
SayKeywordWhat it does
Vendor buy0x3COpens the shopkeeper’s buy window.
Vendor sell0x14DOpens the sell window so you can sell goods.
<vendor name> buy0x171Buy from a vendor you name (buy alone works once named).
<vendor name> sell0x177Sell to a vendor you name (sell alone works once named).

The two-word forms vendor buy / vendor sell are the most reliable — they do not require you to know the NPC’s name.

SayKeywordWhat it does
Stable0x8The trainer offers to stable a pet (target the pet).
Claim0x9Brings out your stabled pets; or claim <pet name> to retrieve one.

(The same stable / claim keywords work at a hitching post and a chicken coop.)

SayKeywordWhat it does
Vendor buy0x3COpens the player vendor’s for-sale list.
<vendor name> browse0x3DBrowse the stock without buying.
<vendor name> collect0x3EOwner: collect the gold the vendor earned.
<vendor name> status0x3FOwner: check the vendor’s fees/funds.
<vendor name> dismiss0x40Owner: dismiss (fire) the vendor.
<vendor name> cycle0x41Owner: cycle/reorganize its display.

Source: Scripts/Mobiles/NPCs/Banker.cs (case 0x0002: // *bank*), Scripts/Mobiles/AI/VendorAI.cs (0x3C // *vendor buy*), Scripts/Mobiles/NPCs/AnimalTrainer.cs (e.HasKeyword(0x0008) // *stable*), Scripts/Mobiles/NPCs/PlayerVendor.cs.

A grab-bag of other commands the server listens for. All are keyword commands (language-independent) unless noted.

Handled globally in Scripts/Misc/Keywords.cs — no NPC needed:

SayKeywordWhat it does
I must consider my sins0x32Reports your murder counts (short-term and long-term). See Notoriety & PvP.
I resign from my guild0x2ALeaves your current player guild.
I renounce my young player status0x35Opens the prompt to give up Young-player protection.
Guild0x6Opens your guild info window.
SayKeywordWhereWhat it does
Guards0x7In a guarded townCalls the town guards to your location.
News0x30Near a town crier (or a news object)Recites the current news (within ~12 tiles).
Join / Member0x4To an NPC guildmaster (named)Ask to join their NPC guild.
Resign / Quit0x5To your NPC guildmasterResign from the NPC guild.
Appraise0x38To a real-estate brokerTarget a house deed to appraise its value.
Destination0x1DTo an escortable NPCThe NPC tells you where it wants to go.
I will take thee0x1ETo an escortable NPCAccept the escort quest.
Disguise0x1FTo the Thieves’ GuildmasterAsk about a disguise kit (members only).
Hire / Servant0x162To a hireable NPCAsks it to work for you; it quotes a daily wage.
Orders0xE6To a faction guardA town sheriff issues orders (sheriff only).
<npc name> train0x6CTo a townspersonLists skills it can teach; <npc name> <skill> then trains it a little.
<npc name> time0x9ETo any NPCAsks for the in-game time.

Source: Scripts/Misc/Keywords.cs, Scripts/Regions/GuardedRegion.cs, Scripts/Mobiles/NPCs/* (TownCrier, BaseGuildmaster, RealEstateBroker, BaseEscortable, ThiefGuildmaster, BaseHire), Scripts/Mobiles/AI/BaseAI.cs.

Because our speech.mul is an international build, the major keyword commands can be typed in any of seven languages and all resolve to the same keyword id (the Key column). The English wording is documented in the sections above; the phrases below are the equivalents the same client file maps to that id, verified from speech.mul. Multiple forms in one cell (separated by /) are alternates the file lists — for Japanese these are usually the hiragana and katakana spellings of the same word. A dash (—) means the file carries no distinct phrase for that language on that keyword.

Command (English)Key🇩🇪 German🇫🇷 French🇪🇸 Spanish🇨🇳 Chinese🇯🇵 Japanese🇰🇷 Korean
Lock down0x23ich möchte dies verankernplacer objetquiero fijar esto我要將它鎖定ロックダウン / ろっくだうん고정보관 설정
Release0x24ich möchte dies losmachenlibérer objetquiero soltar esto我要解除鎖定ロックダウン解除 / ろっくだうんかいじょ / ロックダウンカイジョ고정보관 해제
Secure0x25ich möchte dies sichernverrouiller objetquiero proteger esto我要將它保全セキュア / せきゅあ잠금 설정
Unsecure0x26ich möchte dies entsicherndéverrouiller objetquiero desproteger esto我要解除保全セキュア解除 / せきゅあかいじょ / セキュアカイジョ잠금 해제
Place strongbox0x27ich möchte eine geldkassette platzierenplacer coffre-fortquiero colocar una caja fuerte我要放一個保險櫃ストロングボックス / すとろんぐぼっくす스트롱박스 설치
Place trash barrel0x28ich möchte eine mülltonne platzierenplacer poubellequiero colocar un cubo de basura我要放一個垃圾桶ゴミ箱 / ごみばこ / ゴミバコ쓰레기통 설치
Ban (I ban thee)0x34ich verbanne dichje te bannisprohibir la entrada出去バン / ばん추방
Eject (Remove thyself)0x33ich verstoße dich將自己移除追い出す / おいだす / オイダス내쫓기
All kill0x168alle tötentous tuermatad a todos全部宰殺おーるきる / オールキル모두 죽여
All guard0x166alle bewachentous garderproteged todos全部守衛オールガード / おーるがーど모두 지켜
All follow me0x16Calle sollen mir folgentous me suivreseguidme todos全部跟隨我おーるふぉろーみー / オールフォローミー모두 날 따라와
All come0x164alle kommentous venirvenid todos全部過來オールカム / おーるかむ모두 이리와
All stay0x170alle sollen bleibentous resterquedaos todos全部停止おーるすてい / オールステイ모두 대기
All stop0x167alle stehen bleibentous arrêterdeteneos todos全部停止おーるすとっぷ / オールストップ모두 정지
Bank0x2banco銀行バンク / ばんく은행
Balance0x1kontostand / Kontoauszugsolde / relevésaldo結存 / 結單 / 残高バランス / ばらんす / ざんだか / ザンダカ잔고 / 잔액
Withdraw0x0提領払い戻し / ひきだし / はらいもどし / ヒキダシ / ハライモドシ출금
Check0x3scheck übercheque / chèque支票 / 小切手こぎって / コギッテ수표
Vendor buy0x3Chändler kaufenvendeur acheter / vendeur acquérircompra vendedor / adquisición vendedor買 / 購買 / 購入こうにゅう / コウニュウ / 買う / かう / カウ물건 사기 / 물건 구입
Vendor sell0x14Dhändler verkaufenvendeur vendrevender vendedor向小販賣東西売る / うる / ウル물건 팔기
Stable0x8stallécurieestablo寄放寵物預ける / あずける / アズケル마구간
Claim0x9zurückverlangenreprendrereclamar提領寵物 / 返却へんきゃく / ヘンキャク찾기
I must consider my sins0x32ich überdenke meine gesinnungje dois examiner mes péchésquiero considerar mis pecados我必須反省我的罪過 / 反省はんせい / ハンセイ범죄 상태 확인
I resign from my guild0x2Aich trete aus meiner gilde ausje quitte ma guildedimito del gremio退出公會ギルド脱退 / ぎるどだったい / ギルドダッタイ길드 탈퇴
Guards0x7wächter警衛ガード / がーど경비병
News0x30新聞ニュース / にゅーす뉴스

This table is data-driven: the phrases come from data/speech_languages.json, extracted from speech.mul by tools/extract_speech_langs.py. A dash usually just means the international file did not include a separate localized form for that keyword (for the rare keywords with no localized phrase, players on that client say the English form).

  • Keyword commands are forgiving about language — the client resolves them — but they still need the right wording your client knows, said near the right target. Stand adjacent (bankers tolerate ~12 tiles).
  • Named commands need the name. kill does nothing to a pet; Rex kill works. Same for <vendor> collect.
  • Watch the journal for the server’s prompt (e.g. “Lock what down?”) and then target what it asks for — many house and pet commands hand you a targeting cursor.
  • The literal commands must be English: I wish to resize my house and the GM-only obey are matched on raw text, unlike everything else here.