마인크래프트/명령어/스코어보드

 



1. 개요
2. 목표
3. 화면 슬롯
4. 팀
5. 명령어 문법
5.1. 목표 관련
5.2. 플레이어 관련
5.3. 팀 관련
5.4. 팀 옵션 관련
6. 사용 예시
6.1. 체력 표시
6.2. 살인 횟수
6.3. 사망 횟수
6.4. 당근 낚싯대로 텔레포트


1. 개요


마인크래프트에서의 명령어에 대한 추가 기능 중 하나이다. 스코어보드는 점수판이라는 뜻이고 플레이어에게 점수를 주거나 뺏을 수 있다. 사용법에 따라 상당히 복잡하고 정교한 시스템을 짤 수도 있지만, 명령어를 하나씩 입력해야 하기 때문에 상당히 귀찮은 작업이기도 하다.
스코어보드를 점수 말고 다른 것에 사용하고 싶다면 스코어보드를 변수라고 생각하면 된다. 진짜로 변수와 같은 기능을 할 수도 있기 때문.

2. 목표


목표는 '''이름''', '''보이는 이름''', '''기준'''으로 되어 있다. 점수는 32비트[1] 값이며, 10진수를 지원하지 않는다.
  • 목표의 이름(name)은 여러 명령어나, 대상 지정, 또는 파일 포맷에 사용되는 이름이다. 한 어절이어야 한다.[2]
  • 목표의 보이는 이름(display name)은 실제 화면 상에 보이는 이름으로, 여러 어절이어도 상관 없다.[3]
  • 목표의 기준(criteria)은 점수의 기준이다.
기준
내용
임의 설정
dummy[4]
명령어에 의해서만 변할 수 있고, 게임 내 상황에 따라서 변하지 않는다. 사용자가 임의로 만드는 기준이므로, 게임 자체와 전혀 상관 없는 점수에 편리하다. 예를 들어 마인크래프트에 없는 금전 개념[5] 등에 사용하거나, 점수 시스템 등을 짤 수 있다.
가능
trigger
dummy와 같이 명령어에 의해서만 변할 수 있고, 게임 내 상황에 따라서 변하지 않는다. /trigger 명령어에 의해서 조절될 수 있는데[6], trigger 명령어는 OP가 아니어도 사용할 수 있기에 편리하다.
가능
deathCount
플레이어가 죽을 때마다 자동으로 1씩 증가한다.
가능
playerKillCount
플레이어가 다른 플레이어를 직접 죽일 때마다 자동으로 1씩 증가한다.
가능
totalKillCount
플레이어가 다른 플레이어나 을 직접 죽일 때마다 자동으로 1씩 증가한다.
가능
health
체력을 반영한다. 일반적인 플레이어의 체력은 20이지만 생명력 강화나 흡수 효과로 체력이 증가하면 그것도 반영된다.
가능(체력을 임의 설정하면 된다.)
air
물 안에서의 공기를 반영한다.[7]
불가능
armor
방어력 수치를 반영한다.
불가능
food
허기 수치를 반영한다.
불가능
level
레벨 수치를 반영한다.
불가능
xp
지금까지 얻은 총 경험치 수치를 반영한다.[8]
불가능
teamkill
하위 기준은 팀의 색깔이다. 가능한 색은 "black", "dark_blue", "dark_green", "dark_aqua", "dark_red", "dark_purple", "gold", "gray", "dark_gray", "blue", "green", "aqua", "red", "light_purple", "yellow", "white"의 16가지로, 각각의 색을 가진 팀원이 다른 팀원을 죽이면 값이 증가한다.
가능
위에 있는 간단한 기준과 달리, 복합적인 기준들도 있다. (
minecraft.기준:minecraft.하위기준
)
기준
내용
임의 설정
broken
하위 기준은 내구도가 있는, 파괴될 수 있는 아이템들이다. 곡괭이, 낚싯대, 갑옷, 블록, 아이템 등 포함되어있다.
가능
crafted
하위 기준은 조합 가능한 아이템, 제련 가능한 아이템들이다. 조합한 횟수에 따라 자동으로 증가한다. [9]
가능
custom
하위 기준은 플레이어의 통계값들이고, 게임 메뉴 → 통계에서 확인할 수 있다. 이 값들은 플레이어의 행동에 따라 자동으로 증가한다.
가능
dropped
하위 기준은 플레이어가 해당 아이템을 던지면 값이 증가한다.
가능
killed
하위 기준은 이 엔티티들을 죽일 때마다 값이 증가한다.
가능
killed_by
하위 기준은 위와 같은 몹들이다. 이 몹에 의해서 사망하면 값이 증가한다.
가능
mined
하위 기준은 부술 수 있는 블록들이다. 크리에이티브 모드에서는 값이 증가하지 않는다.
가능
picked_up
하위 기준은 플레이어가 해당 아이템을 줍는다면 값이 증가한다.
가능
used
하위 기준은 아이템의 사용[10] 횟수. 아이템을 사용한 횟수에 따라 자동으로 증가한다.[11]
가능
플레이어의 기본 스탯을 제외한 기준은 모두 명령어로 수정할 수 있다.[12] 또한 명령어를 이용해서 다른 플레이어의 점수를 확인할 수 있다. scores 등의 선택 인자를 사용하여 확인 가능하다. 예를 들어 deaths의 기준이 deathCount라면,
execute if entity @a[scores={deaths=1..5}]
명령어를 통해 죽은 횟수가 1~5번인 플레이어의 수를 셀 수 있다.

