almabot.xiondigital.net
endpoint online

Personal project · HTTP interactions

AlmaBot

My private Monster Hunter Wilds utility for the hunters in my own Discord. Hunter profile cards, an open-lobby board that clears itself, and the guide I keep sending people — eight commands, no gateway to babysit.

Command reference
  • 08 commands
  • 2 h lobbies
  • Modal cards

Command wall

Everything the bot answers, delivered over HTTPS instead of a socket.

Private build · not listed
/almaInfo

Greeting plus the full command list, in one embed.

embed · guild channel
/alma_helpInfo

The same reference, with what each command is actually for.

embed · ephemeral
/alma_guideInfo

Drops the Monster Hunter Wilds guide link so nobody has to ask twice.

link · game8
/alma_huntercardCards

Opens a modal for IGN, Hunter ID, HR and weapons. Running it again updates the stored card.

modal · upsert
/alma_showcardCards

Shows your card, or names another hunter and shows theirs.

optional hunter · embed
/alma_deletecardCards

Asks once with Delete / Keep buttons, then removes the card and its lobbies.

confirm · cascades
/alma_lobbyLobbies

Posts an open lobby with the quest code. The poster gets a Close button; the post expires after two hours.

2 h ttl · close button
/alma_lobbiesLobbies

Lists every lobby still open, joined against hunter cards and sorted by age.

live board · relative time

Architecture

Signatures, not sockets.

Discord posts every slash command, button click and modal submission to a URL I own. Each request is checked against the app's Ed25519 signature before a single line of command code runs, so nothing unsigned ever reaches the handlers.

Between commands nothing is running — no process to keep warm, nothing to sleep, nothing billing by the hour. That is the whole reason the bot lives here instead of on a container host.

The trade-off is honest: an interactions-only app has no gateway connection, so it shows offline in the member list and cannot read ordinary messages. Commands still answer instantly, and card data persists in Postgres rather than in memory.

EndpointPOST /api/interactions
VerifyEd25519 per request
RuntimeVercel function
StorageSupabase Postgres
PresenceOffline by design
Back to xiondigital.net

Not a public bot: not in the App Directory, not accepting new servers, not maintained for anyone else's.

The arcade