#JSON-UI General
1 messages · Page 27 of 1
not with bindings
just get the title text, save it in a variable, convert it into a number, and use it as a value for the duration property
i mean ofc thats what i did
and the value does get saved in the variable normally
but it doesnt change the animation duration
like this example
mhm
but still
it just kinda never changes
show the code?
what is texto?
preserved text with update string trimmed
you can't save it in a #variable, it needs to be stored in a $variable to be passed to children elements
and animation i think
oh wait i realized that the title text is stored in a #variable unlike the actionbar text which is stored in a $variable
so you can't use it for the duration
if it's possible, then i don't know how, ok, you can choose one of two options here.
you can either have a version of of your element for each attack speed, and display them conditionly
the second option is to give up the animation, and display a different title every tick, to mimic an animation, make each title change a variable which changes the size of the clipping panel your image is in
one question before you process, have you tried duration: "#texto" ?
you can't do that
that's what i thought
anim objects don't support bindings, but hardcoded variables can
Hello, how to display a custom bar (a mana bar for example) on hud screen (above exp bar) and change it script side ?
when will the json ui replaced with the new ui?
aargh
is json ui will B replaced with other ui mechanic??
How do i make UI?
For example rotating text?
Is that possible?
@last pollen
where do i learn?
n0
in 1 - 2 years
is it confirmed or just a speculation
i guessed
1~2 years feel too short tbh
considering how old the first-ever introduction of ore ui is
will ore ui replace the hud before it gets exposed?
depends.
we don't really see any progress of the hud as ore-ui based that much
months ago they got inventory stuff working on hotbar like they just discovered fire and after that yeah, no progress so far.
for me, it could take more than 2-3 years.
how do json-ui animations work? I haven't seen any generic info on that topic actually, that's why I'm asking
how to give scroll to a panel inside panel¿ is it possible
dont use "color"
use background_color
"background_color": [
1,
1,
1,
0.7
],
Then ta-da
is there a solution for clip ratio working incorrectly
if the text sends 0 it fully clips the image
but anything else than 0 just doesnt do clip ratio
Why Clip it then?
cuz i need to clip it 
Just do visible
but i need to clip?
What is context?
basically clipping the image below crosshair, but using repeated chat to clip image instead of using anims
this vid uses anims to clip which failed miserably
oh this is new for me
no
can stack_panel work with #hud_title_text_string?
idk why and where you want to insert string binding to stack_panel
it doesnt show any text
I meant that the stack panel works with chat messages but when I change to title it shows a maximum of 1 object
the left tab has error on effect popup it doesn't clip it¿
Is your $clip_max variable a float? The number by default is converted to an integer, but you need to do another operation to convert it to a float value. Otherwise clip ratio will only read 0 or 1. Make sure $clip_max is a float such as 100.0 and it should convert correctly.
how could i forget such thing 
thank you for reminding me
np. easy to forget lol
another question, how can i make factory's max_children_size to ignore invisible factory-made children element
do i just put the binding inside the panel(not the factory)
I don't think you can make them not count because they still technically exist. I would recommend using an animation with destroy_at_end to destroy the element instead of making it invisible. You can use a collection panel with collection length to trigger the animation from a binding
im already using destroy_at_end, but since its based on repeated chat texts, it could have situations where the element disappears for a short time
which is something i dont want
im interested in collection panel though
ahh I see
is there a reason u dont want to increase max children size?
i kinda dont want it to overlap on each other, itd have alpha
its similar to using a stack panel to toggle the collection length between 0-1 and making the element ignored or not ignored essentially
so you can trigger the animation when its set to 1
you could use a stack panel to put them on top of each other if that works for ur setup
what do you want it to look like/function?
give me a second ill record a vid
right now it doesnt have alpha
its the bar below the crosshair
the elements are visible when the bindings passes the check, but since it uses chat text, the elements can overlap
and i cant use max_children_size since normal chat texts also affects the limit and can make the element disappear for a split second
i need to make the ui to remove the element and swap it with next one when the binding is triggered
ahh I see. Is there a reason you are using chat text for this instead of something like a title? Bc since there's only ever suppose to be one element it seems like it might be easier to manage that way
disappearing?
it kills the vanilla titles when you try to send info from title while the vanilla title is there
hmm yes but u could preserve the title
for the bar
yeah unfortunately it only works on changing text, not replaying animations or reloading the element in general
yeah that's true but u could use the collection panel trick to only restart the animation when a certain text is sent
how do u mean?
"button_factory": {
"type": "stack_panel",
"size": [
"100% - 4px",
"100%c"
],
"offset": [
2,
0
],
"orientation": "vertical",
"anchor_from": "top_middle",
"anchor_to": "top_middle",
"factory": {
"name": "buttons",
"control_name": "slapper_dialogue.button"
},
"collection_name": "student_buttons_collection",
"bindings": [
{
"binding_name": "#action_count",
"binding_name_override": "#collection_length"
}
]
}
why aren't my buttons showing up? 😭 Can someone please help?
language barrier lol sorry
so when you send a title, a big text appears on the screen
and when you send the info to UI, the vanilla title will just disappear, regardless of using preserved title or not
I've done it before, though i went with regular splitting text tricks anyways.
oh I see what you mean. and you're using the regular title for something rn?
shane, when you're done helping him, can you help me?
hmm I see. so you're not using title at all then?
nope
i mean i do want to use title but this is a huge issue for me
so yeah
no titles
hmm maybe if you had some sort of timer built into the next chat text to make it delay its appearance. what triggers the next one appearing? just hitting/punching sooner?
what is action count? is that from tthe action form?
its sent when the player has cooldown remaining
hitting counts since it sets the cooldown
@neat sequoia I think the binding should be #form_button_length
hold on i think it would be easier to send the code than explaining it
ah I see
if (curCD > 0) player.sendMessage('_sweepnslash:cooldown:' + cooldownPercentage.toFixed(0));```
I took this from an old post here, because I don't know how to create a factory for a custom student button
you can make yours similar to the vanilla form:
"long_form_dynamic_buttons_panel": {
"type": "stack_panel",
"size": ["100% - 4px", "100%c"],
"offset": [2,0],
"orientation": "vertical",
"anchor_from": "top_middle",
"anchor_to": "top_middle",
"factory":{
"name": "buttons",
"control_name": "server_form.dynamic_button"
},
"collection_name": "form_buttons",
"bindings": [
{
"binding_name": "#form_button_length",
"binding_name_override": "#collection_length"
}
]
},
ur setup is good u just need the binding name as form button length
@weak lintel how do you want it to look when another cooldown is sent when player hits. bar just goes back to full and animation resets right?
you mentioned smth about collection length, right?
while the cooldown is ongoing?
it resets and fills up the bar from the beginning
yeah. sorry im still a bit confused maybe. what triggers this line of code?
also ill brb
im starting to hate this school wifi even more
the OK is my button
I did exactly what you said
its _sweepnslash:, and the cooldown: part is a placeholder
im making another variation for cooldown bar later
wait
god i should read texts carefully, its the third time for me to misread stuff now 💀
so when the attack is triggered, it stores the time when the player attacked
and then the scripts gets the info of weapon's attack speed, convert it into ticks and repeatedly calculate for remaining time
when the remaining time is larger than zero, it sends the chat and passes the data into UI
if not, dont send the chat
how do you want it to look?
a vertical list of buttons
if I were doing it with server_form everything would be easier, but when I do it with npc_interact it seems to be much more difficult
when you say remaining time, are you referring to remaining time from the last weapon attack? so if you hit, wait till bar is half so at 50%, then punch again, it goes back to full?
what ui are you using right now?
server form or npc?
npc
so if you're using npc, are you trying to use the regular buttons or the special url/command buttons?
is a button that when clicked executes a command
ah okay I misunderstood originally. so for the collection name in this code, put actions_collection
the button didn't appear
compare yours to the vanilla and work backwards from there:
"action_panel": {
"type": "stack_panel",
"anchor_from": "top_left",
"anchor_to": "top_left",
"size": [ "100%", "100%c" ],
"factory": {
"name": "action_item_factory",
"control_name": "npc_interact.padded_action"
},
"collection_name": "actions_collection",
"bindings": [
{
"binding_name": "#action_count",
"binding_name_override": "#collection_length"
}
]
},
isn't there another way of doing this? using a grid or creating a different factory?
yeah you can use your own grid or factory. you just need the correct collection. your buttons also need to be set up correctly with the collection binding to get the correct functionality
you have an example of this "grid" or "factory"?
it technically goes back to 0, empty bar
i dont have any examples cuz ive never used the action collection
hm is there a reason the max child size of 1 doesnt work for your purpose then. like shouldnt the new one just replace the old?
and using "student_buttons_collection"
?
a random non related chat can interfere
which could make the element to disappear for a tick
I have to sleep, can I ping you tomorrow so you can help me with that?
there's a lot of examples in this chat history already
yeah but I think you should be able to find a lot of examples searching in this chat
ah that makes sense. maybe if you had a max children size of 2 and then destroy the 1st one when its not valid, then only display one of them. but if someone sends multiple chats in the same tick it'll get removed... hmm. i'll have to think about it
it doesnt work properly for factory?
it does apply alpha to children elements but it overlaps and practically makes alpha useless
thats how it technically works?
like layering multiple 50% alpha element makes it more visible
if thats what you mean
its something i didnt expect to happen lmao
you can set the alpha of the children to higher values like 2.0 or really small decimals to counter the parent alpha
if u need different alphas on certain elements
that even works?
yeah
cuz i had the same problem with propagate alpha before haha
also can you open a post for this bar ui? will make it easier to reference what we've talked about
gotcha, what should i name the post
im playing a game with some friends which is why ive been responding slowly. ill think it over lately and see if i come up with any good solutions
uh maybe chat cooldown ui?
I don't know json ui that well, but I'm sure you could find the factory / container of where the those are stored and change the parent to adjust positioning
just made navigation menu. suggestions are always welcome
You can make like a custom top bar with the title that suits the dialog box
And also reduce its size a little
Looks clean
Agreed it would polish the title
Is it possible to make it so that when an element with an enumerated text is duplicated, text 1, text 2, text 3, etc. are displayed?
Yes but it can only go up to 19
how?
Is it possible to make a title appear as an actionbar?
is the modification property valid here? its giving me error about modification being an unknown property
Not sure but iirc you can't use modifications on an element control
You should apply it to sweepnsplash.cooldown_layout itself
yeah i was trying to avoid that for the sake of performance
whats the name of the hotbar element? i forgot
No.
Secondly — Modification property can only be used on vanilla elements, not custom elements.
hotbar_grid
nice
oreui so hard.. 
thanks y'all for your suggestions, i improved it now a bit
geh, editing an entity inventory UI,
removing the old UI and replacing it with a new smaller UI with 3 slots only
i think, that will be a little bit difficult to do
idk from where i should start
wait
hmmm,
i just have to put a UI image to those slots at the right and left, changing the inventory size from 3 to 4, and make a script that will put a denied item to the first slot
yes, thats way simpler
has there been any recent changes to custom made factories? for some reason i can't get my custom factory to work
umm, how can i take over the first slot?
just moving it from there
removing the left first slot
does anyone know how to add an element on hud hotbar without messing up the offset
ive been trying to add this on the hotbar but itll kill the offset for rest of the hotbars 
nvm found it lol
@hexed briar sorry for pinging but do you know how to solve the clipped images going off the intended offset
Texture/UV issues
make sure the sprite is correct on anims property.
its not using anims
how many frames do you have though
sprite frames.
oh it uses clipping
so you literally just make it scroll up
yeag
that's the least terrible way to implement something like this
i added modification property on vanilla hotbar panel and added that element control
wait so what are you trying to do
but if i do it on root panel it doesnt have that issue
by the look of it, the outline sprite isn't really moving
basically this
yeah its the overlay one that goes weird
if its full, its pixel perfect
well it's between these —
- you need to properly set them sizes.
- ratio bar or progress bar does have it's own property called pixel perfect. you should able to find them via experience bar element. it should fix a 0.5 pixel offset related issues.
- may require me looking at the code for better understanding with the limited info you gave me.
- done
- pixel perfect is true by default, and its related with image clipping going perfect as in image-resolution instead of your screen's resolution
- bet
_ _
wait
i just realized
i made a typo on "anchor_to"
but not sure if that is the case
its already there though
pixel perfect makes it worse
does changing it to 16x works?
the size property? nope
well what's the texture size?
well you gotta pin down the anchor and see if it fixed.
since the element is center (also if it was center, you don't have to set any anchors since it is the default), try to set them like top middle or bottom middle
then use offset property to adjust it property if you will
see if it works.
Also 22x is a pretty odd size for 16x sprites. which might explain about random offseting.
its the size of hotbar apparently
well then that's probably an issue.
the element may probably have no idea what's the actual center is since the size is odd.
you could use anchor for that or adjust the size.
good idea
Also since the sword element thing is inside the panel element, you're free to use offset.
this is really weird
yeah size issues
the sword is out of the outline.
i guess the issue is pretty much the size issues.
not sure if the size is really the case here cuz the other element with 16x8 size works without issue
atp i should just
actually nvm i cant use root panel cuz the hotbar size can change
screw it imma bump the image size to 320x320
still the same 💀
ill just try adjusting the image elements size instead of relying on panel size
hooray it didnt do anything
yeah i think i need to see your code by myself
is there a way to make a toggle be pressed when the enter key is left up? for example i'm holding enter key and nothing happens,now i leave the enter key and the toggle gets clicked, is this behavior possible?
here
questionable code
ik lmao
Also Syntax error detected on line 104 (missing ,)
i really really want to find for a better way to do that but anything else just breaks
replace hotbar_end_cap to hotbar_panel and see if it works
yeah
i read that as hotbar renderer
hold on i did try it before but i dont remember
brb
make sure that you have proper size instead of dynamic size (e.g 100%)
otherwise the game may crash or element wont be visible since it is a stack panel, not a panel
at this point root panel is the way
also debug property exists
whar even is that
a property that will show a color behind the element.
this was to show an element size.
"debug": "red" should work on any element type.
with this you could troubleshoot the element sizes
but yeah
use that and tweak any stuff
ty
if the background color or debug isn't fully filled with the sword
then chances are, it is indeed not full.
the expected result should be a sword filling the background/border entirely.
now even the root panel is having the same issue
did you just use hotbar_renderer
is there a way to detect if the player is continuously pressing a button or toggle etc?
?? holding?
yeah ig
I mean hover/pressing is a control for buttons, which is like holding but doesn't exist on computer
depends on the context, but if no script-api involved or such, nope.
you can only detect hovering
i can use script-api
well you could do that on script-api pretty easily without the need of json-ui
just keep tracking the player's button press and yeah
only server forms though or anything that script-api could access and read to..
i don't understand, how is script api gonna help keep track player's button presses or i'm not getting something?
Json-UI is client-side only. it can't detect how many times you press the buttons.
if you gonna keep track of button presses then the option is script-api, there's not much json-ui could do
Toggle is kinda possible but that gets reset once the screens are reloaded, not only that you'd need a weird complexity to get those. also toggle isn't really a button and literally wont work as button lmao
ok something else, can i toggle a toggle with keys like WASD?
or are the ones listed on the wiki the only ones?
eh, maybe
how?
look for the specific mapping ids, Wiki may have a list of them.
i already looked and there's none iirc, that's why i'm asking
well there might be if you manually looking it for yourself on vanilla files.
it will be button.something, right?
yeah
Well yeah, done that while making my Java Advancement thingy, you can either turn on/off a toggle using a mapping. There is no such thing as WASD mapping though.
you sure there's nothing in the vanilla ui files? minecraft uses WASD to move the player around so shouldn't there be some button supporting that or is that behavior hardcoded?
That value is hardcoded, you might want to go look for something that maps an interaction, for example button.slotN toggles a slot, which is a button.
apparently uh
pixelperfect works.
i think it didnt work before cuz i forgot to save 💀
just gonna adjust the image sizes
NVM ITS HAPPENING AGAIN
thats impressive,
i just want to know how can i change some slots locations
only 3 slots
slot 0
slot 1
slot 2
thats all
Does anyone know how to display image/text on your screen no matter what container you open?
stack panel and collection index
umm, d u have any example?, i need it
this is the base UI, i just want to remove 2 slots from the right
For that just make the grid size smaller and automatically fewer slots will be made.
example
size: [
horizontal,
vertical
]
"type": "grid",
"size": [ 0, 0 ]
but, what namespace i have to put that on?
No
0, 0 no
men idk about UI,
just this
those slots don't have any functionality, bec the entity inventory size is 3
and re-moving those 3 slots in the middle,
thats it
Just go to the file where that modified ui is located, look for the grid and change the size to horizontal
too simple for someone that is an expert on UI, unlike me
oh, thats vanilla hopper UI, not custom UI
to customise it i had to make a brand new UI right?
can you remove the ability to put items in custom slots? so only "take out"?
with the images and panels
If you want you can filter it by name, however you will have to edit and add some conditions in your code.
Do you have any examples of what you are saying?
yeah for example the furnace output slot
I'm not sure maybe using enabled to false
but we cant use other collection names in normal chest guis
first of allz
is this important?
"chest_label": {
"$new_container_title|default": "$container_title",
"$disenchanter_name": "$container_title",
"text": "$new_container_title"
}```
The code itself does not, but if a part of the code is calling that block and you remove it, you will have an error.
and the entity inventory type is a container,
It seems to only show the title of the screen
in that case, i had to make the entity UI from 0 right?
umm, can u make it for me?
jk jk
That's a bit weak
i have no idea how UI works
I didn't know that either until I learned
its a really hard lang, good job by learning it, but how did u learn it?
However, you can investigate how some packs that modify chest screen work
I'll see the disenchantment table one
So?
Yea
i learned making addons by that
watching how other creators make their addons
and learn from their mistakes
the left inv tabs gives the glyph img on the effect screen which shows up after a effect Is applied
(unknown causes)
@mystic heart
Just a question, assuming you played around with C++ specifiers, is there any specifiers that functions other than %s?
there were a number of ones that "functioned", but a lot of them functioned in unexpected ways or crashed the game haha. i made a list testing out some and what they did. i can take a look later today and let you know what i found
Alright looking forward to that, thanks!
if anyone has a minute:
https://discord.com/channels/523663022053392405/1285042895690268752
im sure this is stupidly simple
Oh yes, I forgot haha
There is any documentation for server UI form customisation?
No
I’m more or less already succeeding
What size do you use for the head since it comes out trimmed for me haha
Cool
"player_head": {
"type": "panel",
"anchor_from": "top_right",
"anchor_to": "top_right",
"clips_children": true,
"size": [
35,
35
],
"layer": 2,
"offset": [
-10,
20
],
"controls": [
{
"player_head_renderer": {
"type": "custom",
"renderer": "paper_doll_renderer",
"size": [
70,
200
],
"offset": [
0,
20
]
}
}
]
}```
What I still don’t understand is how you do so that the text is not separated
Like here
You're probably doing something wrong
Mmmm
I can write to you privately
Alright
I would like to know aswell please
is it possible to read the chat messages in the chat screen?
it doesn't need to be all message, one would be enough actually
with reading i mean getting the message as string incase that wasn't clear
Hey man, I searched this chat and old-json-ui, and I didn't find anything
why is it that when I increase the second parameter of my grid_dimensions, the buttons come closer together?
Well, I finally solved the problem
Okay, I have another problem haha
{
"binding_type": "view",
"source_property_name": "(('%.19s' * (#hud_title_text_string - ('%.51s' * #hud_title_text_string))) - '\t')",
"target_property_name": "#coins",
"binding_condition": "once"
}
That’s the binding I use for the icon2
I think I already know what the reason is
I don’t know haha
isnt the player info stuff overlaps the chat?
A little
is it possible to not overwrite text_0 unless the #text contained '_show+:'
this code always overwrites it even if it doesn't contain it
"bindings": [
{
"binding_name": "#chat_text",
"binding_name_override": "#text"
},
{
"binding_name": "#text"
},
{
"source_property_name": "('§f' + (#text - '_show+:'))",
"target_property_name": "#text_0",
"binding_type": "view"
}
]
note #visible doesn't work in this case i want it to stay visible but prevent overwriting the text in the first place
Is it possible to separate the scoreboard players one by one? Like a chat
@mystic heart can you help me??
How can I fix the error that custom UI textures are not loading?
Go look at every ui lol
There's uneven things on every ui
Also nineslice on some of the buttons (the bedwars quest ui)
there's no perfection on json-ui since even if you make it perfect, some devices will have them offset by a couple of pixels anyways
just use absolute sizes in px, and not relative (%)
grid dimensions change how many items are in the grid, so if you increase the second parameter (amount of rows), it will squish the elements vertically if you don't have the size of the grid adjust for that change, or the size of the child elements
also if you haven't found an example of the student buttons yet, here's a simple one I found: #old-json-ui message
@coarse torrent sorry for the delay, it took a while to find my tests bc I had them in a super old world lol. I know I definitely did somewhat more recent tests that were more extensive, but I still can't find them. Which is unfortunate because that had it all displayed nicely. But essentially I couldn't get any of the float/number operates to work as they would in C++, they would just return large floats, have no effect, or crash my game lol. The most useful things I found were:
'%.#s' - well known operator to get first # characters
'%#s' - pads front of the string with # of whitespace characters
'§z%0#s' - pads a number with # 0 digits in front. I had tried to get this to work before but realized I needed to put §z in front of the operator inside the string to get it to convert to a string first, otherwise it would read it as a number and remove the 0s before printing. This could be the trick needed to get some of the other float operators to work correctly, because I didn't know about this back when I did that testing.
If I have time I'll test more later, but if you guys or anyone else wants to test here's a simple setup you can use:
"root_panel": {
"modifications": [
{
"array_name": "controls",
"operation": "insert_front",
"value": [
{ "[email protected]_label_panel": {} }
]
}
]
},
"custom_label": {
"$label_test_binding": "#text",
"$label_text_binding": "#text",
"type": "label",
"text": "#labeltext",
"property_bag": {
"#testing_int": 7,
"#testing_float": 8.0,
"#testing_string": "9.0"
},
"bindings": [
{
"binding_name": "#hud_title_text_string",
"binding_name_override": "#text"
},
{
"binding_type": "view",
"source_property_name": "$label_test_binding",
"target_property_name": "#testing_value"
},
{
"binding_type": "view",
"source_property_name": "$label_text_binding",
"target_property_name": "#labeltext"
}
]
},
"custom_label_panel": {
"type": "stack_panel",
"size": [ "100%cm", "100%c" ],
"anchor_from": "top_middle",
"anchor_to": "top_middle",
"offset": [ 0, 10 ],
"controls": [
{
"[email protected]_label": {
"$label_text_binding": "(#text + ('%.2s' * #text))" // adds first 2 characters
}
},
{
"[email protected]_label": {
"$label_text_binding": "(#text + ('%10s' * #text))" // pads start text with (10 - string length)
}
},
{
"[email protected]_label": {
"$label_text_binding": "('§z%05s' * #testing_int)" // pads number with leading zeroes to reach 5 digits
}
}
]
}
Is there a size limit for making labels with scoreboard player names?
thanks
is it possible to have a grid with elements generated from a factory
...
im working on a custom creative tab without the need to use collection index, but just by instead filtering with a common special string that u insert inside the the Lang file
everything is done
the issue is that if i use a stack panel the entire content of the tab goes on one row which makes sense
and if i use a grid it doesnt it displays the items in their original position in the replicated tab
i need to combine the two
grid
stack panel
im tired af, and im sure there's a really easy fix but i cant think of it rn XD
is that in inventory gui?
ye
woah
womp womp
?
What happens is that it is done like this by the text not because it is not symmetrical
?
Hey i have created a new tab but my items does'nt apparear inside how can i specify the category type inside the inventory_screen.json ?
@fickle tartan Hello check your dm
Is it not possible to change a label/text scale through an anim?
you can't, use anims on images instead
You mean that if the label element is inside an image and I apply it to the image, it will scale too? Or not?
no, only actual images
unless you made a tricky non-smooth combinations of offset anims, font scale factors and clips children elements
Something is missing a good design will be
Okk, It's not worth it. Thank you!
is there any possibility you can debug the value of variables? i want to debug the value of #recipe_hover_text (from inventory_screen.json)
bindings then yes, variables no, since variables do not update unless regenerated by the game
Is there a way to allow multiple server_form.js files between addons and not overwrite each other?
For custom form designs?
They seem to only choose the first addon on the list only.
I was hoping for a solution that wouldn't involve combining all of them into one server_form.js
Just want multiple Addon compatibility
only if all of them uses modifications
not a lot do
Could you explain further?
Like if I wanted to make custom long form and make sure it's not overwritten or overwrite any other addon let's say auction house and a landclaim
Different images for the background
it basically insert your code somewhere in an element
https://wiki.bedrock.dev/json-ui/json-ui-intro.html#modifications
This is perfect ty
I don't look hard enough i guess lol
My landclaim clashes with other addons sometimes so just needing to work it
And make sure i do a more custom background
the best thing to do is make your form look nice with and without json ui
for example this one will look like shit without the json ui
https://discord.com/channels/523663022053392405/1280301965271896124
how do i make a label element accept something like:
{
"type": "label",
"text": "('%.2s' * #title_text)"
}
nvm, i figured it out, i just didnt understand source property names
nah, he just oversimplify how bindings works
how to change size of this scroll and texture¿
resolved
issue with offset
how can I make toggle do scrolling of pages like a left and right button
I can only make it work to open a 1 page on click instead I want it to move to page third ... as I click on same button
@final matrix Hello check dm
@final matrix just accept my request and let discuss further
its worse
the guy offered help and asked people to pay

without having literally
any knowledge
this was from others dms
how'd you know? did he scammed you?
look above
also not really but he did tried to reach to me
but i just rejected the dms
i meant like does he have any knowledge at all?
about JSON-UI?
according to @neon zenith
no
not at all
not to mention he doesnt know anything minecraft
well the guy's "attempt" towards christian was not really json ui related
but considering he doesnt know molang queries
its obvious
so i just decided to report it to staff team
and after that
the guy is gone
is there any possible way of implementing zero width spaces?
either in json or in scripting? (preferably scripting)
hi
either the app currently installed is a higher version than the one you are installing
or the app signature is not the same
Cracked minecraft spotted.
Is there's something wrong on being poor?
Hello, could you help me?
I modified the chest-ui from: https://github.com/Herobrine643928/Chest-UI
I modified generic_27.png
but when I define the title, it doesn't work, it sends the default form.
not really, but we don't support piracy/cracked version of minecraft here.
feels free to try and see what happens 👍
did you fix that?
you can fix it directly from the npc component
"cross_hair_indicator":{
"type":"image",
"texture":"$icon",
"size":[16, 16],
"offset":[-1, 10],
"layer":10,
"anchor_from":"center",
"bindings":[
{
"binding_type":"global",
"binding_name":"#hud_title_text_string"
},
{
"binding_type": "view",
"source_property_name":"(('%.8s'*#hud_title_text_string='textures'))",
"target_property_name": "#visible"
}
],
"$icon":"#hud_title_text_string"
},
Why doesn't the icon appear?
I want the title to be the path of the image to be displayed...
I have never worked with json ui
When I put
"$icon":"texture/items/diamond"
it works
hey, uhh
i got the vanilla chest_screen UI file, idk anything about UI so,
here it is
idk what should i change in that chest ui and how to make a custom UI for a specific entity,
How do you fix this?
@left yew hello i saw that you are a zeqa designer, how did you make the horizontal bar in the scoreboard ?
?
umiikot nga hahahaa
Uyy bossing marunong ka gumawa custom chest? Tapos chest ui? Ung parang na bloblock niya ibang slots
Pang crates lang sana sa smp
oo naman, pero mas suggest ko gumamit ka ng server form kaso scripts sya hindi entity inventory
tska may template na si ano ng chest ui
Ung sa UI nakita ko nayon baks HAHAHA
Nahihirapan ako ma gets
ahh
Sa randomizer pwede nmn gumamit ng comand
Ung itsura ng chest pati ung loob
What i mean loob is ung babaguhin mo interface ng boxes
so sa container screen
pwede naman i-disable ung slots kunwari, anim na slot lang ang gagamitin sa isang chest (o kung anong block gagamitin) then ung hindi gagamitin i disable
Paano un
ahh edi mas applicable tong template ni herobrine64 https://github.com/Herobrine643928/Chest-UI
tapos pwede mong paltan ung background
since isang buong image ung gamit na background
Un sana
Para gagawa na'ko ng background
Per chest yan pwede diba?
oo
ilang container slots ba ung block na gagamitin mo
Tools and armor to
ahh
Pickaxe, axe, sword, shover, hoe, rod, helmet, leggings, chestplate, boots
10 pala
HAHAHHAA
wait, entity bato or block entity
Hindi ata niya binago background
Alam ko binago niya yan o hindi lng visible sa bedrock?
geyser ba yan?
Pero pwede nmn ata mapalitan sa template ni ano noh?
Oo
Naka geyser sila
Duga may mga premade cosme and chest
yea kailangan may pack din sa bedrock
Sa bedrock sariling gawa eh
para mapaltan ung bg
Lugi sa java plug ins active HAHAHA
yea
Bedrock endstone nlng gumagalaw
yea
Madali lng ata palitan iimport mo lng ung premade mong chesy ui
Pwede nmn gumawa non sa gimp noh?
Gimp ginagamir ko pang gawa pixel items
Pareparehas ng fishing tournament hiraya, europhia, bluecraft HAHHAA
Lagay ko kaya muka ko para ma motivate sila
Gawa ka tutorial about this pre
Marami manonood niyan
Baka mag donate pa'ko sa'yo
Beginner plngg ako sa json kaya mej hindi pa'ko nakakagets
Custom tools plng nagagawa ko
Sge thank you try ko ung sineend mong template
sge
How to use json ui?
U have js tag but u don't know how ;-;
js and json ui is different (their tag is also different)
yea
read through the docs to get started
In bedrock wiki right?
yea
come on, just use textures/ui/White, no need for 9-slice knowledges, just set size
how can i change a labels text to a actionbar value?
Oops i forgot that the pack is "open-source" 
Sorry
guys, does anyone know how to connect the custom UI to my custom entity?
custom chest UI & entity inventory type is container
i just want to know how to connect the UI to the entity
is it by naming the entity a specific name?
i got it, now I'll start making the custom UI
hopefully i did something right
Love how no one can actually make something themself anymore.
no wonder why people gatekeeping their json-ui knowledge lol.
hey, can u tell me what's wrong here?
{
"namespace": "chest",
"chest_label": {
"$new_container_title|default": "$container_title",
"$grinder_name": "$container_title",
"text": "$new_container_title"
},
//
//
//
//
"[email protected]_screen_common": {
"$close_on_player_hurt|default": true,
"$use_custom_pocket_toast|default": false,
"close_on_player_hurt": "$close_on_player_hurt",
"use_custom_pocket_toast": "$use_custom_pocket_toast",
"modifications": [
{
"array_name": "variables",
"operation": "insert_back",
"value": [
{
"requires": "($desktop_screen and ($new_container_title = '§r§r§rgrinder'))",
"$use_custom_pocket_toast": true,
"$screen_content": "chest.large_chest_panel",
"$screen_bg_content": "common.screen_background",
"$screen_background_alpha": 0.4
}
]
}
]
}
}```
nope.
looking at it, you might be overused |default on variables
Also, the specified variable must be on top or original source. you can't just place the specified variable on top of the existing origin variable.
not like this.
"element_origin": {
"$variable|default": "hi"
},
"another_element": {
...
"text": "$variable"
}
"root_panel": {
...
"controls": [
{ "[email protected]_element": {}}
]
}```
instead
"root_panel": {
...
"$variable": "hi",
"controls": [
...
]
}
i have no idea how to simplify this but — think of it like a file manager, the variable you wanted must be the source folder, the inside of that folder is anything you want to do with that variable.
you can't do the opposite way.
i fr dont know anything about UI
just paste $new_container_title thing from that chest label to small chest screen and see if it works
like this?
{
"namespace": "chest",
"chest_label": {
"$new_container_title|default": "$container_title",
"$grinder_name": "$container_title",
"text": "$new_container_title"
},
//
//
//
//
"[email protected]_screen_common": {
"$close_on_player_hurt|default": true,
"$use_custom_pocket_toast|default": false,
"close_on_player_hurt": "$close_on_player_hurt",
→→ "$new_container_title|default": "$container_title",
"use_custom_pocket_toast": "$use_custom_pocket_toast",
"modifications": [
{
"array_name": "variables",
"operation": "insert_back",
"value": [
{
"requires": "($desktop_screen and ($new_container_title = '§r§r§rgrinder'))",
"$use_custom_pocket_toast": true,
"$screen_content": "chest.large_chest_panel",
"$screen_bg_content": "common.screen_background",
"$screen_background_alpha": 0.4
}
]
}
]
}
}```?
yeah also remove |default on that same variable.
it works now, but extremely huge
bec i used 'chest.large_chest_screen'
you might wanna figure out by yourself.
i don't really have any clues on why that thing goes huge due to having the limited info you gave me.
also I'm pretty busy too
hi there, what is the element that shows the actionbar text when you change a slot to another item?
items names are not actionbar
pretty good for someone who doesn't know UI
the entity has 3 slots only
perfect!
did you bind it to the name
wait, isn't their pack encrypted?
did i miss some updates...
uhh, i think they won't like it being decrypted
basically it doesn't concern JSON UI, just a custom font
but i have no choice 
custom font? as in glyph?
hey, how can i add a text to the chest UI?
specifically at grinder_panel_top_half
i want to add a " Grinder " text in the top left
add a label element
here is an example :
"grinder_panel_top_half": {
"type": "panel",
"controls": [
{
"[email protected]_label": {
"text": "your text",
}
}
]
}
you can also directly put a translation key (and add it in a .lang file)
umm
i think i can change the location of it right?
use offset
"offset": [ location ]
"offset": [x, y]
understood!
wait...
guys
Is the custom entity UI available inside of the marketplace addons?
there are encrypted
?
this UI isn't allowed?
or is it allowed if i make it inside of a subpack?
why shouldn't be allowed ? i don't understand 
someone kept telling me that any kind of UI isn't allowed
I'll see if it really is not allowed
I really really hope it's allowed, i dont want to upload my addon somewhere else
no idea honestly
iirc modifying vanilla files in marketplace addons is not allowed since marketplace addons have to be compatible with each other and you can't do that if you modify vanilla files and since json ui relies on modifying vanilla files, json ui is not allowed
someone correct if i'm wrong
so, if i somehow made a custom UI without using vanilla files, it will be allowed?
yes but you can't do that
even if i use chest_screen ui just to get the entity name?
because the only way to display your ui is to add it to some vanilla screen which means you need to modify some vanilla files
They must allow RP changes to vanilla files or foxys markers pack wouldn’t have been approved, uses the armor stand entity file
Yeah I’m not sure either to be honest just going off that one example
is this a custom UI?
Anyway to use a binding on an array?
"property_bag": {
"#block_position": [ 75, 69, 75.5 ],
}
I assume not
nah this is a vanilla UI, mojang obviously made this
brother, can you read?

