Commands

The complete list of commands you can actually type in the Saba-chan Discord bot, plus how to register your own aliases as personal shortcuts.

Commands

This document covers the Saba-chan bot commands you can type directly into a Discord chat, and how to register your own shortcuts (aliases).

Bot setup, pairing, slash commands and permission levels are covered in Discord Bot & Cloud Relay. Here, we focus on what you can type once the bot is already connected.


1. Basic syntax

!saba <server> <command> [args…]
  • The prefix defaults to !saba. You can change it on the app's Discord → General screen.
  • The prefix must be followed by a space. Something like !sabax is not recognized as a command.
  • <server> is an instance name, a server alias, or a module name or alias. The bot looks them up in the order instance name → server alias → module alias. Examples: minecraft, mc, 마크, …
  • If you run several servers of the same game, a module alias can't narrow it down to one, so use the instance name or a server alias.
  • <command> is an action defined per module. Examples: start, 시작, say, 말, …
  • Some commands work without a server (global commands). See §2 below.

🔡 Letter case is ignored. START, Start, and start are all the same.

The bot interprets a message in this order:

  1. Verify the prefix + space.
  2. Check easter eggs and music commands first (handled directly on the relay).
  3. Send everything else to Saba-chan on your PC. It checks the global commands (help, list) first, otherwise treats the message as <server> <command>.
  4. If Saba-chan doesn't recognize the input and the AI chatbot is on for this Discord server, the chatbot turns it into an exact command and tries once more.

💡 The same commands are also available as slash commands, /<server name> <command>. Discord then shows you the commands and arguments you can pick.


2. Global commands

