최근 수정 시각 : 2025-01-28 13:57:26

마인크래프트/명령어/scoreboard

파일:상위 문서 아이콘.svg   상위 문서:
#!if top1 != null && 문서명1 == null
[[마인크래프트/명령어|마인크래프트/명령어]]
#!if top1 == null && 문서명1 != null
[[|]]

1. 개요2. JE
2.1. objectives(목표)
2.1.1. 기준2.1.2. 슬롯
2.2. players(플레이어)2.3. 예시
2.3.1. 체력 표시2.3.2. 살인 횟수2.3.3. 사망 횟수2.3.4. 당근 낚싯대로 텔레포트
3. BE
3.1. objectives(목표)3.2. players(플레이어)3.3. team(팀)3.4. 예시
3.4.1. 임의의 좌표에 다이아몬드 광석 배치하기

1. 개요

<colbgcolor=#47A0FF> scoreboard
scoreboard <objectives|players> ...
<colcolor=#fff> 역사 JE | [ruby(1.5,ruby=추가)] / [ruby(1.13, ruby=변경)] / [ruby(1.20.3, ruby=변경)]
BE | [ruby(Bata 1.7.0.2,ruby=추가)]
EE | ?
기능 스코어보드를 관리한다.
관련 명령어 trigger | team
단축 명령어 -
기본값 -
<rowcolor=#fff> 싱글 사용 권한
가능 2(JE), 1(BE)
스코어보드나 플레이어 목록 점수를 관리하는 명령어이다. 사용법에 따라 플레이어 체력바를 표시할 수 있고 복잡하고 정교한 시스템을 짤 수 있다. scoreboard players ... 문법은 스코어보드의 점수를 조작할 때 사용하는 명령어이며, scoreboard objectives ... 문법은 점수가 아닌 스코어보드 자체를 조작할 때 사용하는 명령어이다. execute와 함께 명령어의 양대산맥이다.[1]

2. JE

문법은 크게 두 가지로 나눈다. 점수는
Int
유형이므로 -2,147,483,648 ~ 2,147,483,647 값만 사용할 수 있다.

2.1. objectives(목표)

모든 문법은 /scoreboard objectives ...로 시작한다.
  • ... add <목표> <기준> [보이는 목표(JSON)]
    • <목표><기준>에 따라 추가한다. <기준>에 대한 설명은 기준 문단에 따로 설명한다.
  • ... list
    • 생성된 모든 스코어보드를 채팅창에 표시한다.
  • ... modify <목표> ...
    • ... <displayautoupdate> <값>
      • 점수가 업데이트될 때마다 표시 이름이 자동으로 업데이트되는지 여부. 기본값은 false이다.
    • ... <displayname> <JSON>
      • 보이는 목표를 설정한다. raw JSON 형식으로 작성한다.
    • ... <numberformat> [blank|fixed|styled]
      • 빨간색 숫자의 표시를 결정한다. [blank|fixed|styled]을 생략하면 styled {"color":"red"} 로 지정한다.
        • [blank]
          • 모든 숫자를 숨긴다.
        • [fixed] <JSON>
          • 모든 숫자를 고정한다. raw JSON 형식으로 작성한다.
        • [styled] <JSON>
          • 모든 숫자를 스타일에 따라 작성한다. text JSON 형식으로 작성한다.
    • ... <rendertype> <hearts|integer>
      • ... setdisplay list <이름>으로 설정할 경우 상태가 변한다. 그렇지 않을 경우 아무 일도 일어나지 않는다.
      • hearts로 할 경우 플레이어 리스트에 하트가 보이게 하고, integer로 할 경우 숫자로 보여지게 한다.
  • ... remove <목표>
    • 존재하는 스코어보드 중에서 <목표> 스코어보드를 삭제한다.[2] 만약 setdisplay를 통해 화면에 스코어보드가 보이는 상태였을 경우, 해당 스코어보드는 더 이상 보이지 않게 된다.[3]
  • ... setdisplay <슬롯> [목표]
    • [목표]를 해당 <슬롯>에 보이게 한다. [목표]를 비워두면 슬롯을 숨기게 된다.

