Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Tags
Creators
Details
๐ง ์น์ง์ง ๋ฐ์ดํฐํฉ ๋งํฌ (Chzzk Datapack Link)
์น์ง์ง(Chzzk) ๋ผ์ด๋ธ ๋ฐฉ์ก์ ์ฑํ ๊ณผ ํ์ ์ด๋ฒคํธ๋ฅผ ๋ง์ธํฌ๋ํํธ NBT ์คํ ๋ฆฌ์ง ๋ฐ ๋ฐ์ดํฐํฉ๊ณผ ์ค์๊ฐ์ผ๋ก ์ฐ๋ํด์ฃผ๋ ํจ๋ธ๋ฆญ(Fabric) ๋ชจ๋์ ๋๋ค.
๐ English Documentation
โ ๏ธ ์๋ด: ๋ณธ ๋ชจ๋๋ ๋ค์ด๋ฒ(NAVER)์ ๊ณต์ ๋ชจ๋๊ฐ ์๋ ๋น๊ณต์ ์คํ์์ค ์๋ํํฐ ๋ชจ๋์ด๋ฉฐ, AI ์ฝ๋ฉ ์ด์์คํดํธ์ ์ง์์ ๋ฐ์ ์ ์๋์์ต๋๋ค.
๐ก ํ์: ๋ณธ ๋ชจ๋๋ ์น์ง์ง ์ด๋ฒคํธ๋ฅผ ๋ง์ธํฌ๋ํํธ ์คํ ๋ฆฌ์ง๋ก ์ ๋ฌํ๋ ๋ธ๋ฆฟ์ง(Bridge) ๋ชจ๋์ด๋ฏ๋ก, ์ด๋ฒคํธ๋ฅผ ๋ฐ์ ์คํํ ๋ฐ์ดํฐํฉ์ด ํ์ํฉ๋๋ค.
๐ ๊ฐ์
์น์ง์ง ๋ฐฉ์ก์ ์ฑํ ๊ณผ ํ์์ ๋ง์ธํฌ๋ํํธ ๋ฐ์ดํฐํฉ์ผ๋ก ๋ฐ์ ์ฒ๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ๋ชจ๋์ ๋๋ค.
๋ณ๋์ ์๋ฐ ์ฝ๋ฉ ์์ด ๋ฐ์ดํฐํฉ ํ์
(.mcfunction)๋ง ์์ฑํ๋ฉด ์์ฒญ์ ์ฐธ์ฌ ์ฝํ
์ธ (์ฑํ
์ผ๋ก ๋ธ๋ก ์ํ, ํ์ ์ ๋ชน ์ํ, ํฌํ ๋ฑ)๋ฅผ ๋ฐ๋ก ๊ตฌํํ ์ ์์ต๋๋ค.
โจ ์ฃผ์ ๊ธฐ๋ฅ
- ๋ฐ์ดํฐํฉ ์ฐ๋: ์ฑํ
์ด๋ ํ์์ด ์ค๋ฉด ์คํ ๋ฆฌ์ง์ ๋ฐ์ดํฐ๋ฅผ ๋ณํฉํ๊ณ
#chklink:chat,#chklink:donationํ๊ทธ์ ๋ฑ๋ก๋ ํ์ ๋ค์ ๋งคํฌ๋ก์ ํจ๊ป ์๋ ์คํํฉ๋๋ค. - ๋ช
๋ น์ด ๋ฐ ์ธ์ ์๋ ๋ถ๋ฆฌ:
!์ํ ์ข๋น 3โcmd: "์ํ",chat: "์ข๋น 3"!์ํ, ์ข๋น, 3โcmd: "์ํ",arg0: "์ข๋น",arg1: "3",arg_count: 2์๋ ์ ๊ณต
- ๋ฉํฐํ๋ ์ด ์ง์: ์๋ฒ์ ์ฌ๋ฌ ํ๋ ์ด์ด๊ฐ ์์ด๋ ๊ฐ์ ๋ณธ์ธ์ ์น์ง์ง ์ฑ๋ ID๋ก ๊ฐ๋ณ ์ฐ๋ํ ์ ์์ต๋๋ค.
- ์ธ๊ฒ์ ์ค์ ์ฐฝ & Mod Menu ์ฐ๋: ์ธ๊ฒ์์์
F6ํค๋ฅผ ๋๋ฅด๊ฑฐ๋ Mod Menu์ ๋ชจ๋ ๋ชฉ๋ก ์ค์ ๋ฒํผ์ ํตํด ์ฑ๋ ID๋ฅผ ์ ๋ ฅํ๊ณ ์ฐ๋์ ์ผค ์ ์์ต๋๋ค. - ํ
์คํธ ๋ช
๋ น์ด:
/chklink testchat,/chklink testdonation๋ช ๋ น์ด๋ก ๋ฐฉ์ก์ ์ผ์ง ์๊ณ ๋ ๋ฐ์ดํฐํฉ ๋์์ ๋ฐ๋ก ํ ์คํธํ ์ ์์ต๋๋ค.
๐ ์๊ตฌ ์ฌํญ
- Minecraft: 26.2 - 26.3
- Mod Loader: Fabric Loader
- ํ์ ๋ชจ๋: Fabric API
- ํ์ ๋ฐ์ดํฐํฉ: ์น์ง์ง ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ ๋ฐ์ดํฐํฉ (
example_datapacks๋ด ์ํ ๋ฐ์ดํฐํฉ ์ฐธ๊ณ )
๐ฎ ์ฌ์ฉ ๋ฐฉ๋ฒ
1. ๋ฐ์ดํฐํฉ ์ ์ฉํ๊ธฐ (ํ์)
- ๋ ํฌ์งํ ๋ฆฌ์
example_datapacks/chklink_sampleํด๋(๋๋ ๋๋ง์ ์ปค์คํ ๋ฐ์ดํฐํฉ)๋ฅผ ๋ง์ธํฌ๋ํํธ ์๋์datapacks/ํด๋์ ๋ฃ๊ณ ์๋ ๋ด์์/reload๋ฅผ ์ ๋ ฅํฉ๋๋ค.
2. ์น์ง์ง ์ฑ๋ ID ํ์ธํ๊ธฐ
- ์น์ง์ง ์คํธ๋ฆฌ๋จธ์ ๋ฐฉ์ก๊ตญ URL ์ฃผ์์์ ์ฑ๋ ID(32์๋ฆฌ ํด์๊ฐ)๋ฅผ ๋ณต์ฌํฉ๋๋ค.
(์:https://chzzk.naver.com/live/0123456789abcdef0123456789abcdefโ0123456789abcdef0123456789abcdef)
3. ์ธ๊ฒ์์์ ์ฐ๋ํ๊ธฐ
- ๊ฒ์ ๋ด์์
F6ํค(๋๋ Mod Menu ์ค์ )๋ฅผ ๋๋ฌ ์ค์ ์ฐฝ์ ์ฝ๋๋ค. - ๋ณต์ฌํ ์ฑ๋ ID๋ฅผ ์ ๋ ฅํ๊ณ **[์ฑ๋ ID ์ ์ฅ]**์ ๋๋ฅธ ๋ค **[์ฐ๋ ์์]**์ ํด๋ฆญํฉ๋๋ค.
๐ป ์ธ๊ฒ์ ๋ช ๋ น์ด ๋ชฉ๋ก
| ๋ช ๋ น์ด | ์ค๋ช |
|---|---|
/chklink connect (๋๋ /chklink start) |
์ค์ ๋ ์ฑ๋ ID๋ก ์น์ง์ง ์ฐ๋์ ์์ํฉ๋๋ค. |
/chklink disconnect (๋๋ /chklink stop) |
์น์ง์ง ์ฐ๋์ ํด์ ํฉ๋๋ค. |
/chklink status |
ํ์ฌ ์ค์ ๋ ์ฑ๋ ID์ ์ฐ๋ ์ํ๋ฅผ ํ์ธํฉ๋๋ค. |
/chklink testchat <๋ฉ์์ง> |
๊ฐ์ ์ฑํ ์ ์์ฑํ์ฌ ์คํ ๋ฆฌ์ง ๋ฐ ๋ฐ์ดํฐํฉ์ผ๋ก ํ ์คํธ ์ ์กํฉ๋๋ค. |
/chklink testdonation <๊ธ์ก> <๋ฉ์์ง> |
๊ฐ์ ํ์(์น์ฆ)์ ์์ฑํ์ฌ ์คํ ๋ฆฌ์ง ๋ฐ ๋ฐ์ดํฐํฉ์ผ๋ก ํ ์คํธ ์ ์กํฉ๋๋ค. |
๐ ๏ธ ๋ฐ์ดํฐํฉ ๊ฐ์ด๋
๋ชจ๋๋ ์น์ง์ง ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋๋ง๋ค ์คํ ๋ฆฌ์ง์ ๋ฐ์ดํฐ๋ฅผ ๋ณํฉํ ํ, ํด๋นํ๋ ํ์
ํ๊ทธ์ ๋ฑ๋ก๋ ํจ์๋ค์ ๋งคํฌ๋ก์ ํจ๊ป ์คํํฉ๋๋ค.
์ฒ์ ์ ์ํ์ ๋ค๋ฉด example_datapacks/chklink_sample ๊ตฌ์กฐ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ ์ํด ๋ณด์ธ์!
๐ก ๋ ๋ฆฝ ์คํ ์ง์: ๋ฐ๋๋ผ์
function #ํ๊ทธ์ ๋ฌ๋ฆฌ, ํ๊ทธ์ ๋ฑ๋ก๋ ํน์ ํ์ ์์ ์๋ฌ๊ฐ ๋ฐ์ํ๋๋ผ๋ ๋ค์ ํ์ ์ด ์ค๋จ๋์ง ์๊ณ ์ ์์ ์ผ๋ก ๋๊น์ง ์คํ๋ฉ๋๋ค.
1. ํ์ ํ๊ทธ ๋ฑ๋กํ๊ธฐ
๐ฌ ์ฑํ
ํ๊ทธ: data/chklink/tags/function/chat.json
{
"values": [
"chklink:example_chat",
"chklink:example_chat2"
]
}
๐ง ํ์ ํ๊ทธ: data/chklink/tags/function/donation.json
{
"values": [
"chklink:example_donation",
"chklink:example_donation2"
]
}
2. ์คํ ๋ฆฌ์ง NBT ๊ตฌ์กฐ ๋ช ์ธ
๐ฌ minecraft:chat ์คํ ๋ฆฌ์ง
{
player_name: "ํ๋ ์ด์ด๋๋ค์", // ๋ฐฉ์ก ์ฐ๋์ ์ผ ๋ง์ธํฌ๋ํํธ ํ๋ ์ด์ด ์ด๋ฆ
player_uuid: "12345678-...", // ๋ง์ธํฌ๋ํํธ ํ๋ ์ด์ด UUID
cmd: "์ค์น", // !๋ช
๋ น์ด ๋ช
์นญ (์: !์ค์น sand, 10, 20 -> "์ค์น")
chat: "sand, 10, 20", // ๋ช
๋ น์ด ์ ์ธ ์ ์ฒด ๋ณธ๋ฌธ
// ์ผํ(,) ๊ตฌ๋ถ ์ธ์ ํ๋
args: ["sand", "10", "20"], // ์ธ์ ์ ์ฒด NBT ๋ฌธ์์ด ๋ฆฌ์คํธ
arg0: "sand", // 0๋ฒ์งธ ์ธ์
arg1: "10", // 1๋ฒ์งธ ์ธ์
arg2: "20", // 2๋ฒ์งธ ์ธ์
arg3: "", // (์์ผ๋ฉด ๋น ๋ฌธ์์ด)
arg4: "",
arg5: "",
arg_count: 3, // ์ด ์ธ์ ๊ฐ์
sender_nick: "์์ฒญ์๋๋ค์", // ์น์ง์ง ์์ฒญ์(๋ณด๋ธ ์ฌ๋) ๋๋ค์
sender_id: "a1b2c3...", // ์น์ง์ง ์์ฒญ์ ๊ณ ์ ID ํด์๊ฐ
raw_msg: "!์ค์น sand, 10, 20",// ์๋ณธ ์ ์ฒด ๋ฉ์์ง
time: 1724123456789L // ๋ฉ์์ง ํ์์คํฌํ (๋ฐ๋ฆฌ์ด)
}
๐ง minecraft:donation ์คํ ๋ฆฌ์ง
{
player_name: "ํ๋ ์ด์ด๋๋ค์", // ๋ฐฉ์ก ์ฐ๋์ ์ผ ๋ง์ธํฌ๋ํํธ ํ๋ ์ด์ด ์ด๋ฆ
player_uuid: "12345678-...", // ๋ง์ธํฌ๋ํํธ ํ๋ ์ด์ด UUID
cmd: "๋ฏธ์
", // !๋ช
๋ น์ด ๋ช
์นญ
chat: "๋ค์ด์, 10", // ํ์ ๋ฉ์์ง ๋ด์ฉ
amount: 10000, // ํ์ ๊ธ์ก (์น์ฆ ๊ฐ์ / ์)
// ์ผํ(,) ๊ตฌ๋ถ ์ธ์ ํ๋
args: ["๋ค์ด์", "10"],
arg0: "๋ค์ด์",
arg1: "10",
arg2: "",
arg3: "",
arg4: "",
arg5: "",
arg_count: 2,
sender_nick: "ํ์์๋๋ค์", // ํ์์ ๋๋ค์
sender_id: "a1b2c3...", // ์น์ง์ง ํ์์ ๊ณ ์ ID ํด์๊ฐ
pay_type: "CHEESE", // ๊ฒฐ์ ํ์
(CHEESE ๋ฑ)
raw_msg: "!๋ฏธ์
๋ค์ด์, 10",
time: 1724123456789L
}
3. ๋งคํฌ๋ก ํ์ ์์ฑ ์์
๐ฌ ์ฑํ
์ถ๋ ฅ ์์ : data/chklink/function/example_chat.mcfunction
$tellraw @a [{"text":"$(sender_nick)","color":"yellow"},{"text":": "},{"text":"$(cmd)","color":"aqua"},{"text":"$(chat)","color":"white"}]
๐ฌ ์ฑํ
์ธ์ ๊ธฐ๋ฐ ๋ช
๋ น์ด ์์ : data/chklink/function/example_chat2.mcfunction
// ์ผํ(,) ๊ตฌ๋ถ ์ธ์๋ฅผ ํ์ฉํ ๋ธ๋ก ์ค์น (!์ค์น sand, 10, 20)
$execute if data storage minecraft:chat {cmd:"์ค์น"} as $(player_name) at @s run setblock ~$(arg1) ~ ~$(arg2) $(arg0)
// ํน์ ๋จ์ผ ์ฑํ
!๋ช
๋ น์ด ๊ฐ์ง (!๋ค์ด์, !์ ํ)
$execute if data storage minecraft:chat {cmd:"๋ค์ด์"} run give $(player_name) diamond 1
$execute if data storage minecraft:chat {cmd:"์ ํ"} run effect give $(player_name) jump_boost 5 2
๐ง ํ์ ์๋ฆผ ์์ : data/chklink/function/example_donation.mcfunction
$tellraw @a [{"text":"[ํ์!] ","color":"green","bold":true},{"text":"$(player_name)๋ ๋ฐฉ์ก์ ","color":"gray"},{"text":"$(sender_nick)","color":"yellow"},{"text":": ", "color":"yellow"},{"text":"$(cmd)","color":"aqua"},{"text":"$(chat)","color":"white"}," ",{"text":"$(amount)","color":"yellow"},{"text":"์","color":"yellow"}]
๐ง ํ์ ๋ช
๋ น์ด ๊ฐ์ง ์์ : data/chklink/function/example_donation2.mcfunction
// ํ์ ๋ช
๋ น์ด ๊ฐ์ง ๋ฐ ๊ธ์ก ์กฐ๊ฑด (!์ํ + 10,000์ ํ์ ์ ํฌ๋ฆฌํผ ์ํ)
$execute if data storage minecraft:donation {cmd:"์ํ", amount:10000} as $(player_name) at @s run summon creeper ~ ~ ~
๐ค ํฌ๋ ๋ง (Credits)
- ๋ณธ ๋ชจ๋๋ ๋ค์ด๋ฒ(NAVER)์ ๊ณต์ ์ ํ์ด ์๋๋ฉฐ, AI ์ฝ๋ฉ ์ด์์คํดํธ์ ์ง์์ ๋ฐ์ ๊ฐ๋ฐ๋ ์คํ์์ค ๋น๊ณต์ ๋ชจ๋์ ๋๋ค.
๐ ๋ผ์ด์ ์ค (License)
This project is licensed under the CC0 1.0 Universal (CC0-1.0) License.
๐ English Documentation
๐ง Overview
Chzzk Datapack Link is a Minecraft Fabric mod that bridges live stream chat and donation events from Chzzk (NAVER live streaming) directly into Minecraft NBT storage and datapacks in real time.
Streamers and map creators can easily implement interactive stream events (such as block spawning via chat, mob summons upon donation, viewer voting, etc.) simply by writing standard Minecraft datapack functions (.mcfunction) without writing any Java code.
โ ๏ธ Notice: This mod is an unofficial third-party open-source project and is not affiliated with NAVER. Developed with AI coding assistance.
๐ก Required: This is a Bridge mod that routes incoming Chzzk events to Minecraft storage (minecraft:chat,minecraft:donation). A datapack is required to receive and process these events!
โจ Key Features
- Datapack Integration: Automatically merges chat and donation payloads into storage and triggers
#chklink:chatand#chklink:donationfunction tags with macro parameters. - Smart Command & Argument Parsing:
!์ํ ์ข๋น 3โcmd: "์ํ",chat: "์ข๋น 3"!์ํ, ์ข๋น, 3โcmd: "์ํ",arg0: "์ข๋น",arg1: "3",arg_count: 2
- Fault-Tolerant Isolated Execution: Unlike vanilla
function #tag, an error occurring in one registered tag function will not halt subsequent functions. - Multiplayer Support: Multiple players on a server can each independently connect to their own Chzzk channel ID.
- In-Game GUI & Mod Menu: Easily configure and connect your Channel ID via
F6or through Mod Menu. - In-Game Testing Commands: Simulate chat and donation events using
/chklink testchatand/chklink testdonationwithout needing an active live stream.
๐ Requirements
- Minecraft: 26.2 - 26.3
- Mod Loader: Fabric Loader
- Required Mod: Fabric API
- Required Datapack: Any datapack designed to handle Chzzk events (see
example_datapacksfor sample datapacks).
๐ฎ How to Use
1. Install a Datapack (Required)
- Place the sample datapack
example_datapacks/chklink_sample(or your own custom datapack) into your world'sdatapacks/directory and run/reloadin-game.
2. Find Your Chzzk Channel ID
- Copy the 32-character Channel ID from the streamer's Chzzk channel URL.
(Example:https://chzzk.naver.com/live/0123456789abcdef0123456789abcdefโ0123456789abcdef0123456789abcdef)
3. Connect In-Game
- In-game, press
F6(or open Mod Menu config) to bring up the configuration screen. - Paste your Channel ID, click [Save Channel ID], and then click [Start Connection].
๐ป In-Game Commands
| Command | Description |
|---|---|
/chklink connect (or /chklink start) |
Starts Chzzk connection with the saved Channel ID. |
/chklink disconnect (or /chklink stop) |
Disconnects from Chzzk. |
/chklink status |
Displays the current connection status and saved Channel ID. |
/chklink testchat <message> |
Simulates a chat message and sends it to storage and datapacks. |
/chklink testdonation <amount> <message> |
Simulates a donation (cheese) and sends it to storage and datapacks. |
๐ ๏ธ Datapack Development Guide
When a Chzzk event occurs, the mod merges data into storage and executes all functions registered in the respective function tag along with macro variables.
Refer to example_datapacks/chklink_sample for an implementation reference.
๐ก Isolated Execution: Even if an error or exception occurs in a function registered in the tag, execution does not abort, allowing remaining functions to execute normally.
1. Register Function Tags
๐ฌ Chat Tag: data/chklink/tags/function/chat.json
{
"values": [
"chklink:example_chat",
"chklink:example_chat2"
]
}
๐ง Donation Tag: data/chklink/tags/function/donation.json
{
"values": [
"chklink:example_donation",
"chklink:example_donation2"
]
}
2. Storage NBT Schema
๐ฌ minecraft:chat Storage
{
player_name: "PlayerName", // In-game name of the player who enabled connection
player_uuid: "12345678-...", // Minecraft player UUID
cmd: "์ค์น", // Command name without '!' (e.g. !์ค์น sand, 10, 20 -> "์ค์น")
chat: "sand, 10, 20", // Full message content excluding the command
// Comma-separated argument fields
args: ["sand", "10", "20"], // Full arguments string list
arg0: "sand", // 0th argument
arg1: "10", // 1st argument
arg2: "20", // 2nd argument
arg3: "", // (empty string if missing)
arg4: "",
arg5: "",
arg_count: 3, // Total argument count
sender_nick: "ViewerName", // Chzzk viewer's nickname
sender_id: "a1b2c3...", // Chzzk viewer's unique ID hash
raw_msg: "!์ค์น sand, 10, 20", // Original raw message
time: 1724123456789L // Timestamp (epoch milliseconds)
}
๐ง minecraft:donation Storage
{
player_name: "PlayerName", // In-game name of the player who enabled connection
player_uuid: "12345678-...", // Minecraft player UUID
cmd: "๋ฏธ์
", // Command name without '!'
chat: "๋ค์ด์, 10", // Donation message content
amount: 10000, // Donation amount (Cheese count / KRW)
// Comma-separated argument fields
args: ["๋ค์ด์", "10"],
arg0: "๋ค์ด์",
arg1: "10",
arg2: "",
arg3: "",
arg4: "",
arg5: "",
arg_count: 2,
sender_nick: "DonorName", // Donor's nickname
sender_id: "a1b2c3...", // Donor's unique ID hash
pay_type: "CHEESE", // Payment type (e.g. CHEESE)
raw_msg: "!๋ฏธ์
๋ค์ด์, 10",
time: 1724123456789L
}
3. Macro Function Examples
๐ฌ Print Chat to Chatbox: data/chklink/function/example_chat.mcfunction
$tellraw @a [{"text":"$(sender_nick)","color":"yellow"},{"text":": "},{"text":"$(cmd)","color":"aqua"},{"text":"$(chat)","color":"white"}]
๐ฌ Argument-Based Block Placement: data/chklink/function/example_chat2.mcfunction
// Place block using comma-separated arguments (!์ค์น sand, 10, 20)
$execute if data storage minecraft:chat {cmd:"์ค์น"} as $(player_name) at @s run setblock ~$(arg1) ~ ~$(arg2) $(arg0)
// Detect single chat command (!diamond, !jump)
$execute if data storage minecraft:chat {cmd:"diamond"} run give $(player_name) diamond 1
$execute if data storage minecraft:chat {cmd:"jump"} run effect give $(player_name) jump_boost 5 2
๐ง Donation Alert Notification: data/chklink/function/example_donation.mcfunction
$tellraw @a [{"text":"[Donation!] ","color":"green","bold":true},{"text":"To $(player_name): ","color":"gray"},{"text":"$(sender_nick)","color":"yellow"},{"text":": ", "color":"yellow"},{"text":"$(cmd)","color":"aqua"},{"text":"$(chat)","color":"white"}," ",{"text":"$(amount)","color":"yellow"},{"text":" Cheese","color":"yellow"}]
๐ง Donation Command & Threshold: data/chklink/function/example_donation2.mcfunction
// Detect command & donation amount threshold (!์ํ with 10,000 Cheese summons a creeper)
$execute if data storage minecraft:donation {cmd:"์ํ", amount:10000} as $(player_name) at @s run summon creeper ~ ~ ~
๐ค Credits & License
- Credits: Unofficial open-source bridge mod developed with AI coding assistance. Not affiliated with NAVER.
- License: Licensed under the CC0 1.0 Universal (CC0-1.0) License.


