MC Commands

마인크래프트 /setblock 생성기

마인크래프트 맵 제작과 건축 자동화의 핵심, 특정 좌표에 블록을 설치하거나 파괴하는 명령어를 가장 직관적으로 제작해보세요. 블록 상태(State)부터 낡은 상자 속 데이터(NBT)까지 제어할 수 있습니다.

~ 기호를 사용하면 명령어가 실행되는 위치를 기준으로 상대 좌표가 계산됩니다.

/setblock ~ ~ ~ minecraft:air replace

/setblock 명령어 딥 다이브 (Deep Dive)

/setblock 명령어는 마인크래프트 내의 특정 좌표에 플레이어가 원하는 블록을 가장 정확하고 즉각적으로 배치하거나 반대로 맵에서 완전히 제거할 때 사용하는 핵심적인 명령어입니다. 게임 내에서 직접 곡괭이를 들고 블록을 깨거나 설치하는 행위를 스크립트 기반으로 자동화할 수 있기 때문에, 대형 건축물 자동 완성, 복잡한 레드스톤 회로의 제어, 탈출맵이나 퍼즐 맵 설계 등 마인크래프트 커스텀 맵 제작의 모든 분야에서 널리 활용되고 있습니다.

이 명령어는 단순히 "어떤 블록"을 "어디에" 놓느냐를 넘어섭니다. 예를 들어 계단 블록을 설치할 때 계단이 바라보는 방향이 북쪽인지 남쪽인지, 윗면이 뒤집어져 있는지 등의 블록 상태(Block States)를 대괄호 []를 통해 극도로 세밀하게 제어할 수 있습니다. minecraft:oak_stairs[facing=east,half=top] 처럼 작성하면 동쪽을 바라보며 천장에 붙은 참나무 계단을 단숨에 허공에 고정시킬 수 있습니다. 이는 일반적인 서바이벌 플레이로는 구현하기 까다로운 건축적 제약을 단숨에 허물어버립니다.

더 나아가, NBT(Named Binary Tag) 데이터를 활용하면 블록 내부에 담겨 있는 정보를 함께 세팅하여 설치할 수 있습니다. 상자(Chest) 블록을 설치하면서 그 안에 다이아몬드 검이나 인챈트된 사과가 미리 가득 차 있도록 구성할 수도 있고, 표지판(Sign)을 설치함과 동시에 표지판에 적힌 텍스트와 글씨 색상, 형광 효과까지 함께 부여하는 등 무궁무진한 창작의 스펙트럼을 열어줍니다. MCCommand의 /setblock 생성기는 이런 복잡한 문법적 제약을 고민할 필요 없이 편리하게 코드로 변환해줍니다.

자주 묻는 질문 (FAQ)

Q1. /setblock 명령어에서 모드(replace, destroy, keep)의 정확한 차이점은 무엇인가요?

A. 마인크래프트에서 /setblock을 실행할 때 끝에 붙는 세 가지 모드는 매우 중요한 역할을 합니다.
- replace (교체): 해당 좌표에 다이아몬드 블록이 있든, 용암이 있든, 기반암이 있든 무조건 기존 블록을 지워버리고 내가 지정한 새로운 블록으로 덮어씌웁니다. 가장 기본적이고 많이 쓰이는 강력한 속성입니다.
- destroy (파괴): 서바이벌 모드에서 플레이어가 직접 곡괭이나 삽을 이용해 블록을 파괴한 것과 완전히 똑같은 판정을 내립니다. 즉, 원래 있던 블록이 파괴되면서 바닥에 아이템 형태로 드롭되고 폭발 파티클과 사운드가 발생합니다. 이후에 새 블록이 그 자리에 놓입니다.
- keep (유지): 해당 좌표가 오직 '공기(Air)' 블록일 때만 작동합니다. 만약 설치하려는 곳에 이미 물이 있거나 횃불이라도 꽂혀 있다면 오류 메시지를 띄우며 블록을 덮어쓰지 않고 안전하게 보호합니다. 맵에 손상을 주지 않고 싶을 때 유용합니다.

