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 every Saba-chan bot command you can type directly into a Discord chat, and how to register your own shortcuts (aliases).
Bot setup and pairing are handled in Discord Bot & Cloud Relay. Here, we focus on what you can type once the bot is already up and running.
1. Basic syntax
사바쨩 <module> <command> [args…]
- The prefix defaults to
사바쨩(means "Saba-chan"). You can freely change it viaprefixinbot-config.jsonor from the bot settings screen in the GUI. - The prefix must be followed by a space. A natural sentence like
사바쨩은~~~will not be recognized as a command. <module>is a game module name or alias. Examples:마인크래프트,mc,마크,music,음악, …<command>is an action defined per module. Examples:start,시작,say,말, …- Some commands work without a module (global commands). See §2 below.
🔡 Case is ignored.
START,Start, andstartare all the same.
How the bot interprets a message is straightforward:
- Verify the prefix + space.
- Match the first token as a candidate module/extension (extensions like Music or Rock-Paper-Scissors are tried first).
- If no match, try the global commands (
도움,목록). - If still no match, treat it as the
<module> <command>pattern.
2. Global commands
Commands you can fire without specifying a module.
| Command | Action |
|---|---|
사바쨩 | Show the default help (currently mounted modules and aliases) |
사바쨩 도움 / 사바쨩 help | Same — show help |
사바쨩 목록 / 사바쨩 list | List instances the bot can control, with status |
사바쨩 <module> | Show the available commands for that module |
🪪 You can restrict which instances are visible per node (guild). In a restricted guild, even
목록only lists the allowed instances. The filter is configured under the GUI's Cloud Node → Instance Permissions menu.
3. Commands shared by every module
Three commands are routed by the daemon by default, regardless of module type.
| English | Action | Korean aliases (bundled) |
|---|---|---|
start | Start the instance | 시작, 실행, 켜기 |
stop | Stop the instance (graceful) | 정지, 끝내기, 끄기 |
status | Current state (Running / Stopped / Crashed, etc.) | 상태, 상황, 확인 |
Examples:
사바쨩 start 마인크래프트
사바쨩 마크 시작
사바쨩 stop palworld
사바쨩 팰월드 상태
4. Per-module commands (game console commands)
Each game module can register its own commands under [aliases.commands] in module.toml. The bot forwards these commands through the daemon to the game server console (via stdin / RCON / REST — whichever route the module specifies).
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 |
|---|---|---|
say | 말, 채팅, 메시지 | Server-wide announcement |
give | 지급, 줘, item | Give an item |
save-all | 저장 | Save the world |
list | 목록, 플레이어, 유저 | List connected players |
weather | 날씨, 웨더 | Change weather |
difficulty | 난이도, 어려움 | Change difficulty |
gamemode | 겜모드, 게임모드 | Game mode |
time | 시간 | Set time |
tp | 텔레포트, 이동 | Teleport |
kick | 킥, 추방 | Kick a player |
ban / pardon | 밴,차단 / 언밴,해제 | Ban / unban |
op / deop | 오피 / 디옵 | Operator privileges |
whitelist | 화이트리스트, 화리 | Whitelist management |
Examples:
사바쨩 마크 say 안녕!
사바쨩 마인크래프트 give 친구닉 minecraft:diamond 64
사바쨩 mc tp 친구닉 0 100 0
4.2 Palworld (module aliases: 팰월드, 팔월드, pw, palworld)
| Command | Korean aliases | Description |
|---|---|---|
announce | 공지, 공지사항, 알림 | Broadcast an announcement |
save | 저장 | Save the world |
info | 정보, 인포 | Server info |
players | 플레이어, 접속자, 유저 | Player list |
shutdown | 종료, 셧다운 | Shut down the server |
kick | 킥, 강퇴, 추방 | Kick |
ban / unban | 밴,차단,영구밴 / 언밴,차단해제 | Ban / unban |
Examples:
사바쨩 팰월드 공지 10분 뒤 저장합니다
사바쨩 pw players
4.3 Project Zomboid (module aliases: 좀보이드, 프로젝트 좀보이드, 프좀, pz, zomboid)
| Command | Korean aliases | Description |
|---|---|---|
servermsg | 공지, 공지사항, 알림, 메시지 | Server message |
save | 저장, 세이브 | Save |
players | 플레이어, 접속자, 유저 | Players |
quit | 종료, 셧다운 | Shut down |
kick | 킥, 강퇴, 추방 | Kick |
banuser / unbanuser | 밴,차단,영구밴 / 언밴,차단해제 | Ban / unban |
adduser | 유저추가, 계정추가 | Add a user |
🛠️ 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 and alias system.
5. Music commands (music extension)
Available when musicEnabled in bot-config.json is true and the music extension dependencies (ffmpeg, yt-dlp, opusscript, etc.) are installed.
Module aliases (work in any language setting): music, dj, 음악, ㄴㄹ, ㅇㅇ.
사바쨩 음악 <command> [args]
사바쨩 dj <command> [args]
There are also a few convenient shortcuts:
사바쨩 <YouTube link>— play immediately, no module needed.- Some actions like
사바쨩 다음,사바쨩 일시정지,사바쨩 정지, and사바쨩 반복work without the module name while music is playing.
The full command list (English / Korean aliases):
| English | Universal aliases | Korean aliases | Description |
|---|---|---|---|
play | p | 재생, ㅈㅅ | Play the first search result or a link immediately |
search | find | 검색, ㄱㅅ | Pick from 5 results via buttons |
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> | vol, v | 볼륨, ㅂㄹ | Adjust volume |
shuffle | random | 섞기, ㅅㄱ | Shuffle the queue |
loop | repeat | 반복, ㅂㅂ | Loop the current track |
loopoff | unloop | 반복해제, ㅂㅂㅎㅈ | Disable looping |
radio | autoplay | 라디오, ㄹㄷㅇ | Auto-fill with recommendations |
normalize | norm, loudnorm | 정규화, 볼륨평탄화, ㅈㄱㅎ | Toggle volume normalization across tracks |
help | — | 도움, ㄷㅇ말 | Music help |
Examples:
사바쨩 음악 재생 lofi hip hop
사바쨩 dj search ado 우주미아
사바쨩 음악 볼륨 50
사바쨩 다음
사바쨩 https://youtu.be/xxxxx
5.1 Music-only channel
If you set a music-only channel via musicChannelId in bot-config.json or in the GUI bot settings, messages in that channel are interpreted as music commands directly — no prefix needed.
재생 lofi
다음
정지
https://youtu.be/xxxxx
In a dedicated channel, the bot automatically posts queue and now-playing UI messages.
🔊 Commands that need a voice channel (
play,pause,skip, etc.) require the user issuing the command to already be in a voice channel.
6. Mini-games & Easter eggs
6.1 Rock-Paper-Scissors
사바쨩 가위바위보
사바쨩 rps
사바쨩 じゃんけん (Japanese setting)
The bot shows ✊✌️✋ buttons and resolves the round as soon as you press one. Ties trigger an automatic rematch.
6.2 Hidden commands (Easter eggs)
A few hidden reactions live in extensions/easter_eggs.js. We won't spoil them here — half the fun is finding them yourself.
7. Creating your own shortcuts
Aliases are layered from three sources. The priority is GUI user settings > module bundle (module.toml) > code defaults.
7.1 Adding module aliases (the most common case)
Under Bot Settings → Module Aliases in the GUI, enter comma-separated shortcuts per module. In bot-config.json, this is stored as:
{
"moduleAliases": {
"minecraft": "마크, ㅁㅋ, mine",
"palworld": "팰, ㅍㅇ"
}
}
The bot detects config changes and hot-reloads instantly. No restart required.
7.2 Adding command aliases
Use the Command Aliases section on the same screen, or edit bot-config.json directly:
{
"commandAliases": {
"minecraft": {
"say": "말,외쳐,스피커",
"give": "줘,선물"
},
"music": {
"play": "틀어,틀어줘"
}
}
}
- The key is the module name (the canonical name, not an alias).
- The value is a
command → "alias1,alias2,alias3"mapping. - On conflict (two modules claim the same alias), the first one to register wins, and a warning is printed to the console.
7.3 Bundle-level aliases (for module developers)
To bake default Korean aliases into a module you've built, add the following to module.toml:
[aliases]
module_aliases = ["내게임", "ig", "mygame"]
[aliases.commands]
start = { aliases = ["시작", "켜기"], description = "Start the server" }
custom_thing = { aliases = ["뭐시기", "그거"], description = "Do the thing" }
For full module development details, see the Module Development Guide.
7.4 Per-node instance permissions
When several Discord servers (= relay nodes) connect to the same Saba-chan, you can restrict which instances each guild may control.
Use nodeSettings in bot-config.json, or the node permissions screen in the GUI:
{
"nodeSettings": {
"<guildId>": {
"allowedInstances": ["mc-vanilla", "palworld-main"]
}
}
}
In a restricted guild, the 목록 command only lists allowed instances, and invoking a module that's out of scope returns an "unknown input" response.
8. Quick checklist when commands aren't working
| Symptom | First thing to check |
|---|---|
| The bot is silent | Verify the prefix (default 사바쨩 + space). Confirm the bot shows Running in the GUI. |
| "Module not found" | The argument should be a module name/alias, not an instance name. |
| Music commands don't respond | Is musicEnabled: true? Are the dependencies (ffmpeg/yt-dlp) installed? Are you in a voice channel? |
| You added an alias and it doesn't trigger | Wait a moment after saving in the GUI — it hot-reloads. If still broken, restart the bot. |
| Commands blocked in just one guild | The module/instance might be missing from nodeSettings.allowedInstances. |
For deeper diagnostics see Troubleshooting, and for the bot setup itself see Discord Bot & Cloud Relay.