#JSON-UI General
1 messages Β· Page 45 of 1
Elements that pre-loaded will increase loading time.
since settings are made out of toggles, i decided to make them some factory that only loads once needed.
this will decrease loading time alot for other screens but settings might be a exception since it loads up a big UI files too.
but managed to decrease it anyways
I'll try using factories then
I smell injustice, oppression, corruption, nepotism, embezzlement, looting by members of the DPR but the people have fled abroad,.
And I just a json ui programer who getting paid for $5/once
anyway, this is place for learning, not for hiring job. And I'm still don't know how to do zero factories π
π€¨
can i see some your json ui? screenshot
you can see it on Venity Server
nah just do something new in here, commission only later
what is it?
custom NPC dialouge
??
I already made that before
what you mean?
this
No, I mean I already made that before. and It's like from that one RPG game
yeah i took a little reference from rpgm games
why not making the close button inside the dialog panel?
i dont want
because that's the concept I want
ok
manage to get ai to generate the image then scaled them down and fixed up a few pixels
hi, I want to force show the health bar and hunger bar but in gamemode c, how can i do that in hud_screen?
{
"namespace": "hud",
"heart_renderer": {
"alpha": 1,
"visible": true
},
"hunger_renderer": {
"alpha": 1,
"visible": true
}
}```
i tried this but for sure it doesnt work
try this
"heart_renderer": {
"type": "custom",
"size": [ 1, 1 ],
"renderer": "heart_renderer",
"layer": 1,
"bindings": [
{
"binding_name": "#hotbar_visible",
"binding_name_override": "#visible"
}
]
}
i already turned off my pc, i forgot what i did to force show the heart renderer π but iirc i modified the bindings to force show that bar
thanks
cool
but what about the xp bar
same bindings
is it this one, there are so many xp components
find this and try to change the value with hotbar_visible
ops
wait
this one ig π
#hotbar_with_xp_bar to #hotbar_visible
alr lemme testing it out
it worksss
but somehow the item text is still in creative spot
try to change the item_text offset
okay, ima mess with the file, thanks 
here ^
π
Hi I'd like to use an url as server form button image but it doesn't display it until il refresh the menu by chaning windows screen
"controls": [
{
"graphic_image": {
"type": "image",
"layer": 1,
"size": ["100% - 3px", "100% - 3px"],
"bindings": [
{
"binding_name": "#form_button_texture",
"binding_name_override": "#texture",
"binding_type": "collection",
"binding_collection_name": "form_buttons"
},
{
"binding_name": "#form_button_texture_file_system",
"binding_name_override": "#texture_file_system",
"binding_type": "collection",
"binding_collection_name": "form_buttons"
},
{
"binding_type": "view",
"source_property_name": "(not ((#texture = '') or (#texture = 'loading')))",
"target_property_name": "#visible"
}
]
}
},
{
"[email protected]_loading_bars": {
"size": [48, 6],
"offset": [0, 0],
"bindings": [
{
"binding_type": "view",
"source_control_name": "image",
"resolve_sibling_scope": true,
"source_property_name": "(#texture = 'loading')",
"target_property_name": "#visible"
}
]
}
}
]
Does anyone know I can fix that ?
no clue why
how to put scroll bar in server_form?
maybeyou have cache screen: true?
No π
hmm hard to say
@weak cape can you help me?
cant help you much
i am outdoors so cant access my pc
i will try to find some example code
ok
{
"content_panel": {
"type": "panel",
"controls": [
{
"[email protected]_panel": {
"$show_background": false,
"$scrolling_content": "gamemodes-menu.scroll_content",
"$scroll_box_touch_image_control": "common-mineville.scroll_box_touch_image_control",
"$scroll_box_mouse_image_control": "common-mineville.scroll_box_mouse_image_control",
"$scroll_size": [
"5px",
"100% - 12px"
],
"$scroll_bar_left_padding_size": [
"0px",
"0px"
],
"$scroll_bar_right_padding_size": [
"8px",
"0px"
]
}
}
]
}
}
source control name graphic_image
use not #visible
Any way to show something when player is underwater?
This bindings dont seems to work
In the meantime I will do it like this
Hello!
Is it possible to display preserve title text in the player inventory? I want to display currency in the inventory
nope
how do i re-use the variable without duping the binding?
If you mean how to carry the #text binding down, add this binding to map_text2:
"binding_type": "view",
"source_control_name": "map_text",
"resolve_sibling_scope": false, //You need to set this to true if grabbing it from a sibling. In your case, its parent to child
"source_property_name": "#text",
"target_property_name": "#text"
}```
thanks
Is there any way to separate the absorption hearts from the standard heart renderer?
bung
Please
is it possible to disable the whole inventory just for survival players?
right now i have it so when i press e the inventory doesnt show but it still puts me on a blank screen. Im trying to make it doesnt do anything when i press E
i dont think you can do that
if I messed up the server form, and made it just not show up, the game crashed because there was no screen to put the player in
i assume the same would happen with the inventory, but its only an assumption
Hello buddy, in acode has intellisence for bedrock coding?
It's an IDE on android/iphone
oh makes sense
Can it? I tried a lot of ways but still bugs, binding collection length or whether from preserved text did not update so the factory does not make the panel, but if for example I scroll/click any hotbar slot factory instead update
{
"title_1": {
"type": "collection_panel",
"size": [ "100%cm", "100%cm" ],
"collection_name": "explorer_title_items",
"factory": {
"name": "explorer_title_factory",
"control_name": "hud_ds-ext.explorer_title_panel"
},
"bindings": [
{
"binding_type": "view",
"source_control_name": "explorer_title_data_binding",
"source_property_name": "((('%.10s' * #preserved_text) = 'dimz-ext:a') * 1)",
"target_property_name": "#collection_length"
}
]
}
}
for example
I haven't tried with factory with collection length
I believe I was talking about the normal factory
ahh this is very bad, I'm already trying to use binding condition and others still don't want to update
The code looks like it should work. But idk why it's not
I tried something similar just now. The factory does generate the content properly. So what exactly are you having problem with. Accessing bindings inside that control? That doesn't work sometimes. I've faced this before
hmm I'm a bit confused about how to explain it, if there is input, the factory can do it, but if there isn't, sometimes it can, sometimes it can't
How much of this is possible and will I live to finish it 
Looks very cool
its all possible
all possible
but complicated
how do i make ~~subtitle_background ~~title_background invis
"hud_title_text/subtitle_frame/subtitle_background" alpha: 0
"hud_title_text/title_frame/title_background": {"alpha": 0}
but putting it in the controls don't work
i meant title in my first message
ok nvm, i can just hide the whole title_frame instead
this is how I actually make the title and subtitle backgrounds invisible
"hud_title_text/title_frame/title_background": {
"modifications": [
{
"array_name": "bindings",
"operation": "insert_back",
"value": [
{
"binding_name": "#hud_title_text_string"
},
{
"binding_type": "view",
"source_property_name": "((#hud_title_text_string - 'update') = #hud_title_text_string)",
"target_property_name": "#visible"
}
]
}
]
},
"hud_title_text/subtitle_frame/subtitle_background": {
"modifications": [
{
"array_name": "bindings",
"operation": "insert_back",
"value": [
{
"binding_name": "#hud_subtitle_text_string"
},
{
"binding_type": "view",
"source_property_name": "((#hud_subtitle_text_string - 'update') = #hud_subtitle_text_string)",
"target_property_name": "#visible"
}
]
}
]
}
do i need to hide hud_title_text/title_frame/title too
i am using it as a preserved text, i was hiding hud_title_text/title_frame/title but the bg was still there
try this, just change the update to what ever you want
"hud_title_text/title_frame/title_background": {
"modifications": [
{
"array_name": "bindings",
"operation": "insert_back",
"value": [
{
"binding_name": "#hud_title_text_string"
},
{
"binding_type": "view",
"source_property_name": "((#hud_title_text_string - 'update') = #hud_title_text_string)",
"target_property_name": "#visible"
}
]
}
]
}
"hud_title_text/title_frame/title": {
"$hud_string": "minato_map~",
"modifications": [
{
"array_name": "bindings",
"operation": "insert_back",
"value": {
"binding_type": "view",
"source_property_name": "(not(('%.11s' * #text) = $hud_string))",
"target_property_name": "#visible"
}
}
]
},
"hud_title_text/title_frame/title_background": {
"$hud_string": "minato_map~",
"modifications": [
{
"array_name": "bindings",
"operation": "insert_back",
"value": {
"binding_type": "view",
"source_property_name": "(not(('%.11s' * #text) = $hud_string))",
"target_property_name": "#visible"
}
}
]
}
same, but didn't work
weird
great
that's so cool, how did you guys do that minimap
ohhhh
so all the pixels here are text?
anyway, is it possible to disable these buttons?
Yeah
are you gonna release that in public? π
If i get it to perform better
once you disable it, you can't use your recipe book again
the array most be in vanilla files to insert to it?
"hud_title_text/title_frame": {
"$hud_string": "",
"bindings": [
{
"binding_type": "view",
"source_control_name": "title",
"source_property_name": "('%.11s' * #text = $hud_string)",
"target_property_name": "#visible"
}
]
}
Something like this should work fine
And it needs to be in hud_screen.json
It'll hide both the title and the background
It might not work if you have any control named "title" in your code other than the title itself
i want to remove the small black border im on the pause_screen is it possible ?
and also i want to add background but i dont under stand who she work
"$border_visible": false
Inside your button
Is it possible to make modals just like the vanilla ones which are triggered by buttons (or toggles)?
Oh like the one when you try to close Minecraft. A popup shows up
The popup that's displayed when trying to close Minecraft is just a message form
You can open this via scripting using new MessageFormData()
You mean to show a screen when you press a toggle or button, if so, it is possible
Oh right.. forgot I was in JSON-UI lol, completely passed by me when they said buttons π it's 5am
Thx you
i found
#1311814370975551508 message
It's an example, but in your case you could use the template of the modal screen
That's the thing I'm having trouble with
It'd be better if there was a template for that
Assuming you added the background in the form design,
First change the layer value to an integer not a string
Remove the offset for now
"layer": 1, //not "1"
"size": [700, 700]
That probably means you didn't add it to the form design
ok
Sorry to bother
About the drop-down
Did you modify the drop-down element for this or abused toggles
Anyone has any idea how I can making the glowing effect (from the glowing arrow)?
Not JSON UI related
ohh where do i post?
Well, not sure. Maybe resource packs?
its more like renderer thing
JSON UI is just the user interface
oh okay good luck finding any help
im hoping its just an entity material
lol
tyy! ive been tryna figure this out for a while
rewrote it entirely yeah
it still works mainly the same but this time there's no dropdown visible box.
which, is still a glorified toggle abuse.
how can i get my item aux id
is there a way to get item lore and check if it contains a specific word?
I see
I've been told that drop-down elements are unusable outside vanilla content
Looks like toggles is the option
Dropdown element is just a toggles that trying to be a dropdown.
you can basically use it everywhere as long the radio toggles is functional.
Yeah but they use input panel, so if something is wrong the game doesn't take any input after opening the drop-down menu. I don't know what I did wrong but I faced this issue. So I had to reopen Minecraft every time which was getting annoying
So I ended up using radio toggles to make something similar to drop-down
With enough creativity, I think you can do the similar
That's weird, considering that it worked everytime for me and never had any issue whatsoever. though i barely used them since there's not much stuff that requires them, so I opted to create my own anyways.
The probable reason is that you made your own while I was trying to customize common.dropdown
I do everything on my own so i know what's wrong and fix it directly.
though i might reimplement vanilla dropdown but with some animation spices on it.
is it possible to use string formatting like '%.' + #numbers + 's'?
About what?
can i use variables defined in other elements in another element? like:
element_a: {
"$test": "test"
}
element_b: {
"text":"$test"
}
mmm maybe this is a bit of a silly question., i have tried reading on wikii but i didnt get anything
i tried to do something like that but it didnt really work so i want to know how i can do it
#1067870274894172260 message
thx
i have tried to use textfield in my modal (console), but seems like no keyboard was popping up. any fix for this?
when we do size 100%% instead of 100% what does it mean ?
100%% is a thing???
im guessing 100%% = 1.0%
so just 1%
I've never used 100%% even by mistake
same
When 100%% is even used lmao
It's probably a typo
100%% does not exist.
since like, percentage sizes is just a calculated size of your screen or the element parent size.
if the size is invalid, it'll just default it to "default", which. is 100% as usual.
ohhhhhhhh
100%% and 100% are different
try it
This is the same thing except that %% is multiplied by 2.
this was never used by mojang in any way and it's kinda useless ngl
it's likely an unused thing that is still working.
or likely a bug since it's 2 %s and instead it's duplicated.
Looking into it, yeah this is a bug.
An interesting bug for sure.
Adding more % is just like adding more numbers in Γ.
25%%%% will get you 100%
or 10%%%%%%%%%% will get you 100%
Interesting.
new sizing method dropped π£οΈ π₯
fyi - * or Γ works on percentage size btw
i suppose another weird way to make people confused.
gotdamn even 5%%%%%%%%%%%%%%%%%%%% works as 100%
what is this mojang
bro i'm the author omgggg
i have to place a brick in the wiki now π
First to github wins βοΈ π€
nah fr talk tho, wack bug
yeah we're no making any docs on this i was joking
json ui is trash lmao i'm sure we can find other bizarre bugs like this
good job on finding mistype that somehow was a funny bug
bro why
What the heck!!
Why does this work
im kidding lol
cuz i find it
it's a bug so that's dumb

