Documentation menu

Documentation / Start

Commands

Everything Emunah does, one module at a time: the same text emhelp shows in the client, generated from the same table.

Using it

emhelp                        # every module, and whether each is on
emhelp curing                 # one module: its commands and every setting
emset                         # status
emset curing on               # a command
emset curing.method minerals  # a setting

There is one prefix, emset, and every setting can be set by name with emset <setting> <value>. In the client, emhelp <module> lists each setting with its current value, and clicking one changes it. The few words outside emset are listed under the module they belong to.

System

Emunah runs off GMCP: vitals, afflictions, defences, inventory and the room arrive from the game and everything else reacts to them once per prompt. Every command goes through one gate that knows when the game would refuse it (stunned, asleep, unconscious, dead, off balance, prone, paralysed, entangled) and holds it rather than wasting it. Death pauses everything until you are alive again. Settings are saved per profile.

emset

status: curing, defences, safety floors, what is tracked

emset <setting> [value]

show or change any setting, e.g. emset curing.method minerals

emhelp [module]

this help: the modules, or one module's commands and settings

emset reload

update from GitHub's main (unless system.update is off), then reload Emunah from disk, keeping its state

emreload

the same, and still works if the command module failed to load

emset debug

debug log: every command sent, and every command held with the reason

emset debug gmcp

trace every GMCP message in and out

emset debug queue|timers|handlers

dump the action queue, the timers or the event handlers

emset skills

your skillsets and ranks, from GMCP

emset skills dump [skillset ...]

write every ability's AB text, from GMCP, to emunah-abilities.txt in the profile

emset queue

what is waiting on each balance, Emunah's and yours

emset queue bal|eq|eqbal|free <command>

send <command> when that balance is free, ahead of everything automated

emset queue clear

drop the commands you queued that have not gone yet

SettingDefaultMeaning
queue.typedHold0.5 sAfter you type a command, Emunah's balance and equilibrium sends wait this long, plus your latency, so yours goes first. 0 turns it off.
queue.chaintrueSend commands together: a herb only in the rift is pulled and eaten in one go, every restock trip goes at once, and once the game has named its CONFIG SEPARATOR the commands of one prompt leave as one line. Off, each command goes on its own.
logLevelinfodebug, info, warn or error. emset debug toggles between info and debug.
system.updatetruePull main (fast-forward only) before every reload. Off, a reload loads what is on disk.
schema12Config format version. Managed by the migrations; do not set this by hand.

Curing

