커맨드 블록 기초
- 얻기:
/give @s command_block
| 설정 | 종류 |
| 블록 유형 | 충격(한 번) · 반복(계속) · 체인(이어서) |
| 조건 | 조건부 · 무조건 |
| 레드스톤 | 레드스톤 필요 · 항상 활성화 |
| 지연 | 틱 단위(20틱 = 1초) |

먼저 확인: 시뮬레이션 거리
- 커맨드 블록은 시뮬레이션 거리 안에서만 작동합니다. 넓은 맵이면 월드를 만들 때 먼저 정합니다.
- 청크 = 가로·세로 16블록, 높이 256블록(65536블록)인 월드의 단위
- 고를 수 있는 값: 베드락 4·6·8·10·12청크 / 교육용 4·6·8청크
- 12청크 월드에서 노란 청크에 둔 커맨드 블록의 명령은 빨간 청크까지만 전달되고, 네 방향 모두 같습니다.
- 영상(2021)은 이미 만든 월드에서는 바꿀 수 없다고 안내했습니다. 지금 버전은 월드 편집 화면의 ‘고급’ 설정에 이 항목이 있는지 먼저 봅니다.

/inputpermission: 플레이어 조작을 막고 풀기
- 형식:
inputpermission set <대상> <조작> enabled | disabled/inputpermission query <대상> <조작> - 막을 수 있는 조작: camera 시점 · movement 이동 · jump 점프 · sneak 웅크리기 · lateral_movement 좌우 · mount·dismount 탈것 예: 다이아몬드를 들고 있으면 점프 금지 (커맨드 블록 4개)
- 반복:
tag @a[hasitem={item=diamond,quantity=1..}] add has_diamond - 체인:
execute as @a[tag=has_diamond] run inputpermission set @s jump disabled - 체인:
execute as @a[tag=!has_diamond] run inputpermission set @s jump enabled - 반복:
tag @a remove has_diamond참고: /aimassist — 블록 조준을 보정해 주는 명령 / 베드락 1.21.50, 실험 기능 ‘조준 보정’ 필요 //aimassist @s set 10 10 16 angle//aimassist @s clear

/inputpermission: 조작 이름과 상태 확인
- 조작 이름은 채팅창 자동 완성에서 고릅니다:
lateral_movement·mount·move_backward·move_forward·move_left·move_right·movement·sneak등 - 게임 모드와 상관없이 적용되고, 교육용 에디션에도 있는 명령입니다.
camera를 disabled로 하면 걸을 수는 있지만 시점을 돌리지 못합니다 → 설명 시간에 화면 고정query결과는<점프>: 0 비활성화됨처럼 나옵니다.


교사용 메모 · /inputpermission·/aimassist 메모
- /inputpermission은 특정 플레이어의 입력(조작) 권한을 켜고 끄는 명령입니다. 영상에서 "이 명령은 교육용 에디션에서도 있다"고 안내합니다(03:01). 게임 모드와 상관없이 적용됩니다(00:22).
- set: 정하기 / query: 지금 상태 묻기. 예)
/inputpermission query @s jump disabled→ 점프가 막혀 있는지 확인(02:15). 화면 결과<점프>: 0 비활성화됨을 영상은 "disabled가 비활성이므로 점프가 가능하다"고 풀이합니다. 점프가 막힌 뒤enabled로 물었을 때도<점프>: 0 활성화됨이 나오므로(02:43), 뒤의 말은 물어본 상태를 그대로 보여 줄 뿐이고 숫자 0이 ‘그 상태인 대상이 없음’을 뜻하는 것으로 읽힙니다. 결과는 단어보다 숫자로 판단합니다. - 조작 이름은 채팅창 자동 완성으로 고릅니다: camera(시점), movement(이동 전체), jump, lateral_movement(좌우), sneak(웅크리기), mount·dismount(탈것 타기·내리기), move_forward·move_backward·move_left·move_right.
- 예시 커맨드 블록 4개(영상 설명란 그대로): ① 반복·항상 활성 ②③ 체인·무조건·항상 활성 ④ 반복. 마지막 블록이 태그를 매번 지워야 다이아를 줍거나 버릴 때 바로 갱신됩니다(01:51).
- 활용: 설명 시간에 camera·movement를 막아 집중시키기, 출발 신호 전 이동 금지, 특정 아이템을 들면 점프 금지 같은 게임 규칙.
- /aimassist: 베드락 1.21.50에 추가된 조준 보정 명령. 월드 설정의 실험 기능 「조준 보정」을 켜야 합니다. 형식:
/aimassist <대상> set <x각도> <y각도> <거리> <angle|distance>, 끄기:/aimassist <대상> clear. 각도 1090, 거리 116칸. 영상에서는 블록에만 적용되고 엔티티는 조준하지 않았지만, 지금 공식 문서는 블록과 엔티티를 모두 조준 대상으로 설명합니다(2026-10 공식 문서 기준). 각도는 10 정도가 자연스럽다고 안내합니다(01:56). 영상은 베드락 에디션 시연이므로 교육용 에디션에서는 쓰기 전에 월드에서 한 번 입력해 봅니다. - 시뮬레이션 거리: 영상은 베드락 12청크 월드로 시연했습니다. 교육용 에디션 최대 8청크는 영상 당시(2021) 기준이며, 고를 수 있는 값은 버전·기기 성능에 따라 달라질 수 있습니다.
응용: NPC와 커맨드 블록으로 미니게임 만들기
- 준비 NPC: 모두 출발 지점으로 이동, 서바이벌로 바꾸기, 재생성 위치 정하기, 순위 점수판(scoreboard) 만들기
- 반복 커맨드 블록: 오답 칸에 들어가면 출발 지점으로, 일정 시간마다 화살이 떨어지는 장애물
- 승리 NPC: 완주 메시지를 화면·채팅에 표시하고 점수 +1, 출발 지점으로 이동