maybe it's ore ui size 
these so-called obfuscation will have a field with this one
1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% so technically this is 100%?
lemme try.
it is LMAO
xD
i need to try 0.5 rq
this stupid thing 0.5%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% works as 100%
what the hell
why is this even a thing
π£οΈ
i feel like people is gonna do that just to increase their file size π
This'll look nice :)
this thing works as 100%.
At this rate we will probably forget the number at the front :)
I was literally just thinking about 0.1 ππ
0.01 when π
at this point my file will turn into 1mb π
i hate how it doesn't crash or bug out whatsoever
it just works
no way π
Jezzz
im NOT doing that
I just wonder if it affects performance
chat gpt would fail also lol
i don''t think it's affect performance at all, atleast in my end anyways
no stutters, no performance drop, just normal
add 10000 such panels
or maybe 5000
I bet 1000 wont be noticeable
or put it inside hotbar grid item in hud, then it should re render each time tou change slot
i ain't adding 1000 or more panels jesus christ
well, that's okay I am too lazy also
we're just stress testing JSON-UI now? lol
but actually that's the most reliable way to test it lol
or
also not a big fan of adding too many stuff that will turn into 1mb or more, my IDE does not like it.
i dont care
lol
π³
but generally its joke that such amount of lines create issues in vscode, like bro its not really much
17k aint much tbh
there's someone who wants me to deal over 100k~ of lines on a single file
yet still if I do some json syntax error it has 1/2sec delay
my IDE can't even open it
lol
however 100k is some serious number
yeah
also marketplace common file has 10k lines btw
even my neovim says no to 100k~ lines on a single file like wtf are we gonna do with it
is possible to use:
#color? And how can i use this using #form_text or #dialogtext
thats insane
atp rewrite this..
this looks like custom form ui stuff
you should be able to create new files for each custom form
Help
With?
its getting bigger lol
I think its JSON-ui bug
at the moment I am just too lazy to split it, because there are a lot of things here, I would bet that ~30 main modules and a alot of sub settings which is huge
use ui-def.json π
that file that helps u import files
u should organize this! itll make ur life simpler trust
nah, its all inserted to hud
itll take you 30 minutes to split. maybe even an hour max.. but the amount of time you will save is A LOT
amount of all things probably exceeds ~350 options, everything is customizable etc
yea I know
thats not just a guess! its confirmed that the more you structure your code, the less time wasted on subconciously procrastinating and trying to find specific parts of your code
Is that a custom function or what
Will look when i get home
Np
I mean, its not that bad because everything is working perfectly
so I literally rarely see whats inside here
even if I need I know structore and easily find things
yea thats true I should do it but agh
I am lazy ass lol
is my minecraft client broken or do grids crash clients nowadays?
i have an empty grid and it crashes my client π
How to create custom recipe guide ui in book
Easy way: big glyphs
how to fixed this?
this when using #form_button_text
are you trying to slice the first two string?
I don't know if it was supposed like that, but my tools said it was invalid
solved
idk why
new issue
this should be easy
can you solved it why not start on index weapon
so, you want to set the button based on category?
there are 2 options
first, is using bindings. Obviously you'll need an identifier to show it. Like type tools and the toggle state has set to true
second, you'll create a new button panel collection. This is not practical, but it way more simple. just set the button identifier and hide/show it using toggles
solved
is this a website? π
localhost website
It's not done yet. because I need more sample to make it works
Why is the animation not working, where did I go wrong?
Only the first sprite appears
Make sure you have the JSON file generated when exporting the animation
What do you mean? Isnβt it just the image, this part in the Json?
When you export the frames you get a json file with it, although you need to toggle that on first. That file is necessary to use aseprite flip book
Ah okay, I got it, thx
ups
i did not want to reply sorry minato π
can yo ugett radio toggles index? instead of the specific togglestate just get the index of the selected toggle?
no worry
maybe binding that change a variable value depending on the toggle
well, if thats the only way, would be easier to just skip the toggle in my situation
π
how to move UIs like inventory/container to different location?
is it possible with json UI
Definetly yes
will help you in a bit gotta go with my doggie
okay
are you free now?
π
still curious what the use of resolve_sibling_scope is
Omg so sorry i forgor
Gets The siblings bindings
Yeah normally source_control_name excludes sibling controls
But if resolve_sibling_scope is used it retrieves properties of sibling elements
It doesn't search the entire element tree only the sibling elements
oh that makes sense now, thanks
https://github.com/Mojang/bedrock-samples/blob/main/resource_pack/ui/inventory_screen.json#L=2573
Check the line 2573, I think this element is the main one, there apply offset or change anchor
Now change the slider style
it's still lacking in the layout
yeah I changed offset but it only visible in classic ui not pocket
how to make a label text use the "Input Keys"
localize set to true didn't work for me
only randomize element
that is a better obfuscation
then go to inventory_screen_pocket.json file
it is the samee bbut for phones
just randomize
Is there any possibility to revert portfolio screenshots order? Anyone had this idea before?
you can't deobfuscate that
wdym
that is a different type of deobfuscation, kind of like encryption
you cant get context clues via random letters
wdym encryption
its just random element names
encryption makes the file unreadable, obfuscation leaves the file with only changed names
{
"namespace": "server_form",
"root_panel": {
"type": "panel",
"size": [
32,
32
]
},
"container@server_form.root_panel": {},
"hello_label@container": {},
"modal_button@server_form.button": {},
"buttons_stack": {
"type": "stack_panel",
"factory": {
"name": "buttons",
"button": "server_form.dynamic_button",
"modal": "@server_form.modal_button"
}
}
}
although the names could be incorrect, it has deobfusctaed it
that is just AI assuming
Yeah, and it deobfuscated it correctly.
Yeah but you can't fully rely on that on a massive scale
that is why I said that is a good obfuscation
It is not a good obfuscation.
You can create a website or an application that allows users to easily deobfuscate themselves
You paste in the code and a sidebar pops up with all element names and refrences, you change one refrence and everything changes. You change another one, all refrences change.
There are definetly better options.
But again it only fully relies on ambiguous context clues. For example, a variable that has no meaning
AI can easily get fooled
I was talking about a website that did not use an AI, but search for the same element name and refrence and renamed it way more easily
But what would be the base for you to rename it?
It won't be accurate
unless you somehow solve the millenium problem
ty
good luck with my 18k lines file
Your own imagination. You dont need to know the exact file name to deobfuscate it. You can work with assumed file names.
GG, but tbh depends with which tool you do that. AI is easier, but a program or website I mentioned would deobfuscate it to some exctent
how to make a label text use the "Input Keys"
localize set to true didn't work for me
was looking into how the vanilla does it
Input keys
Like the glyphs?
can't you just copy-paste the glyph itself?
facts
it is not a glyph
it is a thing that change depending on the player input
if you are using a keyboard
:_input_key.forward: will display w
or whatever key binding you have
Again, as AmBro said, you can't use your "imagination". You're not spongebob. If the file has more than 1K lines, you can't deobfuscate that easily. Using AI might help but after few thousand lines, it will start hallucinating due to the large amount of ambiguous user data it receives.
Parent(source)
->Children(get) OK
Parent(get) OK
->Children(source)
Parent(get) OK
->Children_1(source)
->Children_1(source)
Parent
->Children_1(source)
->Children_2(get) require resolve sibling scope
Wait, I'll try it. However, how have you tested the play screen if it is been replaced by ORE-UI?
how to play screen
Not play screen
"how to play" is not ore ui
Ohhh
Again, last time: Is there any possibility to revert portfolio screenshots order? Anyone had this idea before?
It seems so, tried it
have you tried using langs? like this:
an.example=Press :_input_key.use: to enter
Then:
"text": "an.example"
What do you mean??
I mean, that in portfolio, when you take screenshots you seems to have first photo you made on the last page to right. So your latest photo will appear on the first page. I would like to reverse this order making on the first page photo taken as a first. (also in my colleague portfolio, he doesn't seem to have any order at all, just random photos)
yes
Well, good news
That thing is not hardcoded
Meaning you can do this:
"label": {
"type": "label",
"text": "#pre_process_custom.localized.text",
"bindings": [
{
"binding_name": "#pre_process_custom.localized.text"
}
]
}
custom.localized.text=Testing :_input_key.jump:
It just needs to be pre processed so the input key text can be replaced by Unicode
And this pre processing works for any localized text
i tried that before
the text supposed t show above the map
I sent the msg after trying it myself and it worked for me
i know, maybe i am doing something wrong
Maybe you didn't do anything wrong
It just works on how to play screen only
Like many other screen specific bindings
So it is unusable outside how to play screen
chat messages, tittleraw and other stuff support it
they don't use pre_process tho
Yeah that's the thing
I tried it in how to play screen and it worked but then I tried it on start screen but there it didn't work
i will look a bit into this
plan b
thats fire
My custom form works fine but as soon as I tab out or resize my minecraft window, 2 more buttons appear for some reason?
const form = new ActionFormData()
.title("Β§tΒ§fDoomminique :3")
.body("Pick one of the buttons below")
.button("Zombie", "textures/items/iron_shovel")
.button("Warrior", "textures/items/gold_shovel");
system.run(() => {
form.show(player).then((response) => {
if (response.canceled) return;
player.sendMessage(`You chose button ${response.selection + 1}`);
});
})
Also when I try clicking those ghost buttons, it's supposed to say You chose button ${response.selection + 1} but it doesn't say that for these ghost buttons
put binding condition once where you have the butttons limit
like grid maximum items
or just make the buttons invis if button text is empty
it happens when he refreshes minecraft window that makes the limit go up by the previous amount
what's the binding variable called to get the number of buttons?
arent you already using it?
oops wait yeah
"bindings": [
{
"binding_name": "#form_button_length",
"binding_name_override": "#maximum_grid_items"
}
]
im dum I didn't use that variable
yeah, i had that happen to me before
this fixes it
"scrolling_content": {
"type": "grid",
"size": ["100%", "100%c"],
"grid_dimensions": [3, 50],
"maximum_grid_items": "#maximum_grid_items",
"grid_item_template": "tmc_form.custom_button",
"grid_fill_direction": "vertical",
"grid_rescaling_type": "horizontal",
"factory": {
"name": "buttons",
"control_name": "tmc_form.custom_button"
},
"collection_name": "form_buttons",
"bindings": [
{
"binding_name": "#form_button_length",
"binding_name_override": "#maximum_grid_items"
}
]
},
still shows ghost buttons
nope, you dont need that line "maximum_grid_items": "#maximum_grid_items"
i was talking about adding bindings_condition: once
or you can use minatos way
I prefer yours cus its cleaner tbh
yeah butt i think it may cause more lag, cuz you are having more buttons each time you resize your window, just invisible
yeah, that is true
btw when i was playing with draggable containers, i stress tested minecraft
i moved that container as fast as possible around
and my fps dropped from stable 240 to 170
which was incredibly funny
"scrolling_content": {
"type": "grid",
"size": ["100%", "100%c"],
"grid_dimensions": [3, 50],
"maximum_grid_items": "#form_button_length",
"grid_item_template": "tmc_form.custom_button",
"grid_fill_direction": "vertical",
"grid_rescaling_type": "horizontal",
"factory": {
"name": "buttons",
"control_name": "tmc_form.custom_button"
},
"collection_name": "form_buttons",
"bindings": [
{
"binding_name": "#form_button_length",
"binding_condition": "once"
}
]
},
woah!
i guess that works
yikes, that half of your performance
it's different
then try with the maximum item thingy
"bindings": [
{
"binding_name": "#form_button_length",
"binding_name_override": "#maximum_grid_items",
"binding_condition": "once"
}
]
gottcha
but without
"maximum_grid_items": "#maximum_grid_items", in your element just the binding
yay
Also question
did you work with json animation
only a bit
The ones where you can change offset, site etc
a bit yeah
i think yeah
lemme check
yup
"screen_push_entrance": {
"anim_type": "offset",
"easing": "out_cubic",
"duration": 0.5,
"from": [
750,
0
],
"to": [
150,
0
]
},
"title": {
"$prefix": "!send_card:",
"type": "panel",
"controls": [
{
"[email protected]_control": {
"$prefix": "$prefix"
}
},
{
"img": {
"type": "image",
"texture": "#texture",
"size": [266, 100],
"anchor_from": "top_middle",
"anchor_to": "top_middle",
"anims": ["@card.card_animation"],
"bindings": [
{
"binding_type": "view",
"source_control_name": "card_data_control",
"source_property_name": "('textures/ui/cards/' + (#preserved_text - $prefix))",
"target_property_name": "#texture",
"resolve_sibling_scope": true
},
{
"binding_type": "view",
"source_control_name": "card_data_control",
"source_property_name": "(not ((#preserved_text - $prefix) = ''))",
"target_property_name": "#visible",
"resolve_sibling_scope": true
}
]
}
}
]
},
"card_animation": {
"anim_type": "offset",
"easing": "linear",
"from": [0, -160],
"to": [0, 0],
"duration": 3
}
Essentially I want the image to go down
And if (#preserved_text - $prefix) is empty, the existing image would slide upwards
In any case, the image doesn't do any animation and just appears on that spot
When I change duration to 5, it works though
But it's too slow with duration 5
btw, in case someone searching here, to make Input Keys work just use whatever text variable that support it
#hud_subtitle_text_string, #hud_title_text_string, #form_button_text or whatever. and pass the input Key to it
Yeah so if I change the duration to 5 or above, everything works out
When I change duration to 3 or 4, it instantly appears and doesn't do the animation
All g lemme send a clip so that my explanation is clear
I did something like this and the behavior of the animation is very weird!
I noticed it's because of me changingt he window's size...
"anim1": {
"anim_type": "offset",
"easing": "out_cubic",
"from": [0, "-100%"],
"to": [0, 0],
"duration": 10
}
This also doesn't work
i had similar issues
have you tried increasing the size?
or adding a "play_event"
I'll give it a try but I'm interested in how you managed to get it working with duration 0.5 when I can't even reach 4 seconds or below lol
Is your image or whatever you're moving small?
250 by 250
it was a server form
Well, no clue actually.
it was months ago and bac kthen i had the same exact issues you had
thats really fire animation for a form ngl
gotcha alr in that case ill probably not waste a lot of time on this tbh
its not worth the hassle but atm it works with 4 seconds duration and is a tiny bit glitchy for other sizes of windows
it was for a skill tree, so i thought i would move that server form to the side, and move the camera pointing the player so it looks like a menu
yooo thats so cool
is it possible to have custom buttons and a grid with a scroll in the same form?
yup
do you have an example?
thats insane
thats a camera or a paper doll?
im guessing camera
camera
it was bugges as hell
and spagetthi code
by custom buttons do you have normal buttons but visually changed in mind?
i have plenty of examples
if it works it works π₯
Static buttons i add manually
well i can send you an example file
Does it include grid with a scroll ?
yup
it uses form buttons tho
it is a changed action form
it belongs to me
Yeah thats perfect
Oh fair enough then, no nda?
i havent singed anything that removed my copyrights to it
Ah fair use then
and technically in germany you cannot remove your own copyrights anyways
so yeah feel free to use
Ui in a nutshell
I tried adding a scroll panel to my button factory and i fumbled that so hard
Still dk how
Cuz i wanted to make the gta interaction menu but 6 buttons max before u hsd to scroll
And it kept going everywhereπ
np
Setting image visibility to false doesn't make the animation stop
The animation starts playing the moment UI is loaded
This makes SO MUCH sense now
So then how do I control when the UI gets loaded (or when the animation starts playing)?
Generating the image when necessary using factories
You can use the title factory for this. It will generate the image whenever a title is sent and the animation will play properly
offfr, its literally work
ohhh okie
do you have code that uses factory with titles?
I did but I don't think I have it anymore
It's simple really. Follow the vanilla code
kk
I think I understasnd how to use it now, but something I don't get is why use title preservation when we could just use factory?
what's the difference?
I mean- besides factory being able to generate and destroy elements
The title factory actually overrides the previous title
Like if you send a title to show your animation and then send another title. Your animation will be gone. Also the binding #hud_title_text_string changes for every title, so you can't use it directly to properly show or hide something conditionally.
That's the reason you need preserved title
yep yep
factory works perfectly for me now
Can I completely replace the emoji form thing with my own form?
So basically players can open forms by pressing "B"?
Emoji form??
Oh emotes
I wanted to add like 10 buttons and convert this into a custom form
Technically you can
but idk if it will bring you anything
bring me anything?
what can you do with this
Will that be a form then
I wanted to make a shop that players can open by pressing B
I already know how to detect which emoji got clicked
But Idk how to add more emote slots or if that's even possible
yeah i dont think you can add more
Aww rip
hi
I'd like to know how to retrieve, for example, in #fromtext there's hello\I\55, and so it creates #one = hello, #two = I, three = 55. How do I do this?
Message translated by Google
GRACIAS
Are there any jsonui extensions that can be used with vscode?
When using complex expressions in bindings, etc., I often make annoying mistakes like incorrect pairing of ().
I'd like something that highlights () like in ts or js.
https://marketplace.visualstudio.com/items?itemName=Dingsel.bedrock-ui
https://marketplace.visualstudio.com/items?itemName=Sugger.json-ui-autocomplete
how do i fix this scaling issue?
between font scaling and panel size thing get missed up depending on the device
The only fix for that is having a fixed numerical value for the parent panel (e.g. [128,128] and all of its children must have percentage based sizes ["100%","100%"]
Try reducing font scale factor or font size: small
font scale factor would be best
not really
If he needs font, so font size has small/normal/large/extra_large values
And scale factor give him more variants between 0-1, right?
yeah but in some of my cases, scale looks bugged if you use different decimals
like with 1.3, a label looked wrong, but 1.5 looked normal
idk if it would be the case for minato but that is just my observation
i used both, but both have different size depending on the device
Yes, agree. I found that using small and 0.5 scale gives very thin letters.
I wouldn't say it's bugged
The labels may seem a bit off on some devices but they look normal on higher resolution
i used 0.205
it look alright for me
i am not working with letters, so that doesn't matter much
altho, after i added mobs to the map sometimes they do look weird (pixels either shrinking or growing depending on the position of the mob)
is all information about item when hovered is stored in #hover_text, e.g. in inventory screen?
or in some other binding, I saw some #inventory_data binding and wonder if it is what I am looking for instead of hover text
my plan is to display all text from all cells in some corner e.g. idk if anyone did something like this
nvm got it: ui_common.json/container_slot_button_prototype/hover
interesting
Interesting indeed
bomba
technically you can see everything π
this is what begin addon creator for half decade does to a man
btw anyone know or had similar problem where I cannot pass ninding through property_bag, I mean
property_bag: {
"#example": "#item_name"
}
inside bindings there is some #item_name binding, in this example when I try
{
"binding_type": "view",
"source_property_name": "#example",
"target_property_name": "#text"
},
then the #item_name simply doesnt work, not cool tbh
Cant you set the "#example" binding using the bindings array?
maybe that will work
nah, it must go through property bag
Looking for JSON UI DEVS!
- WE WILL PAY! DM ME
bro jus helppp mee
nah
bru
I think this is not the right server for search devs
is it still worth to do json ui stuff if they're just gonna push oreui?
I wish bedrock allowed you to choose your version so you dont need to worry about them getting rid of integral things
the question is when cuz it aint here yet
and servers cant wait for oreui to be released
imo they wont delte JSON UI immediately after releasing OreUI. that would make many servers and mp studios upset
they would give people some time to fully switch to oreui
good points
I've replaced the inventory and chest ui with my own textures and I was debating if I should go through teh effort of doing the rest of the containers
i would do so
alr, thx for the input
np
dose anyone know what file i need to edit to change the pause screen doll?
i want to have it as a live render so my cosmetics can be viewed in the pause menu
pause_screen.json
Hi guys, who knows how to make sure that the value is taken from the scoreboard to the hud_screen.json for example
hp: {scoreboard "hp"}
$scoreboard_hp #scoreboard_hp or how it use?
can a child be in a layer bellow it parent?
Try setting layer to a negative value
yeah
you can change the size binding
idk if you can change the offset
"property_bag": {
"#anchored_offset_value_y": 0.0,
"#size_binding_x": 0.0,
"#size_binding_y": 0.0
},
you do can
that will get a bit too complex for my use case
was thinking of making a text follow the waypoint
got little too bored at waiting so i rewrote this thing lmao
unfortunately, numbers and math operators don't seem to cope with it well since. they're expecting that so. there's a workaround for it, but. it's gonna make the string a little bit ugly.
How can I make it display both the text from data and the text from update in the subtitle?
{"player_angle_text":{"$update_string":"update:","$split_flag":"data:","$split_seperator":",","type":"label","text":"#text","layer":1,"controls":[{"player_angle_text":{"type":"label","text":"#text","layer":1,"offset":[0,20],"bindings":[{"binding_type":"view","source_control_name":"subtitle_data_control","source_property_name":"#preserved_text","target_property_name":"#preserved_text"},{"binding_type":"view","source_property_name":"('Data: ' + (#preserved_text - $split_seperator - $split_flag - $update_string))","target_property_name":"#text"}]}},{"subtitle_data_control":{"type":"panel","size":[0,0],"bindings":[{"binding_name":"#hud_subtitle_text_string"},{"binding_name":"#hud_subtitle_text_string","binding_name_override":"#preserved_text","binding_condition":"visibility_changed"},{"binding_type":"view","source_property_name":"(not (#hud_subtitle_text_string = #preserved_text) and not ((#hud_subtitle_text_string - $update_string) = #hud_subtitle_text_string))","target_property_name":"#visible"}]}}],"bindings":[{"binding_type":"view","source_control_name":"subtitle_data_control","source_property_name":"#preserved_text","target_property_name":"#preserved_text"},{"binding_type":"view","source_property_name":"('Update: ' + ((#preserved_text - $update_string) - $split_seperator - $split_flag))","target_property_name":"#text"}]}}
Does it work properly for larger strings
operation
Yes.
This also works as non case sensitive search bar too
and also pretty optimized, haven't seen any performance issues so far even with 50 char limit.
The issue I have is this
This Is A String. This Is A String.
For this string the output will be
this is a string. thss is a string.
The first 20 characters are totally fine
But the 21st character becomes the 22nd character. So, this becomes thss 21st char (i); 22nd char (s)
I have no idea why this happens
The trick is you add a special character on the first one so they aren't similar
Finally got it right
does this count letters or bytes
Characters
glyphs included?
Can be included
nice
U can do something like changing letter A to result to an emoji
I think I know the issue
When I used the string from a text box, there was no issue at all. Everything works nice and no limit either.
But if I try string from property bag or any binding. The issue appears again.
I assume the cause is uncontrolled increment of the loop
Cause when text box is used, the increment is kind of controlled and no issues. So I need a way to properly increment the loop
I managed to get the last letter of the string but I have no idea where to put it
Did u use another property bag or something?
Well doonnn
This one's wayyy better ^
Didn't understand
What did u do with ur method?
Did u get the last character and create a new string?
That was my idea
I had an empty string. Then looped through each character of the main string and added their property bag value to the empty string
Yeah same but won't it repeat due to ui looping?
Yes normally it will repeat
So I didn't add the characters to that string directly
I did something like this-
('%.' + #iterator + s) * #lowercase_string + #character
This prevents looping
No if you give it a thought it makes sense
rewriting this thing with more dynamic approach, ended up turn into a odd number detector instead.
Mind if I ask what approach you took for this?
not sure what can i describe, but it's both dynamic and individuals i guess.
dynamic side, it does fetch each character and turn into dynamic bindings that do not require to be created. then i slam that as individuals dynamic bindings that display them.
the only issue with that is, that's not so dynamic when combining them together and is limited to how many dynamic bindings im willing to put.
other than that, there's only 4 bindings objects.
might figure myself out about dynamically putting chars without this stuff later i suppose lmao.
I had 4 as well, which I later reduced to 2. But, I still couldn't figure out exactly what causes that issue
And tbh I didn't quite understand what you said about dynamic bindings π
but thanks for explaining
'#' + something...
This?
honestly I'll shelve that anyways so it doesn't matter to me much.
kinda, there's more into that.
That figures
i tried doing that dynamic adding chars thing but
i get 1 letter spammed like 10 times
the more i type, its just doing that.
figured that i just found myself a memory leak again so lmao
Like instead of adding a
aaaaaaaaaaa.. gets added?
yeah
I fixed that using this^
couldn't figure it out so i just left like that for now
Now I'm kinda interested about how you are adding the individual characters. I thought you were adding them to an empty string. But that doesn't seem to be the case
magic
but yeah this one i have doesn't use empty string.
well, kinda. i do have alot of stuff commented atm.
tried using something like that and i got letter spams but this time 2x.
LMAO
yeah im putting this on shelves i aint doing anything with ts
Maybe this is the reason you don't have any issues like mine
maybe in the future
not exactly as i kinda use empty string for testing.
Now I'm lost ;-;
Finally, did it successfully, with no major issues
-# Took me an hour to fix the issue using a slighly different approach
i do wonder how that works.
My main approach has always been the same
Get characters from the main string using string formatting and add their values from property bag to an empty string
The issue was with incrementing the loop, which I was able to fix
now, the source code /j
I think I'll publish it
But I'm not sure about it's performance although I haven't seen any performance issues
Also the bindings are slightly different for static and dynamic string
I'll try to make them same if possible
honestly i don't expect much but different is honestly alright
Can u test:
- Adding a number before any characters
- Add arithemetic characters or something like
\
Arithmetic characters probably won't work
But numbers will work
Although I can't test now
I'm off my PC
numbers like 123haha?
Maybe not with the current bindings
But with some changes, yes
I'd like to see how u would approach that problem and also the arithmetic stuff or any unsupported characters for that matter, it just duplicates the last letter so hell+o -> helloo
Who wants to retrieve the following data: {
"binding_name": "#hud_title_text_string",
"binding_name_override": "#text",
"binding_type": "global"
}, outside of the hud_title_text element?
In my case though the characters that are not in the property bag stops the loop (because of the condition that I used)
And I tried earlier with > and it added 0 instead
Just use these bindings wherever you want you will get the title text
Does any know what slider_timeout does?
Sorry, I forgot to add the label... lolπΌ
the most nerdy chat of jasonUI devs
in normal language you could just do text.tolowercase()
jason
we should all nickname as "jason"
Someone can give me a tutorial(if is in spanish better) please
is this some kind of text box length counter
No.
that thing was for debugging.
can i make my ui independent from the gui scale
Use fixed numbers
that still get affected by gui scale
You can't make it fully independent
Using percentage values can help in sizing
it is hard to make text fit a panel with that
i have 80 long sting that i need it to fit perfectly in a panel while the panel is same size across all devices
The panel can be sized using percentage values
For the font you can change its font scale factor for $touch by using the variables array
i may just use 3 hardcoded panels with different sizes and let the player decide what size they want
assuming the hidden panels won't cause lag
they wont cause lags if you disable them
how?
Subpack is a good option
not possible with preserved text?
enabled: false
and
visible: false
solved my lag issue
{
"[email protected]": {
"enabled": false,
"visible": false,
"bindings": [
{
"binding_name": "#title_text"
},
{
"binding_type": "view",
"source_property_name": "(not ((#title_text - '@mineville/long_form') = #title_text))",
"target_property_name": "#enabled"
},
{
"binding_type": "view",
"source_property_name": "(not ((#title_text - '@mineville/long_form') = #title_text))",
"target_property_name": "#visible"
}
]
}
}
thanks
thanks, that worked
How can I make it so that when the value is 1 the text is hidden, but when itβs 2, 3, or 4 the text is shown again?
someone speak spanish?
Does anybody know how to fix this error?
must define a source property name in the binding
"bindings": [
{
"binding_type": "view",
"source_property_name": "($value * 1)",
"target_property_name": "#progress"
},
{
"binding_type": "view",
"source_property_name": "(($max - #progress) / $max)",
"target_property_name": "#clip_ratio"
}
is your $value a binding
This is being called inside the hud_actionbar_text element, and I have it like this
{ "[email protected]_progress_bar": { "$value": "$actionbar_text" } }
just don't use bindings here, use "clip_ratio": "(($max - ($actionbar_text * 1)) / $max)"
only if $max is a fixed number
Can anyone help me?
I'm using a geyser server and on my bedrock end it has these red #'s and the text cuts out is there a way to fix this?
It is
It doesn't show the error anymore but the progress bar is empty no matter what number I put on the actionbar
someone can show me why this doesnΒ΄t work?
the actionbar must be within its "factory"
Anyone wanna buy my UI for all $92
https://youtu.be/tf2rwJvh_5E?si=E0psT2TEizbaUocP
How its work, use loop in bindings?
or many splitting text and property bag?
there is
by changing the x size/both size to "default"
and make the number not visible by changing the scoreboard_sidebar_score visibility to false
here's the full code
{
"namespace": "scoreboard",
"scoreboard_sidebar_score": {
"visible": false
},
"scoreboard_sidebar_player": {
"type": "label",
"layer": 2,
"text": "#player_name_sidebar",
"text_alignment": "left",
"size": ["default", "default"],
"anchor_from": "top_right",
"anchor_to": "top_right",
"inherit_max_sibling_width": true,
"locked_alpha": 1.0,
"color": "$player_name_color",
"bindings": [
{
"binding_name": "#player_name_sidebar",
"binding_type": "collection",
"binding_collection_name": "scoreboard_players"
}
],
"max_size": ["default", "default"]
}
}
Using loop in bindings and also many property bag values
how do you get the container's (chest) total items that not air similar to form_button_contents from server form.
does someone know how can i get the child size for my panel size ? like 40px / 200px depending of the caracter "Β§p" ?
"3_shop_buttons": {
"type": "panel",
"size": [
"child size",
"30px"
],
"controls": [
{
"btn_p@form_buttons.vertical_output": {
"size": [
"40px",
"30px"
],
"bindings": [
{
"binding_collection_name": "form_buttons",
"binding_name": "#form_button_text",
"binding_type": "collection"
},
{
"binding_type": "view",
"source_property_name": "(not ((#form_button_text - 'Β§p') = #form_button_text))",
"target_property_name": "#visible"
}
]
}
},
{
"btn_default@form_buttons.vertical_output": {
"size": [
"200px",
"30px"
],
"bindings": [
{
"binding_collection_name": "form_buttons",
"binding_name": "#form_button_text",
"binding_type": "collection"
},
{
"binding_type": "view",
"source_property_name": "((#form_button_text - 'Β§p') = #form_button_text)",
"target_property_name": "#visible"
}
]
}
}
]
}
would this be scoreboard.json?
yes
k
yo does anyone know if I can access the text from lang names e.g. faq.question.first="something" in bindings? I tried through property bag, with different localization properties, and its generally working, but whenever I try to add 'hello ' + 'this lang text', then it results in 'hello faq.question.first', without the hello its says proper something
its soo damn weird and idk if there is any fix for it
there is no fix, localization doesn't work on property bags
because I guess that localization takes the final text, and after this it translates it which isnt great, I mean its seaching for hello faq.question.first lang files instead of just correct faq.question.first
ahhhhhhhhhhhhhhhhhhhhhhh
screw them
I tried everything and seems like I need to adjust it through lang files to always be same
What I would do though is two seperate labels
which at the works but resutls in some downsides
depends on your case
alr thanks for answer
It didnt work..
where are you using the text?
nah I do operations on some texts so e,g, I need to remove this name based on language from some text
it doesnt matter I think
however I can asnwer that in type: lablel lol
lol, no i meant what screen
okay lets say in hud
if you got the text from a variable that support it will be localized
like hud_title_text_string, or action bar text
I mean the problem is that imagine I do ('hello ' + #hud_title_text_string)
then it totally breaks
because I guess its trying to find localization for hello #hud_title_text_string
and yeah e.g. #hud_title_text_string = example.text
so it results in hello example.text
and I guess that it searchs for this specific string in lang files, seaching for incorrect hello example.text instead of example.text
generally this is just gample with adding some text at the start
every operation on this results in not translated text
eh...
no?
you use a normal label without localizing it
hud_title_text_string is pre proceed and give the actual text
uhm well, I am searching for rather unique way for every place
so I am just testing it on property_bag #test
alr
even if hud_title_text_string is processed or not it doesnt solve it
however I have one idea which actually may work lol
I will test it later
it is
if you pass rawText
example.text=Test Text
and used '%.4s' you get "Test"
Interesting
i am lost, anyone know whats wrong with this?
it work fine in scale1 but show the preserved text in scale4
If scale1 gives you the same font scale as scale 4, will it still be an error?
well... that was a stupid mistake
i had tow parents panels with the same name map_text
and
"resolve_sibling_scope": false,
How can I move this out?
No
How can I get started learning json-ui? Does anyone have links to some resources?
well doneee
Thank you!
In this video, I demonstrate how to use JSON UI in combination with the scripting api in the Minecraft Bedrock Edition
πLinks :
Like What I Am Doing? Concider Supporting Me! : https://ko-fi.com/dingsel
Join my Discord! : https://discord.gg/tzrmH56JXC
My Website : http://skyls.de
Music : https://www.youtube.com/watch?v=tEzYsaLm7nw&ab_channel...
And youtube
dingsel is a nice youtuber
although not much tutorials
hello ! is there a way to generate items dynamically inside a stack panel ?
by dynamically, I mean without having to specify the slot for each item
for example, in forms there is a factory, and Iβm looking for a way to apply a similar logic when adding items into a stack panel
Insane in what aspect, it is a simple interface, the "good" thing are the textures
How do I make a custom server form button from scratch, without using the common buttons base?
I don't know what button mappings I need to use
{
"from_button_id": "button.menu_select",
"to_button_id": "button.form_button_click",
"mapping_type": "pressed"
},
{
"from_button_id": "button.menu_ok",
"to_button_id": "button.form_button_click",
"mapping_type": "focused"
}
Thanks man
Will the pressed button be defined by the collection index?
Just one more question: where can I find all these HardCode button IDs?
Sorry for my lack of intelligence
But is "button.form_button_click" a hardcoded id or the id of a button I created?
move your HUD elements instead, similar to how the boss bars were made
Hardcoded id that tells your client you clicked a form button
How to create a nei ?
Nei?
does aynone have same problem with grids in server forms? For some reason if I substract some number of max_grid_items in bindings, and when I "unfullscreen" and then fullscreen, all grid items are duplicated, they are completely not visible, but space of tital grid is doubled
its sooooooooooooooooo weird
idk if anyone have any solution for it or if its some new issue, I didnt have any problem with it before
I tried every binding combination, with conditions, type: view, all that stuff and nothing
also the "ghost buttons" dont do anything, they are completely not visible but just take space
I mean
actually
{
"form_grid": {
"type": "grid",
"grid_rescaling_type": "horizontal",
"collection_name": "form_buttons",
"size": ["100% + 2px", "default"],
"grid_item_template": "namespace.grid_item",
"bindings": [
{
"binding_name": "(#form_button_length - 11)",
"binding_name_override": "#maximum_grid_items",
"binding_condition": "once"
}
]
}
}
binding condition doesnt work?
nope
either here with it or without it doesn't change anything
I thought the same way but I guess I this condition is a scam, I think that whenever you unfullscreen and fullscreen this binding actually run twice
yeah.
Do it like this:
{
"binding_name": "#form_button_length",
"binding_name_override": "#length",
"binding_condition": "once"
},
{
"source_property_name": "(#length - 11)",
"target_property_name": "#maximum_grid_items",
"binding_type": "view"
}
Does operations in binding_name work...
I've never seen that
Mojang does that too lol
yao, is it possible to change the hearts texture using scripts? like using the freezing hearts for example.
Don't know about that
i dont thing its possible without modifying or remaking the vanilla hearts
^ I also tried this binding as well
I do it like this
No such problem happens
Maybe you need to remove more buttons
π
if I just use
{
"binding_name": "#form_button_length",
"binding_name_override": "#maximum_grid_items",
"binding_condition": "once"
}
then everything is working
but I need to somehow substract some of grid buttons
The one I sent works for me every time but idk why it's not working for you...
I thought something is wrong with scrolling
however
I am not sure
its just default without any serious modifications
yeah and it only occurs when gui scale changes
incredible game.
Never tried changing gui scale π€
you mean when you resize the window?
Can anyone tell me if server form modification is allowed for marketplace content?
i heard that JSON UI devs mainly use NPC screens
I guess nope (meant to say no)
I know but they are limited to 6 buttons :/
F
Can someone tell me how to make a bar like this?
depend
for add-ons, you can't edit any vanilla file at all
for worlds or dynamic worlds you are free to do so
Is there a tool where I can see what my ui will look like without having to reload my world?
or a way to refresh the ui other that /reload all
nope
unless someone coded a website that visualizes your JSON UI
rip
"text_alignment": "center"
or "alignment": "center"
idk which