12 Commits

Author SHA1 Message Date
Claude (owner)
8e6666192f players/login: 플레이어 상호작용 거리 4.5 로 증가
로그인 시 entity_interaction_range base 를 4.5 로 설정해 버튼 등
interaction 을 더 먼 거리에서 클릭 가능하게 한다. (사용자 로컬 수정 반영)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-22 00:42:22 +09:00
Claude (owner)
6604078273 videos: actionbar video URL 을 macro 평문 출력 — 따옴표/초록색 제거
nbt 소스 텍스트 컴포넌트는 1.21.5+ 에서 문자열을 SNBT(초록 따옴표, color 무시)로
렌더해 액션바에 "url" 형태로 초록색으로 나왔다. macro(mq:videos/actionbar)로
URL 을 리터럴 text 에 넣어 흰색 평문으로 출력한다. video 가 있으면(빈 "" 포함)
macro, 없으면 빈 actionbar 로 덮어써 always-output·잔상 방지 동작은 유지.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-14 03:02:40 +09:00
Claude (owner)
9e6d8ea2ee Merge remote-tracking branch 'origin/main' into codex/owner/mc_datapack 2026-06-14 02:41:22 +09:00
tkrmagid-desktop
4f9d31d634 수정 2026-06-14 02:40:13 +09:00
tkrmagid-desktop
2633229e5a Merge branch 'main' of https://git.tkrmagid.kr/tkrmagid/mc_datapack 2026-06-14 02:38:55 +09:00
tkrmagid-desktop
4369ccbe73 수정 2026-06-14 02:38:43 +09:00
Claude (owner)
2b2b9e0b00 videos: 정답 actionbar 항상 출력 — video "" / 미지정이면 빈 출력
if data 게이트를 제거하고 init6 에서 매 tick answer.video 를 무조건 actionbar 로
보낸다. video 가 "" 이거나 필드가 없으면 빈 문자열이 출력돼 아무것도 안 보이고,
빈 actionbar 가 매 tick 덮어쓰므로 잔상도 자연히 사라진다. 상태 전환/정지 시의
빈 actionbar 클리어는 그대로 유지.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-14 02:26:40 +09:00
Claude (owner)
b7c284facb videos: 정답 video URL actionbar 잔상 제거
actionbar 는 재전송을 멈춰도 ~3초간 페이드로 남으므로, init6 의 video URL 이
다음 곡(init=5) 초반까지 잔상으로 보였다. 상태 전환(timer 300, select) 직전에
빈 actionbar 를 보내 깔끔히 지우고, 전체 리셋인 commands/stop 에도 동일하게
빈 actionbar 를 추가해 종료/리셋 시 잔상이 남지 않게 한다.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-14 02:25:04 +09:00
Claude (owner)
cd4d56e621 songs: 곡별 video URL 추가 — 정답 공개 시 actionbar 흰색 표시
곡 포맷에 선택 필드 video(영상 URL)를 추가. 정답 공개 상태(init=6) 동안
repeat/timers/init6 에서 매 tick answer.video 를 actionbar 에 흰색으로 재전송해
유지한다. video 필드가 없는 곡은 표시하지 않는다(if data 로 게이트).
answer 는 setanswer 가 곡 객체로 통째로 교체하므로 곡별 video 가 그대로 반영되고
미지정 곡에서는 잔상이 남지 않는다. songs.mcfunction 포맷 주석/예시도 갱신.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-14 02:21:24 +09:00
Claude (owner)
e7a84dc4ae buttons: 종료 상태(init 10/11)에서 정지 버튼이 먹지 않던 버그 수정
퀴즈 종료 후(quiz/end → init=10, init10 타이머의 "종료를 눌러주세요" 안내)
정지 버튼을 눌러도 종료/재시작이 안 됐다. 정지 버튼 클릭은 init!=0 이면 투표
경로(trigger stop)로 가는데, 투표 집계(repeat/triggers/trigger)는 init==5 에서만
수행돼 종료 상태에서는 무시됐기 때문.

종료 상태는 단일 클릭 재시작이 의도이므로(init==0 설정단계와 동일), init>=10 에서
정지 버튼을 투표 없이 commands/stop 으로 직접 실행하도록 분기 추가. commands/stop 이
init 을 0 으로 만들어 같은 tick 의 투표 줄은 자동으로 건너뛴다(중복 실행 없음).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-14 02:15:41 +09:00
Claude (owner)
c85bc58039 images: 커버 summon NBT에 Pos 추가 — block_pos 거리검사 통과시켜 로그 실제 제거
직전 커밋(657db78)의 block_pos 만으로는 부족했다. /summon 은 Entity.load() →
readAdditionalSaveData() 에서 block_pos 의 16블록 거리검사를 수행한 뒤에야 명령
좌표로 이동하므로, 검사 시점엔 엔티티가 기본 위치라 검사를 실패해 로그가
"invalid position: 2782,88,5979" 형태로 계속 남는다. NBT에 Pos:[xd,yd,zd] 를
함께 넣으면 load 단계에서 위치가 먼저 설정돼 거리검사를 통과한다.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-14 02:07:10 +09:00
Claude (owner)
657db783f1 images: 커버 summon에 block_pos 명시 — "invalid position: null" 로그 제거
페인팅을 /summon 으로 소환하면 부착 블록 좌표가 비어(null) 있어
"Block-attached entity at invalid position: null" 로그가 소환 시·주기 검사마다
반복 출력된다(MC-252934). 1.20.5+ 의 block_pos:[I; x,y,z] 정수배열을 페인팅
자신의 좌표와 동일하게 명시해 null 구간을 없앤다. 렌더링 위치/동작은 동일.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-14 02:03:50 +09:00
10 changed files with 100 additions and 67 deletions

View File

@@ -51,6 +51,8 @@ scoreboard objectives add score dummy {"text":"점수","bold":true}
scoreboard objectives setdisplay sidebar score
dialog clear @a
# 정답 video URL actionbar 잔상 제거 (전체 리셋의 일부)
title @a actionbar {"text":""}
bossbar set mq:process name [{"text":"진행도: ","color": "yellow","bold": true},{"score":{"name":"index","objective": "main"},"color": "yellow","bold": true},{"text":"/","color": "yellow","bold": true},{"score":{"name":"max_index","objective": "main"},"color": "yellow","bold": true}]
$bossbar set mq:process max $(max_index)

View File

@@ -1 +1,7 @@
$summon minecraft:painting $(x) $(y) $(z) {variant:"$(namespace):$(cover)",facing:$(facing)b,Tags:["mq","mq_cover"]}
# "Block-attached entity at invalid position" 로그 제거(MC-252934).
# /summon 은 NBT 를 먼저 읽어(Entity.load → readAdditionalSaveData 가 block_pos 검사)
# 그 다음에 명령 좌표로 엔티티를 이동시킨다. 따라서 block_pos 만 주면 검사 시점에
# 엔티티가 기본 위치라 16블록 거리 검사를 실패해 로그가 계속 남는다.
# Pos 를 함께 넣으면 load 단계에서 위치가 먼저 설정돼 block_pos 검사를 통과한다.
# (1.20.5+ block_pos:[I; x,y,z] 정수배열 = 페인팅 자신의 블록 좌표)
$summon minecraft:painting $(x) $(y) $(z) {Pos:[$(x)d,$(y)d,$(z)d],variant:"$(namespace):$(cover)",facing:$(facing)b,block_pos:[I;$(x),$(y),$(z)],Tags:["mq","mq_cover"]}

View File

