Sweep 'N Slash is a total conversion add-on that introduces some of the combat aspects from Java Edition's 1.9 Combat Update into Bedrock Edition.
Minecraft Bedrock Edition's entities are data-driven, consisting of "components." Some of the mob behaviors are hard-coded, but many components can be overwritten with behavior packs. Attack component is one of them. By setting the player entity's attack component value to a very large negative number, you can disable players' attacks entirely. This allows behavior packs to replace combat. This add-on makes use of that to add 1.9 combat aspects.
The major drawback of this method is that since it's most likely a bug, it causes unintended behaviors. And since everything is handled in server-side, it's not performance-friendly for large servers. (It was tested only in the LAN multiplayer.)
Also, since Bedrock's Scripting API lacks in reading/writing entity/item attribute components, it is not possible to read attack damage component for item stats. All the item stats have to be defined manually.
This project uses MCBE-IPC for Cross-compatibility. It allows the add-on to have item stats defined by receiving script events of item data from external behavior packs. This eliminates the hassle of having to modify the add-on's internal data.
This project uses Regolith as its build pipeline.
| Tool | Purpose |
|---|---|
| Regolith | Build pipeline runner |
| Node.js | Required by the gametests filter for TypeScript compilation |
| Deno | Required by the marathon and shush filters (from Azurite) |
Install filter dependencies:
regolith install-allAll profiles export to com.mojang/development_*_packs unless noted otherwise.
| Profile | JSON | Scripts | Notes |
|---|---|---|---|
dev |
Pretty | Bundled, not minified | Day-to-day development |
dev-gametest |
Pretty | Bundled, not minified | Development with @minecraft/server-gametest |
pack |
Minified | Bundled, minified | Outputs SweepNSlash.mcaddon |
pack-gametest |
Minified | Bundled, minified | Outputs SweepNSlash-gametest.mcaddon |
regolith run <profile>For example:
regolith run dev
regolith run pack