2.1.1. 기준

  • dummy
    • 명령어로만 변경할 수 있다.
  • trigger
    • 명령어와 trigger 명령어로만 변경할 수 있다.
  • air
  • armor
    • 모든 플레이어의 방어력 수치를 반영한다.
  • deathCount
    • 플레이어가 사망할 때마다 1씩 증가한다.
  • food
  • health
  • killedByTeam.<색>
    • 같은 팀에게 살해당했을 때 증가한다. 즉 팀킬당한 횟수이다.
  • level
  • minecraft.<기준>:minecraft.<하위 기준>
    • <기준>
      • broken: <하위 기준> 아이템이 파괴될 때마다 값이 증가한다. <하위 기준> 아이템은 모든 아이템에 사용할 수 있으나 실질적으로 내구도가 있는 모든 아이템만 가능하다.
      • crafted: <하위 기준> 아이템이 제작, 재련, 주민 거래로 얻을 때마다 값이 증가한다.
      • custom: <하위 기준>은 통계에 있는 어떠한 행동에 따라 값이 증가한다.
      • dropped: <하위 기준> 아이템이 버릴 때마다 값이 증가한다.
      • killed: <하위 기준> 개체가 죽일 때마다 값이 증가한다.
      • killed_by: <하위 기준> 개체에 의해 사망할 때마다 값이 증가한다.
      • mined: <하위 기준> 블록을 파괴될 때마다 값이 증가한다. 크리에이티브 모드인 플레이어는 이 값이 절대로 증가하지 않는다.
      • picked_up: <하위 기준> 아이템을 주울 때마다 값이 증가한다.
      • used: <하위 기준> 아이템이 사용될 때마다 값이 증가한다.
  • playerKillCount
    • 플레이어가 다른 플레이어를 처치할 때마다 값이 증가한다.
  • teamkill.<색>
    • 각각의 색을 가진 팀원이 다른 팀원을 죽이면 값이 증가한다.
  • xp
    • 플레이어가 마지막 사망 이후 총 획득한 경험치(즉, 사망할 때 나오는 점수)를 반영한다.

2.1.2. 슬롯

마인크래프트 화면 상에 <목표>을 표시할 곳(슬롯)은 3곳이 있다.
  • below_name
    • 플레이어 위에 있는 이름 밑에 점수가 표시된다. 플레이어가 10블록 너머에 있거나 은신(웅크리기)할 시 보이지 않는다.
  • list
    • tab 키를 누르면 나오는 리스트. 플레이어 이름 오른쪽에 노란 글씨로 숫자가 표시된다.
  • sidebar
    • 화면 오른쪽에 표시된다. 플레이어가 오프라인이라도 표시된다.
  • sidebar.team.<색>
    • sidebar와 같지만 색깔 별로 정해진 팀을 표시한다. 예를 들어 sidebar.team.red라 쓰면 red 팀에 소속된 플레이어들의 점수가 표시된다.

2.2. players(플레이어)