3. 화면 슬롯


마인크래프트 화면 상에 점수판을 표시할 만한 곳은 3곳이 있다.
슬롯
설명
list
Tab을 누르면 나오는 리스트, 플레이어 이름 오른쪽에 노란 글씨로 숫자가 표시 된다. [13]
sidebar
화면 오른쪽에 표시된다. 플레이어가 오프라인이라도 표시된다.
sidebar.team.<color>
위 sidebar에 색깔 별로 정해진 팀을 표시한다. 예를 들어 sidebar.team.red 라 쓰면 red 팀에 소속된 플레이어들의 점수가 표시된다.
belowName
플레이어 위에 있는 이름 밑에 점수가 표시된다. 플레이어가 10칸 너머에 있거나, 은신[14] 시 보이지 않는다.

4. 팀


팀을 정의할 때는 이름, 보이는 이름, 접두사, 접미사[15], 아군 공격 설정을 정해주어야 한다. 목표 때와 마찬가지로 이름은 한 어절, 보이는 이름은 여러 어절이어도 상관 없다. 접두사는 포매팅 코드[16]를 이용하여 여러 색을 지정해 줄 수 있고, 접미사는 리셋 코드만 가능하다.
아군 공격 설정을 거짓(false)으로 할 경우, 팀끼리는 근접 공격, 활, 고통의 물약 등의 무기로 대미지를 입힐 수 없다.[17] 참고로 이 설정을 거짓으로 했을 경우, 자신에게도 대미지를 입힐 수 없다.[18] 자신도 팀의 일원이므로. 설정을 참(true)으로 할 경우에는 일반 PvP처럼 적용된다.

5. 명령어 문법


<> 안의 문법은 필수 입력 사항,
[]
안의 문법은 선택 입력 사항이다. 또한 명령어는 대소문자를 구분하니 주의.

5.1. 목표 관련


모든 문법은
/scoreboard objectives
로 시작한다.[예]
문법
설명
작동 조건
list
모든 목표의 이름과 보이는 이름, 기준을 화면에 표시한다.
하나 이상의 목표가 있어야 작동한다.
add <이름> <기준>
[보이는 이름]
[19]
새 목표를 만든다. 보이는 이름은 생략 시 이름과 같게 된다.
이름은 이미 있는 것과 달라야 하며, 16자 이하이어야 한다. 기준은 가능한 종류이어야 하며, 보이는 이름은 32자 이하이어야 한다.
remove <이름>
특정 목표를 삭제한다.
삭제하려는 목표가 존재해야 한다.
setdisplay <슬롯>
[목표]
[20]
목표를 특정 슬롯에 보이게 한다. 화면 슬롯 문단 참고. 목표 칸을 생략할 경우 그 슬롯을 비워서 원래 상태로 되돌린다.
목표가 존재해야 하며, 슬롯도 3가지 중 하나로 존재해야 한다.
'''자바에디션 한정''' modify <목표> <displayname | rendertype>
displayname: 보이는 이름을 변경한다. rendertypes <heart | integer>: 체력이 하트 GUI또는 숫자로 보여지게 할지 정한다.
변경하려는 목표가 존재해야 하며 displayname의 경우 JSON 형식으로 적어야 한다.