editing vanilla files is only allowed on maps
right, that's how it was
soo, its impossible to make custom UI for entity inventory without editing vanilla ui, right?
probably
unless there is some workaround
Couldn't you use modifcations?
i will ask about the guideline and see if there is anything specific about it
i don't think this would work,
imagine you have 2 resource packs one modifiys the hud screen and the other modifys hud screen aswell, what i think what happens is that the game looks through both resource packs and sees that both contain the hud json file, since both can't be loaded at the same time, the game choses only one, breaking the other resource pack, i haven't tested if that is actually the case so take what i say with a grain of salt
Well it would depend on the mode
cuz some replace some add
similarly to this, red = custom place holder item, white = the available slots
without using any kind of custom UI
i don't understand, what do you mean?
-# editing the item lock texture
but, u cant use hoppers in this way bec hoppers will not take out the output items and it will kept taking off the frist place holder item
Example usage of modifcation
Possible operators
i know how modifications work, what i said would still apply if it was the case.
I think it just runs in reverse order
wait
where it replaces/inserts based on order
i can use vanilla ui on maps right?
yes
and maps now have random seed feature
i could make my addon based on map with the UI, the only downside is players cannot add the addon on their worlds
they have to make a new world instead
they can't?
i think,
custom maps addons cannot be explored and used on other worlds
u can use ur other worlds seeds only
they HAVE to create a new world if they want to use the addon
except if mojang somehow allows me to use custom UI
not even in my dreams tho
no i left it looked better that way
how do you edit the ui i cant find anything on the crafting table or the smithing table
How to edit this on textfield ?
I found it
Can you send to me?
@acoustic ivy
I wanna know cool json ui tricks, how would I toggle an image on the player's screen without title or actionbar? And if I can, would it be compatible with other add-ons?
What you can do is is show an image when a toggle is toggled
@sharp zinc
Wether it's compatible with other addons is compleletly dependet on the 2 addons
Oh
A resource side toggle or server side? I was thinking of toggling the image server side
What do you mean server side? Also with player screen do you mean the hud?
@sharp zinc
Like toggling an image when the player gets hurt via script
I mean the HUD ye
Like when you can see the hotbar and hearts n all that
Ahh, well that requires the titlebar or the actionbar
What the problem with those?
I didn't want to limit the title and actionbar usage
cause a lot of other add-ons use those to display stuff
Hmm
how do I display gamertag on a serverform
is it script
or is it possible via .json
also with icon
Good for you bud, have fun.
Bro, this whole thing started because the pack was leaked in 2022, and atp it's the most skidded thing on minecraft bedrock.
And it's never gonna stop, because people think it's okay to do so and blah blah blah.
I love putting hours of work into stuff and then have people like @hybrid aurora act all cool when they get to skid something
Didn't you get paid for it anyways
Like I genuinely can't catch a break, I've found at least 4 servers using our stuff within the LAST MONTH.
So what does it matter if some kids make their private projects with it
If they're non commercial
Idk about him
Mate still
Go learn some shit and just quit skidding
Like 🤦♂️
This is the exact reason why I don't personally share stuff, and I see why others don't aswell. Because people will skid and not even give credit or ask for permission
I ask you
Before
Yeah what do you think the answer is buddy. It's obv gonna be no
the unbalanced json ui community:
Do i see another skidding issue
greetings json-ui people, kindly use "client" on your json-ui pack and watch the world burn.
yes, being taken down by microsoft
apparently microsoft AI thing taking down any minecraft vids if it contains "client" on it, even json-ui packs lmao
a simplest solution, no additional textures needed:
{
"whiteline_or_underscore_thingy": {
"type": "image",
"texture": "textures/ui/White",
"color": "white", // or a rgb vector
"size": [ "100%", 1 ] // this 1 matters the most
}
}
white is already white
you can override colors, it's similar to tinting
oof
how do you guys deal with it?
a legal team? or all by your own and devs
Does anyone know how to do this?
That is probably the used of models and paperdoll
You can add the model along side with the player i think
oh how?
@acoustic ivy
Is possible to make sidebar only effect scoreboard with name
Nop
can you play a sound on hover?
guys is there a way to add blur to the screen?
no
What's happening? When I open it in the menu for the first time, it's not visible, but when I place it in the chat and open the menu again, it's already visible.
my search icon is missing does anyone have a way to fix it?
where to find $search_index
hardcoded
do you guys have a better idea to make this look cooler?
remove "choose your attachments"
ight
make this
uh
well, the entity has 12 slots, 9 in the middle but idk how can i move those 3 other slots into some specific locations
Do a stack panel and change gird y size to make it only render the first 3 slots, and with the stack panel move the slot to where you want
"forge_grid": {
"type": "grid",
"size": [ 57, 57 ],
"anchor_from": "top_left",
"anchor_to": "top_left",
"grid_dimensions": [ 3, 3 ],
"grid_item_template": "chest.chest_grid_item",
"collection_name": "container_items"
},```should be here right?
If You change to 57, 20 (For example) It will cause only the first 3 slots to be displayed
should render the last 3 slots, not the first 3
"grid_dimension": [ 3, 1 ] will disable other slots and make only the first 3 visible
Then just do the stack panel part, using collection index
i have to move them, each one will have it own offset
Use 8,9,10 indexes
Indexes start at 0
by adding "controls"?
{
"one@input_grid_panel": {
"grid_position": [ 0, 0 ],
"ignored": false,
"controls": [
{
"[email protected]_grid_item": {
"offset": [ 58, 48 ], //change this if u want to move this grid
"size": [ 26, 26 ],
"$cell_overlay_ref": "chest.center_image",
"$background_images|default": "cell_image_blank",
"$item_renderer_panel_size|default": [ 26, 26 ],
"$item_renderer_size|default": [ 20, 20 ]
}
},
{
"[email protected]_image_center":{
"size":[28,28],
"offset": [ 58, 48 ]
}
}
]
}
},```from disenchanting addon
"movable_slot": {
"type": "stack_panel",
"orientation": "horizontal",
"size": [
18,
18
],
"layer": 1,
"$slot_index": 0,
"collection_name": "container_items",
"controls": [
{
"[email protected]_gird_item": {
"collection_index": "$slot_index"
}
}
]
}```
Now just do something like
"panel",
"controls": [
{
"[email protected]_slot"{
"$slot_index": 8,
"offset": [0,0]
}
}
]```
hmmm
Or well, that's what the AI told me (joke)
Add that inside the controls that is next to the gird you made, so that they are brothers
And movable add it in chest from the root
"movable_slot": {
"type": "stack_panel",
"orientation": "horizontal",
"size": [ 18, 18 ],
"layer": 1,
"$slot_index": 0,
"collection_name": "container_items",
"controls": [
{
"[email protected]_gird_item": {
"collection_index": "$slot_index"
}
}
]
},
"forge_grid": {
"type": "grid",
"size": [ 57, 57 ],
"anchor_from": "top_left",
"anchor_to": "top_left",
"grid_dimensions": [ 3, 3 ],
"grid_item_template": "chest.chest_grid_item",
"collection_name": "container_items"
"controls": [ {
"[email protected]_slots": { "$slot_index": 10, "offset": [ 0, 0 ] }
}, {
"[email protected]_slots": { "$slot_index": 11, "offset": [ 0, 0 ] }
}, {
"[email protected]_slots": { "$slot_index": 13, "offset": [ 0, 0 ] }
} } ]
},```?
oh, my bad
It doesn't look good
that shouldn't be inside the grid
right?
it should be inside the UI panel
"grinder_panel_top_half": {
"type": "panel",
"size": [ "100%", "50%" ],
"offset": [ 18, 25 ],
"anchor_to": "top_left",
"anchor_from": "top_left",
"controls": [
{ "[email protected]_label": { "text": "Grinder", "offset": [ -11, -17] } },
{ "[email protected]_grid": {"offset": [ 41, -4 ] } },
{ "[email protected]_slots": { "$slot_index": 10, "offset": [ 0, 0 ] } },
{ "[email protected]_slots": { "$slot_index": 11, "offset": [ 0, 0 ] } },
{ "[email protected]_slots": { "$slot_index": 13, "offset": [ 0, 0 ] } }
]
},```its now inside the UI panel
"namespace": "chest",
"movable_slot": {
"type": "stack_panel",
"orientation": "horizontal",
"size": [
18,
18
],
"layer": 1,
"$slot_index": 0,
"collection_name": "container_items",
"controls": [
{
"[email protected]_gird_item": {
"collection_index": "$slot_index"
}
}
]
},
{
"type":"panel",
"controls": [
{
"custom_buttons": {
"type": "panel",
"controls": [
{
"[email protected]_slot":{}
}
]
}
}
},
{
"forge_gird": {}
}
]
}```
I don't know your code but this way you can get an idea
this is my code
"movable_slot": {
"type": "stack_panel",
"orientation": "horizontal",
"size": [ 18, 18 ],
"layer": 1,
"$slot_index": 0,
"collection_name": "container_items",
"controls": [
{
"[email protected]_gird_item": {
"collection_index": "$slot_index"
}
}
]
},
"forge_grid": {
"type": "grid",
"size": [ 57, 57 ],
"anchor_from": "top_left",
"anchor_to": "top_left",
"grid_dimensions": [ 3, 3 ],
"grid_item_template": "chest.chest_grid_item",
"collection_name": "container_items"
},
"forge_panel_top_half": {
"type": "panel",
"size": [ "100%", "50%" ],
"offset": [ 18, 25 ],
"anchor_to": "top_left",
"anchor_from": "top_left",
"controls": [
{ "[email protected]_label": { "text": "Forge", "offset": [ -11, -17] } },
{ "[email protected]_grid": {"offset": [ 41, -4 ] } },
{ "[email protected]_slots": { "$slot_index": 10, "offset": [ 0, 0 ] } },
{ "[email protected]_slots": { "$slot_index": 11, "offset": [ 0, 0 ] } },
{ "[email protected]_slots": { "$slot_index": 13, "offset": [ 0, 0 ] } }
]
},```
That could work, however the slots are 8, 9, 10 If you add more slots than there are in the inventory it could crash or simply not work.
wait a moment
should i put that here:
"forge_panel": {
"type": "panel",
"controls": [```?
You can place it almost anywhere except the gird as it would create many buttons
Try it
Also, is the namespace chest?
ya
Work?
dame issue
"namespace": "chest",
"movable_slot": {
"type": "stack_panel",
"orientation": "horizontal",
"size": [ 18, 18 ],
"layer": 1,
"$slot_index": 0,
"collection_name": "container_items",
"controls": [
{
"[email protected]_gird_item": {
"collection_index": "$slot_index"
}
}
]
},
ohh
slot not slots
my bad
ugh
It says @chest or the element inside it was not found
Can you show me your slot creator?
what else
i think it calls forge_grid
Send your code
"movable_slots": {
"type": "stack_panel",
"orientation": "horizontal",
"size": [ 18, 18 ],
"layer": 1,
"$slot_index": 0,
"collection_name": "container_items",
"controls": [
{
"[email protected]_gird_item": {
"collection_index": "$slot_index"
}
}
]
},
"forge_grid": {
"type": "grid",
"size": [ 57, 57 ],
"anchor_from": "top_left",
"anchor_to": "top_left",
"grid_dimensions": [ 3, 3 ],
"grid_item_template": "chest.chest_grid_item",
"collection_name": "container_items"
},
//
"forge_panel_top_half": {
"type": "panel",
"size": [ "100%", "50%" ],
"offset": [ 18, 25 ],
"anchor_to": "top_left",
"anchor_from": "top_left",
"controls": [
{ "[email protected]_label": { "text": "Forge", "offset": [ -11, -17] } },
{ "[email protected]_grid": {"offset": [ 41, -4 ] } },
{ "[email protected]_slots": { "$slot_index": 8, "offset": [ -11, -17 ] } },
{ "[email protected]_slots": { "$slot_index": 9, "offset": [ 11, 17 ] } },
{ "[email protected]_slots": { "$slot_index": 10, "offset": [ -11, 17 ] } }
]
},```
i think it should be like this
"forge_grid": {
"type": "grid",
"size": [ 57, 57 ],
"anchor_from": "top_left",
"anchor_to": "top_left",
"grid_dimensions": [ 3, 3 ],
"grid_item_template": "chest.chest_grid_item",
"collection_name": "container_items"
},
"movable_slots": {
"type": "stack_panel",
"orientation": "horizontal",
"size": [ 18, 18 ],
"layer": 1,
"$slot_index": 0,
"collection_name": "container_items",
"controls": [
{
"[email protected]_gird_item": {
"collection_index": "$slot_index"
}
}
]
},
//
"forge_panel_top_half": {
"type": "panel",
"size": [ "100%", "50%" ],
"offset": [ 18, 25 ],
"anchor_to": "top_left",
"anchor_from": "top_left",
"controls": [
{ "[email protected]_label": { "text": "Forge", "offset": [ -11, -17] } },
{ "[email protected]_grid": {"offset": [ 41, -4 ] } },
{ "[email protected]_slots": { "$slot_index": 8, "offset": [ -11, -17 ] } },
{ "[email protected]_slots": { "$slot_index": 9, "offset": [ 11, 17 ] } },
{ "[email protected]_slots": { "$slot_index": 10, "offset": [ -11, 17 ] } }
]
},```
um
from "[email protected]_gird_item": {"collection_index": "$slot_index"}
to "[email protected]_item": {"collection_index": "$slot_index"}?
idk
No
fromjson [email protected]_gird_item
Tojson [email protected]_grid_item
Correct
it works!
Excellent
I'll see the functionality of those 9 slots in the middle