모든 문법은 /scoreboard players ...로 시작한다.
  • ... get <대상> <목표>
    • <목표>에 있는 <대상>의 점수를 확인한다.
  • ... add <대상> <목표> <수>
    • <목표>에 있는 <대상>의 점수를 <수>만큼 증가시킨다.
  • ... set <대상> <목표> <수>
    • <목표>에 있는 <대상>의 점수를 <수>로 설정한다.
  • ... remove <대상> <목표> <수>
    • <목표>에 있는 <대상>의 점수를 <수>만큼 감소시킨다.
  • ... enable <대상> <기준이_trigger로_설정된_목표>
    • <대상>trigger 명령을 통해 점수를 수정할 수 있도록 한번 허락 한다.
  • ... list [대상]
    • 스코어보드에 의해 영향을 받는 개체를 모두 표시한다. [대상]을 쓰면 특정 [대상]의 점수를 확인할 수 있다.
  • ... reset <대상> [목표]
    • <대상>의 모든 점수를 삭제한다. [목표]를 쓰면 그 [목표]의 점수만 삭제한다. 0으로 만드는 것이 아니다.
  • ... operation <대상이름> <대상목표> <연산> <선택자> <목표>
    • <목표>에 있는 <선택자>의 점수를 이용해서, <대상목표>에 있는 <대상이름>의 점수에 대해 <연산>을 실행시킨다.
    • <연산>은 아래와 같다.
      • "+=": 선택자의 점수를 대상의 점수에 더한다.
      • "-=": 뺀다.
      • "*=": 곱한다.
      • "/=": 나눈다. 나머지는 버린다.
      • "%=": 나눗셈 결과의 나머지를 대상의 점수로 한다.
      • "=": 대상의 점수를 선택자의 점수와 같게 한다.
      • "<": 만약 선택자의 점수가 대상보다 작으면, 대상의 점수를 선택자 점수로 만든다.
      • ">": 만약 선택자의 점수가 대상보다 크면, 대상의 점수를 선택자 점수로 만든다.
      • "><": 대상과 선택자의 점수를 바꾼다.
  • ... display <name|numberformat> ...
    • ... name <대상> <목표> [이름]
      • <목표>에 있는 <대상>의 이름을 [이름]으로 설정한다. JSON 형식으로 작성한다. [이름]을 비워두면 되돌린다.
    • ... numberformat <대상> <목표> [blank|fixed|styled] ...
      • <목표>에 있는 <대상>의 숫자 표시를 수정한다. [blank|fixed|styled]을 생략하면 /scoreboard objectives modify <목표> numberformat에 지정된 값으로 되돌린다.
        • [blank]
          • <대상>의 숫자를 숨긴다.
        • [fixed] <JSON>
          • <대상>의 숫자를 고정한다. raw JSON 형식으로 작성한다.
        • [styled] <JSON>
          • <대상>의 숫자를 스타일에 따라 작성한다. text JSON 형식으로 작성한다.

2.3. 예시

2.3.1. 체력 표시

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

/scoreboard objectives add <이름> health
/scoreboard objectives setdisplay below_name <이름>

2.3.2. 살인 횟수

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

/scoreboard objectives add <이름> playerKillCount
/scoreboard objectives setdisplay list <이름>

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

2.3.3. 사망 횟수

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

관전자 모드로 변경할 시:
/gamemode spectator @a[scores={<이름>=1}]

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

2.3.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[scores={<이름>=1..}] <이름> 0[8]

좌표에 ^ ^ ^15를 넣을 시 자신이 바라보는 방향으로 15칸 이동해 먼 거리를 편하게 이동할 수 있다.

3. BE

3.1. objectives(목표)

모든 문법은 /scoreboard objectives ...로 시작한다.
  • ... add <목표> dummy [보이는 목표(JSON)]
    • <목표>를 추가한다.
  • ... remove <목표>
    • <목표> 스코어보드를 삭제한다. 삭제하려는 스코어보드가 있어야 한다.
  • ... setdisplay <list|sidebar> [목표] [ascending|descending]
    • <리스트|사이드바>로 표시하고, [오름차순|내림차순]으로 [목표]를 표시한다.
  • ... setdisplay belowname [목표]

3.2. players(플레이어)

모든 문법은 /scoreboard players ...로 시작한다.
  • ... add <대상> <목표> <수>
    • <목표>에 있는 <대상>의 점수를 <수>만큼 증가시킨다.
  • ... set <대상> <목표> <수>
    • <목표>에 있는 <대상>의 점수를 <수>로 설정한다.
  • ... remove <대상> <목표> <수>
    • <목표>에 있는 <대상>의 점수를 <수>만큼 감소시킨다.
  • ... random <대상> <목표> <최소값> <최대값>
    • <목표>에 있는 <대상>의 점수를 <최소값><최대값>(둘 다 포함) 사이의 임의의 숫자로 설정한다.
  • ... list [대상]
    • 스코어보드에 의해 영향을 받는 개체를 모두 표시한다. [대상]을 쓰면 특정 [대상]의 점수를 확인할 수 있다.

