"main_screen_content": {
"modifications": [{
"array_name": "controls",
"operation": "insert_back",
"value": [{
"nlf": {
"type": "factory",
"control_ids": {
"long_form": "@server_form.long_form",
"custom_form": "@server_form.custom_form"
}
}
}]
}]
}
#JSON-UI General
1 messages · Page 25 of 1
you need to change elements inside the control_ids if you're looking to create your own one.
otherwise It'll just be duplicate.
ight
"main_screen_content": {
"modifications": [{
"array_name": "controls",
"operation": "insert_back",
"value": [{
"nlf": {
"type": "factory",
"control_ids": {
"new_long_form": "@server_form.test"
}
}
}]
}]
}
nothing renders on screen
new_long_form are invaild.
you told me to change the name
let me do one last test
i meant the element.
not the identifier
"test": {
"type": "label",
"text": "dude"
},
"main_screen_content": {
"modifications": [{
"array_name": "controls",
"operation": "insert_back",
"value": [{
"nlf": {
"type": "factory",
"control_ids": {
"long_form": "@server_form.test"
}
}
}]
}]
}
nothing renders on screen
identifier should be either long_form or custom_form otherwise it might won't work due to literally not hardcoded by the game
what do I do now
also server forms known to have this stupid 0, 0 size
try to add a size like [ "100%", "100%" ] to main_screen_content and see.
it shouldn't matter though
tried setting the label size to 200,200 and nothing happened
the size is literally nothing
idk you tell mojang
they make the panel size into nothing.
therefore some elements may not be rendering if the size is dynamic/default.
( default — "100%" etc btw )
i set the size to 100%
still nothing
the label won't render even though im using a factory like you said
"test": {
"type": "label",
"text": "dude",
"size": [200,200]
},
"main_screen_content": {
"size": ["100%","100%"],
"modifications": [{
"array_name": "controls",
"operation": "insert_back",
"value": [{
"nlf": {
"type": "factory",
"control_ids": {
"long_form": "@server_form.test"
}
}
}]
}]
}
i love jsonui
I've changed mine and it works for me.
it doesn't for me
idk what im doing wrong
the stuff ive sent is all ive changed
and i still get nothing on screen
if you figure out where i went wrong please lmk
igtg
try to add debug property and see if it shows up.
"debug": "red" or something idk
you should able to troubleshoot on which fault is
but yeah
Does debug output stuff or something
Did uou do it the same way as I did or did you do something else
No, it displays the color behind the element.
which showing that the element exists and are proper sized.
you should able to check if the element does size properly or not
or maybe check if the element is really there or not
Its a la el
Label*
If theres no text then it doesnt exist
Text does disappears if the size is extremely small.
I dont get why this doesnt work for me
The size is set to 200px
literally the same way as you did.
are there other ways to use “animation_reset_name”? I'm using an npc_interact_screen with animation, but the animation only resets if the screen closes and opens, but if it has the function of not giving an update on the screen, the animation no longer works
ill create a template for that later today maybe
?:
no, they used some kind of resource packs
hi guys im back
how do i hide the chat with specific string
and allow the ui (thats bound to chat text) show up even if the chat is muted
oh wait i did it already 💀
though it still shows up in hud
nvm found this too
how do I separate the exp bar from hotbar
it just moves the hotbar if I tried to change offsets
about muted part, you need to specify console-level chat messages
nah i figured out already
(example: command feedback after running commands)
ty though

i mightve gone insane doing this if i didnt have r4isen's pack for reference
and Edds' template for advancement
Thank you!
now that i think about it, i wonder if you can directly interfere with recipe unlock popups?
that toast ui and recipe unlock could overlap each other so i need to edit that
yes much better
lowkey looks fire
before i even start working, is it possible to change the texture of UI images ( hud screen ) using scripts???
and if it is possible, what should i use for it?
ui/chest_screen.json: Can't find the control: large_chest_screen/root_panel
am i tripping?
does large chest not exist?
small chest isnt changing either tho?
then you’re doing something wrong
what does this even mean
{
"namespace": "chest",
"small_chest_screen/root_panel": {
"size": [
276,
110
]
},
"large_chest_screen/root_panel": {
"size": [
176,
220
]
}
}
am i forgetting something
just modify it instead
like call root panel then modify its children
or something
how would i do that? (extremely new)
search modifications in this channel
like when i use an item, the UI texture will be changed u know what i mean
you’d have to send a title, actionbar, subtitle, or chat message
that has the texture path
{
"namespace": "chest",
"small_chest_screen/root_panel": {
"modifications": [
{
"size": [
276,
110
]
}
]
},
"large_chest_screen/root_panel": {
"size": [
176,
220
]
}
}
im so confused this is why i usually need 1 on 1s. my brain struggles to function independently the first time i do something
modifications from what i can see only affect bindings or controls
and use operations
which granted i havent done here still confuses the heck outta me
Uno momento
all i wanted to do was adjust the panel size of a vanilla element
i am?
its small_chest_grid and large_chest_grid
the grid isnt what im trying to change
i think
just the background
i want to stretch it so i have space to incorporate 4 buttons
isnt the grid the actual slots?
no other way?
nope
bedrock limitations sucks
anyways
i could do a subtitles bec its not visible ( it will be visible only when u do a title )
so if i do that to the inventory screen, it wont work right?
ive never used the modifications thingy
i hoped never to have to
i think it should detect the title when it sent, when ur in the inventory screen the title will not be visible so it probably won't work, or isn't it?
same to the chat message, when ur inside the inventory screen it wont be visible so it wont work ig
theres only one way to know
I'll make the hud screen one, and I'll test it on the inventory screen after it
does it kill
😐
genuiely asking
hey @weak lintel you actually know what youre doing to an extent right?
no

