추천 스크립트

다운로드

Minescript 모드(mod)

Fabric, Forge, NeoForge용 최신 Minescript 모드를 Modrinth 또는 CurseForge에서 다운로드하세요.

Python 스크립트(script)

설치: 아래 zip 파일을 다운로드하고 압축을 해제한 뒤, 포함된 Python (.py) 스크립트를 minescript 폴더(minecraft 폴더 안에 있음)로 이동/복사하세요.

draw_text v2

화면에 정렬된 텍스트를 그리는 스크립트입니다.

렌더링(rendering)된 텍스트에서 사용자 지정 가능한 항목은 다음과 같습니다:

  • 위치 (x, y)
  • 색상 (24비트 16진수 문자열, 예: 0xaabbcc)
  • 크기 (기본값 = 4)

요구 사항:

  • minescript v4.0
  • lib_java v2

독립 실행형 스크립트로서의 사용법:

\draw_text TEXT [X Y [HEX_COLOR [SCALE]]]

명령어로 실행하는 예시:

\draw_text "some text"
\draw_text "Hello, world!" 10 10
\draw_text "green text" 360 10 0x00ff00
\draw_text "hello yellow" 190 100 0xffff00
\draw_text "big red" 200 100 0xff0000 32

가져온 라이브러리로 사용하는 예시:

from draw_text import (draw_string, draw_centered_string)
import time
text = draw_string("some white text", x=20, y=20, color=0xffffff, scale=4)
time.sleep(5)
text.x.set_value(25)  # 텍스트를 오른쪽으로 이동합니다.
time.sleep(1)
text.y.set_value(25)  # 텍스트를 아래로 이동합니다.
time.sleep(1)
text.color.set_value(0xff0000)  # 텍스트 색상을 빨간색으로 변경합니다.
text.string.set_value("now it's red")  # 텍스트 문자열을 변경합니다.
time.sleep(2)

v2 업데이트 내용:
– mc1.21.3 지원

다운로드4705 다운로드
interpreter v2

Minecraft 채팅에서 Java 리플렉션(reflection)을 사용하는
Python REPL 인터프리터(interpreter)입니다.

config.txtcommand_path 설정 변수가 가리키는 디렉터리 중 하나에
.interpreter_init.py라는 파일이 있으면,
인터프리터 시작 시
해당 스크립트가 로드됩니다.

인터프리터가 실행되면 Minecraft 채팅에 “>>>” 프롬프트가 나타납니다.
터미널에서 Python REPL을 사용할 때와 마찬가지로
Python 문이나 표현식을 입력하세요.

escape 키를 누르거나
Minecraft 명령, 채팅 메시지, Minescript 명령을 입력하기 위해 “>>>” 프롬프트를 삭제하면
인터프리터가 백그라운드로 전환됩니다.

GUI 화면이 하나도 표시되지 않은 상태에서 “i” 키를 누르면
인터프리터가 포그라운드로 전환됩니다.

“>>>” 프롬프트에서 “.”을 입력하면 인터프리터가 종료됩니다.

요구 사항:

  • minescript v4.0
  • lib_java v2

사용법:

  interpreter
다운로드2298 다운로드
lib_java v2

Java 리플렉션을 Python에서 사용하기 위한 라이브러리로,
저수준 Java API 스크립트 함수(java_*)를 래핑합니다.

요구 사항:

  • minescript v4.0

예시:

from minescript import (echo, version_info)
from lib_java import (
  JavaClass, java_class_map, java_member_map)

# 심볼이 난독화된 Minecraft 버전을 사용하는 경우
# 아래 예시처럼 이 딕셔너리들에
# 적절한 매핑을 채워 넣으세요:
mc_class_name = version_info().minecraft_class_name
if mc_class_name == "net.minecraft.class_310":
  java_class_map.update({
    "net.minecraft.client.Minecraft": "net.minecraft.class_310",
  })
  java_member_map.update({
    "getInstance": "method_1551",
    "getFps": "method_47599",
  })