3.3. team(팀)

3.4. 예시

3.4.1. 임의의 좌표에 다이아몬드 광석 배치하기

/scoreboard players random을 이용해 갑옷 거치대를 임의의 좌표로 이동시킨 다음, 해당 위치에 다이아몬드 광석을 배치한다. 단, BE에서는 NBT 태그를 다룰 수 없으므로, 갑옷 거치대를 이동시키는데 약간의 노가다가 필요하다.

먼저 random의 결과를 저장할 목표 하나를 생성한다.
/scoreboard objectives add r dummy

그 다음, 갑옷 거치대를 원하는 위치에 소환한 후 random을 실행하고 그 결과에 따라 갑옷 거치대를 텔레포트시키는 과정을 반복한다.
/summon armor_stand <spawnPos: x y z>
/scoreboard players @e[type=armor_stand] random r 0 1
/execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~1 ~ ~
/scoreboard players @e[type=armor_stand] random r 0 1
/execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~2 ~ ~
/scoreboard players @e[type=armor_stand] random r 0 1
/execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~4 ~ ~
/scoreboard players @e[type=armor_stand] random r 0 1
/execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~8 ~ ~
/scoreboard players @e[type=armor_stand] random r 0 1
/execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~ ~1 ~
/scoreboard players @e[type=armor_stand] random r 0 1
/execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~ ~2 ~
/scoreboard players @e[type=armor_stand] random r 0 1
/execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~ ~4 ~
/scoreboard players @e[type=armor_stand] random r 0 1
/execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~ ~8 ~
/scoreboard players @e[type=armor_stand] random r 0 1
/execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~ ~ ~1
/scoreboard players @e[type=armor_stand] random r 0 1
/execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~ ~ ~2
/scoreboard players @e[type=armor_stand] random r 0 1
/execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~ ~ ~4
/scoreboard players @e[type=armor_stand] random r 0 1
/execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~ ~ ~8

다이아몬드 광석을 놓을 범위에 따라 /scoreboard players random/execute tp를 반복 실행한다. 한 번 실행할 때마다 범위가 2배가 된다.

마지막으로 해당 위치에 다이아몬드 광석을 놓고 갑옷 거치대를 없앤다. /fill[replace] 옵션을 이용해 심층암 다이아몬드 광석도 생성하거나, /structure[integrity] 옵션을 이용해 다이아몬드 원석의 개수를 조절할 수 있다.
/execute as @e[type=armor_stand] at @s run fill ~ ~ ~ ~1 ~1 ~1 diamond_ore
/kill @e[type=armor_stand]


[1] 과장이 아니라, scoreboard 하나 만으로도 점수, 아이템 수, 죽은 횟수, 타이머 등 유동수치와 관련된 모든 것들을 구현할 수 있다.[2] 해당 스코어보드에 있었던 모든 점수는 다 사라지므로 주의.[3] 해당 스코어보드의 목록이 비어 있게 보이는 게 아니라, 아예 해당 스코어보드 자체가 보이지 않게 된다.[4] 은신(웅크리기, 기본 키는 Shift 키) 시 숨겨진다.[5] 혹은 tellraw, title 명령어와 혼합하여 더 깔끔하게 만들 수도 있지만 그건 커맨드에 숙련되지 않고서는 힘들다.[6] 특정 플레이어 수치만 초기화시키려면 플레이어 닉네임을 쓰면 된다.[7] 단순히 0으로만 만들 것이라면 /scoreboard players set @a <이름> 0 으로 해도 된다.[8] 연쇄, 무조건적. 이 커맨드가 빠질 시 재사용이 불가하다.