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 via prefix in bot-config.json or 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, and start are all the same.

How the bot interprets a message is straightforward:

  1. Verify the prefix + space.
  2. Match the first token as a candidate module/extension (extensions like Music or Rock-Paper-Scissors are tried first).
  3. If no match, try the global commands (도움, 목록).
  4. If still no match, treat it as the <module> <command> pattern.

2. Global commands

Commands you can fire without specifying a module.

CommandAction
사바쨩Show the default help (currently mounted modules and aliases)
사바쨩 도움 / 사바쨩 helpSame — show help
사바쨩 목록 / 사바쨩 listList 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.

EnglishActionKorean aliases (bundled)
startStart the instance시작, 실행, 켜기
stopStop the instance (graceful)정지, 끝내기, 끄기
statusCurrent 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)

CommandKorean aliasesDescription
say, 채팅, 메시지Server-wide announcement
give지급, , itemGive 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)

CommandKorean aliasesDescription
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)

CommandKorean aliasesDescription
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.toml per 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):

EnglishUniversal aliasesKorean aliasesDescription
playp재생, ㅈㅅPlay the first search result or a link immediately
searchfind검색, ㄱㅅPick from 5 results via buttons
pause일시정지, ㅇㅅㅈㅈPause
resume계속, ㄱㅅㄱResume
skips, next다음, ㄷㅇNext track
previousprev, backPrevious track
stopleave, disconnect, dc정지, ㅈㅈStop and leave the voice channel
queueq, list대기열, ㄷㄱㅇShow the queue
npnowplaying, now지금, ㅈㄱNow playing
volume <0~200>vol, v볼륨, ㅂㄹAdjust volume
shufflerandom섞기, ㅅㄱShuffle the queue
looprepeat반복, ㅂㅂLoop the current track
loopoffunloop반복해제, ㅂㅂㅎㅈDisable looping
radioautoplay라디오, ㄹㄷㅇAuto-fill with recommendations
normalizenorm, 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

SymptomFirst thing to check
The bot is silentVerify 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 respondIs musicEnabled: true? Are the dependencies (ffmpeg/yt-dlp) installed? Are you in a voice channel?
You added an alias and it doesn't triggerWait a moment after saving in the GUI — it hot-reloads. If still broken, restart the bot.
Commands blocked in just one guildThe module/instance might be missing from nodeSettings.allowedInstances.

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