- 실제 명령어는 원본(활동중심연수 S165–S169) 화면에 있습니다. 좌표는 월드에 맞게 바꿔 쓰세요. 이 미니게임 제작은 07 e스포츠 PART에서 다시 다룹니다.
NPC + 커맨드 블록 게임 구조: 마크배그 예
- 시작·종료 NPC: 버튼은 정해진 자리에 레드스톤 블록만 놓고, 그 옆 커맨드 블록 줄이 점수판·타이틀·아이템 지급을 한 번에 처리 → 마지막 블록이 레드스톤 블록을 공기로 지워 다시 누를 수 있게
- 아이템·효과 NPC: 버튼 모드를 끈 명령
/spreadplayers 47 0 1 90 @s→ 대화를 마치면 NPC가 (47, 0) 중심 1~90칸 안 무작위 위치로 사라짐 - 반복 커맨드 블록:
/spreadplayers 47 0 1 90 @e[type=npc]로 NPC를 주기적으로 옮기고, 시작 NPC만/tp로 제자리에 - 죽음 처리: 스폰 위치(
setworldspawn 30 64 8)에 온 플레이어에게 태그 → 회복·아이템·죽음 점수 → 이동 → 태그 삭제


반복 커맨드 블록으로 게임 규칙: 탄소중립게임 예
- 점수판: 탄소발자국(
C, 사이드바)·활동 반경(보이지 않음)·분·초 - 탄소발자국 증가: 반복 2400틱(2분)마다, 체인 블록으로 레벨 0은 +1 … 레벨 4 이상은 +5
- 활동 반경: 모험 모드에서는 허용 블록(allow) 위에서만 캐고 놓을 수 있음 → 20틱마다 탄소발자국 구간을 보고 허용 블록 범위를 30칸 → 20칸 → … → 5칸으로 줄임
- NPC: ‘새롭게 시작하기’(점수판 초기화·모험 모드·아이템), 아이템 상인(사면 탄소발자국 +1, 대상
@initiator) - 화면 명령(옛 문법):
/execute @a[scores={C=0..10}] 136 72 -376 fill ~30 -54 ~30 ~-30 -54 ~-30 allow

커맨드 블록 대신 function: 건축물 한 줄로 불러오기
- 구조물 블록(저장 모드)으로 건축물을 감싸고(오프셋으로 구조물 블록은 빼기) 내보내기 →
.mcstructure - 변환 사이트에서
.mcstructure→.mcfunction(안은fill·setblock명령 줄) - 행동팩의
functions폴더에 넣고 월드에 행동팩 적용 →/function hut처럼 파일 이름으로 불러오기
- NPC 버튼이나 커맨드 블록에
function hut을 넣으면 버튼 하나로 건축물이 생깁니다. 높은 버전의 블록은 낮은 버전에서 안 불러와질 수 있습니다.


