A utility library to streamline the development process for Minecraft Bedrock's Script API, providing essential tools for vector operations, polyfills, and time measurements.
applyImpulse
: Apply an impulse to a player.clearVelocity
: Clears the velocity of a player.console.log
to display messages in the chat as well.begin(operation:string)
: Begin a timing operation.end()
: Conclude the timing operation.player
, entity
, block
).info
, warn
, error
).ChatColor.prettyChatJSON
function included to convert a JSON chat message to a string with color formatting.npm install @bedrock-oss/bedrock-boost
import { Vec3 } from "@bedrock-oss/bedrock-boost";
import { world } from "@minecraft/server";
world.beforeEvents.itemUse.subscribe((event) => {
event.source.applyImpulse(Vec3.from(event.source.getViewDirection()).setY(0).normalize().multiply(2));
})
import { Logger } from "@bedrock-oss/bedrock-boost"
const log = Logger.getLogger("main", "tag1", "tag2");
log.info("Hello, Minecraft World!");
It also includes 2 commands to control the logging system:
scriptevent logger:level <level either as string or as a number>
scriptevent logger:filter <comma separated tags>
When using esbuild, you can use dropLabels
option with LOGGING
label to remove all logging code from the final bundle.
When using gametests regolith filter, you can configure it like this:
{
"filter": "gametests",
"settings": {
"modules": [
// ...
],
"buildOptions": {
"dropLabels": ["LOGGING"]
}
}
}
import { Logger } from "@bedrock-oss/bedrock-boost"
const log = Logger.getLogger("main", "tag1", "tag2");
log.info("Hello, Minecraft World!");
import { Direction, world } from "@minecraft/server";
import { Vec3 } from "@bedrock-oss/bedrock-boost";
import { Polyfill } from "@bedrock-oss/bedrock-boost"
Polyfill.installPlayer();
world.getAllPlayers().forEach(player => {
// Apply an impulse to the player
player.applyImpulse(Vec3.from(Direction.Up).multiply(2));
});
import { Polyfill } from "@bedrock-oss/bedrock-boost"
Polyfill.installConsole();
// Log messages in the game world
console.log("Hello, Minecraft World!");
import { Timings } from "@bedrock-oss/bedrock-boost"
Timings.begin("big operation 1");
// Some operations...
// Beginning another operation will automatically end the previous one
Timings.begin("big operation 2");
// Some operations...
Timings.end();
Feel free to raise an issue or submit a pull request if you have any improvements or features to suggest.
This project is licensed under the MIT License.