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
!sabaxis 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, andstartare all the same.
The bot interprets a message in this order:
- Verify the prefix + space.
- Check easter eggs and music commands first (handled directly on the relay).
- Send everything else to Saba-chan on your PC. It checks the global commands (
help,list) first, otherwise treats the message as<server> <command>. - 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).
| Command | Action |
|---|---|
!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
listonly 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.
| English | Action | Korean aliases (bundled) |
|---|---|---|
start | Start the server | 시작, 실행, 켜기 |
stop | Stop the server | 정지, 끝내기, 끄기 |
status | Current 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)
| Command | Korean aliases | Description | Risk |
|---|---|---|---|
say | 말, 채팅, 메시지 | Server-wide message | Safe |
give | 지급, 줘, item | Give an item | Caution |
save-all | 저장 | Save the world | Safe |
list | 목록, 플레이어, 유저, players | List connected players | Safe |
weather | 날씨, 웨더 | Change weather | Caution |
difficulty | 난이도, 어려움 | Change difficulty | Caution |
gamemode | 겜모드, 게임모드 | Change game mode | Caution |
time | 시간 | Set time | Caution |
tp | 텔레포트, 이동 | Teleport | Caution |
kick | 킥, 추방 | Kick a player | Danger |
ban | 밴, 차단 | Ban a player | Danger |
pardon | 언밴, 해제 | Unban | Caution |
op | 오피 | Give operator privileges | Danger |
deop | 디옵 | Remove operator privileges | Caution |
whitelist | 화이트리스트, 화리 | Whitelist management | Caution |
seed | — | Show the world seed | Safe |
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)
| Command | Korean aliases | Description | Risk |
|---|---|---|---|
announce | 공지, 공지사항, 알림 | Broadcast an announcement | Safe |
save | 저장 | Save the world | Safe |
info | 정보, 인포 | Server info | Safe |
players | 플레이어, 접속자, 유저 | Player list | Safe |
metrics | — | Server metrics | Safe |
settings | — | View server settings | Safe |
shutdown | 종료, 셧다운 | Shut down the server | Danger |
kick | 킥, 강퇴, 추방 | Kick | Danger |
ban | 밴, 차단, 영구밴 | Ban | Danger |
unban | 언밴, 차단해제 | Unban | Caution |
Examples:
!saba 팰월드 공지 10분 뒤 저장합니다
!saba pw players
4.3 Project Zomboid (module aliases: 좀보이드, 프좀, pz, zomboid)
| Command | Korean aliases | Description | Risk |
|---|---|---|---|
servermsg | 공지, 공지사항, 알림, 메시지 | Server message | Safe |
save | 저장, 세이브 | Save | Safe |
players | 플레이어, 접속자, 유저 | Players | Safe |
quit | 종료, 셧다운 | Shut down | Danger |
kick | 킥, 강퇴, 추방 | Kick | Danger |
banuser | 밴, 차단, 영구밴 | Ban | Danger |
unbanuser | 언밴, 차단해제 | Unban | Caution |
adduser | 유저추가, 계정추가 | Add a user | Caution |
setaccesslevel | — | Set access level | Danger |
teleport / teleportto | — | Teleport to a player / to coordinates | Caution |
additem / addxp | — | Give an item / XP | Caution |
createhorde | — | Spawn a horde | Caution |
godmod / invisible | — | God mode / invisibility | Caution |
startrain / stoprain | — | Start / stop rain | Caution |
chopper / gunshot | — | Helicopter event / gunshot sound | Caution |
showoptions | — | Show server options | Safe |
reloadoptions / changeoption | — | Reload / change options | Caution |
🛠️ Custom modules work the same way. If a module developer registers commands in
module.tomlper 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 arehelp,도움andlist, which go to the global commands, so use!saba music helpfor 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.
| English | Universal aliases | Korean aliases | Description |
|---|---|---|---|
play | p | 재생, ㅈㅅ | Play the first search result or a link immediately |
search | find | 검색, ㄱㅅ | Pick from 5 search results to add |
pause | — | 일시정지, ㅇㅅㅈㅈ | Pause |
resume | — | 계속, ㄱㅅㄱ | Resume |
skip | s, next | 다음, ㄷㅇ | Next track |
previous | prev, back | 이전 | Previous track |
stop | leave, disconnect, dc | 정지, ㅈㅈ | Stop and leave the voice channel |
queue | q, list | 대기열, ㄷㄱㅇ | Show the queue |
np | nowplaying, now | 지금, ㅈㄱ | Now playing |
volume [0~200 | +n | -n] | vol, v | 볼륨, ㅂㄹ | Show or adjust volume (relative values like +10/-10 also work) |
shuffle | random | 섞기, ㅅㄱ | Shuffle the queue |
loop | repeat | 반복, ㅂㅂ | Turn looping on (use loopoff to turn it off) |
loopoff | unloop | 반복해제, ㅂㅂㅎㅈ | Disable looping |
radio | autoplay | 라디오, ㄹㄷㅇ | Auto-fill with recommendations |
normalize | norm, 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
| Symptom | First thing to check |
|---|---|
| The bot is silent | Verify 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" reply | The order is <server> <command>. If you run several servers of the same game, use the instance name or a server alias. |
| "No permission" reply | Your level is too low for that command's risk. Ask the node owner to use /saba permission grant. |
| Music commands don't respond | Is 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 trigger | Check that you saved it in the app and that it doesn't overlap with another module's alias. |
| Commands blocked in just one Discord server | The 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.