Minecraft = JavaClass("net.minecraft.client.Minecraft")
minecraft = Minecraft.getInstance()
echo("fps:", minecraft.getFps())
다운로드3531 다운로드
sphere v2

블록(block)으로 구의 표면을 만듭니다.

요구 사항

Minescript v3.1
명령 실행: /setblock, /fill

사용법

\sphere X Y Z RADIUS BLOCK_TYPE

(X, Y, Z) 위치를 중심으로 반지름 RADIUS, 재질 BLOCK_TYPE인 구의 표면을 만듭니다.

버전 2는 BlockPacker
BlockPack을 사용하여
버전 1보다 훨씬 빠릅니다. 이 두 가지는 Minescript v3.1에서 도입되었습니다.

예시
현재 플레이어(player)를 중심으로 반지름 20, 노란색 콘크리트로 만든 구를 생성합니다:

\sphere ~ ~ ~ 20 yellow_concrete

제작자: maxuser

다운로드2049 다운로드
chatbot v1

여러분의 Minecraft 주변 환경을 인식하는 AI 챗봇으로부터 응답을 받으세요.

요구 사항

Minescript v3.1 이상
lib_nbt v1 이상
OpenAI API 키 (chatbot을 실행하고 키 설정 방법에 대한 안내를 따르세요)

사용법

챗봇에 프롬프트를 입력해 한 번만 응답을 받고 종료하려면:

\chatbot PROMPT

챗봇을 백그라운드에서 “대화형 모드”로 실행하여 정규 표현식 PATTERN과 일치하는 메시지에 응답하도록 하며, 대소문자 구분을 무시하거나 챗봇에 이름을 지정하는 옵션도 제공합니다:

\chatbot -i PATTERN [ignorecase] [name=NAME]

대화형 모드에서는 챗봇 출력 앞에 >>>가 붙으며, 채팅에 quitbot을 입력하면 봇을 중지할 수 있습니다.

예시

챗봇에게 질문하고 한 번의 응답을 받으려면:

\chatbot "What am I looking at? And how long until sunrise?"

대소문자 조합에 관계없이 “bot,” 문구가 포함된 채팅 메시지에 응답하도록 챗봇을 대화형으로 실행합니다:

\chatbot -i ".*\bbot,\s" ignorecase

제작자: maxuser

지금 다운로드!2023 다운로드
image_to_blocks v1

지정한 PNG 이미지를 기반으로 크리에이티브 모드에서 블록을 배치합니다.

요구 사항

Minescript v3.1 이상
pypng (실행: pip install pypng 또는 pip3 install pypng)

사용법

\image_to_blocks <x> <y> <z> <imagePngFile> \
    [<depthPngFile> [dscale=<depthScale>]] <orientation>

\image_to_blocks <x> <y> <z> <imageSpecJsonFile> \
    [<imagePngFile>] [<depthPngFile> [dscale=<depthScale>]] \
    [<orientation>]

imagePngFile에 있는 이미지를 로드하여 이미지의 각 픽셀에 대해
블록을 설정합니다. depthPngFile이 지정된 경우, 그 너비와
높이는 imagePngFile의 너비/높이와 일치해야 하며,
그레이스케일 전용 형식이어야 합니다.

depthScale은 깊이 이미지 값을 나눌 때 사용하는
선택적 계수입니다. 예를 들어 dscale=25.5 값을 사용하면
깊이 이미지 값 255(0은 검정, 255는 흰색)를
10으로 매핑합니다.

orientation은 선택적 +/- 부호가 붙은 월드(world)
차원(dimension)들을 쉼표로 구분한 문자열이어야 합니다. 2D 예시: x,-y
이미지 x(첫 번째 차원)를 월드 x에, 이미지 y(두 번째
차원)를 월드 -y에 매핑합니다. 3D 예시: x,-z,y는 이미지 x(첫 번째
차원)를 월드 x에, 이미지 y(두 번째 차원)를 월드 -z에,
그리고 이미지 깊이(세 번째 차원)를 월드 y에 매핑합니다.

