#!/usr/bin/env python3 """ Enable Beta APIs experiment in a Bedrock level.dat file. Bedrock level.dat format: - 4 bytes: version (little-endian int32) - 4 bytes: payload length (little-endian int32) - rest: uncompressed little-endian NBT payload This script patches the 'experiments' compound tag to add: - gametest = 1 (byte) - experiments_ever_used = 1 (byte) - saved_with_toggled_experiments = 1 (byte) Requires: amulet-nbt (pip install amulet-nbt) """ import struct import sys import shutil import amulet_nbt def patch_level_dat(path: str) -> None: # Read the file with open(path, "rb") as f: header = f.read(8) payload = f.read() version, length = struct.unpack(" [level.dat ...]") sys.exit(1) for path in sys.argv[1:]: print(f"\nPatching: {path}") patch_level_dat(path) print("\nDone!") if __name__ == "__main__": main()