5.2. 플레이어 관련


모든 문법은
/scoreboard players
로 시작한다.
명령어 문법
설명
작동 조건
list
[플레이어]

점수판 시스템에 의해 영향을 받는 플레이어를 모두 표시한다. 뒤에 플레이어 이름을 쓰면 특정 플레이어의 점수를 확인할 수 있다.
플레이어는 적어도 하나 이상의 저장된 점수가 있어야 한다.
set <플레이어> <목표> <점수>
[데이터 태그]

플레이어의 점수를 임의로 설정한다.
-2147483648~2147483647까지의 수만 가능하고, 기준이 health인 목표는 변경할 수 없다. 데이터 태그는 플레이어의 특성을 NBT 태그 형식으로 표현한 것이다.
add <플레이어> <목표> <수>
[데이터 태그]

'수'만큼 그 목표의 점수를 증가시킨다.
1~2147483647까지의 수만 가능하고, 기준이 health인 목표는 변경할 수 없다. 데이터 태그는 플레이어의 특성을 NBT 태그 형식으로 표현한 것이다.
remove <플레이어> <목표> <수>
[데이터 태그]

'수'만큼 그 목표의 점수를 감소시킨다.
위와 동일.
reset <플레이어>
[목표]

플레이어의 모든 점수를 초기화한다.
[목표]
를 쓰면 그 목표의 점수만 초기화한다. [21]
-
enable <플레이어> <목표>
플레이어가 trigger 명령어를 통해 점수를 수정할 수 있도록 한 번을 허락한다.[22]
목표의 기준이 trigger이어야 한다.
operation <대상이름> <대상목표> <연산> <선택자> <목표>
선택자의 특정 목표의 점수를 이용해서 대상의 특정 목표의 점수에 대해 정수연산을 실행시킨다.
기준이 health인 목표는 변경할 수 없다. 두 목표의 점수가 있어야 한다.
[BE] test <대상이름> <대상목표> <최소점수> [최고점수]
선택자의 특정 목표의 점수가 최소점수 이상, 최고점수 이하에 있으면 성공한다. [최고점수]는 쓰지 않으면 점수가 <최저점수> 이상만 되더라도 성공한다. <최소점수>의 자리에 *를 쓰면 대상의 점수가 [최고점수] 이하만 되더라도 성공한다.
'''베드락에디션 한정''' random <대상이름> <대상목표> <최소점수> <최고점수>
선택자의 <최소점수>부터 <최고점수>까지 무작위 숫자를 나타낸다.
마지막 scoreboard players operation 에서 가능한 연산은 아래와 같다.
  • "+=": 선택자의 점수를 대상에게 더한다.
  • "-=": 뺀다.
  • "*=": 곱한다.
  • "/=": 나눈다. 나머지는 버린다.
  • "%=": 나눗셈 결과의 나머지를 대상의 점수로 한다.
  • "=": 같게 한다.
  • "<": 만약 선택자의 점수가 대상보다 작으면, 대상의 점수를 선택자 점수로 만든다.
  • ">": 만약 선택자의 점수가 대상보다 크면, 대상의 점수를 선택자 점수로 만든다.
  • "><": 대상과 선택자의 점수를 바꾼다.
BE에서는 "<" 나 *">"를 사용할 때 조건[23]에 맞지 않아 실행되지 않을 때에도 성공적으로 실행되었다고 판단된다.

5.3. 팀 관련


모든 문법은
/team
으로 시작한다. 1.12.2 이전 /scoreboard team 명령어에 해당된다.
명령어 문법
설명
작동 조건
list
[팀 이름]