imageSpecJsonFile은 이미지를 블록으로 변환하기 위한 사양을 패키징하는
편리한 방법으로 사용할 수 있습니다. 파일명은 “.json”으로 끝나야 하며,
다음과 같은 선택적 필드를 가진 JSON 객체를 포함해야 합니다:
orientation, color_map, depth_map, depth_scale,
palette. orientation 필드는 위에서 설명한
orientation 매개변수와 동일한 형식입니다.
color_mapdepth_map 필드는 PNG 파일명을 가리킵니다.
depth_scale 필드는 깊이 값을 축소하기 위한
[0, 255] 범위의 양의 실수입니다.
palette 필드는 min_alpha(범위 [0, 255]의 정수)와
blocks 필드를 가진 JSON 객체의 배열이어야 합니다.
여기서 blocks는 키가 앞에 #을 붙인 문자열로
인코딩한 RGB 값(예: #15b215)이고 값이
green_wool 또는 oak_leaves[persistent=true]와 같은
블록 종류인 객체입니다. image_to_blocks 명령에 전달된
매개변수는 JSON 파일 내 해당 항목보다 우선합니다.

제작자: maxuser

지금 다운로드!1682 다운로드
blocks_to_image v1

블록 볼륨을 위에서 내려다본 모습(top-down view)을 기준으로 PNG 이미지 파일과 깊이 맵(depth map)을 생성합니다.

요구 사항

Minescript v3.1 이상
lib_blockpack_parser v1 이상
pypng (실행: pip install pypng 또는 pip3 install pypng)

사용법

\blocks_to_image X1 Y1 Z1 X2 Y2 Z2 LABEL [dscale=DSCALE]

(X1, Y1, Z1)에서 (X2, Y2, Z2)까지의
블록 볼륨을 위에서 내려다본 모습에 해당하는 X와 Z 방향의 2D 이미지를 생성합니다.
생성된 이미지는 <LABEL>.png로 명명되며,
함께 <LABEL>-depth.png 위치의 깊이 맵과
메타데이터 파일 <LABEL>.json도 생성되며, 이 파일에는 RGB 색상 값과
블록 종류 간의 매핑을 반영하는 팔레트가 담겨 있습니다.

dscale이 지정되면 Y의 깊이 값이 <DSCALE>만큼 스케일링됩니다.

참고: 각 블록 종류에 대해 고유한 색상이 무작위로 선택됩니다. 향후 버전에서는 블록의 색상과 비슷하게 색상을 선택하도록 개선될 예정입니다.

제작자: maxuser

지금 다운로드!1601 다운로드
lib_nbt v1

문자열 형식의 NBT 데이터를 Python 딕셔너리로 파싱하는 라이브러리입니다.

사용법

단독 실행 (채팅창에서 실행):

\lib_nbt <nbtString>

라이브러리(다른 Python 스크립트에서 임포트):

import lib_nbt
python_dictionary = lib_nbt.parse_snbt(nbt_string)

제작자: maxuser

지금 다운로드!2988 다운로드
lib_blockpack_parser v1

BlockPack 데이터를 파싱하는 라이브러리입니다.

요구 사항

Minescript v3.1 이상

사용법

BlockPackParser를 생성하는 함수:

BlockPackParser.parse_blockpack(blockpack: BlockPack)
BlockPackParser.parse_base64_data(base64_data: str)
BlockPackParser.parse_binary_data(binary_data: bytes)

클래스(class):

class BlockPackParser:
  palette: List[str] # 블록 종류의 팔레트
  tiles: List[Tile]

class Tile:
  offset: BlockPos # 이 타일의 (x, y, z) 오프셋
  def iter_fill_params(self) -> Tuple[BlockPos, BlockPos, int]
  def iter_setblock_params(self) -> Tuple[BlockPos, int]

예시

(0, 0, 0)에서 (100, 100, 100)까지 블록을 읽어
fillsetblock 명령으로 채팅에 출력:

from minescript import BlockPack, echo
from lib_blockpack_parser import BlockPackParser
blockpack = BlockPack.read_world((0, 0, 0), (100, 100, 100))
parser = BlockPackParser.parse_blockpack(blockpack)
for tile in parser.tiles:
  for pos1, pos2, block in tile.iter_fill_params():
    echo(f"fill {pos1} {pos2} {parser.palette[block]}")
  for pos, block in tile.iter_setblock_params():
    echo(f"setblock {pos} {parser.palette[block]}")

제작자: maxuser

지금 다운로드!1803 다운로드
timer v1

지정한 시각에 메시지를 보내거나 명령을 실행합니다.

요구 사항

  • Minescript v2.0 이상
  • eval 동작에는 eval.py가 필요

사용법

\timer <time> (chat|echo|execute|eval) <messageOrCommand>

<time>은 시간, 분, 초 단위의 카운트다운이거나 하루 중 특정 시각일 수 있습니다. 지원하는 형식은 다음과 같습니다: 1:23am, 1:23 PM, 13:23, 10s(초), 5m(분), 2h(시간). 카운트다운 시각에 *를 추가하면 반복되며, 예를 들어 5m*는 5분마다 반복됩니다. * 뒤에 숫자를 추가하면 지정한 시간 간격으로 해당 횟수만큼 반복됩니다.

예시

정오 12시에 채팅 메시지 보내기:

\timer 12pm chat "FYI: it is now noon"

12시 30분에 자신에게 메시지 보내기:

\timer 12:30pm echo "note to self: time to eat lunch"

2분 후 “timed_copy”로 표시된 블록 복사하기:

\timer 2m execute  "\\copy ~ ~ ~ ~64 ~64 ~64 timed_copy"

(참고: copy 앞의 이중 백슬래시는 큰따옴표 안에서
백슬래시를 이스케이프하기 위해 필요합니다.)

매시간 정오로 게임 시각 설정하기:

\timer 1h* execute "/time set day"

5초 간격으로 스크린샷 3장 찍기:

\timer 5s*3 eval "screenshot()"

(참고: screenshot()은 Minescript v2.1에서 추가됨)

제작자: maxuser

지금 다운로드!1652 다운로드
execute_book v1

책에 담긴 내용을 Python 코드로 해석하여 실행합니다.

요구 사항

Minescript v2.0 이상

사용법

\execute_book
\execute_book - [<args>]
\execute_book <title> [<args>]

책 기반 스크립트에 전달되는 <args>sys.argv로 읽을 수 있습니다.

예시

인자 없이 플레이어 손에 든 책 실행하기:

\execute_book

인자 foobar를 전달하여 플레이어 손에 든 책 실행하기:

\execute_book - foo bar

플레이어 인벤토리(inventory)에 있는 제목이
“my python code”인 책을 인자 없이 실행하기:

\execute_book "my python code"

플레이어 인벤토리에 있는 제목이
“my python code”인 책을 인자 foobar를 전달하여 실행하기:

\execute_book "my python code" foo bar`

제작자: maxuser

지금 다운로드!1609 다운로드
cylinder v1

블록으로 원기둥의 측면을 만듭니다.

요구 사항
명령 실행(setblock)

사용법

∖cylinder X Y Z RADIUS HEIGHT BLOCK_TYPE
(X, Y, Z) 위치를 중심으로 반지름 RADIUS, 높이 HEIGHT의 BLOCK_TYPE 블록으로 이루어진 원기둥의 측면을 만듭니다.

예시

플레이어의 현재 위치를 중심으로 반지름 20블록, 높이 5블록의 노란색 콘크리트 블록으로 원기둥 만들기:

∖cylinder ~ ~ ~ 20 5 yellow_concrete

제작자: maxuser

다운로드1680 다운로드