no joke i dunno what im doing when it comes to json ui
i just do the stuff my memory serves
well rip, i was gonna ask for help since idk why this simple change isnt working
honestly tho, i see why it's hard to learn it
not enough ppl actually do it
😐

😐

😐
does it harmful
Ight chat💀
does it harmful
Bro
does it???
Ight chat no
how do i remove update_string from the text
"info": {
"type": "label",
"text": "#text",
"anchor_from": "center",
"$update_string": "enderChestInspect~",
"anchor_to": "center",
"layer": 10,
"bindings": [
{
"binding_name": "#hud_title_text_string",
"binding_name_override": "#text"
}
]
}
🤨
that worse then the picture you send when someone ask
{
"binding_type": "view",
"source_property_name": "(#hud_title_text_string - $update_string)",
"target_property_name": "#text"
}
yah
just thought it was funny lol
Try this
{
"binding_name": "#hud_title_text_string"
},
{
"binding_type": "view",
"source_property_name": "(#hud_title_text_string - $update_string)",
"target_property_name": "#text"
}```
nothing
this is with what i sent
well what are you putting in the text?
@analog snow
whoops
sorry
i need chest ui temp but without bottom slots, only buttons
i hope you didnt just put this
you need both bindings, the one you sent earlier to get the title text and then mine
Try this
{
"binding_name": "#hud_title_text_string"
},
{
"binding_type": "view",
"source_property_name": "(#hud_title_text_string - $update_string)",
"target_property_name": "#text"
}```
same
text didn't render
I don't know English
Didn't
You are?
What exactly do you want to display? That removes the $update_string
Spanish
Not French
enderChestInspect~33
i want to display the number after that
{
"binding_name": "#hud_title_text_string",
"binding_name_override": "#text",
"binding_type": "global"
},
try this as the first one
first bind?
If not work try this
{
"binding_name": "#hud_title_text_string"
},
{
"binding_type": "view",
"source_property_name": "(#hud_title_text_string - ('%.18s' * #hud_title_text_string))",
"target_property_name": "#text"
}```
oh wait
oh yeah
put it in the json directly
dont do that with js
do "§f" + (#hud_title_text_string - $update_string)
Try this
{
"binding_name": "#hud_title_text_string"
},
{
"binding_type": "view",
"source_property_name": "('§f' + (#hud_title_text_string - $update_string))",
"target_property_name": "#text"
}```
if you do numbers as the first character it just breaks
TRUE
BRUH
i fucking hate JSON UI
Work?
yeah
Nice
Only when you do that kind of operations with bindings
alr
@chilly yacht I think i have the fix on your grid searching problem where the grid item cant automatically position itself but like it might not be worth it on your situation since you can only put a fixed number of buttons.
simply just, don't use grids
use stack panels
thats stupid, grids are better than stack panels
i know, in most cases
when having lots of information, then stack panels could be better
No, grids are better since you can use them both as a stack panel and a grid. If you held alot of elements, you should go for grids since it would be optimized.
On the other hand, stack-panels can be good in a small scale otherwise you would need to make alot of stack panels.
I could tell alot more about grids if you want to.
i know
grids in json ui are not like in html, so
Why so?
unless they allow us to customize ore ui, there's no way to implement it flawlessly
empty space is intended, no way to collapse grid items once it's generated
Yeah that's the problem we are facing which i currently have a solution to but not a good solution since it would not maybe optimized.
so, you need to sacrifice, either broken grids, or stack panel "unsatisfactions"
If you looked at Gohan's [layout](#1270628083648430150 message) you can see that he uses a grid layout, you can't possibly do that on stack panels since it would need a ton of stack panels.
hmm, not one stack panel with factory?
so i used a workaround, highlight search
Yeah but you can only do one direction.
Is it working?
yes
Let me see
(see the "hub cosmetics" item is highlighted)
i used the game's search bar, because you can only use one text box in inventory screen
any other text boxes will also affect the game's search box
That would be different case on Gohan's problem since the player still need to scroll to see what they are searching since it only highlights the grid item.
you can't have the flexibility of search with json ui's grid
so sacrifice is always needed
would multiple stack panels lag more than just one grid? i thought yes because you would need to use multiple factories and then remove certain buttons in each section
no
thats good
stack panels and grids have same amount of elements
yeah but i was thinking that because you have different stack panel, the elements multiply because there are multiple factories but you only show the same amount as the one on the grid
but if thats not the case then good
it's literally the same thing as grid
but more flexibility in columns
yeah but for example if i want to recreate a 3 wide grid with stackpanels i need 3 of them so also 3 factories
so i thought that wouldve lagged because it still had to iterate thru every button in the factory 3 times
but if its not laggy ill have to use that
simply use grids for it, why using stack panel for grids
forgot to say
i have to remove buttons from a grid
the space stays there
same issue
with stack panels the space clears out
okay, "you want this, but you need to sacrifice that"
yeah pretty much
it uses the default size value.
aka — 100% like the rest of elements except label.
label uses weird size that isn't included on the size property.
neato
just "auto", but you can't use the word "auto"
if tow addons use the same ui file
will that break compatibility?
i think yes
ok tnx
also what dose the number in
"size": [10, 10]
is 10 pixels or percentage
Yes but if done right, example using modifications it will not
"10px" = 10
even for hud file?
Yes
any links to learn about those?
its in the end of the page on json ui documentation
alr
thanks
that page need to be divided
so from what i understood
i have a hud_screen.json that bind the title to a progress bar
so i just need to add the bindings to the modifications:[]?
for example
"modifications": [
{
"array_name": "bindings",
"operation": "insert_back",
"value": {
"binding_type": "view",
"source_property_name": "(not(('%.18s' * #text) = $hud_string))",
"target_property_name": "#visible"
}
}
]
I don't know how your code is written, i can't answer yes or no.
likely, even if doing with modification property chances are. not all add-ons will follow.
therefore only a few addons may be compatible with that property.
this is the general structure
{
"namespace": "your_namespace",
"root_panel": {
"controls": [
// controls
],
"modifications": [
{
"array_name": "controls",
"operation": "insert_front",
"value": [{ "[email protected]_bar": {} }]
}
]
},
"hud_title_text/title_frame/title": {
"bindings": [
//bindings
],
"modifications": [
{
"array_name": "bindings",
"operation": "insert_back",
"value": {
"binding_type": "view",
"source_property_name": "(not(('%.18s' * #text) = $hud_string))",
"target_property_name": "#visible"
}
}
]
}
}
all addons should use modifications too?
can modifications only be used in root panel?
Well depends on the creators, but yeah they should be. as long they don't throw the vanilla's element out and replace their own.
which, is now what people would be doing nowadays.
ok
thanks for the info
It can be used on any elements that can have controls, variables and bindings property
does stack panel not accept alpha?
yeah
wanted to make an image to appear and fade away upon title trigger
but it just either fades away upon joining
or fade away without me knowing and become missing