팀의 목록을 표시하거나, 팀 이름을 추가할 시 그 팀의 소속 플레이어를 표시한다.
적어도 1개 이상의 팀이 있어야 한다.
add <이름>
[보이는 이름]

팀을 만든다. 보이는 이름은 생략 시의 이름과 같다.
이름은 16자, 보이는 이름은 32자 이하이어야 한다.
remove <이름>
팀을 없앤다.
팀이 있어야 한다.
empty <이름>
팀의 플레이어를 모두 없앤다.
팀이 있어야 하고, 그 팀에 한 명 이상의 플레이어가 있어야 한다.
join <팀이름>
[플레이어1] [플레이어2]…

팀에 가입한다. 플레이어를 생략할 시 명령어를 입력하는 플레이어가 가입된다.
팀이 존재해야 한다.
leave
[팀 이름]
[플레이어]

팀에서 나간다.
팀이 있어야 한다.

5.4. 팀 옵션 관련


모든 문법은
/team modify <팀 이름>
으로 시작한다. 1.12 이전에선 modify이 아닌 option.[24]
명령어 문법
설명
작동 조건
color <값>
팀의 색을 정한다. 색은 채팅, Tab 메뉴, 사이드바 메뉴에 모두 적용된다. 가능한 색은 "black", "dark_blue", "dark_green", "dark_aqua", "dark_red", "dark_purple", "gold", "gray", "dark_gray", "blue", "green", "aqua", "red", "light_purple", "yellow", "white"의 16가지이며, "reset"을 할 경우 기본 색으로 초기화된다.
두 값이 모두 유효한 것이어야 한다.
collisionRule <always | never | pushOtherTeam | pushOwnTeam>
플레이어를 밀어내는지의 여부.
-
friendlyFire <true | false>
아군 공격 설정을 켜거나 끈다. 기본은 참.
-
seeFriendlyInvisibles <true | false>
투명화 효과를 가진 팀원(자신 포함)이 반투명하게 보인다.
-
nametagVisibility <always | never | hideForOtherTeams | hideForOwnTeam>
플레이어 캐릭터 위의 이름표가 어떻게 나올지 설정한다. 순서대로 보인다, 보이지 않는다, 팀끼리는 보이나 다른 팀은 안 보이게 된다, 자신의 팀끼리만 안 보인다 순이다.
-
deathMessageVisibillty <always | never | hideForOtherTeams | hideForOwnTeam>
플레이어의 사망 관련 메시지 출력 여부. 위와 동일하다.
-
prefix <JSON 문법>
팀의 앞 닉네임을 추가한다. 예를들어 {"text":"[OP]"}라 쓴다면 <[OP]namuwiki> 라 뜬다.
-
suffix <JSON 문법>
팀의 뒤 닉네임을 추가한다. 위와 동일하다.
-

6. 사용 예시


점수판 시스템이긴 하지만 점수를 매기는 것 외에도 여러 방식으로 활용할 수 있다. 다음 명령어들을 하나씩 입력하면 게임 상에 적용된다.
이 밑에있는 예시 외 색이 있는 팀을 만드는법이다
플레이어 이름
팀 이름
색 이름
기준
Hello
Admin
빨간색
1.16.3
1. /team add Admin[25]
2. /team modify Admin prefix {"text":"[Admin] "}[26]
3. /team modify Admin color red[27]
4. /team join Admin [플레이어 이름][28]

6.1. 체력 표시


플레이어의 이름 밑에 체력을 표시한다. 멀티 플레이 시 상대방 체력을 확인할 수 있게 만들 수 있으며,[29] 전투 서버라면 팀끼리만 보이고 적은 보이지 않게 추가적으로 설정할 수도 있다.
/scoreboard objectives add <이름> health

/scoreboard objectives setdisplay belowName <이름>


6.2. 살인 횟수


호전적인 플레이어를 시스템적으로 가려낼 수 있다. 플레이어 외의 다른 동물들을 기준으로 하면 얼마나 사냥을 열심히 했는지 지표로 사용할 수 있다. 아래 명령어는 탭(Tab) 키를 눌렀을 때 나오는 리스트에 숫자가 표시되게 하였으나, 기준만 만들고 나서 필요할 때만 불러올 수도 있다. 아예 리스트가 번갈아 나오게 할 수도 있다.
/scoreboard objectives add <이름> playerKillCount