Commands you can fire without specifying a server. They need User level or higher (Chatbot level can't use them).

CommandAction
!saba help / !saba 도움 / !saba 도움말Show usage and the modules and aliases available in this Discord server
!saba list / !saba 목록List servers the bot can control, with status
!saba <server>Show the available commands for that server

🪪 You can restrict which instances are visible per Discord server (node). In a restricted server, even list only shows the allowed instances. Configure it under the app's Discord → Discord servers → Instances tab.


3. Commands shared by every module

Three commands Saba-chan handles by default, regardless of module type.

EnglishActionKorean aliases (bundled)
startStart the server시작, 실행, 켜기
stopStop the server정지, 끝내기, 끄기
statusCurrent state상태, 상황, 확인

Examples:

!saba minecraft start
!saba 마크 시작
!saba palworld stop
!saba 팰월드 상태

4. Per-module commands (game console commands)

Each game module defines its own commands under [[commands.fields]] in module.toml and gives them aliases under [aliases.commands]. These commands go through Saba-chan on your PC to the game server console (stdin); Palworld uses its REST API.

The risk of a command decides the level it needs (default preset: Safe = Chatbot, Caution = User, Danger = Admin). If you call a Danger command through a slash command or by its exact command name, a confirmation button appears before it runs.

Below is a summary of the three bundled games. The Korean aliases are defaults shipped with the module bundles; users can add more (see §7).

4.1 Minecraft (module aliases: 마인크래프트, 마크, mc, minecraft)

CommandKorean aliasesDescriptionRisk
say말, 채팅, 메시지Server-wide messageSafe
give지급, 줘, itemGive an itemCaution
save-all저장Save the worldSafe
list목록, 플레이어, 유저, playersList connected playersSafe
weather날씨, 웨더Change weatherCaution
difficulty난이도, 어려움Change difficultyCaution
gamemode겜모드, 게임모드Change game modeCaution
time시간Set timeCaution
tp텔레포트, 이동TeleportCaution
kick킥, 추방Kick a playerDanger
ban밴, 차단Ban a playerDanger
pardon언밴, 해제UnbanCaution
op오피Give operator privilegesDanger
deop디옵Remove operator privilegesCaution
whitelist화이트리스트, 화리Whitelist managementCaution
seed—Show the world seedSafe

Examples:

!saba 마크 say Hello!
!saba minecraft give FriendName minecraft:diamond 64
!saba mc tp FriendName 0 100 0

4.2 Palworld (module aliases: 팰월드, 팔월드, pw, palworld)

CommandKorean aliasesDescriptionRisk
announce공지, 공지사항, 알림Broadcast an announcementSafe
save저장Save the worldSafe
info정보, 인포Server infoSafe
players플레이어, 접속자, 유저Player listSafe
metrics—Server metricsSafe
settings—View server settingsSafe
shutdown종료, 셧다운Shut down the serverDanger
kick킥, 강퇴, 추방KickDanger
ban밴, 차단, 영구밴BanDanger
unban언밴, 차단해제UnbanCaution

Examples:

!saba 팰월드 공지 10분 뒤 저장합니다
!saba pw players

4.3 Project Zomboid (module aliases: 좀보이드, 프좀, pz, zomboid)

CommandKorean aliasesDescriptionRisk
servermsg공지, 공지사항, 알림, 메시지Server messageSafe
save저장, 세이브SaveSafe
players플레이어, 접속자, 유저PlayersSafe
quit종료, 셧다운Shut downDanger
kick킥, 강퇴, 추방KickDanger
banuser밴, 차단, 영구밴BanDanger
unbanuser언밴, 차단해제UnbanCaution
adduser유저추가, 계정추가Add a userCaution
setaccesslevel—Set access levelDanger
teleport / teleportto—Teleport to a player / to coordinatesCaution
additem / addxp—Give an item / XPCaution
createhorde—Spawn a hordeCaution
godmod / invisible—God mode / invisibilityCaution
startrain / stoprain—Start / stop rainCaution
chopper / gunshot—Helicopter event / gunshot soundCaution
showoptions—Show server optionsSafe
reloadoptions / changeoption—Reload / change optionsCaution

🛠️ Custom modules work the same way. If a module developer registers commands in module.toml per the Module Guide, they automatically appear in the bot help, slash commands and alias system.


5. Music commands

Music is a cloud bot feature. Audio playback is handled by the official music server next to the relay server, not by your PC, so it works even when your PC is off. It is on by default, and the node owner can turn it off with /saba music bot.

Module aliases: music and dj work in any language; in Discord servers where the bot language is Korean, 음악, ㄴㄹ and ㅇㅇ work too.

!saba music <command> [args]
!saba dj <command> [args]

There are also a few convenient shortcuts:

  • !saba <YouTube link> — play immediately, no module needed.
  • If the first word is a music command, you can leave out the module name, as in !saba play lofi, !saba skip, !saba pause. The exceptions are help, 도움 and list, which go to the global commands, so use !saba music help for music help.
  • If something other than a command follows the module, as in !saba music <search terms>, it is treated as a search and played.

The full command list (English / Korean aliases). Korean aliases are only recognized in Discord servers where the bot language is Korean.

EnglishUniversal aliasesKorean aliasesDescription
playp재생, ㅈㅅPlay the first search result or a link immediately
searchfind검색, ㄱㅅPick from 5 search results to add
pause—일시정지, ㅇㅅㅈㅈPause
resume—계속, ㄱㅅㄱResume
skips, next다음, ㄷㅇNext track
previousprev, back이전Previous track
stopleave, disconnect, dc정지, ㅈㅈStop and leave the voice channel
queueq, list대기열, ㄷㄱㅇShow the queue
npnowplaying, now지금, ㅈㄱNow playing
volume [0~200 | +n | -n]vol, v볼륨, ㅂㄹShow or adjust volume (relative values like +10/-10 also work)
shufflerandom섞기, ㅅㄱShuffle the queue
looprepeat반복, ㅂㅂTurn looping on (use loopoff to turn it off)
loopoffunloop반복해제, ㅂㅂㅎㅈDisable looping
radioautoplay라디오, ㄹㄷㅇAuto-fill with recommendations
normalizenorm, loudnorm정규화, 볼륨평탄화, ㅈㄱㅎToggle volume normalization across tracks
help—도움, ㄷㅇ말Music help

Examples:

!saba music play lofi hip hop
!saba dj search ado 우주미아
!saba music volume 50
!saba skip
!saba https://youtu.be/xxxxx

5.1 Music channel

When the node owner runs /saba assign Music in a channel (or picks it in the app's Discord server → Channels tab), that channel becomes the music channel. There, messages are interpreted as music commands directly — no prefix needed — and anything that isn't a command is treated as a search and played.

play lofi
skip
stop
https://youtu.be/xxxxx

The bot shows a player screen with the current track and queue in the music channel (turn it off with /saba music player). Ordinary messages in the music channel are deleted, so pick a channel used only for music.

🔊 To play a track or pick one from search results, the user issuing the command must already be in a voice channel.


6. Easter eggs

The bot has a few hidden one-line reactions that appear when you type a particular single word after the prefix. They work even when your PC is off. We won't spoil them here — half the fun is finding them yourself.


7. Creating your own shortcuts

Aliases are stored in Saba-chan's settings on your PC (config.json) and managed on the app's Discord → Command words screen. They apply as soon as you save; no restart required.

7.1 Adding module aliases (the most common case)

Add words per module under Command words → Words for the module. They are stored like this:

{
  "relay": {
    "moduleAliases": {
      "minecraft": "마크, ㅁㅋ, mine",
      "palworld":  "팰, ㅍㅇ"
    }
  }
}
  • Module aliases are registered in the order module name → module bundle (module.toml) → your settings.
  • If two modules claim the same alias, the first one registered wins, and the bot points out the conflict when you use that alias. The app also flags overlapping words before you save.

7.2 Adding command aliases

Use the Command words section on the same screen. They are stored like this:

{
  "relay": {
    "commandAliases": {
      "minecraft": {
        "say":  "말,외쳐,스피커",
        "give": "줘,선물"
      }
    }
  }
}
  • The key is the module name (the canonical name, not an alias).
  • The value is a command → "alias1,alias2,alias3" mapping.
  • Command aliases are resolved within the module only, with priority your settings > module bundle > canonical command name. The original name always works.
  • Music command aliases can't be changed here.

7.3 Server aliases

If you run several servers of the same game, give each instance its own name under Command words → Server aliases. They are stored as instanceAliases (instance ID → "alias, alias").

7.4 Bundle-level aliases (for module developers)

To bake default Korean aliases into a module you've built, add the following to module.toml. Aliases can only point to commands defined in [[commands.fields]] (or the built-in start/stop/status).

[aliases]
module_aliases = ["내게임", "ig", "mygame"]

[aliases.commands]
start = { aliases = ["시작", "켜기"], description = "Start the server" }
custom_thing = { aliases = ["뭐시기", "그거"], description = "Do the thing" }

Keep each alias a single word without spaces. Chat commands split words on spaces, so an alias containing a space can't be used. For full module development details, see the Module Development Guide.

7.5 Per-node instance permissions

When several Discord servers (= relay nodes) connect to the same Saba-chan, you can restrict which instances each Discord server may control.

In the app's Discord → Discord servers → Instances tab, choose Only the ones I pick. It is stored in nodeSettings as a list of instance IDs:

{
  "relay": {
    "nodeSettings": {
      "<guildId>": {
        "allowedInstances": ["<instance ID>", "<instance ID>"]
      }
    }
  }
}

In a restricted Discord server, the list command only shows allowed instances, slash commands are only created for them, and servers outside the list are answered as not found.


8. Quick checklist when commands aren't working

SymptomFirst thing to check
The bot is silentVerify the prefix (default !saba + space). Pairing must be complete, Command relay must be on in the app, and the bot must not be asleep (/saba sleep).
"Server not found" replyThe order is <server> <command>. If you run several servers of the same game, use the instance name or a server alias.
"No permission" replyYour level is too low for that command's risk. Ask the node owner to use /saba permission grant.
Music commands don't respondIs music on for this Discord server? Are you in a voice channel? Are you using aliases from a language other than the bot language?
You added an alias and it doesn't triggerCheck that you saved it in the app and that it doesn't overlap with another module's alias.
Commands blocked in just one Discord serverThe instance might be missing from that server's allowed instances (Instances tab).

For deeper diagnostics see Troubleshooting, and for the bot setup itself see Discord Bot & Cloud Relay.