A utility library to streamline the development process for Minecraft Bedrock's Script API, providing essential tools for vector operations, polyfills, and time measurements.
playerPolyfill: Adds applyImpulse and clearVelocity methods to the Player class.consolePolyfill: Overrides console.log to send messages to game chat.addIdleDummy and clearIdleDummy improve profiling accuracy by grouping idle time. Documentationbegin() and end().PulseScheduler, TaskPulseScheduler, UniquePulseScheduler, EntityPulseScheduler, and PlayerPulseScheduler for distributed task execution. DocumentationBlockUtils, CommandUtils, DirectionUtils, EntitySaver, ItemUtils, JobUtils, VersionUtils, and VariableSender.VanillaBlockTags, VanillaItemTags, and TimeOfDay.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 logging:level <level either as string or as a number>
# or
scriptevent log:level <level either as string or as a number>
scriptevent logging:filter <comma separated tags>
# or
scriptevent log:filter <comma separated tags>
import { ChatColor, ColorJSON } from "@bedrock-oss/bedrock-boost";
console.log(ChatColor.RED + "Hello, Minecraft World!" + ChatColor.RESET);
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();
import { PulseScheduler } from "@bedrock-oss/bedrock-boost"
// Define a processor function to apply an effect to an entity
const applyEffect = (entity) => {
// Example function applying an effect to the entity
console.log(`Applying effect to entity: ${entity}`);
};
// Create a PulseScheduler with a 100-tick interval
const entityEffectScheduler = new PulseScheduler(applyEffect, 100);
// Add entities to the scheduler
entityEffectScheduler.add("Entity1");
entityEffectScheduler.add("Entity2");
// Start the scheduler to begin processing entities
entityEffectScheduler.start();
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.