level.dat에서 게임 규칙 편집

Minecraft Bedrock Edition과 Java Edition을 지원합니다. Vanilla, Paper, Spigot, Purpur, Folia, Fabric, Forge, NeoForge, Mohist, Sponge, Bedrock Dedicated Server, PocketMine-MP, Nukkit, PowerNukkitX, Cloudburst, Dragonfly, Endstone, LeviLamina 등 유명하거나 잘 알려지지 않은 양쪽 에디션의 모든 서버 코어를 지원합니다. 전체 목록

게임 규칙은 level.dat에 저장되므로 월드를 불러오거나 치트를 켜지 않고도 바꿀 수 있습니다. 월드가 시작되지 않을 때, 치트가 꺼져 있을 때, 플레이어가 접속하기 전에 복사한 월드를 준비할 때 유용합니다. Java는 문자열을 값으로 갖는 GameRules compound에 저장하고, Bedrock은 루트에 각 규칙을 소문자 byte 태그로 저장합니다.

keepInventorydoDaylightCyclemobGriefingcommandBlockOutputrandomTickSpeed

여기에 level.dat 놓기

level.dat · .nbt · .mcstructure · .schem · .schematic · .dat · 청크 덤프

Java: 문자열로 된 GameRules compound

Java Edition에서는 Data → GameRules 아래에 규칙마다 TAG_String 하나가 있습니다. 키는 /gamerule이 사용하는 정확한 이름이며 값은 "true", "false" 또는 숫자를 텍스트로 기록합니다. 월드에서 한 번도 설정하지 않은 규칙은 파일에 없고 기본값을 사용합니다. 정확한 이름과 string 값으로 태그를 추가하면 명령어를 실행한 것과 똑같이 동작합니다.

규칙값효과
keepInventory"true"죽어도 아이템 유지
doDaylightCycle"false"시간 흐름 정지
doWeatherCycle"false"날씨 변화 정지
mobGriefing"false"크리퍼와 엔더맨의 블록 변경 방지
doMobSpawning"false"자연적인 몹 생성 중지
doFireTick"false"불 번짐 중지
commandBlockOutput"false"명령 블록의 채팅 출력 숨김
randomTickSpeed"3"작물 성장과 불 번짐 속도
playersSleepingPercentage"50"밤을 넘기는 데 필요한 플레이어 비율
spawnRadius"10"스폰 영역의 분산 범위

대소문자를 구분합니다. Java 파일의 keepinventory는 keepInventory와 다른 태그이므로 무시됩니다.

Bedrock: 개별 소문자 byte 태그

Bedrock은 규칙을 묶지 않습니다. 각 규칙은 TAG_Byte 루트의 level.dat이며 소문자 이름과 1 또는 0 값을 가집니다. keepinventory, domobspawning, domobloot, dodaylightcycle, doweathercycle, mobgriefing, firedamage, falldamage, drowningdamage, pvp, showcoordinates, commandblockoutput, sendcommandfeedback, naturalregeneration, tntexplodes, respawnblocksexplode, showdeathmessages, doimmediaterespawn 등이 있습니다. randomtickspeed와 functioncommandlimit 같은 숫자 규칙은 TAG_Int입니다.

아직 없는 규칙은 올바른 유형으로 태그를 추가해야 합니다. 켜고 끄는 값은 Byte, 숫자는 Int입니다. 잘못된 유형으로 저장한 규칙은 무시되거나 월드 불러오기가 실패합니다.

명령어보다 파일 편집이 나은 경우

  • 치트가 꺼져 있고 명령어 하나 때문에 켰다가 다시 끄고 싶지 않을 때
  • 월드가 불러와지지 않아 첫 접속 전에 doImmediateRespawn 같은 규칙을 설정해야 할 때
  • 여러 서버에 복사할 템플릿 월드를 준비하면서 사본에 규칙을 미리 넣고 싶을 때
  • 플러그인이 규칙을 바꿔서 명령어가 보고하는 값이 아니라 실제 저장 값을 확인하고 싶을 때
  • 여러 값을 한꺼번에 바꿀 때. 여러 월드에서 규칙 열두 개를 설정하려면 채팅보다 파일이 빠릅니다.

다른 level.dat 편집과 마찬가지로 먼저 서버를 중지하세요. 실행 중인 월드는 저장할 때 파일을 다시 기록해 변경 사항을 버립니다.

자주 묻는 질문

Java에서 게임 규칙을 문자열로 저장하는 이유는 무엇인가요?

Java의 게임 규칙 저장 방식은 boolean과 숫자를 포함해 모든 규칙을 문자열로 기록합니다. 1인 byte가 아니라 "true"를 쓰세요.

Bedrock에서는 왜 byte인가요?

Bedrock은 켜고 끄는 규칙을 루트의 byte 태그로, 숫자 규칙을 int로 저장합니다. GameRules compound는 없습니다.

파일에 규칙이 아예 없습니다.

해당 규칙이 기본값을 사용한다는 뜻입니다. 정확한 이름과 올바른 유형으로 태그를 추가하면 월드에서 지정한 값을 사용합니다.

월드 폴더를 복사하면 게임 규칙도 복사되나요?

네. 게임 규칙은 level.dat에 있으므로 오래된 월드 이름과 함께 사본에 그대로 들어갑니다.

관련 도구