huh
i can use that? 
alr brb
... i think i forgot to put panel inside stack panel
and then control image with it

i was controlling the image straight away
alr
it should, if you combine it with "propagate_alpha"
🍰
@opal aurora happy birthday!
thank you
happy birthday @opal aurora
<3
Dingleberrington 💀
😜
No cross posting pal
Oh, sorry.
I posted here first, but then remembered there are actual posts for this stuff.

Is it possible to make custom boss bars with no entities linked to them? Like using scores or script api to control it (value)? The reason I say boss bar is because it would have to stack along with boss bars... and themselves
Where would this be modified?
Would love to make them stack, and able to modify that current bar values etc and show up if value changes etc..
i saw someone post a scoreboard pack that acts like a bossbar
though i forgot the user
where was this posted?
cant really remember but on a text channel
yes, idk how long tbh
Yep
Something called clip ratio
cilp ratio oh dang
oh and then it can push each other down even tho they are different things?
sounds very helpful
ill look into this ty
do u have the reference?
no but i can just
screenshot the game with the highest quality possible
and draw it
how would you able to screenshot with high quality??
samsung magic

How can I define the size of a grid that is by default managed by “grid_dimension_binding”?
Could just use this asset sheet the ui tech co-lead at minecraft made
ah
that looks neat
not sure if you can do that 
but you could get variable from other element by referencing em i think
ive never used this before so
testing is the only way i think, i cant confirm it
rip
How can I define the size of a grid that is by default managed by “grid_dimension_binding”?
If i zoomed in on it; it makes the pixel blur. Is there any fix on that?
Is that discord compression thingy?
Prolly download the original off Twitter
Link?
I think I'll gatekeep
Jk
is the design self-service ?
What..?
Why the hell does the tooltip message look like that lmaoo
large ahh item renderer
I'm trying to remove the original chat element so I can customize my own, but currently it's duplicating.
"root_panel": {
"type": "panel",
"$xp_control_offset|default": [0, -13],
"modifications": [
{
"chat_stack": {
"modifications": [
{
"array_name": "controls",
"operation": "remove",
"where": [
{
"[email protected]_panel": {}
}
]
}
]
}
},
{
"array_name": "controls",
"operation": "insert_front",
"value": [{ "[email protected]_panel": {} }]
}
]
},
Is there something obvious I'm doing wrong?
How do I recover 15% of the player's life?
How do I bypass the string limit in the ModalFormData?
bc the limit is 116 characters
I want it to have above that
what is frame_step?
🥵
how to change dialog_background_hollow_3 in custom forms?
this modification structure is so wrong
instead of root_panel, use root_panel/chat_stack
Thanks; this is my first time modeling a root UI element. I'll try this.
"root_panel/chat_stack": {
"type": "panel",
"$xp_control_offset|default": [0, -13],
"modifications": [
{
"modifications": [
{
"array_name": "controls",
"operation": "remove",
"where": [
{
"[email protected]_panel": {}
}
]
}
]
},
{
"array_name": "controls",
"operation": "insert_front",
"value": [{ "[email protected]_panel": {} }]
}
]
},
Am I missing something? It still doesn't work.
I don't know for sure, but from experience with similar things.. maybe the amount of pixels between each frame?
Like if you have a spritesheet that is 64 pixels in width, and has 4 frames, the step would be 16.
you also need to change contents inside "value" field, since these do nothing
{
"root_panel/chat_stack": {
"modifications": [
{
"control_name": "chat_panel",
"operation": "replace",
"value": [
{
"[email protected]_panel": {}
}
]
}
]
}
}
Trying it now!
It did change the chat, but it's not anchoring to the bottom left like I want it to.
When it was duplicating, one of them was at least in the correct position.
My anchors should be correct, too;
"chat_panel": {
"type": "panel",
//Uncomment when text formatting is being accounted for in word length
//"clips_children": true,
"anchor_from": "bottom_left",
"anchor_to": "bottom_left",
"size": ["100% - 60%", "100%c"],
"max_size": ["100%", "50%"],
"offset": ["2px", "-55px"],
"controls": [
{
"stack_panel": {
"type": "stack_panel",
"anchor_from": "bottom_left",
"anchor_to": "bottom_left",
"factory": {
"name": "chat_item_factory",
"max_children_size": 50,
"control_ids": {
"chat_item": "[email protected]_grid_item"
}
}
}
}
]
},
ah, then, move it outside chat_stack
so the code i sent will be changed to:
{
"root_panel/chat_stack": {
"modifications": [
{
"control_name": "chat_panel",
"operation": "remove"
}
]
},
"root_panel": {
"modifications": [
{
"array_name": "controls",
"operation": "insert_back",
"value": [
{
"[email protected]_panel": {}
}
]
}
]
}
}
It worked! Thank you so much, this is great!!
Seriously, I really appreciate it! I've been stuck on that for a couple days now! 😂
I tested it and now the sprite plays fine.
Awesome! I'm glad I could help!
turns out this didnt work either
i feel like im misunderstanding stack panel
☺️
how does the anims on stack panel work?
its definitely not doing anims upon trigger and instead it just fires right away upon loading the UI
nah
im trying to get an alpha anim (that goes from 1 to 0) on an element to fire when an element is updated
but 'when an element is updated' part isnt working 
it just goes
when i join the game and the ui loads
and i have no idea why this happens cuz i did it with other elements just fine before
ended up scrapping the whole thing
i want to show it to you but i cant screenshot stuff rn
its basically a progress bar (not xp bar) that glows at the end of the bar when the ui updates
yeah
you need something to trigger it
it shouldve triggered with title text
did you put destroy_at_end
make sure that the animations element is inside the factory.
Factory is what makes elements reload/updated.
if your animations are somehow loaded but never reloaded means that the element state is just there since you launch/join the world.
would it work if i have the element inside an existing element that can update?
oh wait
i think i forgot to put the trigger in the element with animation 💀
Yeah it should be.
huh wait that makes it different
i wonder why it didnt work
imma do it all over again, brb
If the element(s) is inside the factory, chances are. once you do the title and stuff that has its own factory element, it will reload every element inside it.
therefore the text can be changed and animations will be reset.
this should apply to the chat element too.
How can I define the size of a grid that is by default managed by “grid_dimension_binding”?
what xd
of course not
clip ratio is like size
set it to 1 and have 100%, 100%
set to 0.5 and have 50%, 50%
it would move of course, but anchor is still same
yeal still nothing
the anim is fired even before its triggered
if you use fixed sizes, there's another way to achieve that same kind of clip_ratio, use #size_binding_x_absolute or #size_binding_y_absolute
what the hell, are those from the bundle tooltip
never seen that
love those things
what deos it do
then i realized that without absolute it actually looks alot nicer
clipping i think
it was manual clippings stuff i guess idrk
not much of useful when the actual property exists and uses the same way as those 2 bindinga does
but much simpler approach.
might be useful in some cases
hmm
only it have is vertical and horizontal
ill do an experiment using these later
the only true useful is those without absolute imo
it's dynamic size scaling through bindings and makes progress bar pretty better.
no, it's everywhere
you don't even need use_anchored_offset to achieve it
those are very different, but same usages
interesting..
no its not, its from new bundle update
found twice in store_common.json before bundle
nvm i will just reverse there order
I asked 2 times....
it was simpler then i thought
you just have to follow the json ui around until you found the where the texture have been called
mini ore-ui screen
why the back button look like this
The button is sized higher than the actual texture
can i set the height and leave the width to auto fit?
Does anyone know how to make alpha animations in a live_player_renderer?
What texture pack do u use
i made that
it is custom form using "Dingsel" latest tutorial
I sow this tutorial but u using texture pack for forms
as I see
and for text
can u provide links
it is not just textures
it only modifies that form
i may post it later (i need to take the files out from another project)
if you just need the texture i can send them now
oh u modified form textures not all forms
yeah
a drawing explaining how nineslice_size work (from what i observed in testing)
@oak verge did you draw the illustration
how did you changed the dialogue background to custom?
changed $custom_background
I tried changing but this happens
in server form or ui common dialog
won't it change every where
or only serverform
server form
changing it in ui common will change every form (depend)
ok
here is my file
did you change the json file related to the texture
ah you don't have it
@final matrix
in the same folder as the texture
make a json file
with the code in the pic inside a {}
u mean the ninslice
also is it possible to remove the border it doesn't fit the buttons shape
or is it possible to make a texture for border as well
the pic will auto fit with nineslice_size
give me a sec
ok
{
"nineslice_size": [3,3,4,4], //left, top, right, bottom
"base_size": [32,32]
}
ok
yeah
"my_super_custom_panel_main": {
"type": "stack_panel",
"size": ["100%", "100%"],
"orientation": "horizontal",
"anchor_from": "top_middle",
"anchor_to": "top_middle",
"collection_name": "form_buttons",
"controls": [
{
"offset_button@server_form.custom_button": {
"$icon_size": [17, 17],
"$button_size": [75, 27.5],
"$padding": [59, -73],
"collection_index": 0 //The First Button
}
},
{
"offset_button@server_form.custom_button": {
"$icon_size": [17, 17],
"$button_size": [75, 27.5],
"$padding": [90, -73],
"collection_index": 1 //The Second Button
}
},
{
"offset_button@server_form.custom_button": {
"$icon_size": [17, 17],
"$button_size": [75, 27.5],
"$padding": [60, -73],
"collection_index": 2 // The Third Button
}
}
]
},
Why when I put the padding 60 it becomes far away. And when I increase it a little and make it 63 it becomes very close?
you can't make paper doll transparent
Does being on the latest beta/preview changes anything related to json ui?
I've been following Dingsel's tutorial on yt but no matter what it doesnt work. Even after copy pasting the json file he gave in his description. I have attached the expected and current ss (ignore the icons)
download his tut pack and edit it
why is this thing reversed
How do u separate this buttons to two bars
both are stacked panel inside a panel
I mean how u separate them not how u made it
Like one have 3 other have 4
still the same thing i suppose
hi
hi
mfw
yeah
anchor from & to + offset
No, you don't understand. I don't understand how he divided them into groups. like in one 5 in the other 3 and they are the same in two groups or different
_ _
1-10 ?
10
Thx
nice/10
Thx 
can i like grab value like from actionbar text and print it to number
like for example custom health?
collection index or with visible bindings
@oak verge how to open menu with the button like a new form
I do get error as undefined reference if I use like
form.show(player).then((r) => {
if (r.selection === 0) {
menu_1(player);
}
});
}
const ui = new ActionFormData()
.title("Form")
.body("")
.button("button1")
.button("button2")
.button("button3");
}```
Go #1067535382285135923
is it possible for "$size_x" to work accordingly? I can't seem to get it to work.
"$buttons_per_row|default": 3,
"$size_x": "((100 / $buttons_per_row) + '%')",
"size": ["$size_x", "100%x"],
no
can't put variables inside arrays
also that method already doesn't work
i think so
i need to fix some bugs and redesign the ui and add some stuff
could i use /title @s /title <input> multiply times to trigger different ui at the same time?
looks nice i like editing drings packs
still working on it
neat
just realized there is border-image-slice in css
should i switch to it?
with what i am currently using you can save the output image but with border-image-slice that will not be possible
can be useful (not particularly in game)
planing for example
Where is?
still working on it²
Ohh okay, that looks interesting
I made the default button textures in custom_button to the image path textures/ui/button_normal (image 1), and in the same button in my_super_custom_panel_main I put the first button to the image path textures/ui/button_pressed (image 2), but all buttons were made to have the same textures path as the first button (image 3). How can I fix this?
Nice work so far.
{
"namespace": "chest",
"small_chest_screen/root_panel": {
"modifications": [
{
"size": [
276,
110
]
}
]
},
"large_chest_screen/root_panel": {
"size": [
176,
220
]
}
}
where am I going wrong?
{
"namespace": "chest",
"small_chest_screen/root_panel": {
"size": [
276,
110
]
},
"large_chest_screen/root_panel": {
"size": [
176,
220
]
}
}
ive also tried this
it will not increase the slots but the size of panel?am I right
thats the goal
im tryna stretch the BG
but its not even doing that
Wait, hold on.
?
what are you trying?
to change the size of the chest bg
Background panel?
im planning on adding a few buttons to the chest screen but want it to feel 'enclosed'
yup
Alright I think I know how.
please do tell
Yeah.
Too big.
"[email protected]_panel": {
"layer": 1,
"controls": [
{ "[email protected]_panel": {
"size": [
"500px","350px"
]
} },
change common_panel.
im so moronic
No, don't say that!
At a mistake I did.
{
"namespace": "chest",
"small_chest_screen/root_panel/common_panel": {
"size": [
276,
110
]
},
"large_chest_screen/root_panel/common_panel": {
"size": [
176,
220
]
}
}
Huh?
all i was missing was common panel?
Oh.
My bad.
can you help me add a overlay to the ui
{
"namespace": "chest",
"small_chest_screen/root_panel/common_panel": {
"size": [
276,
110
]
},
"large_chest_screen/root_panel/common_panel": {
"size": [
176,
220
]
},
"[email protected]_panel": {
"size": [
352,
220
],
"layer": 1,
"controls": [
{
"[email protected]_panel": {
"size": [
"500px",
"350px"
]
}
}
]
}
}
like
I want to add this as a background for chest ui how to do that?
does anyone knows what textures do chest use for bg? is it the opaque one ?
have i messed up again?
@fervent roost
i would rather not copy paste. im trying to only change the elements i need
Oh.
@fervent roost
how do I change the texture of the background
ive heard its more efficient that way and a heck ton easier to read
wait do i not even need my size declarations anywhere except common panel?
You only need to chnage the common panel size inside the chest panel.
I'm testing.
{
"namespace": "chest",
"small_chest_panel/root_panel/common_panel": {
"type": "panel",
"size": [
"120%",
"100%"
]
}
}
Alright.
this is as much as I can compresss the code.
and works fine.
@runic cobalt
youre a lifesaver thanks
You're welcome :D
I thiink the issue was that you didn't specify the type... I think*.
the thing im making this for is for easy chest sorting / filtering
Oh, cool.
ppl have already done it but i have a personal policy of mine
if i dont understand it
i dont add it
gives me an incentive to learn this stuff
it works
finally
^-^
wait, hold on.
now to learn how to add buttons to the chest screen..
after i fix this for big chest too
Buttons, for what?
the sorting features
Ohhh.
I have no idea about that tbh.
But I can add buttons without functionality.
- loot all
- loot all (filtered)
- deposit all
- deposit all (filtered)
the functionality is gonna be achieved by manipulating player input via a factory
rebinds
issue is i dont have textures yet
What is this app?
ill see if i can figure it out myself first and if not then ill ask
might take me a few weeks of trying
im a complete beginner
@runic cobalt instead of expanding why didn't you add tabs
Will it run on android?
elaborate?
what would i use this for tho?
for button
ok
do tabs support the drag and drop functionality?
are these tabs just panels in disguise?
their are packs available on mcpdl check them out many people have used tabs for their buttons
"drop_all_button": {
"type": "panel",
"anchor_from": "top_left",
"anchor_to": "top_left",
"size": [
"50",
"30"
],
"controls": [
]
on the right track?
@final matrix
cant figure out how to define textures
"[email protected]_tab": {
"size": [ "100%", 25 ],
"alpha": 0.2,
"$anims|default": [],
"anims": "$anims",
"$offset_override|default": [ 0, 0 ],
"offset": "$offset_override",
"$toggle_focus_enabled": false,
"$toggle_name": "navigation_tab",
"$toggle_group_default_selected": "$construction_index",
"$tab_content": "crafting.empty_tab_panel",
"$allow_controller_back_button_mapping": "$is_ps4"
you need to modify this according
above is
just the
inv screen tab
i need to make my own tho, not import an already existing tab
wdym
im gonna be linking this button to a custom factory element
ok
if i use the original wont it just link elsewhere?
you may search on the channel their may be already existing ideas out their
yes
there is already someone who's done what i need but idk if it's public rn
pretty much recreating this
but different
its a lil advanced i think
has anyone tried to override collection index?
or at least tried to set collection index by bindings?
the hell is also #collection_count
or #collection_total_items
way to transfer collection items into grid? mhm
Any suggestions?
@narrow fox how tabs works ?
i didn't understand
the header row
I know what you mean, but I don't understand your question.
action form can just have stack of buttons, if that header shows diff buttons then how
It's just more than stack_panel.
server can send list of buttons, does that form show diff buttons based on tab clicked ?
can some one help me add chest ui to my server_form i tried merging the packs but it brakes my custom form
spliting list sent by server?
I am trying to change the background texture of chest screen
it is just a website
but i did make the features compatible with touch devices
https://discord.com/channels/523663022053392405/1278498319655768176
@calm birch tell me whatcha trying
so i have 9 cooldown bar ui, and they replace each other when the scoreboard get a certain number
they change via acbp
you technically could get number directly from scoreboard
and then when u put on a helmet it uses acbp to do the command when u have the helmet on make a ui
its a cooldown bar using images
not numbers
hm?
yeah
u can bind it to a scoreboard number?
i think ima use title bc its for weapons
which all have different scoreboards
which could get messy with different cooldown times
using scoreboard as condition rendering is a terrible idea, go for title/rawtext with scoreboard strings instead
oh yeah right i missed the helmet part
title time
if you know how to use scoreboard stuff on a rawtext, then yeah
yes i display my scoreboard via rawtext
for my ammo for my weapons
the cooldown happens at certain ammo/number of ammo
if youre making it display with titles, i recommend putting all the info into one title instead of title and subtitle
i dont remember if the subtitle wont appear when theres no title but
ye
subtitle is pretty buggy
mhm
sometimes subtitle doesn't show up when it supposed to, so yeah
optional choice are either; actionbar and title.
is there another way to bind? a helmet ui?
if im alr using titles
bc actionbars dont work?
actionsbar does work
its just that the thing you sent in #add-ons wont cuz actionbar cant use bindings
actionbar/title needs a factory order to reload themselves, bindings wouldn't be it.
oh
},
"cooldownbar9": {
"type": "image",
"texture": "textures/ui/cooldownbar/cooldownbar9",
"size": [ "100%", "100%" ],
"offset": [ 0, -5 ],
"anchor_from": "center",
"anchor_to": "bottom_middle",
"bindings": [
{
"binding_name": "#hud_actionbar_text_string"
},
{
"binding_type": "view",
"source_property_name": "(#hud_actionbar_text_string = 'cooldownbar9')",
"target_property_name": "#visible"
}
]
},
"hud_actionbar_text/actionbar_frame/actionbar": {
"modifications": [
{
"array_name": "bindings",
"operation": "insert_back",
"value": {
"binding_type": "view",
"source_property_name": "(not (('cooldownbar8')or(#text = 'cooldownbar9')))",
"target_property_name": "#visible"
}
}
]
},
so would something like this work?
No.
actionbar does not have bindings and right off the bat you've already got yourself syntax error at the first line of code
},
this?
bc that is just there bc its part of a larger of ui code that just copies
i just posted 2 examples of ui codes
{
"black_conditional_image": {
"type": "image",
"texture": "textures/ui/Black",
"size": [16, 16],
"layer": 10,
"$atext": "$actionbar_text",
"visible": "($atext = 'hello world')"
},
"black_conditional_image_factory": {
"type": "panel",
"factory": {
"name": "hud_actionbar_text_factory",
"control_ids": {
"hud_actionbar_text": "[email protected]_conditional_image"
}
}
},
"root_panel": {
"modifications": [
{
"array_name": "controls",
"operation": "insert_front",
"value": {
"[email protected]_conditional_image_factory": {}
}
}
]
}
}
Would this example work in the bedrock wiki?
@weak lintel
well its a wiki template
lol it still doesnt work
ig i will look into it more tmrw
Someone should make a JSON ui tutorial/guide on making a custom start screen, and post it on #1072983602821861426
It would be damn helpful for everyone
There is no tutorial/guide on customizing start screen with JSON UI, neither on youtube.
what is the issue
Not only the notification or the text appears
its because youre using wrong binding for title text
Haha it just caused more bugs haha
Yes
So that I only show it when I use that differentiator
Open any solution?
It’s a bit complicated from what I see
can i use modification for chat_panel to insert a new element and make it "stack"
"binding_type": "view",
"source_property_name": "(not(('%.8s' * #text) = '_mcdHud:'))",
"target_property_name": "#visible"```
how do you do check for two texts at once
cuz using or just kinda breaks it
... '_mcdHud:' - 'something'...
i meant like two prefixes
literally that
bruj
maybe convert it to number
yeah bit ui parser is in c language afaik
yes, c++ to be exact
you can also use %d, %x, %c... as well, but it always return random junk data
ye what's this tho ^ ?
converts the string into a num
I guess it returns "100" instead of 100
So "100" * 1 = 100
for some reason the first label inside the stack panel works but the second label does not show up if the first letter is a number
those are the labels, connected with preserved titles
and the prefix is hud:########.########
feels like im doing smth wrong
nvm the nvm it worked
i see the actual issue now
for some reason the ui only takes the first label's variables and doesnt consider the second one
when i replaced text bindings with update strings and triggered the first label, the second one (which had different update string variable) rendered the full string which was supposed to be trimmed (or not show up entirely cuz the second one shouldnt be triggered)
when i put data controls and bindings individually instead of just changing the variables in child elements it worked as i intended
the left one works but not the right one??
How can I get this and make it into a form?
"paper_doll": {
"type": "custom",
"renderer": "paper_doll_renderer",
"layer": 2,
"property_bag": {"#skin_rotation": true}
}
0.5 0.5 0.5
add to it for light grey for example 0.75 0.75 0.75
the reverse for dark grey
anyone has a action form as inventory ?
how do I change its colour
it's in ui common I can just modify it in ui common but I want to modify it in chest screen
just assign the value in the chest screen
"$var_name": [1,1,1]
"small_chest_panel/root_panel/chest_panel/inventory_panel_bottom_half_with_label": {}
it's nested like in inventory_panel_bottom_half_with_label
there is one more Control
in ui common
it takes the colour from "section_heading_label": { "type": "label", "layer": 1, "anchor_from": "top_left", "anchor_to": "top_left", "color": "$title_text_color" },
do
"$title_text_color": [1,1,1]
where?
"namespace": "chest",
"chest_label": {
"color": [1,1,1],
"font_type": "MinecraftTen"
},
"container_s": {
"type": "image",
"texture": "textures/ui/container_s"
},
"small_chest_panel/root_panel/common_panel": {
"$dialog_background|default": "chest.container_s"
},
"small_chest_panel/root_panel/chest_panel/inventory_panel_bottom_half_with_label": {}
}```
in chest screen
directly
in the chest panel? idk try and see
ok
How would you modify a value thats in the controls of a value in the panel controls?
How do I get the body of the form in the custom_form controls?
Variables can only be accessed by the element its declared in right? but not from childs right?
toggles variable names are so messed up
Whats the starter kit for js ui?
No i mean like the basics like how do i make buttons n stuff?
the wiki have some
is there is a way to dynamically split text
I made a dynamic number splitter and i tried using unicodes to recreate letter by letter but that didn't work out so well.. you can't do '\u00' + #num.
alr
i will try make the text length constant with script
Yeah it's better to just pad the remaining empty spaces
yep
that is the idea
any idea on how to do that
padding with §r don't work some times (any other char work fine)
you can use any characters wether visible you can just remove them by subtracting the character
subtracting a character remove all the same characters?
yes
alr
thanks
didn't work or my binding is messed up
a-z work
៛ don't... why
it crop different length depending on the char? is this using the char size or something
@whole jasper do you know how to turn off toggle via button mapping?
to button.menu_select, for example it works from button.menu_cancel with mapping type global,
but I don't know if it can be triggered by another button
okay thanks
\u00 won't work
how do i perfectly hide heart renderer and add children elements to it
just putting "visible": false doesnt work because of the existing binding
and "ignored" just yeets the children element away together
thats what i said
just replacing the entire heart_renderer works but it spits out hundreds of content logs
cuz apparently its hardcoded
maybe i could add alpha...?
ok setting alpha to 0 worked lmfao
didn't work
@@ did
and some of these Unicode
these won't work, the game will literally show the characters instead of character actions?
because \t returns as single character: ō
can yall pick which one is better
unless the whole bar shakes when in low health...
nah its stationary
alr planned
hi
im using chat to update the health bar but uh
it just stacks without actually filling up
☠️
i do remove them in binding
how do I make the doll rotate by gesture like in dressing room screen
you didn't do it right then
somehow that logo appeared
what did you add
"skin_viewer_panel@persona_cast_character_screen.persona_cast_paper_doll_panel": {} },
"player_renderer": {
"type": "custom",
"renderer": "live_player_renderer",
"property_bag": {
"#look_at_cursor": true
}
"paper_doll": {
"type": "custom",
"renderer": "paper_doll_renderer",
"layer": 2,
"rotation": "auto",
"use_selected_skin": false,
"property_bag": {
"#skin_rotation": true
}
not auto manual
I know that works
but don't know how to manually do the rotation by touch
"paper_doll": {
"type": "custom",
"layer": 100,
"renderer": "paper_doll_renderer",
"camera_tilt_degrees": -10,
"starting_rotation": 30,
"use_selected_skin": false,
"bindings": [
{ "binding_name": "$button_model_type" }
]
}
"persona_classic_skin_paper_doll": {
"type": "custom",
"$paper_doll_offset|default": [ 0, -7 ],
"offset": "$paper_doll_offset",
"size": [ "100%", "100%" ],
"renderer": "paper_doll_renderer",
"camera_tilt_degrees": -10,
"starting_rotation": 30,
"use_selected_skin": false,
"use_skin_gui_scale": true,
"enable_scissor_test": true,
"animation_reset_name": "screen_animation_reset",
"anims": [
"@common.screen_exit_size_animation_push",
"@common.screen_exit_size_animation_pop",
"@common.screen_entrance_size_animation_push",
"@common.screen_entrance_size_animation_pop"
]
}
"paper_doll": {
"type": "custom",
"layer": 100,
"renderer": "paper_doll_renderer",
"camera_tilt_degrees": -10,
"starting_rotation": 30,
"use_selected_skin": false,
"bindings": [
{ "binding_name": "$button_model_type" }
]
}
@final matrix try one of these
they are the one used there
all of them keeps the paperdoll at a fix degree of rotation
try this
"skin_model": {
"type": "custom",
"offset": "$model_offset",
"renderer": "paper_doll_renderer",
"camera_tilt_degrees": -10,
"starting_rotation": 30,
"$skin_model_layer|default": 5,
"layer": "$skin_model_layer",
"use_selected_skin": false,
"use_skin_gui_scale": true,
"rotation": "gesture_x",
"animation_reset_name": "screen_animation_reset",
"$skin_model_anims|default": [
"@common.screen_exit_size_animation_push",
"@common.screen_exit_size_animation_pop",
"@common.screen_entrance_size_animation_push",
"@common.screen_entrance_size_animation_pop"
],
"anims": "$skin_model_anims",
"bindings": [
{
"binding_type": "global",
"binding_name": "$skin_preview"
},
{
"binding_type": "view",
"source_control_name": "$gesture_input_panel_control",
"source_property_name": "#gesture_delta_source",
"target_property_name": "#gesture_delta_source"
},
{
"binding_type": "view",
"source_control_name": "$gesture_input_panel_control",
"source_property_name": "#gesture_mouse_delta_x",
"target_property_name": "#gesture_mouse_delta_x"
}
]
}
this is what I tried it shows that liading image of tools
it doesn't for me
no rotation
it is getting that gesture_x from somewhere
"player": {
"type": "input_panel",
"size": [ "52%y", "90%" ],
"layer": 600,
"$skin_model_layer": 100,
"always_handle_controller_direction": true,
"gesture_tracking_button": "button.turn_character_select_doll",
"$gesture_input_panel_control": "preset_input_panel",
"$skin_preview": "#cast_preview_skin",
"controls": [
{ "[email protected]_viewer_panel_skin_model": {} },
{ "skin_model_loading_anim@persona_cast_character_screen.character_loading_anim_panel": {} }
],
"button_mappings": [
{
"from_button_id": "button.menu_select",
"to_button_id": "button.turn_character_select_doll",
"mapping_type": "pressed",
"button_up_right_of_first_refusal": true
}
]
},
this gave the loading img of tool
"my_super_custom_panel_main": {
"type": "stack_panel",
"size": ["100%", "100%"],
"orientation": "horizontal",
"anchor_from": "center",
"anchor_to": "center",
"collection_name": "form_buttons",
"controls": [
{"player@server_form.player":{}},
{
"offset_button@server_form.custom_button": {
"$icon_size": [69, 69],
"$button_size": [133, 133],
"$padding": [153, 153],
"collection_index": 0
}
},```
idk if Its loading screen or not?
here
that is not what i sent
it's the same I just nested it in player panel
this gives me error and offset to the present button with no model
if directly used
is there a way to move the model up in the custom npc i use the blockbench to make it
thats very cute
you would need to find which element controls the actor renderer in dialogue screen file then offset it
{
"format_version": "1.19.30",
"minecraft:entity": {
"description": {
"identifier": "myname:discord_wumpus",
"is_spawnable": true,
"is_summonable": true,
"is_experimental": false
},
"components": {
"minecraft:damage_sensor": {
"triggers": {
"cause": "all",
"deals_damage": false
}
},
"minecraft:type_family": {
"family": ["npc", "mob"]
},
"minecraft:fire_immune": true,
"minecraft:movement": {
"value": 0.5
},
"minecraft:loot": {
"table": "loot_tables/empty.json"
},
"minecraft:collision_box": {
"width": 0.6,
"height": 2.1
},
"minecraft:behavior.look_at_player": {
"priority": 0,
"look_distance": 6,
"probability": 0.02
},
"minecraft:persistent": {},
"minecraft:npc": {
"npc_data": {
"portrait_offsets": {
"translate": [-7, 50, 0],
"scale": [1.75, 1.75, 1.75]
},
"picker_offsets": {
"translate": [0, 20, 0],
"scale": [1.7, 1.7, 1.7]
},
"skin_list": [
{
"variant": 0
}
]
}
},
"minecraft:nameable": {
"always_show": false,
"allow_name_tag_renaming": false
},
"minecraft:physics": {}
}
}
}```