First Launch
Get your character on screen from a command line — through Lich, or straight to play.net — and know what you’re looking at when the room description lands.
What it’s for
You already know how you connect: Lich on a port, or account-and-password to the game. This page is the command-line route for both, so you can put VellumFE behind a Lich launcher entry, a shell alias, or a shortcut and stop thinking about it. The last section is a tour of the screen you land on — which window is which, where you type, how you scroll back to the thing that killed you.
If you’d rather click a saved connection than type flags, use
the Launcher; it covers the same ground with stored passwords.
Running vellum-fe with no arguments at all opens it.
⚠️ The same character, started two ways, lands in two different interfaces. A hand-typed command line defaults to the terminal UI; a saved Launcher connection defaults to the GUI. Pass
--frontend gui(or-f gui) to make the command line match.
Set it up
-
Start Lich as you always do, and note the port it prints.
-
Run VellumFE with the GUI frontend pointed at that port:
vellum-fe --frontend gui --port 8000 --character Rysk--portis Lich’s listening port;--hostdefaults to127.0.0.1, so you only pass it when Lich runs on another machine. -
To skip Lich entirely, connect through play.net’s eAccess login instead:
vellum-fe --frontend gui --direct --account myaccount --character Rysk --game primeLeave
--passwordoff. VellumFE prompts for it in the terminal (Password for account myaccount:) with the characters hidden, so the password never enters your shell history.
→ Expected result: a desktop window opens, the game text starts scrolling in
the main feed, and typing look in the input at the bottom returns the room
description.
Common setups
Recipe 1 — Make Lich launch VellumFE for you
In Lich’s launcher, add VellumFE as a custom frontend and set the command to:
path\to\vellum-fe.exe --frontend gui --port %port% --key %key%
Lich substitutes %port% with the port it opened and %key% with the login key
it received from the game; --key hands that key straight to the game server, so
you are never asked for credentials. Drop --frontend gui from the line if you
want the terminal UI.
Outcome: picking your character in Lich opens VellumFE already in the room you logged out in — no password prompt, no port to copy.
Recipe 2 — One set of settings, several characters
--character is your login name. --profile is your config name, and it
picks which folder under ~/.vellum-fe/profiles/ holds your layout, highlights,
keybinds, and hotbars. When you leave --profile off, it silently copies
--character — which is why every new character starts with a blank-slate
layout.
Point three characters at one shared config folder:
vellum-fe --port 8000 --character Rysk --profile hunting
vellum-fe --port 8000 --character Nisugi --profile hunting
vellum-fe --port 8000 --character Vellum --profile hunting
Outcome: all three log in under their own names, and all three read and write
~/.vellum-fe/profiles/hunting/ — so a layout you save on one is there when you
log in as the next.
Tips & gotchas
⚠️ In the terminal UI,
Ctrl+Ccopies your selection — it does not quit. In the GUI,Ctrl+Cquits. To leave either one, type.quit. Note that.quitdisconnects but keeps the window open — run it again, or use.exit, to close the client outright.
⚠️
--profileis not--character. Omitting--profilemakes your config folder follow your character name. If you rename the flag you pass, you land in a different folder and your layout looks lost. It is not lost — it is under the old profile name in~/.vellum-fe/profiles/.
⚠️ The DragonRealms world names are spelled differently in two places. On the command line they are hyphenated:
dr,dr-platinum,dr-fallen,dr-test. Inconfig.tomland in saved Launcher connections they are not:dr,drplatinum,drfallen,drtest. A misspelled value inconfig.tomldoes not error — it falls back to GemStone IV Prime, and you find out at the character list.
The tour — what you’re looking at once you’re in. The default layout places six windows:
| Window | What lands in it |
|---|---|
| main | The game feed — room descriptions, combat, everything unrouted |
| Room | Room name, description, and exits, kept current in place |
| thoughts | The thoughts stream (ESP) |
| speech | The speech stream |
| society | The society stream |
| command input | Where you type, along the bottom |
Everything else — vitals bars, a compass, an injury doll, hotbars — is a window
you add yourself. In the GUI that’s the Windows button in the top toolbar,
which opens a stay-open catalog with a checkbox per window. In the terminal,
type .addwindow with no arguments to get a picker. See
Widgets.
Where things are. Your command line is the bottom row of the screen; press
Enter to send, Up and Down to walk back through history, and Ctrl+R to
repeat your last command. Scrolling back is PageUp / PageDown a page at a
time and Alt+PageUp / Alt+PageDown a line at a time in the terminal, or the
mouse wheel and scrollbar in the GUI. Tab moves focus between windows in the
terminal; in the GUI you click the window you want.
Getting help. Anything you type starting with a dot is a client command, not game input. Three worth knowing on day one:
.help— the full dot-command list, grouped by section.menu— the main menu tree (the GUI also has toolbar hubs).settings— the in-app settings editor
Copying text. In the terminal, drag-select and the text is on your clipboard
the moment you release. In the GUI, drag-select (double-click for a word, triple
for a line) and press Ctrl+C. Copy is plain text in both, deliberately.
Direct mode and TLS. Direct connections use your operating system’s own TLS stack, so Windows and macOS need nothing extra. On Linux, see Installation.
See also
- Installation — getting the binary, and Linux TLS notes
- The Launcher — saved connections, stored passwords, per-connection frontend
- Command Reference — every dot-command
- keybinds.toml — rebinding anything in the tour above
- Widgets — the windows you add to the default six
Config reference (TOML)
Everything on this page can live in config.toml instead of the command line.
Per-profile config is ~/.vellum-fe/profiles/<profile>/config.toml; shared
defaults are ~/.vellum-fe/global/config.toml.
[connection]
| Field | Type | Default | What it does |
|---|---|---|---|
host | string | "127.0.0.1" | Address to connect to (Lich’s host) |
port | integer | 8000 | Port to connect to (Lich’s listening port) |
character | string | (unset) | Character name, used for Lich proxy selection and direct login |
account | string | (unset) | play.net account, direct connections only |
password | string | (unset) | Stored in plain text. Leave it unset and answer the prompt instead |
game | string | "prime" | prime, platinum, shattered, test, dr, drplatinum, drfallen, drtest. An unrecognized value falls back to prime |
CLI-vs-config precedence. A command-line switch always wins over the file. For each field the order is:
- host / port —
--host/--port, then[connection] - account —
--account, thenconnection.account, then an error - password —
--password, thenconnection.password, then the hidden terminal prompt - character —
--character, thenconnection.character, then an error - game —
--game, thenconnection.game, thenprime
A saved Launcher connection applied with --launch-profile <NAME> sits between
the two: it fills the same fields these switches would, but any switch you type
explicitly alongside it still wins. --launch-profile cannot be combined with
--direct, --key, or --launcher.
Other switches this page uses
| Switch | Default | What it does |
|---|---|---|
--frontend / -f | tui | tui, gui, or headless (no local UI; a browser at /play is the interface) |
--key | (unset) | Lich’s %key% login key, passed to the game server |
--profile | falls back to --character | Which folder under profiles/ holds your config |
--data-dir | ~/.vellum-fe | Moves the whole config tree; equivalent to the VELLUM_FE_DIR environment variable |
--config | (unset) | Read one specific config.toml by path |
--nosound | off | Skips audio device initialization entirely |
--color-mode | from config | direct (true color), slot (256-color custom palette), indexed (256-color standard) |
--setup-palette | off | Programs the terminal palette at startup; pair with --color-mode slot |
--web-port / --web-bind | from [web] | Turns on the embedded web server for phone/browser play |
--launcher | off | Opens the graphical Launcher — also what a no-argument run does |
Subcommands (these run and exit instead of connecting):
vellum-fe validate-layout [FILE]— check a layout file, or your current onevellum-fe migrate-layout --src <DIR> [--out <DIR>] [--dry-run]— convert old-format layoutsvellum-fe import-highlights <FILE.xml> [--out FILE] [--dry-run]— convert Wrayth/StormFront highlights to TOML