/scoreboard objectives setdisplay list <이름>

모든 플레이어의 수치를 초기화할 시
/scoreboard players reset @a
[30]
<이름>


6.3. 사망 횟수


사망 횟수를 사용해 죽을 시 관전자 모드가 되게 하거나 죽은 횟수를 볼 수 있다.
/scoreboard objectives add <이름> deathcount

모든 플레이어의 수치를 초기화할 시
/scoreboard players reset @a <이름>


6.4. 당근 낚싯대로 텔레포트


당근 낚싯대를 우클릭했을 시 점수가 올라간다. 이것을 이용해서 지정된 장소로 텔레포트시킬 수 있다.
/scoreboard objectives add <이름> minecraft.used:minecraft.carrot_on_a_stick

/execute as @a[scores={<이름>=1..}] at @s run tp @s <좌표>

/scoreboard players set @a <이름> 0
[31]
좌표에 ^ ^ ^15를 넣을 시 자신이 바라보는 방향으로 15칸 이동해 먼거리를 편하게 이동할 수 있다.

[1] -2147483648 ~ 2147483647[2] 한글로 입력할 수 없다.[3] 한글일 경우 "<보이는 이름>"을 입력해야 한다.[4] 베드락 에디션에서는 이것만 가능하다.[5] 물론 에메랄드가 있긴 하지만 플레이어 간 사용이 불편하다.[6] 단, 그 목표가 활성화되어 있어야 사용 가능하다.[7] 물 안에 들어가면 체력 칸 위에 뜨는 물방울. 시간이 지날 수록 점점 사라지며, 전부 사라지면 익사하기 시작한다.[8] 명령어로 경험치를 없애도 점수는 변화하지 않는다.[9] 통계 - 블록에서 확인 가능.[10] 블록을 설치하거나, 도구로 파괴하거나, 눈덩이를 던지거나, 지도를 우클릭하는 행위들.[11] 통계 - 아이템 에서 확인 가능.[12] 즉, 플레이어의 체력을 아무런 개조 없이 스코어보드 명령어로 변경할 수는 없다.[13] be에서는 esc를 누르면 나오는 플레이어 리스트에 표시된다.[14] Shift 키로 웅크리고 있으면 된다.[15] 접두사와 접미사는 생략해도 된다. 색을 넣는 등의 효과이기 때문.[16] 이곳 참조.[17] 물약 디버프는 여전히 받는다.[18] 활을 하늘을 향해 쏴서 자신이 맞게 하거나, 고통의 물약을 자신에게 던지거나. 물론 낙하 대미지는 받는다.[예] 모든 목표를 확인하려면
/scoreboard objective list
라고 입력하면 된다.
[19] JSON 형식으로 해야 한다. 색깔도 넣을 수 있다.[20] 위에서 추가한 목표의 이름이다.[21] 초기화 한다는 것은 0을 만드는 게 아니라 플레이어를 그 점수 시스템으로부터 삭제한다는 것이다. 즉 없는 사람 취급.[22] 이 명령어는 OP 이하의 일반 유저도 사용 가능한 명령어이다.[BE] 베드락에디션 한정 명령어. 자바에디션에서는
execute  score <대상> <목표> matches <범위>
명령어로 대신할 수 있다.
[23] 만약 선택자의 점수가 대상보다 작으면/크면[24] 예를 들어 팀 이름이 'A'고 팀 색을 파란색으로 바꾸려면
/scoreboard teams option A color blue
(1.12.2 이하)/
/team modify A color blue
라고 입력하면 된다.
[25] 팀을 만든다[26] 보일때 설정한다[27] 색을 정한다[28] 팀을 정한다[29] 은신(Shift 키로 웅크리기) 시 숨겨진다.[30] 특정 플레이어 수치만 초기화시키려면 플레이어 닉네임을 쓰면 된다.[31] 연쇄, 무조건적. 이 커맨드가 빠질 시 재사용이 불가하다.