Updates in Minescript 4.0
- Support running script functions during tick loop (20x per second), render loop (30-100+ fps), or script loop (~5000 times per second) (923f9bb, bfbd192, fb936b8)
- Java reflection via Python script functions, including ability to call script functions from Java (ebdba54, 8008110, 39160c3, 8d97911)
- Introduce Tasks for efficient, synchronous batching of script function calls, including Java reflection (d2bd144, 1377acb, 19eb79c, 0762eaa, 12e7306, f8ed176, 023fd05, 1efbd90, 07388d9)
- Support Python scripts in arbitrary folders using
command_path
inconfig.txt
(791c295, 99c8619, 23ee273) - Support alternative script languages for commands (890d2a9)
- Support for NeoForge, starting with Minecraft 1.20.2 (7dd592f)
- Schedule groups of script functions to run every render or tick cycle with dynamically updated values (19eb79c, 1377acb, d2bd144, 0762eaa)
- Support for scripting several game and input events with a unified
EventQueue
API (d1cb4c9, 6628525, 993c9b6, b96159e, 4af1a32) - Async script functions that are more powerful, easier to use, and cancellable (882bc7e)
- Unified Minescript and Minecraft chat histories when using up/down arrows (46a0cde)
- New and updated script functions, including:
press_key_bind()
(174dac8)show_chat_screen()
(adf8dac)- entity selectors for
entities()
andplayers()
(6d6d627) job_info()
for detecting other running scripts (156dc33)version_info()
for detecting versions of Minecraft, Minescript, and OS (d448c4b)- multiple args to
echo()
,chat()
, andlog()
, like builtinprint()
function (114c559) append_chat_history()
,chat_input()
, andset_chat_input()
for managing chat input and history (46a0cde)player_get_targeted_entity()
(93dd5e8)
- Return complex data types from script functions as dataclasses (e.g.
EntityData
) rather than dicts, for easier and safer scripting (7caaf3b) - Support tab completion of
config
andhelp
params (b4bfa0e, f485973) - Safer script output:
print()
no longer executes commands or sends public messages to chat by default (6101484)
See detailed changelog.