A Minecraft: Bedrock Script API pack that alters the Action Form UI to look & function like a chest does.
- As fast as vanilla forms
- Java-style UIs
- Cursor-following hover text
- Easy to read
- Good for large numbers of buttons
- Supports enchanted items and isometric blocks
- Supports durability
Import into file- this example will work for any top-level file. Changes will be needed for nested files.
import { ChestFormData } from './extensions/forms.js';
Create a new chest form, like you would for any other form UI. The size can be left out, and will default to 'small'
.
const form = new ChestFormData()
Add a name to the UI, to display at the top.
form.title('Form Title')
Add buttons!
form.button(0, 'Button Name', ['Button Lore'], 'minecraft:diamond', 10)
form.button(2, 'Button Name', ['Button Lore'], 'textures/items/my_custom_item', 6, 60)
The parameters for the button are as follows:
- Location. The slot that the item will display in, starting from zero. Max of 26 for a small chest, or 53 for a large.
- Name. The name of the button.
- Lore. An array of strings which will display below the item's name.
- Texture. Item/block type id or path to the texture. Can be used like
minecraft:cake
orminecraft:acacia_log
(A namespace ofminecraft:
will be assumed if not specified). For custom textures, specify the path of the texture (Must includetextures/
at the start of the path) - Stack size. This is an optional parameter, and will default to 1. Displays a small number in the lower right-hand corner- useful for shops selling multiple of an item at once!
- Durability. This is an optional parameter, and will default to 0. Supports value between 0 and 99. Displays the durability that can set using the form interface- useful for tools and in general for looks.
- Enchanted. This is an optional parameter, and will default to false. Displays the enchant glint effect on the item/block rendered if using the type id. This parameter will not work if using a custom textures path (
textures/...
)
Show it to the player & get a response
form.show(player).then(response)
The inventory section of the UI can be toggled by a boolean value in RP/ui/_global_variables.json
.
Set it to true/false depending on what you want the UI to show as!
Example pack usage: index.js
.
Find a list of item/block type ids here.
- Navigate to
BP/script/extensions/forms.js
- Add the relevant item informatio into the
custom_content
constant at the top of the file!
Want Dynamic Sizing/Custom Number of Slots?
If you want custom chest slots sizes, you have to add controls to "chest_panel"
in chest_server_form.json
in the format like the ones that already exist. Then you have to edit forms.js
, and add you condition and identifier to sizes
map/array following the format using which how pre-defined sizes are added.
Want to edit the texture?
Open chest_server_form.json
and search and change $background
(ninesliced) variable.
- Functioning inventory section (it’s just for looks at the moment) (feels impossible to do)
Dynamic sizing based on number of buttons, in rows of 9 at a time (complex and probably have to rewrite everything)Done.Rawtext component support for form text (useful for translations to other languages)Done.
Original pack created by LeGend077.
Maintained by Herobrine64 & LeGend077.
Pattern function created by Aex66.