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-Servers styled UIs
- Cursor-following hover text
- Easy to read
- Good for large numbers of buttons
- Supports enchanted items and isometric blocks
- Supports durability
_global_variables.json
and enable the slot layouts you want to use and disable others. It is important to remove lag spikes.
- 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 text 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).⚠️ If you don't know the amount of custom items your other add-ons have, it is recommended to usetextures/path_to_texture
and avoid using type id! - 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/...
)
-
Pattern function can also be used for creating quick slot filler buttons. See the example
index.js
! -
Show it to the player & get a response.
form.show(player).then(response)
FurnaceFormData
allows to create Action Form UIs with a furnace design!
See index.js
for example.
The inventory section of the UI can be toggled by a boolean value in RP/ui/_global_variables.json
and in BP/scripts/extensions/forms.js
. Make sure to disable for both.
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.
If your other enabled packs contain custom items and blocks, and you want type ids to work, list them as follows:
- Navigate to
BP/script/extensions/forms.js
- Add the relevant item information into the
custom_content
constant at the top of the file!
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 your condition and identifier to sizes
map/array following the format using which how pre-defined sizes are added.
Open _global_variables_.json
and search and change $border_and_background_texture
(ninesliced) variable.
Functioning inventory section (it’s just for looks at the moment) (feels impossible to do)Done.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.