Minepax Chest LogoMinepax.com
블로그로 돌아가기

마인크래프트 대상 선택자 @a @e @p @r @s 쓰는 법

Minepax.com 팀2026년 8월 31일
마인크래프트 대상 선택자 @a @e @p @r @s 쓰는 법

@e를 필터 없이 쓰면 로딩된 범위 안의 엔티티가 전부 걸린다. 바닥에 떨어진 아이템, 날아가는 화살, 벽에 걸린 액자까지 — 몹만 잡히는 게 아니다. 선택자 실수 중 가장 흔한 유형이고, 원인은 거의 항상 type=을 빼먹은 거다.

기본 선택자 5개

| 선택자 | 대상 | |---|---| | @p | 명령어를 실행하는 쪽에서 가장 가까운 플레이어 | | @a | 모든 플레이어 | | @r | 무작위 플레이어 한 명 | | @e | 모든 엔티티 (플레이어, 몹, 아이템, 발사체, 액자 포함) | | @s | 명령어를 실행하고 있는 대상 자신 |

실제로 쓸모 있는 인자

| 인자 | 하는 일 | 예시 | |---|---|---| | type= | 엔티티 종류로 필터링 | type=zombie, type=!player(플레이어 제외) | | distance= | 블록 단위 거리로 필터링 | distance=..10(10 이내), distance=5..(5 이상) | | limit= | 반환되는 대상 수 제한 | limit=5 | | sort= | limit 적용 전 정렬 순서 | nearest, furthest, random, arbitrary | | gamemode= | 게임 모드로 필터링 (@a/@p/@r/@s에서만) | gamemode=survival | | tag= | /tag로 붙인 태그로 필터링 | tag=inimigo |

바로 쓰는 명령어 세 개

반경 10블록 안의 좀비를 전부 처치.

/kill @e[type=zombie,distance=..10]

가장 가까운 생존 모드 플레이어를 내 위치로 텔레포트.

/tp @p[gamemode=survival] @s

반경 20블록 안 모든 플레이어에게 30초간 발광 효과.

/effect give @a[distance=..20] minecraft:glowing 30 0 true

같은 명령어(give, summon, effect)를 원하는 대상으로 명령어 생성기에서 조합할 수 있다. 대상 입력칸에 @p, @a, @r, @e, @s를 그대로 고르거나 인자가 붙은 커스텀 선택자를 직접 넣어도 된다.

자주 하는 실수

@e[limit=1]로 가장 가까운 엔티티를 잡으려 했는데 엉뚱한 게 걸렸다. limit만으로는 정렬이 안 된다. sort=nearest가 없으면 게임은 로딩된 범위 안에서 처음 찾은 엔티티를 그냥 돌려준다. "가장 가까운 것"을 확실히 잡으려면 limit=1,sort=nearest를 같이 써야 한다.

distance=10이랑 distance=..10이 같은 거 아닌가. 다르다. distance=10은 정확히 10블록 거리를 요구하는데, 실전에서 이 값이 딱 맞는 경우는 거의 없다. distance=..10은 "10블록 이하"라는 뜻이고, 숫자 앞의 ..이 범위를 아래로 열어준다.

명령 블록 안에서 @s가 안 먹힌다. 특정 플레이어가 직접 실행한 게 아닌 명령 블록에서는 @s가 가리킬 대상 자체가 없어서, 그 자리에서 조용히 실패한다. 플레이어가 직접 트리거하지 않는 명령 블록이라면 @p@a를 쓰는 게 맞다.

특정 한 명만 빼고 나머지 전부를 선택하려면? 같은 인자를 !를 붙여 반복하면 된다. @a[name=!Notch]는 이름이 Notch인 사람만 빼고 모든 플레이어를 선택한다. !를 여러 개 쌓아서 여러 명을 동시에 제외할 수도 있다.

type=에 여러 값을 한 번에 넣을 수 있나? type= 하나로는 안 된다. 이건 딱 한 종류만 필터링한다. 여러 종류를 동시에 다루고 싶으면, 복잡한 조합 조건을 짜기보다 타입별로 명령어를 따로 실행하는 게 대체로 더 간단하다.