@@ -29,7 +29,7 @@ data modify storage mq:main image set value {namespace: "mq", x: 2782, y: 88, z:
# keep — 캐시 유지 갯수(FIFO). 이 값을 넘기면 가장 먼저 받은 캐시부터 삭제.
# 메모리 관리용이므로 preload 보다 크거나 같게 설정 권장
data modify storage mq:main video set value { \
namespace: "https://video.tkrmagid.kr/api/video//test", \
namespace: "https://video.tkrmagid.kr/api/video//s3-2", \
cmd_x: 2769, cmd_y: 73, cmd_z: 5965, \
x: 2731, y: 96, z: 6034, facing: "north", w: 25,h: 14, \
sound: -1, \

View File

@@ -2,59 +2,61 @@
# 필수 — title, author, alias, description
# 선택 — volume (이 곡만의 /playsound 음량. 미지정시 init/config.mcfunction
# 의 audio.volume 사용)
# video (정답 공개 시 actionbar 에 흰색으로 표시되는 영상 URL. 미지정시
# 표시 안 함)
# 곡 순서가 리소스팩의 track_NN / cover_NN 인덱스와 1:1 매칭된다.
# 예) {volume:0.5, title:"Quiet Song", author:"...", alias:[...], description:"..."}
# 예) {volume:0.5, title:"Quiet Song", author:"...", alias:[...], description:"...", video:"..."}
data modify storage mq:main songs set value []
data modify storage mq:main songs append value {volume:1.0, title:"Cyberpunk 2077", author:"I Really Want to Stay at Your House", alias:["Cyberpunk"," 2077",""], description:"사이버 펑크 2077의 OST이자 애니메이션 사이버펑크: 엣지러너의 엔딩곡인 이 곡은 게임 OST이긴 하나, 애니메이션에서 감성적인 마무리를 장식하며 전 세계적으로 폭발적인 인기를 끌게된 곡이다. 그와 자연스레 사이버펑크 2077의 정서를 대표하는 노래가 되었다. 죽음이란게 가볍게 여겨지는 차가운 사이버펑크 세상속에서 순수한 순애 분위기의 곡으로, 큰 여운이 남는 것이 특징."}
data modify storage mq:main songs append value {volume:1.0, title:"League of Legends", author:"Challengers", alias:[" "], description:"2015년에 라이엇 게임즈가 발매한 앨범 \"The Music of League of Legends Vol. 1\"의 수록곡이다. 라이엇 게임즈가 LoL의 세계관과 e스포츠 문화를 음악으로 표현하기 위해 모은 정식 게임 OST 컴필레이션 중 한 트랙이며, LoL의 본질을 담은 곡이다. 과거에는 인 게임에 재생되어 익숙한 곡이었으나, 현재는 재생되지 않는다."}
data modify storage mq:main songs append value {volume:1.0, title:"테일즈런너", author:"트레이닝 시리즈 BGM", alias:[], description:"이 곡은 테일즈런너의 트레이닝 시리즈 BGM으로, 가벼운 리듬감의 곡이 기본적인 맵인 트레이닝 시리즈의 분위기와 어울리며 많은 이들의 뇌리에 각인되었다."}
data modify storage mq:main songs append value {volume:1.0, title:"카트라이더", author:"상점 BGM", alias:["Kart Rider"], description:"넥슨의 국민 레이싱 게임이었던 카트라이더의 상점 BGM이다. 게임을 해봤던 게이머라면 모를 수가 없을 정도의 경쾌하고 친숙한 멜로디로 한국 게이머들에게 추억의 곡으로 자리 잡았다."}
data modify storage mq:main songs append value {volume:1.0, title:"크레이지 아케이드", author:"Camp BGM", alias:[], description:"크레이지 아케이드 맵 캠프 시리즈의 BGM이다. 빠른 템포와 단순한 반복 멜로디가 인상적이다."}
data modify storage mq:main songs append value {volume:1.0, title:"메이플스토리", author:"에레브 수련의 숲 BGM", alias:["Maplestory"], description:"메이플스토리 에레브 지역의 BGM이다. 시그너스 기사단의 시작 지역으로, 빗방울이 떨어지는 듯한 서정적이고 신비로운 분위기곡으로 자리 잡았다."}
data modify storage mq:main songs append value {volume:1.0, title:"던전 앤 파이터", author:"Purgatorium", alias:[], description:"퍼가토리엄 지역을 통과하는 데 사용된 테마곡이며, 던전앤파이터 하면 이 곡이 떠오를 정도로 많은 던전앤파이터 유저들에게 추억의 곡으로 알려져 있다. 특히 타 게임 \"레바의 모험\"에서도 주로 사용되며 던전앤파이터를 해보지 않은 게이머들에게도 익숙하게 느껴질 수 있다."}
data modify storage mq:main songs append value {volume:1.0, title:"GTA V", author:"Welcome to Los Santos Intro/Theme", alias:["Grand Theft Auto","Grand Theft Auto 5","Grand Theft Auto V","GTA","GTA 5"], description:"GTA V의 인트로 테마곡이다. 로스 산토스에 입성하는 순간의 어두우면서도 힙한 분위기를 형성하는 시그니처 사운드트랙이다."}
data modify storage mq:main songs append value {volume:1.0, title:"Elden Ring", author:"Malenia, Blade of Miquella", alias:[" "], description:"엘든 링의 최강 보스 중 하나인 말레니아, 미켈라의 칼날 전투 BGM이다. 소프라노 보컬과 비장한 오케스트라가 어우러진 보스 BGM의 정점으로, 엘든 링을 클리어해본 유저라면 이 곡이 친숙하게 느껴질 수 있다."}
data modify storage mq:main songs append value {volume:1.0, title:"DJMAX RESPECT V", author:"Lobby Main Theme", alias:["DJMAX RESPECT 5","DJMAX RESPECT"," V"," 5"," "], description:"DJMAX RESPECT V의 메인 메뉴 BGM이다. 시리즈 특유의 세련된 일렉트로닉 사운드가 매력적이다."}
data modify storage mq:main songs append value {volume:1.0, title:"ARK : Survival Evolved", author:"Main Theme", alias:["ARK Survival Evolved"," "], description:"작곡가 Gareth Coker가 작곡하고 Abbey Road 스튜디오에서 93인조 필하모니아 오케스트라로 녹음된 곡으로, 광활한 공룡 생존 세계의 웅장함과 신비로움을 담은 합창과 오케스트라가 인상적이다."}
data modify storage mq:main songs append value {volume:1.0, title:"Apex 레전드", author:"Main Theme", alias:[" ","Apex Legends"], description:"에이펙스 레전드의 메인 테마곡. 박진감 넘치는 배틀로얄의 긴장감과 히어로물 같은 웅장함을 결합한 곡이다. 특히 곡 중간 부분의 특유의 멜로디가 인상적이다."}
data modify storage mq:main songs append value {volume:1.0, title:"디아블로 2", author:"트리스트럼 BGM", alias:["","DIABLO 2","DIABLO"], description:"디아블로 2의 트리스트럼 마을 BGM이다. 시리즈를 대표하는 기타 선율로, 디아블로 1로부터 이어진 황량하고 우울한 분위기의 명곡이다."}
data modify storage mq:main songs append value {volume:1.0, title:"포켓몬스터", author:"등화도시 BGM", alias:[" "," ORAS"], description:"포켓몬스터 오메가루비/알파사파이어의 등화도시 BGM이다. 도시의 활기와 화려함을 담은 경쾌한 리메이크 버전이다. 쇼츠에도 많이 사용되며 포켓몬스터 BGM 중에 인기 있는 곡에 속한다."}
data modify storage mq:main songs append value {volume:1.0, title:"슈퍼 마리오 64", author:"Main Theme", alias:[" ","Super Mario 64","Super Mario"], description:"닌텐도의 명작 슈퍼마리오 64의 메인 테마곡이다. 3D 마리오 시리즈의 역사적 시작을 알린 곡이다. 닌텐도 게임 음악사에서 빼놓을 수 없는 명곡 중 하나이다."}
data modify storage mq:main songs append value {volume:1.0, title:"별의 커비", author:"Green Greens", alias:["Kirby Super Star"], description:"커비 시리즈를 대표하는 Green Greens BGM. 첫 스테이지 BGM으로 시작해 시리즈 전반에 걸쳐 다양하게 편곡되는 커비의 시그니처 테마이다."}
data modify storage mq:main songs append value {volume:1.0, title:"소닉", author:"Green Hill Zone", alias:["Sonic"], description:"소닉 더 헤지혹의 상징과도 같은 BGM이다. 1991년 첫 작품부터 시작된 SEGA의 대표적인 BGM으로, 게임 음악 역사에 한 획을 그었다."}
data modify storage mq:main songs append value {volume:1.0, title:"원신", author:"Genshin Impact Main Theme", alias:["Genshin Impact"], description:"원신의 메인 테마곡이다. HOYO-Mix가 작곡한 웅장하고 환상적인 오케스트라 곡으로, 원신을 가장 잘 표현한 곡으로 평가받고 있다."}
data modify storage mq:main songs append value {volume:1.0, title:"The Legend of Zelda", author:"Main Theme", alias:[" "], description:"젤다의 전설: 신들의 트라이포스의 메인 테마. 콘도 코지가 작곡한 젤다 시리즈의 영원한 클래식 명곡이다."}
data modify storage mq:main songs append value {volume:1.0, title:"Slay The spire 2", author:"Main Menu Theme", alias:[" 2"," "], description:"인기를 끌고 있는 인디 덱빌딩 로그라이크 게임 슬레이 더 스파이어 2의 메인 메뉴 테마곡이다. 신비로운 탑을 오르는 여정의 분위기를 담았다."}
data modify storage mq:main songs append value {volume:1.0, title:"Arc Raiders", author:"Lobby Music - Track 01", alias:[" "], description:"익스트랙션 슈터 장르인 아크 레이더스의 로비 음악이다. 아크 레이더스는 출시 초기 참신한 컨셉과 완성도 높은 게임성으로 큰 인기를 끌었으며 현재도 꾸준한 인기를 유지하고 있다. 게임을 켜자마자 나오는 포스트 아포칼립스 분위기의 긴장감 있는 사운드가 특징이다."}
data modify storage mq:main songs append value {volume:1.0, title:"산나비", author:"끝났다는 것은 다시 시작된다는 것을", alias:["SANABI"], description:"한국 인디 게임인 산나비의 엔딩곡이다. 감동적인 스토리의 여운을 그대로 전달하는 명곡으로 평가받는다. 산나비를 플레이해본 유저라면 이 노래를 듣고 감동의 눈물을 흘릴 수밖에 없다."}
data modify storage mq:main songs append value {volume:1.0, title:"FIFA 2000", author:"It's Only Us", alias:["FIFA"," 2000",""], description:"영국 가수 Robbie Williams의 곡 \"It's Only Us\". EA에서 FIFA 2000의 사운드트랙으로 라이선스해 인트로 곡으로 삽입한 노래이다. 피파가 큰 인기를 끌게 되며 게임에 삽입곡으로 분위기를 만드는 전통을 이어간 초기 사례."}
data modify storage mq:main songs append value {volume:1.0, title:"FIFA 온라인 3", author:"Yeah Yeah Yeah", alias:["FIFA ","FC 3","FC "," 3"," "], description:"영국 DJ Jax Jones가 2015년 7월 발매한 댄스/하우스 싱글로, 게임 OST로 작곡된 곡은 아니지만 클럽/스포츠 게임 등에서 BGM이나 라이선스 음악으로 자주 활용된다. 경쾌한 비트와 멜로디가 인상적이다."}
data modify storage mq:main songs append value {volume:1.0, title:"Terraria", author:"Underground BGM", alias:[""], description:"샌드박스 게임인 테라리아의 지하 BGM이다. 지하 탐험의 신비로운 분위기를 담았다."}
data modify storage mq:main songs append value {volume:1.0, title:"Minecraft", author:"C418 - Mice on Venus", alias:[""], description:"마인크래프트 C418의 대표곡으로, 게임을 플레이하지 않은 사람도 알 정도로 유명한 명상적이고 서정적인 피아노 곡. 이 곡을 들으면 괜히 추억에 잠길 수도 있게 된다."}
data modify storage mq:main songs append value {volume:1.0, title:"Project Zomboid", author:"Main Menu Theme", alias:[" "], description:"좀비 생존 게임인 프로젝트 좀보이드의 메인 메뉴 BGM. 게임을 켜게 되면 이 곡이 재생되며 게임에 황량하고 외로운 분위기를 더해준다."}
data modify storage mq:main songs append value {volume:1.0, title:"Stardew Valley", author:"Stardew Valley Overture", alias:[" "], description:"스타듀밸리의 오프닝 테마이다. 따뜻하고 향수 어린 멜로디로, 시골 농장 생활의 시작을 알린다."}
data modify storage mq:main songs append value {volume:1.0, title:"Undertale", author:"His Theme", alias:[""], description:"언더테일의 명곡 중 하나. 게임 후반부의 감동적인 순간을 책임지는 Toby Fox의 대표곡이다."}
data modify storage mq:main songs append value {volume:1.0, title:"Battlefield 4", author:"Main Theme", alias:["Battlefield"," 4",""], description:"배틀필드 4의 공식 메인 테마곡이다. DICE의 시그니처 시리즈 사운드로, 전쟁 영화 같은 웅장함을 담았다. 노래의 웅장함 덕분에 게임 BGM뿐만 아니라 여러 웅장하고 전투적인 영상에 자주 쓰이는 곡이다."}
data modify storage mq:main songs append value {volume:1.0, title:"StarCraft", author:"Terran Theme 3", alias:[""], description:"대한민국 전통 민속놀이 스타크래프트의 테란 종족 3번째 트랙 곡이다. 우주적이고 전투적인 분위기를 잘 담은 곡으로 한국 e스포츠와 함께 자란 세대에게 정말 깊은 향수를 자극한다. 특히 테란 종족 1번째 트랙이 대표적이다."}
data modify storage mq:main songs append value {volume:1.0, title:"쿠키런", author:"에피소드 1 Main Theme", alias:[], description:"모바일 게임 쿠키런의 첫 에피소드 BGM이다. 경쾌하고 귀여운 분위기로 쿠키들의 오븐 탈출을 잘 표현한 곡이다."}
data modify storage mq:main songs append value {volume:1.0, title:"VALORANT", author:"WATCH", alias:[""], description:"라이엇 게임즈의 FPS 게임인 발로란트의 공식 음악이다. 챔피언스 투어 등 e스포츠 이벤트와 함께 공개된 곡이지만, 인 게임 스킨 테마곡으로 쓰이며 많은 게이머들에게 친숙하게 되었다."}
data modify storage mq:main songs append value {volume:1.0, title:"모두의 마블", author:"월드맵 BGM", alias:[], description:"넷마블의 모바일 게임 모두의 마블의 월드맵 BGM. 신나는 분위기로 여행 콘셉트를 표현한다."}
data modify storage mq:main songs append value {volume:1.0, title:"Blue Archive", author:"Constant Moderato", alias:[" "], description:"블루 아카이브의 메인 테마곡이다. 잔잔하고 청량하고 산뜻한 분위기로 인트로를 알리며 중반부 신나는 멜로디와 비트가 인상 깊다. 학원 도시 키보토스의 일상을 잘 표현하는 시리즈의 시그니처 곡이다."}
data modify storage mq:main songs append value {volume:1.0, title:"튀어나와요 동물의 숲", author:"In Kapp'n's Bus", alias:[" "], description:"동물의 숲 시리즈의 캅파 보트 투어 BGM. 무인도 여행의 즐거움을 담은 곡이다."}
data modify storage mq:main songs append value {volume:1.0, title:"Civilization VI", author:"Sogno di Volare", alias:["Civilization 6"," VI"," 6"], description:"문명 6의 메인 테마곡이다. 아카데미상 후보에 오른 작곡가 Christopher Tin이 작곡한 만큼, 이탈리아어 합창곡의 분위기가 문명 시리즈 음악의 정점을 알린다."}
data modify storage mq:main songs append value {volume:1.0, title:"Rainbow Six Siege", author:"영사관 지하 라디오", alias:[" "], description:"레인보우 식스 시즈의 영사관 맵 지하에서 재생되는 라디오 BGM이다. 이 게임을 플레이해본 게이머라면 영사관 맵 지하에 들어서는 순간 들리는 이 익숙한 라디오 BGM을 잊을 수 없을 것이다."}
data modify storage mq:main songs append value {volume:1.0, title:"배틀그라운드", author:"Old Main Theme", alias:[], description:"배틀그라운드의 구 메인 로비 BGM이다. 배틀그라운드가 막 출시한 시점 게임을 켜게 되면 항상 듣게 되는 곡이었으며, 배틀로얄 장르를 대중화시킨 작품의 긴장감 있는 테마가 인상 깊다."}
data modify storage mq:main songs append value {volume:1.0, title:"냥코 대전쟁", author:"전투 테마 1", alias:[], description:"모바일 게임 냥코 대전쟁의 전투 BGM이다. 귀엽지만 중독성 있는 멜로디가 특징이며, 게임을 플레이해봤다면 익숙할 것이다."}
data modify storage mq:main songs append value {volume:1.0, title:"OverWatch", author:"환상의 겨울나라 BGM", alias:[""], description:"오버워치 환상의 겨울나라 이벤트 BGM으로, 크리스마스 시즌 한정 이벤트의 따뜻한 분위기를 담았다. 그 시절 겨울에도 오버워치를 플레이해본 유저라면 추억이 떠오를 수밖에 없는 향수 같은 곡이다."}
data modify storage mq:main songs append value {volume:1.0, title:"TEKKEN 7", author:"Infinite Azure - Round 1", alias:["TEKKEN"," 7",""], description:"철권 7의 인피니트 아주르 스테이지 BGM. 시리즈 전통의 일본풍 도시 야경 스테이지의 세련된 EDM 트랙으로, 주로 인 게임에서 콤보 연습을 할 때 자주 사용하는 맵이므로 플레이해본 게이머들에겐 익숙한 곡이다."}
data modify storage mq:main songs append value {volume:1.0, title:"엘소드", author:"Login Screen 1", alias:[], description:"넥슨 게임 엘소드의 로그인 화면 BGM. 중세 판타지 전투의 분위기를 가볍게 표현했다."}
data modify storage mq:main songs append value {volume:1.0, title:"레이튼 교수와 이상한 마을", author:"수수께끼", alias:[], description:"닌텐도 DS의 명작 추리/퍼즐 게임 레이튼 교수와 이상한 마을의 OST이다. 아코디언 선율의 특징적인 유럽풍 분위기의 곡."}
data modify storage mq:main songs append value {volume:1.0, title:"Clash Royale", author:"Menu A", alias:[" "], description:"슈퍼셀의 모바일 게임 클래시 로얄의 메뉴 BGM이다. 게임을 해봤다면 정말 정말 익숙한 곡이다."}
data modify storage mq:main songs append value {volume:1.0, title:"Geometry Dash", author:"Stay Inside Me", alias:[" "], description:"지오메트리 대시의 사운드트랙이다. 지오메트리 대시는 모르는 맵을 클리어하기 위해서 연습 모드를 플레이할 수밖에 없는데, 이 곡이 연습 모드에서 반복 재생되며 많은 이들의 뇌리에 집어넣어졌다."}
data modify storage mq:main songs append value {volume:1.0, title:"끄투", author:"로비 BGM", alias:[], description:"한국 끝말잇기 게임 끄투의 구 로비 BGM이다. 한국 웹 게임 문화를 대표하는 곡 중 하나."}
data modify storage mq:main songs append value {volume:1.0, title:"SEPHIRIA", author:"토끼마을 BGM", alias:[""], description:"인디 RPG 세피리아의 토끼마을 BGM이다. 평화로운 마을의 분위기를 담은 곡."}
data modify storage mq:main songs append value {volume:1.0, title:"Bubble Bobble", author:"Main Theme", alias:[""], description:"추억의 클래식 아케이드 게임 버블보블의 메인 테마곡이다. 짧지만 강렬한 중독성으로 80~90년대 오락실 세대의 추억을 자극하는 명곡이다."}
data modify storage mq:main songs append value {volume:1.0, title:"버블파이터", author:"대기방 BGM", alias:["Bubble Fighter"], description:"넥슨의 캐주얼 슈팅 게임 버블파이터의 대기방 BGM이다. 친숙하고 귀여운 분위기의 곡이 인상적이다."}
data modify storage mq:main songs append value {volume:0.7, title:"GTA V", author:"Welcome to Los Santos Intro/Theme", alias:["Grand Theft Auto","Grand Theft Auto 5","Grand Theft Auto V","GTA","GTA 5"], description:"GTA V의 인트로 테마곡이다. 로스 산토스에 입성하는 순간의 어두우면서도 힙한 분위기를 형성하는 시그니처 사운드트랙이다.", video:"https://youtu.be/QkkoHAzjnUs"}
data modify storage mq:main songs append value {volume:0.7, title:"FIFA 2000", author:"It's Only Us", alias:["FIFA"," 2000",""], description:"영국 가수 Robbie Williams의 곡 \"It's Only Us\". EA에서 FIFA 2000의 사운드트랙으로 라이선스해 인트로 곡으로 삽입한 노래이다. 피파가 큰 인기를 끌게 되며 게임에 삽입곡으로 분위기를 만드는 전통을 이어간 초기 사례.", video:"https://youtu.be/YznY5_PQZ3Y"}
data modify storage mq:main songs append value {volume:1.27, title:"테일즈런너", author:"트레이닝 시리즈 BGM", alias:[], description:"이 곡은 테일즈런너의 트레이닝 시리즈 BGM으로, 가벼운 리듬감의 곡이 기본적인 맵인 트레이닝 시리즈의 분위기와 어울리며 많은 이들의 뇌리에 각인되었다.", video:"https://youtu.be/gfswv3n6sLw"}
data modify storage mq:main songs append value {volume:0.5, title:"ARK : Survival Evolved", author:"Main Theme", alias:["ARK Survival Evolved"," "], description:"작곡가 Gareth Coker가 작곡하고 Abbey Road 스튜디오에서 93인조 필하모니아 오케스트라로 녹음된 곡으로, 광활한 공룡 생존 세계의 웅장함과 신비로움을 담은 합창과 오케스트라가 인상적이다.", video:"https://youtu.be/FW9vsrPWujI"}
data modify storage mq:main songs append value {volume:0.6, title:"League of Legends", author:"Challengers", alias:[" "], description:"2015년에 라이엇 게임즈가 발매한 앨범 \"The Music of League of Legends Vol. 1\"의 수록곡이다. 라이엇 게임즈가 LoL의 세계관과 e스포츠 문화를 음악으로 표현하기 위해 모은 정식 게임 OST 컴필레이션 중 한 트랙이며, LoL의 본질을 담은 곡이다. 과거에는 인 게임에 재생되어 익숙한 곡이었으나, 현재는 재생되지 않는다.", video:"https://youtu.be/zF5Ddo9JdpY"}
data modify storage mq:main songs append value {volume:0.5, title:"카트라이더", author:"상점 BGM", alias:["Kart Rider"], description:"넥슨의 국민 레이싱 게임이었던 카트라이더의 상점 BGM이다. 게임을 해봤던 게이머라면 모를 수가 없을 정도의 경쾌하고 친숙한 멜로디로 한국 게이머들에게 추억의 곡으로 자리 잡았다.", video:"https://youtu.be/Ie4tEpNuWps"}
data modify storage mq:main songs append value {volume:1.54, title:"The Legend of Zelda", author:"Main Theme", alias:[" "], description:"젤다의 전설: 신들의 트라이포스의 메인 테마. 콘도 코지가 작곡한 젤다 시리즈의 영원한 클래식 명곡이다.", video:"https://youtu.be/a9WLI25xb8Q"}
data modify storage mq:main songs append value {volume:0.53, title:"크레이지 아케이드", author:"Camp BGM", alias:[], description:"크레이지 아케이드 맵 캠프 시리즈의 BGM이다. 빠른 템포와 단순한 반복 멜로디가 인상적이다.", video:"https://youtu.be/_Gj9ef-Jdd8"}
data modify storage mq:main songs append value {volume:0.54, title:"메이플스토리", author:"에레브 수련의 숲 BGM", alias:["Maplestory"], description:"메이플스토리 에레브 지역의 BGM이다. 시그너스 기사단의 시작 지역으로, 빗방울이 떨어지는 듯한 서정적이고 신비로운 분위기의 명곡으로 자리 잡았다.", video:"https://youtu.be/syNANSJN_xc"}
data modify storage mq:main songs append value {volume:1.72, title:"Minecraft", author:"C418 - Mice on Venus", alias:[""], description:"마인크래프트 C418의 대표곡으로, 게임을 플레이하지 않은 사람도 알 정도로 유명한 명상적이고 서정적인 피아노 곡. 이 곡을 들으면 괜히 추억에 잠길 수도 있게 된다.", video:"https://youtu.be/MmB9b5njVbA"}
data modify storage mq:main songs append value {volume:0.35, title:"던전 앤 파이터", author:"Purgatorium", alias:[], description:"퍼가토리엄 지역을 통과하는 데 사용된 테마곡이며, 던전앤파이터 하면 이 곡이 떠오를 정도로 많은 던전앤파이터 유저들에게 추억의 곡으로 알려져 있다. 특히 타 게임 \"레바의 모험\"에서도 주로 사용되며 던전앤파이터를 해보지 않은 게이머들에게도 익숙하게 느껴질 수 있다.", video:"https://youtu.be/B8_VeJLH80I"}
data modify storage mq:main songs append value {volume:0.55, title:"DJMAX RESPECT V", author:"Lobby Main Theme", alias:["DJMAX RESPECT 5","DJMAX RESPECT"," V"," 5"," "], description:"DJMAX RESPECT V의 메인 메뉴 BGM이다. 시리즈 특유의 세련된 일렉트로닉 사운드가 매력적이다.", video:"https://youtu.be/hZ0jXmDv3Ac"}
data modify storage mq:main songs append value {volume:0.52, title:"소닉", author:"Green Hill Zone", alias:["Sonic"], description:"소닉 더 헤지혹의 상징과도 같은 BGM이다. 1991년 첫 작품부터 시작된 SEGA의 대표적인 BGM으로, 게임 음악 역사에 한 획을 그었다.", video:"https://youtu.be/K7-kl5DHLpU"}
data modify storage mq:main songs append value {volume:0.77, title:"Apex 레전드", author:"Main Theme", alias:[" ","Apex Legends"], description:"에이펙스 레전드의 메인 테마곡. 박진감 넘치는 배틀로얄의 긴장감과 히어로물 같은 웅장함을 결합한 곡이다. 특히 곡 중간 부분의 특유의 멜로디가 인상적이다.", video:"https://youtu.be/7M4Vds3fI9E"}
data modify storage mq:main songs append value {volume:0.5, title:"디아블로 2", author:"트리스트럼 BGM", alias:["","DIABLO 2","DIABLO"], description:"디아블로 2의 트리스트럼 마을 BGM이다. 시리즈를 대표하는 기타 선율로, 디아블로 1로부터 이어진 황량하고 우울한 분위기의 명곡이다.", video:"https://youtu.be/84Tr5rCVRgM"}
data modify storage mq:main songs append value {volume:0.5, title:"포켓몬스터", author:"등화도시 BGM", alias:[" "," ORAS"], description:"포켓몬스터 오메가루비/알파사파이어의 등화도시 BGM이다. 도시의 활기와 화려함을 담은 경쾌한 리메이크 버전이다. 쇼츠에도 많이 사용되며 포켓몬스터 BGM 중에 인기 있는 곡에 속한다.", video:"https://youtu.be/bpu5ofLNt0w"}
data modify storage mq:main songs append value {volume:0.65, title:"슈퍼 마리오 64", author:"Main Theme", alias:[" ","Super Mario 64","Super Mario"], description:"닌텐도의 명작 슈퍼마리오 64의 메인 테마곡이다. 3D 마리오 시리즈의 역사적 시작을 알린 곡이다. 닌텐도 게임 음악사에서 빼놓을 수 없는 명곡 중 하나이다.", video:"https://youtu.be/Ujir2X1D_yw"}
data modify storage mq:main songs append value {volume:0.65, title:"Elden Ring", author:"Malenia, Blade of Miquella", alias:[" "], description:"엘든 링의 최강 보스 중 하나인 말레니아, 미켈라의 칼날 전투 BGM이다. 소프라노 보컬과 비장한 오케스트라가 어우러진 보스 BGM의 정점으로, 엘든 링을 클리어해본 유저라면 이 곡이 친숙하게 느껴질 수 있다.", video:"https://youtu.be/8McaLMSQRBk"}
data modify storage mq:main songs append value {volume:0.7, title:"별의 커비", author:"Green Greens", alias:["Kirby Super Star"], description:"커비 시리즈를 대표하는 Green Greens BGM. 첫 스테이지 BGM으로 시작해 시리즈 전반에 걸쳐 다양하게 편곡되는 커비의 시그니처 테마이다.", video:"https://youtu.be/aYjFa0dVAjo"}
data modify storage mq:main songs append value {volume:0.51, title:"원신", author:"Genshin Impact Main Theme", alias:["Genshin Impact"], description:"원신의 메인 테마곡이다. HOYO-Mix가 작곡한 웅장하고 환상적인 오케스트라 곡으로, 원신을 가장 잘 표현한 곡으로 평가받고 있다.", video:"https://youtu.be/poaXbXgTWx0"}
data modify storage mq:main songs append value {volume:0.86, title:"Slay The spire 2", author:"Main Menu Theme", alias:[" 2"," "], description:"인기를 끌고 있는 인디 덱빌딩 로그라이크 게임 슬레이 더 스파이어 2의 메인 메뉴 테마곡이다. 신비로운 탑을 오르는 여정의 분위기를 담았다.", video:"https://youtu.be/caEYvo6c8oU"}
data modify storage mq:main songs append value {volume:0.83, title:"Arc Raiders", author:"Lobby Music - Track 01", alias:[" "], description:"익스트랙션 슈터 장르인 아크 레이더스의 로비 음악이다. 아크 레이더스는 출시 초기 참신한 컨셉과 완성도 높은 게임성으로 큰 인기를 끌었으며 현재도 꾸준한 인기를 유지하고 있다. 게임을 켜자마자 나오는 포스트 아포칼립스 분위기의 긴장감 있는 사운드가 특징이다.", video:"https://youtu.be/xuftkDxjGT4"}
data modify storage mq:main songs append value {volume:0.48, title:"FIFA 온라인 3", author:"Yeah Yeah Yeah", alias:["FIFA ","FC 3","FC "," 3"," "], description:"영국 DJ Jax Jones가 2015년 7월 발매한 댄스/하우스 싱글로, 게임 OST로 작곡된 곡은 아니지만 클럽/스포츠 게임 등에서 BGM이나 라이선스 음악으로 자주 활용된다. 경쾌한 비트와 멜로디가 인상적이다.", video:"https://youtu.be/Pbnh06kCgVk"}
data modify storage mq:main songs append value {volume:0.55, title:"Terraria", author:"Underground BGM", alias:[""], description:"샌드박스 게임인 테라리아의 지하 BGM이다. 지하 탐험의 신비로운 분위기를 담았다.", video:"https://youtu.be/HHNLfxBxcvo"}
data modify storage mq:main songs append value {volume:0.65, title:"Project Zomboid", author:"Main Menu Theme", alias:[" "], description:"좀비 생존 게임인 프로젝트 좀보이드의 메인 메뉴 BGM. 게임을 켜게 되면 이 곡이 재생되며 게임에 황량하고 외로운 분위기를 더해준다.", video:"https://youtu.be/pU150792vtY"}
data modify storage mq:main songs append value {volume:0.53, title:"Undertale", author:"His Theme", alias:[""], description:"언더테일의 명곡 중 하나. 게임 후반부의 감동적인 순간을 책임지는 Toby Fox의 대표곡이다.", video:"https://youtu.be/1Hojv0m3TqA"}
data modify storage mq:main songs append value {volume:0.71, title:"Battlefield 4", author:"Main Theme", alias:["Battlefield"," 4",""], description:"배틀필드 4의 공식 메인 테마곡이다. DICE의 시그니처 시리즈 사운드로, 전쟁 영화 같은 웅장함을 담았다. 노래의 웅장함 덕분에 게임 BGM뿐만 아니라 여러 웅장하고 전투적인 영상에 자주 쓰이는 곡이다.", video:"https://youtu.be/vupPwLJ1zkE"}
data modify storage mq:main songs append value {volume:0.73, title:"Stardew Valley", author:"Stardew Valley Overture", alias:[" "], description:"스타듀밸리의 오프닝 테마이다. 따뜻하고 향수 어린 멜로디로, 시골 농장 생활의 시작을 알린다.", video:"https://youtu.be/ot7uXNQskhs"}
data modify storage mq:main songs append value {volume:0.7, title:"Rainbow Six Siege", author:"영사관 지하 라디오", alias:[" "], description:"레인보우 식스 시즈의 영사관 맵 지하에서 재생되는 라디오 BGM이다. 이 게임을 플레이해본 게이머라면 영사관 맵 지하에 들어서는 순간 들리는 이 익숙한 라디오 BGM을 잊을 수 없을 것이다.", video:"https://youtu.be/yX6F6764sMQ"}
data modify storage mq:main songs append value {volume:0.63, title:"StarCraft", author:"Terran Theme 3", alias:[""], description:"대한민국 전통 민속놀이 스타크래프트의 테란 종족 3번째 트랙 곡이다. 우주적이고 전투적인 분위기를 잘 담은 곡으로 한국 e스포츠와 함께 자란 세대에게 정말 깊은 향수를 자극한다. 특히 테란 종족 1번째 트랙이 대표적이다.", video:"https://youtu.be/Cqh37RlJ32Y"}
data modify storage mq:main songs append value {volume:0.81, title:"모두의 마블", author:"월드맵 BGM", alias:[], description:"넷마블의 모바일 게임 모두의 마블의 월드맵 BGM. 신나는 분위기로 여행 콘셉트를 표현한다.", video:"https://youtu.be/FMJe3L4amNE"}
data modify storage mq:main songs append value {volume:0.7, title:"Blue Archive", author:"Constant Moderato", alias:[" "], description:"블루 아카이브의 메인 테마곡이다. 잔잔하고 청량하고 산뜻한 분위기로 인트로를 알리며 중반부 신나는 멜로디와 비트가 인상 깊다. 학원 도시 키보토스의 일상을 잘 표현하는 시리즈의 시그니처 곡이다.", video:"https://youtu.be/YHy8JmWX3kw"}
data modify storage mq:main songs append value {volume:0.51, title:"튀어나와요 동물의 숲", author:"In Kapp'n's Bus", alias:[" "], description:"동물의 숲 시리즈의 캅파 보트 투어 BGM. 무인도 여행의 즐거움을 담은 곡이다.", video:"https://youtu.be/3fKRexrC76c"}
data modify storage mq:main songs append value {volume:0.62, title:"VALORANT", author:"WATCH", alias:[""], description:"라이엇 게임즈의 FPS 게임인 발로란트의 공식 음악이다. 챔피언스 투어 등 e스포츠 이벤트와 함께 공개된 곡이지만, 인 게임 스킨 테마곡으로 쓰이며 많은 게이머들에게 친숙하게 되었다.", video:"https://youtu.be/RCUI9q99qus"}
data modify storage mq:main songs append value {volume:0.66, title:"Civilization VI", author:"Sogno di Volare", alias:["Civilization 6"," VI"," 6"], description:"문명 6의 메인 테마곡이다. 아카데미상 후보에 오른 작곡가 Christopher Tin이 작곡한 만큼, 이탈리아어 합창곡의 분위기가 문명 시리즈 음악의 정점을 알린다.", video:"https://youtu.be/uULVgaeHPqg"}
data modify storage mq:main songs append value {volume:0.67, title:"배틀그라운드", author:"Old Main Theme", alias:[], description:"배틀그라운드의 구 메인 로비 BGM이다. 배틀그라운드가 막 출시한 시점 게임을 켜게 되면 항상 듣게 되는 곡이었으며, 배틀로얄 장르를 대중화시킨 작품의 긴장감 있는 테마가 인상 깊다.", video:"https://youtu.be/kp3YL3QoPEE"}
data modify storage mq:main songs append value {volume:0.5, title:"버블파이터", author:"대기방 BGM", alias:["Bubble Fighter"], description:"넥슨의 캐주얼 슈팅 게임 버블파이터의 대기방 BGM이다. 친숙하고 귀여운 분위기의 곡이 인상적이다.", video:"https://youtu.be/xpPKJMpRkY8"}
data modify storage mq:main songs append value {volume:1.25, title:"Bubble Bobble", author:"Main Theme", alias:[""], description:"추억의 클래식 아케이드 게임 버블보블의 메인 테마곡이다. 짧지만 강렬한 중독성으로 80~90년대 오락실 세대의 추억을 자극하는 명곡이다.", video:"https://youtu.be/Hhh_yY3fTb8"}
data modify storage mq:main songs append value {volume:0.74, title:"냥코 대전쟁", author:"전투 테마 1", alias:[], description:"모바일 게임 냥코 대전쟁의 전투 BGM이다. 귀엽지만 중독성 있는 멜로디가 특징이며, 게임을 플레이해봤다면 익숙할 것이다.", video:"https://youtu.be/2ay66PWuw6o"}
data modify storage mq:main songs append value {volume:0.55, title:"SEPHIRIA", author:"토끼마을 BGM", alias:[""], description:"인디 RPG 세피리아의 토끼마을 BGM이다. 평화로운 마을의 분위기를 담은 곡.", video:"https://youtu.be/Ls9h1MZ0mFE"}
data modify storage mq:main songs append value {volume:0.8, title:"산나비", author:"끝났다는 것은 다시 시작된다는 것을", alias:["SANABI"], description:"한국 인디 게임인 산나비의 엔딩곡이다. 감동적인 스토리의 여운을 그대로 전달하는 명곡으로 평가받는다. 산나비를 플레이해본 유저라면 이 노래를 듣고 감동의 눈물을 흘릴 수밖에 없다.", video:"https://youtu.be/wZ6wx0rSL8M"}
data modify storage mq:main songs append value {volume:1.9, title:"쿠키런", author:"에피소드 1 Main Theme", alias:[], description:"모바일 게임 쿠키런의 첫 에피소드 BGM이다. 경쾌하고 귀여운 분위기로 쿠키들의 오븐 탈출을 잘 표현한 곡이다.", video:"https://youtu.be/_m6SEk_yK8A"}
data modify storage mq:main songs append value {volume:0.89, title:"끄투", author:"로비 BGM", alias:[], description:"한국 끝말잇기 게임 끄투의 구 로비 BGM이다. 한국 웹 게임 문화를 대표하는 곡 중 하나.", video:"https://youtu.be/1vTkng-RMCk"}
data modify storage mq:main songs append value {volume:0.71, title:"Geometry Dash", author:"Stay Inside Me", alias:[" "], description:"지오메트리 대시의 사운드트랙이다. 지오메트리 대시는 모르는 맵을 클리어하기 위해서 연습 모드를 플레이할 수밖에 없는데, 이 곡이 연습 모드에서 반복 재생되며 많은 이들의 뇌리에 집어넣어졌다.", video:"https://youtu.be/WkkBkBcVzK8"}
data modify storage mq:main songs append value {volume:0.98, title:"레이튼 교수와 이상한 마을", author:"수수께끼", alias:[], description:"닌텐도 DS의 명작 추리/퍼즐 게임 레이튼 교수와 이상한 마을의 OST이다. 아코디언 선율의 특징적인 유럽풍 분위기의 곡.", video:"https://youtu.be/MZjBpjmMccY"}
data modify storage mq:main songs append value {volume:0.62, title:"TEKKEN 7", author:"Infinite Azure - Round 1", alias:["TEKKEN"," 7",""], description:"철권 7의 인피니트 아주르 스테이지 BGM. 시리즈 전통의 일본풍 도시 야경 스테이지의 세련된 EDM 트랙으로, 주로 인 게임에서 콤보 연습을 할 때 자주 사용하는 맵이므로 플레이해본 게이머들에겐 익숙한 곡이다.", video:"https://youtu.be/5Lw3tg40DG8"}
data modify storage mq:main songs append value {volume:0.6, title:"엘소드", author:"Login Screen 1", alias:[], description:"넥슨 게임 엘소드의 로그인 화면 BGM. 중세 판타지 전투의 분위기를 가볍게 표현했다.", video:"https://youtu.be/B-M0f1lIB5g"}
data modify storage mq:main songs append value {volume:0.77, title:"Clash Royale", author:"Menu A", alias:[" "], description:"슈퍼셀의 모바일 게임 클래시 로얄의 메뉴 BGM이다. 게임을 해봤다면 정말 정말 익숙한 곡이다.", video:"https://youtu.be/_hNxfiXmeAE"}
data modify storage mq:main songs append value {volume:0.58, title:"OverWatch", author:"환상의 겨울나라 BGM", alias:[""], description:"오버워치 환상의 겨울나라 이벤트 BGM으로, 크리스마스 시즌 한정 이벤트의 따뜻한 분위기를 담았다. 그 시절 겨울에도 오버워치를 플레이해본 유저라면 추억이 떠오를 수밖에 없는 향수 같은 곡이다.", video:"https://youtu.be/66h40e_0_Q8"}
data modify storage mq:main songs append value {volume:0.77, title:"Cyberpunk 2077", author:"I Really Want to Stay at Your House", alias:["Cyberpunk"," 2077",""], description:"사이버 펑크 2077의 OST이자 애니메이션 사이버펑크: 엣지러너의 엔딩곡인 이 곡은 게임 OST이긴 하나, 애니메이션에서 감성적인 마무리를 장식하며 전 세계적으로 폭발적인 인기를 끌게된 곡이다. 그와 자연스레 사이버펑크 2077의 정서를 대표하는 노래가 되었다. 죽음이란게 가볍게 여겨지는 차가운 사이버펑크 세상속에서 순수한 순애 분위기의 곡으로, 큰 여운이 남는 것이 특징.", video:"https://youtu.be/ecO_xfm8JD4"}
# 곡 개수는 songs 배열 길이에서 자동 계산됨
execute store result storage mq:main max_index int 1 run data get storage mq:main songs

View File

@@ -21,3 +21,6 @@ gamemode adventure @s
# 채팅정답 모드 활성 알림은 모드가 직접 PlayerLoggedInEvent 핸들러에서
# mq:players/mod_active_notice 를 호출해서 표시한다 (race-free).
# 상호작용거리 증가
attribute @s minecraft:entity_interaction_range base set 4.5

View File

@@ -4,7 +4,7 @@ scoreboard players set @s answer 2
function mq:tellraw {"text":"","color":"black","msg":""}
function mq:tellraw {"text":"","color":"black",msg:[{"text":"정답: ","color": "aqua"},{"storage":"mq:main","nbt":"answer.title","color": "yellow","bold": true}]}
function mq:tellraw {"text":"","color":"black",msg:[{"text":"가수: ","color":"aqua"},{"storage":"mq:main","nbt":"answer.author","color": "yellow","bold": true}]}
function mq:tellraw {"text":"","color":"black",msg:[{"text":"제목: ","color":"aqua"},{"storage":"mq:main","nbt":"answer.author","color": "yellow","bold": true}]}
function mq:tellraw {"text":"","color":"black",msg:[{"text":"설명: ","color":"aqua"},{"storage":"mq:main","nbt":"answer.description","color": "yellow","bold": false}]}
execute if score skip buttons matches -2 run function mq:tellraw {"text":"","color":"black",msg:[{"text":"정답자: ","color": "aqua"},{"text":"스킵","color": "yellow","bold": true}]}
execute unless score skip buttons matches -2 run function mq:tellraw {"text":"","color":"black",msg:[{"text":"정답자: ","color": "aqua"},{"selector":"@s","color": "yellow","bold": true}]}

View File

@@ -77,33 +77,34 @@ $execute if score $(n) buttons matches -1 run kill @e[distance=0..,tag=mq,tag=$(
$execute if score $(n) buttons matches -1 run kill @e[distance=0..,tag=mq,tag=$(n),type=minecraft:text_display]
# south: 깊이축=z(+0.1875, 플레이어 쪽), 가로축=x, 3 타일 + 라벨
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"south"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.37 ~0.37 ~0.07 {Tags:["mq","$(n)"],width:0.125f,height:0.26f,response:0b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"south"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.5 ~0.37 ~0.07 {Tags:["mq","$(n)"],width:0.13f,height:0.26f,response:0b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"south"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.63 ~0.37 ~0.07 {Tags:["mq","$(n)"],width:0.125f,height:0.26f,response:0b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"south"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.37 ~0.37 ~0.07 {Tags:["mq","$(n)"],width:0.125f,height:0.26f,response:1b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"south"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.5 ~0.37 ~0.07 {Tags:["mq","$(n)"],width:0.13f,height:0.26f,response:1b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"south"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.63 ~0.37 ~0.07 {Tags:["mq","$(n)"],width:0.125f,height:0.26f,response:1b}
$execute if score $(n) buttons matches -1 unless data storage mq:tmp btn{label:""} if data storage mq:tmp btn{f:"south"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:text_display ~0.5 ~-0.5 ~0.01 {Tags:["mq","$(n)"],Rotation:[0f,0f],background:0,text:{text:"$(label)",color:"$(label_color)",font:"$(label_font)",bold:true},transformation:{scale:[$(label_scale)f,$(label_scale)f,$(label_scale)f],translation:[0f,$(label_addY)f,0f],left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f]}}
# north: 깊이축=z(+0.8125, 플레이어 쪽), 가로축=x, 3 타일 + 라벨
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"north"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.37 ~0.37 ~0.93 {Tags:["mq","$(n)"],width:0.125f,height:0.26f,response:0b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"north"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.5 ~0.37 ~0.93 {Tags:["mq","$(n)"],width:0.13f,height:0.26f,response:0b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"north"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.63 ~0.37 ~0.93 {Tags:["mq","$(n)"],width:0.125f,height:0.26f,response:0b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"north"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.37 ~0.37 ~0.93 {Tags:["mq","$(n)"],width:0.125f,height:0.26f,response:1b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"north"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.5 ~0.37 ~0.93 {Tags:["mq","$(n)"],width:0.13f,height:0.26f,response:1b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"north"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.63 ~0.37 ~0.93 {Tags:["mq","$(n)"],width:0.125f,height:0.26f,response:1b}
$execute if score $(n) buttons matches -1 unless data storage mq:tmp btn{label:""} if data storage mq:tmp btn{f:"north"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:text_display ~0.5 ~-0.5 ~0.99 {Tags:["mq","$(n)"],Rotation:[180f,0f],background:0,text:{text:"$(label)",color:"$(label_color)",font:"$(label_font)",bold:true},transformation:{scale:[$(label_scale)f,$(label_scale)f,$(label_scale)f],translation:[0f,$(label_addY)f,0f],left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f]}}
# east: 깊이축=x(+0.1875, 플레이어 쪽), 가로축=z, 3 타일 + 라벨
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"east"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.07 ~0.37 ~0.37 {Tags:["mq","$(n)"],width:0.125f,height:0.26f,response:0b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"east"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.07 ~0.37 ~0.5 {Tags:["mq","$(n)"],width:0.13f,height:0.26f,response:0b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"east"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.07 ~0.37 ~0.63 {Tags:["mq","$(n)"],width:0.125f,height:0.26f,response:0b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"east"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.07 ~0.37 ~0.37 {Tags:["mq","$(n)"],width:0.125f,height:0.26f,response:1b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"east"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.07 ~0.37 ~0.5 {Tags:["mq","$(n)"],width:0.13f,height:0.26f,response:1b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"east"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.07 ~0.37 ~0.63 {Tags:["mq","$(n)"],width:0.125f,height:0.26f,response:1b}
$execute if score $(n) buttons matches -1 unless data storage mq:tmp btn{label:""} if data storage mq:tmp btn{f:"east"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:text_display ~0.01 ~-0.5 ~0.5 {Tags:["mq","$(n)"],Rotation:[-90f,0f],background:0,text:{text:"$(label)",color:"$(label_color)",font:"$(label_font)",bold:true},transformation:{scale:[$(label_scale)f,$(label_scale)f,$(label_scale)f],translation:[0f,$(label_addY)f,0f],left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f]}}
# west: 깊이축=x(+0.8125, 플레이어 쪽), 가로축=z, 3 타일 + 라벨
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"west"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.93 ~0.37 ~0.37 {Tags:["mq","$(n)"],width:0.125f,height:0.26f,response:0b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"west"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.93 ~0.37 ~0.5 {Tags:["mq","$(n)"],width:0.13f,height:0.26f,response:0b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"west"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.93 ~0.37 ~0.63 {Tags:["mq","$(n)"],width:0.125f,height:0.26f,response:0b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"west"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.93 ~0.37 ~0.37 {Tags:["mq","$(n)"],width:0.125f,height:0.26f,response:1b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"west"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.93 ~0.37 ~0.5 {Tags:["mq","$(n)"],width:0.13f,height:0.26f,response:1b}
$execute if score $(n) buttons matches -1 if data storage mq:tmp btn{f:"west"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:interaction ~0.93 ~0.37 ~0.63 {Tags:["mq","$(n)"],width:0.125f,height:0.26f,response:1b}
$execute if score $(n) buttons matches -1 unless data storage mq:tmp btn{label:""} if data storage mq:tmp btn{f:"west"} positioned $(x).0 $(y).0 $(z).0 run summon minecraft:text_display ~0.99 ~-0.5 ~0.5 {Tags:["mq","$(n)"],Rotation:[90f,0f],background:0,text:{text:"$(label)",color:"$(label_color)",font:"$(label_font)",bold:true},transformation:{scale:[$(label_scale)f,$(label_scale)f,$(label_scale)f],translation:[0f,$(label_addY)f,0f],left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f]}}
$execute if score $(n) buttons matches -1 run scoreboard players set $(n) buttons 0
# ---- 상시: interaction 클릭/타격 → playsound + 명령/투표 실행 ----
# init main = 0 (퀴즈 시작 전 설정 단계) : 명령 직접 실행
# init main >= 10 (종료 상태) + 정지 버튼 : 명령 직접 실행 (재시작용, 투표 없음)
# 그 외 : trigger 투표 경로
# 한 버튼에 interaction 3개지만 `on target` 은 클릭된 1개만 통과
# (나머지는 target 부재로 체인 중단). limit=1 을 두면 MC 가 임의로 1개를
@@ -111,6 +112,11 @@ $execute if score $(n) buttons matches -1 run scoreboard players set $(n) button
$execute as @e[distance=0..,tag=mq,tag=$(n),type=minecraft:interaction] on target as @s positioned $(x).0 $(y).0 $(z).0 run playsound minecraft:block.stone_button.click_on block @s ~ ~ ~ 1 1
$execute as @e[distance=0..,tag=mq,tag=$(n),type=minecraft:interaction] on target if data storage mq:tmp btn{n:"test"} run $(c)
$execute as @e[distance=0..,tag=mq,tag=$(n),type=minecraft:interaction] on target unless data storage mq:tmp btn{n:"test"} as @s positioned $(x).0 $(y).0 $(z).0 if score init main matches 0 run $(c)
# 종료 상태(init 10/11)에서 정지 버튼 단일 클릭 → 즉시 commands/stop 으로 재시작 대기(init 0).
# 투표 집계는 repeat/triggers/trigger 가 init==5 에서만 하므로, 이 분기 없이는 종료 안내문
# ("종료를 눌러주세요")대로 눌러도 종료가 안 된다. commands/stop 이 init 을 0 으로 만들어
# 아래 투표 줄(unless init==0)은 같은 tick 에 자동으로 건너뛰어진다(중복 실행 없음).
$execute as @e[distance=0..,tag=mq,tag=$(n),type=minecraft:interaction] on target if data storage mq:tmp btn{n:"stop"} as @s positioned $(x).0 $(y).0 $(z).0 if score init main matches 10.. run $(c)
$execute as @e[distance=0..,tag=mq,tag=$(n),type=minecraft:interaction] on target unless data storage mq:tmp btn{n:"test"} as @s positioned $(x).0 $(y).0 $(z).0 unless score init main matches 0 run trigger $(n)
# ---- 처리 후 attack/interaction NBT 클리어 (다음 tick 중복 발화 방지) ----

View File

@@ -1,4 +1,14 @@
# 정답 공개 동안(init=6) 곡 video URL 을 actionbar 에 흰색 평문으로 계속 표시.
# nbt 소스 컴포넌트는 이 버전에서 문자열을 SNBT(초록 따옴표, color 무시)로 렌더하므로
# macro(mq:videos/actionbar)로 URL 을 리터럴 text 에 넣어 흰색 평문으로 출력한다.
# video 가 있으면(빈 "" 포함) macro 호출, 없으면 빈 actionbar 로 덮어써 잔상 방지.
execute if data storage mq:main answer.video run function mq:videos/actionbar with storage mq:main answer
execute unless data storage mq:main answer.video run title @a actionbar {"text":""}
execute if score timer main matches 300 run title @a title {"text":""}
# 다음 상태로 넘어가기 전 actionbar 비우기 — 안 비우면 마지막 URL 이 다음 곡(init=5)
# 초반까지 ~3초 잔상으로 남는다. select 보다 먼저 실행되어 깔끔히 지워진다.
execute if score timer main matches 300 run title @a actionbar {"text":""}
# warn-off execute-group
execute if score timer main matches 290 run function mq:images/clear
execute if score timer main matches 290 run function mq:videos/clear

View File

@@ -0,0 +1,4 @@
# video URL 을 actionbar 에 흰색 평문으로 출력 (macro).
# nbt 소스 컴포넌트는 이 버전에서 문자열을 SNBT(초록 따옴표, color 무시)로 렌더하므로,
# URL 을 리터럴 text 에 넣어 흰색으로 출력한다. video 가 "" 이면 빈 문자열이 출력됨.
$title @a actionbar {"text":"$(video)","color":"white"}