Q2. 상대 좌표(~)와 절대 좌표, 그리고 로컬 좌표(^)의 차이는 무엇인가요?

A. 마인크래프트 명령어는 공간을 인식하기 위해 세 가지의 다른 좌표계를 제공합니다.
- 절대 좌표 (숫자 입력): 100 64 200처럼 숫자만 적을 경우, 맵의 절대적인 X, Y, Z 격자 좌표계의 위치를 의미합니다. 플레이어가 어디에 있든 항상 맵의 동일한 장소에 블록이 놓입니다.
- 상대 좌표 (~ 기호): ~ ~5 ~처럼 물결표를 사용하면, 현재 이 명령어를 실행한 주체의 위치를 기준으로 삼습니다. 위 예시는 실행자의 위치에서 Y축(위쪽)으로 5칸 떨어진 허공에 블록을 설치하라는 의미입니다.
- 로컬 좌표 (^ 기호): ^ ^ ^5는 실행자가 바라보고 있는 시선(카메라 방향)을 기준으로 계산합니다. 위 예시는 내가 현재 쳐다보고 있는 방향 앞쪽으로 5칸 떨어진 곳에 블록을 설치하라는 뜻이 되어, 마법이나 투사체 발사 시스템을 만들 때 요긴하게 쓰입니다.

Q3. NBT 태그를 활용해 특수한 커맨드 블록이나 상자를 설치할 수 있나요?

A. 네, 완전히 가능합니다. /setblock은 블록의 껍데기뿐만 아니라 그 블록이 품고 있는 데이터(Block Entity)까지 조작할 수 있습니다. 예를 들어 /setblock ~ ~ ~ chest{Items:[{Slot:0b,id:"minecraft:diamond",Count:64b}]} 라고 입력하면, 바로 플레이어의 발밑에 다이아몬드 64개가 첫 번째 슬롯에 들어있는 상자가 마법처럼 생성됩니다. 또한 커맨드 블록을 설치할 때 Command:"say Hello"라는 NBT를 추가해주면, 번거롭게 커맨드 블록을 우클릭해 내용을 타건할 필요 없이 세팅이 끝난 커맨드 블록을 대량으로 배치하는 회로 시스템 구축이 가능해집니다.

Q4. 블록을 없애려면(지우려면) 어떻게 해야 하나요?

A. 마인크래프트 게임 엔진 구조상 블록을 '지우는' 명령어는 따로 존재하지 않습니다. 대신 지우고자 하는 좌표에 공기(Air) 블록을 설치하는 것으로 블록을 없애는 효과를 냅니다. 생성기에서 블록 종류를 검색할 때 minecraft:air (공기)를 선택한 뒤 설치 모드를 교체(replace)로 두고 명령어를 실행시키면, 눈앞에 가로막고 있던 거대한 벽돌이나 짜증나는 용암 웅덩이를 허공으로 깔끔하게 증발시킬 수 있습니다.

Q5. 잘못해서 수만 개의 블록을 한 번에 설치할 수도 있나요?

A. /setblock 명령어는 기본적으로 한 번에 딱 한 개의 블록만을 특정 좌표에 점찍어 설치합니다. 따라서 /setblock 명령어 단독으로는 수만 개의 블록이 생성되어 월드를 망가뜨릴 위험이 전혀 없습니다. 만약 넓은 벽면을 세우거나 거대한 직육면체 모양의 공간 전체를 특정 블록으로 꽉 채우고 싶으시다면, 시작 좌표와 끝 좌표 2개를 지정하여 영역을 설정하는 /fill 명령어를 사용하셔야 합니다. /fill 명령어의 경우 부피 제한이 존재하므로 서버 튕김을 막기 위해 게임 내부적으로 한 번에 채울 수 있는 블록의 갯수 상한선(보통 32,768개)이 걸려있습니다.