Blockpilot 1.1.0 for NeoForge 1.21.1
Curse Maven Snippet
What's new
For filming: a camera that glides, follows, circles, zooms and tilts, one that films far from the player, entities taken
by name, sounds where the camera hears them, and marks for the edit. With Baritone installed, goto and mine walk
through it. blockpilot-api becomes 2.1.0, an addition, so integrations built against 2.0.0 keep working.
- BREAKING, chat from other players: player chat reaches agents with its text only from
trustedPlayersinconfig/blockpilot/config.json, empty by default; everyone else's arrives aswithheld from=<name>, in! chatevents,messages, the chat window, its log line and, when the agent hosts, the server's log line. On a server that doesn't check accounts nobody is trusted. The list is set in the file only and applies within a second;trustshows it, andBlockpilotApi.isTrustedtells extensions. Single-player play and tests are unaffected (safety.md). - BREAKING, other mods' commands: commands and events that other mods register reach agents only once their
namespace is in
allowedExtensionsinconfig/blockpilot/config.json, empty by default; until then a call answerserr not_allowed <namespace>:<name>, events are dropped andhelpnames the setting. Blockpilot's ownsable:commands need no entry. Integrations should tell their users to add their namespace. - Play-only agents:
agentCommands: "play"refusescmd,server, world files, recordings, captures, mod configs, switching worlds, quitting and server-side extension commands witherr not_allowed, holds back slash commands an agent types or clicks in chat, keeps its input to gameplay screens and refuses clicks on links. - Camera moves:
camera move <pos> [via <pos>]… [look <pos|e<id>|ahead>] over <duration> [ease=]glides the camera to a point, placed anew in every frame, through up to 32 via points on one smooth curve at a constant speed. It keeps its target, turns to a new one or looks ahead, andease=in|out|inoutshapes its speed. Withbackgroundit glides while the script goes on, so characters can move and sounds play during the shot, andcamera waitwaits for its end.stopleaves it where the last frame drew it.statusnames a placed camera's position, and an entity look target is followed where each frame draws it. - Following and orbiting:
camera follow <entity> [at <~dx,dy,dz>] [turning]keeps the camera's framing on a moving entity, turning with it over its shoulder if asked, andcamera orbit <pos|entity> [by <degrees>] over <duration>circles a point or a moving entity, timed like a move, withease=andbackground. - Camera lens:
fov=androll=give a placed camera its own field of view, from 1 to 170 degrees, and tilt;camera atandfollowset them,moveandorbitglide to them, so a zoom can tighten along a move. - A camera away from the player:
camera at … awayhas the integrated server load, send and play the world around the camera, so a set a thousand blocks off can be filmed while the player stands still, andlookandfindsearch around it. - Sounds:
sound <id> [at <pos>]plays a sound on this client alone, heard from the camera, in singleplayer and on servers alike. - Entities by name: every command that takes
e<id>also takes@<name>, the entity with that tag or custom name, the nearest of several, so a script can summon a tagged actor and point the camera at it without reading its id. - Slow motion:
docs/recording.mdshows how to film it withtick rate, and what slows with the game. - A take that ends with its script:
record script [name]records until its script ends, however it ends, and the reply carries the take's summary as! record …, so a failing step no longer leaves a recording running. - Recording marks:
record mark <label>notes the video time and frame a script reached;record stoplists the marks, and<name>.marks.jsonkeeps them beside the video. - Baritone: with Baritone installed,
gotoandmineby type walk through it on their own, digging into closed rooms and to blocks behind walls, and their replies addby=baritone. Its settings decide whether it breaks or places blocks: withallowBreakandallowPlaceoff, a walk alters nothing. Without Baritone they walk as before, andmineby type now walks closer to a block it can't see before passing over it. Pathfinders sit behind one port, so another pathfinding mod is one adapter more. - GameTests:
gametest run <selector>runs the game's own GameTests, the ones a mod or a data pack registers, on the integrated server, and answers with a row per test, passed or failed with its message, on every target. NeoForge runs them only in a development environment with-Dneoforge.enableGameTest=true. - Worlds with experimental settings: when the game asks whether to back a world up first as it uses experimental
settings, as a data pack's GameTests make it,
join world, andsnapshot saveandrestore, which join the world again, load a test world without a backup, withexperimental=true, and fail at once witherr join_failedfor any other world, the question left on screen, where they waited until they timed out. - Fewer fields in a sample:
sample … fields=a,bkeeps only those fields in each row, so a wide readout stays readable. - Server steps: consecutive server steps run back to back on the server's ticks, so
settle=1tspaces commands exactly one server tick apart andsettle=0truns them in one. - Fixes:
server functionof a function withoutreturnanswersok, noterr command_failed.wait <N>twaits N ticks, where it waited one fewer, so scripts that allowed for that run a tick longer per wait. On 26.x,screenshotnow names a placed camera's position. A command line the launcher can't read prints one line saying what is wrong, not its whole usage text first. Entering a world starts the sound, message and particle logs anew, sosince=no longer lists an earlier world's entries, whose ticks could lie in the new world's future. - Extension API:
Form.repeated(limit, group)declares a part that may come several times, read back withArgs.valuesandArgs.positions. AnArgType.ENTITYslot takes@<name>too, looked up before the handler runs, so the handler still reads an id;Lexicon.isEntityNametells a name.CommandContext.atEnd(action)runs an action when the script ends, however it ends, before its reply.
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include
This mod has no related projects