function + tick.json: 커맨드 블록 없는 타이머
- 행동팩
functions/tick.json에 넣은 함수는 1틱마다 실행됩니다:{"values": ["goldtimer"]} goldtimer.mcfunction(화면, 옛 문법 한 줄 포함):
scoreboard objectives add goldtimer dummy
scoreboard objectives add goldtimer_s dummy
scoreboard players add @a goldtimer 1
scoreboard players add @a[scores={goldtimer=20}] goldtimer_s 1
execute @a[scores={goldtimer_s=60}] ~~~ function pay
scoreboard players set @a[scores={goldtimer=20..}] goldtimer 0
scoreboard players set @a[scores={goldtimer_s=60..}] goldtimer_s 0
titleraw @a actionbar {"rawtext":[{"text":"시간: "},{"score":{"name":"*","objective":"goldtimer_s"}}]}
- 60초마다
pay함수(금괴 주기)가 실행됩니다. 고친 함수는/reload, 새로 만든 함수 파일은 월드를 다시 열어야 반영됩니다.

교사용 메모 · 게임 커맨드 메모
- 마크배그 시작 커맨드 줄(자막): 죽음 점수판 만들기·사이드바, 분 4·초 0, 커맨드 블록 피드백 끄기(
gamerule commandblockoutput false로 추정), 시간 체크 자리에 레드스톤 블록, 안내 메시지·타이틀, clear 후 겉날개·지도·기본 아이템 지급, 낙하 지점 이동, 모드 변경. 종료 줄: 월드 스폰 초기화, 점수판 삭제, 레드스톤 블록 지우기. 시작 NPC의 이름은Man이고 반복 블록 옆 체인 블록이tp @e[name=Man] 22 64 8로 제자리에 돌려놓습니다(06:07). 각 블록의 좌표는 영상 03:09 화면에서 확인합니다. - NPC 버튼의 버튼 모드를 끈 명령은 대화를 마칠 때 실행됩니다(지금 화면에서는 ‘퇴장 시’를 켬). 반복 블록(
spreadplayers 47 0 1 90 @e[type=npc])은 30초마다 NPC를 옮긴다고 안내합니다(05:46). - 탄소중립게임 화면의
/execute @a[…] 136 72 -376 fill …은 옛 execute 문법입니다. 지금 문법으로는execute as @a[scores={C=0..10}] positioned 136 72 -376 run fill …로 씁니다(2026-10 공식 execute 문서 기준: as·positioned·run). 1120 구간은 화면에서50 구간 값은 영상 05:04~05:35 사이 화면, 증가 명령의 레벨 조건 선택자는 02:20 화면에서 확인합니다.C=11..20일 때 30칸을 공기로 치우고 20칸에 다시 깔기로 확인되고(04:53·05:04), 51 이상은C=51..로 30칸을 공기로 치웁니다(05:35). 21 - 허용 블록 범위를 줄일 때는 먼저 넓은 범위를 공기로 치운 뒤 좁은 범위에 다시 깝니다. 활동 반경 점수는 액션바에 보여 주려고 따로 둡니다. 탄소중립게임 소개 영상: https://youtu.be/52xWEiJfZWs
- goldtimer의
execute @a[scores={goldtimer_s=60}] ~~~ function pay는 옛 문법입니다. 지금 문법으로는execute as @a[scores={goldtimer_s=60}] at @s run function pay로 씁니다(2026-10 공식 execute 문서 기준). pay 함수는give로 금괴(아이템 IDgold_ingot)를 1개 줍니다(대상 선택자는 영상 05:26 화면에서 확인).#으로 시작하는 줄은 주석, 함수 이름이 곧 명령 이름이므로 신중히 짓습니다. - function 건축물: 영상 화면의 변환 사이트는
mcbe-essentials.glitch.me/structure-to-function(ReBrainer의 Structure to Function Converter)이었습니다. 지금은 mcbe-essentials.github.io/structure-to-function에서 같은 도구가 열립니다(2026-10 확인). 행동팩 폴더는 com.mojang의development_behavior_packs(교육용 에디션은 경로가 조금 다름). 함수 파일을 더 넣으면 월드를 다시 시작해야 목록에 나옵니다.