Tracks your afflictions from GMCP (and from EmunahTriggers.xml, with the reference system's anti-illusion) and cures them on the right balance: herbs, salves, elixirs, moss, smoking, FOCUS, the tree tattoo, COMPOSE, CONCENTRATE, CLOT and WRITHE. One cure per balance at a time, never inside a balance, never while something blocks it (anorexia, slickness, asthma, paralysis...). Follows the reference system's rules for what to cure first and when not to. While PvP holds in defence (after t <name>, before F1), spends one equilibrium on METABOLISE IMPATIENCE so a second player cannot reapply it inside about two seconds; never ahead of the attack. Sips health and mana, eats moss, keeps cures pulled from the rift into your inventory, and wakes you from a sleep you did not choose.

emset curing

on or off, and every affliction being tracked

emset curing on|off

switch curing on or off

emset pause

pause or resume curing and defences together; after QUIT, resume everything

pp

the same as emset pause: one toggle for curing and defence keep-up

emset keep

the herbs kept in hand, and how many of each

emset keep <herb> <number|off|default>

keep more, fewer or none of a herb in hand; IR shows every herb with a toggle

emset prio <affliction> <balance> <rank>

cure an affliction sooner or later on one balance; lower is sooner

emset ownprios [on|off]

use your own ranks and situational rules from conf/priorities.conf and conf/situations.conf, or go back to the shipped ones

sleep

RELAX INSOMNIA if it is up, then SLEEP, marked as yours: Emunah neither wakes you nor raises insomnia until you are up

SettingDefaultMeaning
curing.enabledfalseOff by default, deliberately. Curing is opt-in.
curing.methodherbsherbs or minerals. Changes which item every cure resolves to.
curing.confirmWait2.0 sHow long a sent cure holds its vector waiting for the game to confirm it, before the vector is re-armed.
curing.reconcileEvery20 ticksHow often the tracked list is reconciled against Char.Afflictions wholesale.
curing.healthThreshold80 %Sip health below this.
curing.manaThreshold85 %
curing.iridThreshold68 %Eat irid moss below this, on health or mana.
curing.handsThreshold50 %PERFORM HANDS below this. Costs equilibrium, which attacking also spends, so this is set low on purpose.
curing.iridtrue
curing.ownpriosfalseUse conf/priorities.conf and conf/situations.conf. Set with emset ownprios.
curing.diagtrueSend DIAG when the affliction list is in doubt. That is what answers loki, the one affliction GMCP does not report honestly.
curing.treetrueYou have the Tree of Life tattoo, and curing touches it. The game never lists the tattoo as a defence, so this is what says it is there. Off: never touched.
curing.metabolisetrueWhile PvP holds in defence (after t <name>, before F1), METABOLISE IMPATIENCE once equilibrium is free, so a second player's reapplication inside about two seconds is resisted. Costs 3 seconds of equilibrium, so it never goes ahead of the attack, only under a lock that holds it. Waits while PERFORM HANDS or DIAG wants it. Off leaves the focus where it is.
curing.clotThreshold30Bleeding above this is clotted.
curing.focusGuiltfalse
curing.elixirConfirm7.0 s
curing.mossConfirm9.0 s
curing.riftConfirm1.5 s
curing.restocktruePull consumables out of the rift as they run low.
curing.restockEvery1 ticksEvery prompt by default. It used to be every tenth, which made each pull ten prompts apart for no benefit: only one pull can be in flight anyway.
curing.restockSalvesfalse
curing.stockTarget1How many of each consumable to keep in hand. Ash is kept at 2 at least: crescendo takes two in a row.
curing.keep(unset)Per herb, how many to keep in hand; 0 for none. Set with emset keep or the toggles under IR.
curing.recovery.<vector>per vector sOverride the fallback recovery time for one vector, e.g. curing.recovery.herb.
curing.antiIllusiontrueThe reference system's anti-illusion: EmunahTriggers.xml reports wait for the prompt and a block containing an illusion is discarded whole; a refusal is believed only after a command it could answer; a herb balance back within 1.1s of eating is ignored. Ignored lines are marked (i). Off believes every line as it arrives.
curing.textConfirm2.0 sHow long an affliction reported by text waits for the server to confirm it before it is dropped as an illusion.
curing.idlePoll15 sWith no prompt for this long, send a blank line for one, so curing sees health and mana that defences drained while idle. The prompt it brings is hidden when it comes straight after another prompt. 0 turns it off.
curing.focusMinMana35 % of maxFOCUS is held at or below this mana (the reference system's manause).
priorities{}Per-affliction, per-vector rank overrides. Written by emset prio.

Defences

Raises the defences you choose and keeps them up. Each one is off, defup (raise it once) or keepup (raise it whenever it drops). Knows the command for the herb, salve, elixir and skill defences; tattoos and anything else can be taught. Never raises a defence that is already up, and never spends the balance while curing needs it. Everything that can go on one prompt goes together, and the equilibrium defences go cheapest first unless you set an order.

emset defs

the defence grid: click to cycle off / defup / keepup, and pipe relight on / off

emset defs on|off

switch defence keep-up on or off

emset defs add <name> [command]

keep a defence up, with the command that raises it if it is not known

emset defs remove <name>

stop keeping a defence up

emset defs mode <name> defup|keepup|off

raise it once, keep it up, or leave it alone

emset defs order [<name> ...|clear]

raise these first, in this order; the rest go cheapest first

SettingDefaultMeaning
mace.keeptruePick the mace up and wield it whenever it is not in hand, whether or not defence keep-up is on. CALL and SUMMON stay with keep-up, which never gives up on it.
mace.warntrueName the mace on the prompt whenever it is not wielded: "(mace not wielded)" or "(mace on the ground)". WIELDED is shown at login either way.
defences.enabledfalse
defences.keepup{}name -> "defup" or "keepup". Written by the defence grid.
defences.commands{}name -> the command that raises it, for defences we ship no command for.

Pipes

Keeps your pipes filled and lit so smoking cures are always ready: refills an empty pipe with the herb it holds, relights one that has gone out, and reads PIPELIST now and then to stay honest. All of it is hidden, the pipe going out included; a PIPELIST you ask for is shown. Also toggled from the emset defs grid.

emset pipes

each pipe: lit or out, what it holds, puffs left

emset pipes on|off

switch pipe upkeep on or off

emset pipes now

send PIPELIST now, and show it

SettingDefaultMeaning
pipes.enabledtrue
pipes.assign(unset)Which herb goes in which pipe.
pipes.poll0 sRe-check every pipe this often with PIPELIST. 0 (the default) asks only when the pipes are not known, e.g. after login or a reload.

Riding

Keeps your mount with you: whenever it is in the room and you are not riding it, it is ordered to follow you (free). With keep-up on, you vault back onto it whenever you are off it, but only when the balance is idle: never while anything needs curing, never while bashing or PvP is running, never while it is not in the room. (Not knowing whether you are already riding is no bar: the game refuses a vault onto a horse you are on for free.) While it is not with you, the end of your prompt says so. Also toggled from the emset defs grid.

emset riding

the mount: here or not, ridden or following, keep-up on or off

emset riding on|off

switch riding keep-up (vaulting back on) on or off

SettingDefaultMeaning
riding.keepupfalseVault back onto the mount whenever you are off it and the balance is idle.
riding.mountpegasus510623The mount, as VAULT takes it. Its number is how the room list and ORDER name it.
riding.followtrueOrder the mount to follow you whenever it is here and not ridden, and warn on the prompt while it is not with you.

Rites

Keeps up the rites you perform. You put every rite up yourself, in a fight too: nothing is performed that you have not performed. Perform one, or type RITES where yours are up, and it is performed again each time it runs out, for as long as you stay in that room: leaving the room stops it. How long each has left comes from RITES, read (hidden) once equilibrium is back after each perform. Held while PvP is on. Three tries that do not bring a rite up and it stops, and says so.

emset rites

the rites being kept up, and how long each has left

emset rites on|off

switch rite keep-up on or off (off forgets the ones kept now)

emset rites stop

stop keeping up the rites kept now, leaving keep-up on

SettingDefaultMeaning
rites.keepuptruePerform the rites you perform again as they run out, until you leave the room.

Hunting

Bashing and walking. Bashing attacks the denizens in the room, one at a time by replica number, on the balance and equilibrium your attack uses. The walker explores an area room by room. hunt runs both: clear a room, move on. Support mode follows a leader instead: it attacks what they attack and nothing else. Stops itself when health drops below its floor, when a player arrives, or when damage comes in too fast.

emset hunt [off]

walk and bash together; off stops both. F11 toggles it

emset hunt retreat

stop both, go back three rooms the way you came, and stay there

emset support [<name>|off]

support mode: attack what <name> attacks, never walking. F9 toggles it

emset bash

bashing: target, kills, damage, whether it is running

emset bash on|off

the same as emset hunt / emset hunt off: bash, and walk the area

emset bash attack <command>

the attack, sent as <command> <replica>

emset walk

the walker: area, rooms left, visited

emset walk start|stop

explore the current area, or stop

SettingDefaultMeaning
walker.avoid{}
walker.autotrue
walker.stepDelay0.6 s0.1 to 30.
walker.returnToStarttrueToggled in-session by emset walk return; not persisted.
walker.stopBelowHealth40 %
walker.stopOnPlayerfalse
walker.transitTimeout8.0 s
bashing.attackangel sear
bashing.balancebothWhat the attack REQUIRES: eq, bal or both.
bashing.consumeseqWhat the attack SPENDS: eq or bal. Not the same question as balance.
bashing.supportLeaderWho support mode follows; set by emset support <name>.
bashing.stopBelowHealth50 %Zero disables the floor.
bashing.maxAttempts40
bashing.walkWhenCleartrue
bashing.stopOnPlayerfalse
bashing.soloOnlytrue
bashing.resumeMargin10 pointsHow far above the health floor to recover before resuming.
bashing.penitencetruePriest only.
bashing.desolationtruePriest only.
watch.critical30 %The floor everything stops at. Zero disables it.
watch.damageSpike25 %
watch.damageWindow10 ticks
watch.damageSpikeBelow60 %
watch.endurance15 %
watch.willpower15 %
watch.mana10 %
watch.resource10 %
denizens.autoRecordtrue

PvP

Attacks the player you name, and only that player: it never picks a target by itself. Nothing offensive is sent while it is off. Every free balance (prayer, balance, equilibrium) sends what the mode calls for (F1 attack, F2 defence, F3 hinder, F4 finish; offence has no key), choosing by the afflictions the game has confirmed on them. Holds balance and equilibrium while you are locked, and stops below its health floor.

emset pvp

target, their afflictions and mana, attacks sent

emset pvp on|off

start or stop attacking the target. F12 stops it, and so does F1 in attack mode

emset pvp target <name>|off

choose the target, or clear it

emset pvp mode attack|defence|hinder|finish|offence

enter a PvP mode and turn PvP on; it acts at once, without waiting for a prompt. F1 attack, F2 defence, F3 hinder, F4 finish. Offence has no key. Another key switches mode; F1 again stops attack, and F12 turns any of them off

t <name>

target them and turn PvP on, holding in defence: F1 starts the attack. Already fighting, it switches target and keeps the mode

SettingDefaultMeaning
pvp.stopBelowHealth25 %Replaces watch.critical in PvP. Zero disables it.
pvp.queuefalseWhile balance or equilibrium is out, put the next exchange in the game's queue (QUEUE ADDCLEAR eqbal) and choose it again on every cure seen, so it goes the moment both are back. Needs the game's command separator.
pvp.promptLockstrueShow the target's lock afflictions on the prompt: asthma, slickness, anorexia, paralysis and impatience, a doubtful one with its chance, and any lock they are in.
pvp.purityBelow20 %Perform purity when the target's health is known to be at or under this. Only when the game has given their health; zero turns it off.
pvp.modeoffenceattack, defence, hinder, finish or offence: what each balance sends. F1-F4 set the first four.

Allies

A partner is never a target: adding one marks them an ally. While you fight, their arrivals and departures are said. A partner's message that matches one of allies.calls sets your PvP target to the name it calls. Lines only one class sends name who is attacking you, and as what.

emset ally

your partners, who is here, the last call, and who is attacking you

emset ally add|remove <name>

add a partner (and mark them an ally), or remove one

SettingDefaultMeaning
allies.followtrueSet your PvP target to the name a partner calls.
allies.callsLua patterns a partner's message is read with as a call, each capturing the name called, matched anywhere in the message, e.g. Target:? (%a+). None by default.

Loot & shop

Picks up gold from the room after a kill and stows it. Shop purchases above a set price ask before buying.

emset loot

whether gold pickup is on, and how much has been picked up

emset loot on|off

switch gold pickup on or off

emset loot now

sweep the room now

buy [qty] <number>

buy by the number from WARES, e.g. buy 50 476321; gold comes from the pack

SettingDefaultMeaning
loot.goldtrue
loot.aloneOnlytrueOnly lift gold with nobody else in the room.
loot.ownKillsOnlyfalse
loot.noDenizenstrueDo not stop to loot while anything on the kill list is still in the room.
loot.holdTyped30 sGold you take out of the pack yourself (get ... gold) is left in hand this long before it goes back. 0 puts it straight back.
pack.idbackpack452292The one pack, by replica number: gold is stowed in it, purchases are paid from it, and antitheft keeps it worn and closed.
pack.capacity50 itemsHow many items the pack holds. A pack inside it counts as one.
shop.confirmAbove(unset) gpPurchases above this price ask for confirmation.

Antitheft

Keeps selfishness up (it is on the defences grid, emset defs), cures generosity early, puts named valuables in the pack, and raises an alert when an item leaves your inventory or pack with nothing you sent to explain it, or when selfishness is stripped. An enemy entering the room puts everything away at once.

emset antitheft

status: selfishness, the pack and what is kept in it

emset antitheft on|off

switch it on (selfishness joins keep-up) or off (it leaves)

emset antitheft now

put loose gold and valuables in the pack now

SettingDefaultMeaning
antitheft.enabledtrue
antitheft.alarmtrueAlert when an item leaves inventory or the pack unexplained.
antitheft.sweep(none)Comma-separated words from item names to keep in the pack, e.g. "sigil, key". Never curatives: those must stay loose to be eaten.
antitheft.goldGrace5 sLoose gold older than this is reported and put away. 0 is off.

People

A database of everyone you have seen: city, house, class, and whether they are an ally or an enemy, filled from WHO lists, HONOURS and the Achaea web API. Names are highlighted in the game text by what they are to you.

emset whois <person>

everything known about someone

emset iff <person> ally|enemy|auto

mark someone as an ally or an enemy, or go back to what their city says

emset hostile [city|house|order] [name] [off]

mark a whole organisation hostile (everyone in it is an enemy), or list them

SettingDefaultMeaning
namedb.capturetrue
namedb.autoFetchtrueLook names up against the Achaea web API automatically.
names.enabledtrue
presences.alertfalsePop up a warning window when ANGEL PRESENCES senses an enemy nearby.
presences.alertFor15 sHow long the presence warning stays up without a click. 0 keeps it until clicked.
names.cityTinttrue
names.enemyLinkstrueAn enemy's name in the game text is a link: click it for their record, as emset whois.

Map

Walks you anywhere on the map one confirmed step at a time, through the same checks as every other command, so it waits out stun, sleep, paralysis or a lost balance instead of walking into them. Re-plans when you end up off the route or the game refuses an exit; double-clicking a room on the map walks there too. Swims, opens and unlocks doors, goes round a door that will not open, waits out rubble and ferries, and gallops straight runs while mounted. Locator lines (farsee, mindsense, the angel, alertness and the rest) get the room numbers they name as links, and who was where is remembered. The map is the crowd-sourced Achaea map, the same one the IRE Mudlet Mapper uses. Emunah checks for a new version when it loads and every hour, shows what changed, and loads it, waiting for a walk to end first. Rooms you lock or weight are kept outside the map and put back after every update. As you walk, rooms whose name, environment, indoors/outdoors or area disagree with GMCP are corrected. While the mmp package is running it keeps updating the map itself, and Emunah leaves it to it.

emset map

the map's version, the last check, and what your overlay holds

emset map update

check for a new crowdmap now

emset map load

load a downloaded map that did not load (open the map window first)

emset goto <room|feature|area|room name>

walk there: a room number, the nearest room with a feature, an area, or the nearest room with that name

goto <where>

the same as emset goto: goto bank, goto 1234, goto fish street

stop

stop walking and remember the route (a goto, else the area walk); with nothing walking it goes to the game

go

carry on along the remembered route from wherever you are; with nothing paused it goes to the game

rf <text>

find rooms whose name contains the text, by area; click a number to walk there

emset flee

stop PvP, stop any hunt, and walk to the safe room, map.safeRoom (2096). F12

emset goto back

walk back to where the last walk started

emset goto stop|pause|resume

stop the walk, or pause it and pick it up again from wherever you are

emset room [number]

everything the map holds about a room (here by default): exits, special exits as Emunah reads them, locks, weights, features, distance

rl [number]

the same as emset room

emset areas [text]

every area with its room count, or those whose name contains the text

emset rooms <area>

an area's rooms by number; click one to walk there

emset where [person]

where people were last located, newest first; goto <person> walks there

emset map size small|big|biggest

the map at 30%, 50% or 70% of the window's height

emset map locators

apply a change to map.locators now, and say which are on

emset path <to> [from]

the route between two rooms, without walking it

emset map lock|unlock <room> [exit]

keep a room, or one of its exits, out of every route

emset map lockarea|unlockarea <area>

keep a whole area out of every route

emset map weight <room> <n>

make routes avoid a room unless it saves more than n steps; 1 clears it

emset map feature [add|remove <name> [room]]

list the map's features, or mark a room (here by default) as one

SettingDefaultMeaning
map.autoupdatetrueCheck for a new crowdmap on load and every map.checkEvery minutes.
map.checkEvery60 minAt least 5.
map.changelogtrueShow the crowdmap's changelog entries since the last update.
map.stepGap0.5 sThe least time between two steps. Faster draws the game's "Now now, don't be so hasty!".
map.retryAfter3 sSend a step again when no arrival has followed it in this long; twice, then the walk stops.
map.showStepstrueShow where a walk is going and the steps left at the end of the prompt, then that it arrived.
map.waterwalktrueOff makes routes avoid water rooms where land is not much longer.
map.wormholesfalseLet routes use wormholes. Off keeps them out, as mmp does by default.
map.galloptrueWhile mounted, gallop straight runs of two to eleven rooms (HELP GALLOP). A gallop that gets nowhere is not sent again; the walk carries on on foot.
map.shackletrueWhile the density defence is up, take the shackle off for a walk and wear it again when the walk ends, as mmp does.
map.sewerstrueLet routes go through sewer grates. Off keeps them out (mmp's locksewers).
map.safeRoom2096Where F12 walks you, stopping any hunt first.
map.bigHit33 %During a goto walk, losing more than this much health in one blow raises a warning and walks you out of the area.
map.enemyMarktrueDuring a goto walk, a red * in brackets on the prompt while an enemy is in the room.
map.drawRoutetrueLight a walk's route on the map, the destination brightest, clearing each room as it is passed.
map.locatorsfarsee, view, mindsense, allsight, alertness, angel, shrines, shop, whoWhich of mmp's locator lines get room numbers: farsee, view, mindsense, allsight, alertness, angel, shrines, shop, who. emset map locators applies a change.
map.trackFor5 minHow long a located person's room stays lit on the map; 0 never lights it.
map.gmcpSynctrueCorrect a room's name, environment, indoors/outdoors and area from GMCP as you walk.

Interface

The panels around the game text: vitals, afflictions, defences, chat tabs, the room and its people, your target, and the map. The room's area is shown at the end of the room-name line. Chat keeps every channel under All and in a tab of its own; a tab you are not looking at counts what it missed, tells in the warning colour, and clicking a line's time puts the reply on the command line.

emset ui

whether the panels and the map are on

emset ui rebuild

rebuild the panels; also fixes one that is missing or stuck

emset ui map on|off

show or hide the map

emset ui auto [afflictions|defences]

size a panel you resized by dragging its divider to its content again (both when none is named); double-clicking the divider does the same

emset chat

the chat tabs: what each has kept and has unread, what is muted and rerouted

emset chat <tab>

show a tab, as clicking it does

emset chat clear [tab]

clear a tab's window, or every tab's; what was captured is kept

emset chat mute|unmute <channel>

keep a channel out of the chat window; it is still captured

emset chat route <channel> <tab>|default

send a channel to another tab, or back to the one it goes to by default

SettingDefaultMeaning
ui.enabledtrueWhether the panel interface is built at all.
ui.maptrue
ui.mapHeight42 % of windowClamped to 10-70.
ui.mapFloatfalseDetaches the map into its own window. emset ui rebuild after changing it.
ui.roomAreatrueShow the room's area at the end of the room-name line, from GMCP.
ui.chatTabsTells, City, House, Market, Says, MiscThe chat tabs after All, in order. Misc is added last if left out: it is where a channel with no tab of its own goes. emset ui rebuild after changing it.
ui.chatRouteschannel=Tab pairs sending a channel to a tab other than its default. emset chat route writes it.
ui.chatMuteChannels kept out of the chat window. Still captured, so unmuting and emset ui rebuild brings them back. emset chat mute writes it.
ui.refresh0.2 sHow often balance countdowns redraw while one is running. 0 turns the live countdowns off.
keys.numpadtrue

Generated from src/emunah/help.lua by tools/build-commands-page.lua.