#JSON-UI General
1 messages · Page 9 of 1
What's json and for you
json-ui it's the term that we use to describe the group of components that make the UI on minecraft bedrock edition
because of it's complexibility, json-ui can be hard and needs a specific category to those who don't know how to make it and use it
fully agree, tbh json isnt even that hard
it makes sense, just the lack of documentation or whatever makes it hard to get started. but you can also read docs n stuff to help learn basic stuff
thats basically saying "its not hard for those who understand"
just accept it, jsonui is a little hard in general, you dont need to add those conditions like "its not hard if you read docs" just to make it look "easy"
?jsonui is though
- JSON UI is much tougher than other addon topics.
?jsonui
You can learn more and get started with JSON UI here: https://wiki.bedrock.dev/json-ui/json-ui-intro.html.
Years ago I don't really understand any add-ons topics, but I went json-ui instead because I know how to use command blocks and rawtext very well.
In one exact day, I already got custom npc screen running, fully condition rendering, 3 custom screens, custom buttons and etc.
Json-ui is not "little hard", it's mediocre.
I make a lot of UIs in the past just to learn more json-ui for months and now fully 1 year after I pushed my first UI project to the public.
so, it is mediocre in general. It's not either hard or easy, it's just up to people common sense that those didn't want to read the docs or wiki whatsoever. The reason why it "tougher than other addon topics" is exactly that.
✅
It's just people didn't listen, didn't read the docs or one word at json-ui introduction on wiki, hence we have very less video tutorial.
that is just essentially saying "lazy people who doesn't care about reading wiki"
or more exactly "those don't read the books"
Let's be real the docs aren't really that well layed out for people to understand.
It's more of a learn it yourself by trial and error angle.
json ui isn't hard you just need to know the syntax. I never used the docs and it's been easy for me.
the wiki or docs was completely made by community and I agree to that
it didn't help me that much but there's alot of example of how json-ui should work.
Condition rendering, preserve text, hiding text from specific strings, making use of factory, adding own elements on hud_screen, modification property, understanding how variables and bindings work, fetching button mappings ID and use as button, animations, making use of custom json-ui file via _ui_defs.json, operators and so on.
a bit hard because the lack of resources like tutorials, etc, and thats still makes "jsonui" considered as a though addon topics, if its easy then why there is only a few of people that know json ui well? if its looked from the "syntax" and how to make one maybe it can be considered as "a little easy" but if its looked from how to learn the syntax and knowing how it works it can ne considered as "little hard" (to learn) (correct me if im wrong)
Json-UI requirements is understanding with JSON in general, if you've already made items, or anything from bedrock addons (general as json), it would be much easier to start with.
The reason why we lack of tutorials is because Json-UI never has official docs at the first place, aswell people never knew the Json-UI existence.
Why the mediocre? json-ui is really easy to understand if you have a code editor with json validator built-in (or if you're insane, tree editor would do), since this can correct what wrong with your syntax.
and again, bedrock add-ons community is really small compared to java edition counterpart.
If I were to modify the server_form.json textField to be larger in size, Will I be able to use tab so the result has tab spaces too?
Tab space
Can anyone help me merge 2 ui/trader_2_screen.json I have? I feel dumb cause I can't get them to work, and it's just a matter of placing {} and , on the right place.. it's just a few lines of a small file into the bigger one
i think its called reconcile
Hi, does someone know if is there any way to bind the title binding to an npc text?
I want to be able to change the npc dialogue with commands and using the subtitle or title text string was what I came up with, but apparently it doesn't work and I'm not sure why
This is my code that modifies the text inside of the NPC's text box with the binding. It works when I input a simple string, but not with the binding itself
[...]
"student_message_bubble": {
"type": "image",
"texture": "textures/ui/dialog_bubble",
"anchor_from": "right_middle",
"anchor_to": "right_middle",
"size": [ 222, "100%" ],
"controls": [
{
"dialog_panel": {
"type": "panel",
"size": [ "100%", "100%" ],
"$virtual_keyboard_buffer_control": "text_scroll",
"controls": [
// My custom label element that I want to receive the title string
{
"type": "label",
"text": "#text",
"bindings": [
{
"binding_name": "#hud_subtitle_text_string",
"binding_name_override": "#text",
"binding_type": "global"
}
]
}
// { "text_scroll@npc_interact.text_scroll": {} } // Commented so it doesn't display the default NPC Dialogue
]
}
}
]
},
[...]
How so?
well usually we can't find seniors that is not toxic these days
so I just forcibly learned myself
no, title texts are only on hud
because people ask “basic” questions, and more experienced people dislike answering similar questions multiple times
i kinda agree tho people act kinda helpless and don’t even think to search for previous questions
i don’t think this channel is really a good place to learn the basics of json ui , i think it more excels in helping fix small problems
{
"namespace": "crafting",
"tuner": {
"type": "image",
"texture": "textures/tuner",
"size": [
40,
40
],
"anchor_from": "top_middle",
"anchor_to": "top_middle",
"offset": [
0,
5
]
},
"root_panel": {
"modifications": [
{
"array_name": "controls",
"operation": "insert_front",
"value": [
{
"[email protected]": {}
}
]
}
]
}
}```
not work hm
I'd say if there were good docs, people wouldn't ask basic questions but I've answered a lot of entity stuff that has been searchable in the wiki.
is the texture purple n black or is it not showing up
crafting doesn't have root_panel
ohh thx
yea, we need to expand the docs
i’ve thought of doing something like it but it’s just a lot of work
I was too but then I realised how azz my code was and decided not to 😂
I would contribute or add more stuff to the docs but seeing most 80% of people didn't care or want to, so I uh just stopped.
exactly, it shown already people clearly don’t even read the docs, so what’s even the point
anyways the documentation section of the json ui in the docs is pretty useful, it’s just actual tutorials that the docs needs
How can I add background to server_form.json file?
I call the vanilla server_form.json file
{
"data_control": {
"type": "panel",
"size": [
0,
0
],
"bindings": [
{
"binding_name": "#hud_title_text_string"
},
{
"binding_name": "#hud_title_text_string",
"binding_name_override": "#preserved_text",
"binding_condition": "visibility_changed"
},
{
"binding_type": "view",
"source_property_name": "(not (#hud_title_text_string = #preserved_text) and (('%.15s' * #hud_title_text_string) = 'update.tip_text'))",
"target_property_name": "#visible"
}
]
}
},
{
"tip_text@task_tip_text.tip_text_template": {
"$text": "#tip_text",
"bindings": [
{
"binding_type": "view",
"resolve_sibling_scope": true,
"source_control_name": "data_control",
"source_property_name": "#preserved_text",
"target_property_name": "#tip_text"
},
{
"binding_type": "view",
"resolve_sibling_scope": true,
"source_control_name": "data_control",
"source_property_name": "(not (#preserved_text = 'update.tip_text.clear') and (('%.15s' * #preserved_text) = 'update.tip_text'))",
"target_property_name": "#visible"
}
]
}
}
How can I access #preserved_text? This doesn't work
-- to be clear, the text doesn't show when i set it to #tip_text, the actual display does work
It still worked when I tested it but the second binding in the tip text control works so I don't understand why the first one doesn't
Totally agree
Hello I used this code to make my custom bossbar, it works, but for some reason, when there is already an active bossbar, when my bossbar is activated, the textures are not activated, nor the panel, can someone help me?
"root_panel/boss_health_panel/boss_hud_panel": {
"modifications": [
{
"array_name": "controls",
"operation": "insert_front",
"value": {
"soulless_knight_bossbar@soulless_knight_bossbar": {
"layer": 2,
"bindings": [
{
"binding_name": "#progress_percentage",
"binding_type": "collection",
"binding_collection_name": "boss_bars"
},
{
"binding_name": "#bossName",
"binding_type": "collection",
"binding_collection_name": "boss_bars"
},
{
"binding_type": "view",
"source_property_name": "(#bossName = '§s§o§u§l§l§e§s§s§k§n§i§g§h§t')",
"target_property_name": "#visible"
}
]
}
}
}
]
}```
Anyone know why I can’t see the selected item details? It works in the inventory screen, but not in chests, even though both use the same namespace from ui_common
The this one here. Is there a section I'm missing for chests or something?
Where's the hover text renderer in the code?
It’s defined in ui_common, no?
bindings are a bit different for the screens
Both the chest & inventory screen reference the same renderer in common
hm, i recommend you to see the vanilla file
First is inventory, second is chest
did you modified chest/inv?
it's weird that it is not working on chest even tho not edited. try not modifying the selected_item_details
I guess I could just make a second renderer forthe inventory alone
thats better
I did kinda want to modify both, but I guess that's not happening
Welp, I renamed the renderer & changed the reference in the inventory to it, and now it won't show up in the inventory
uhh, also make sure it's a factory that you're referencing
it was, yes
I added the factory into ui_common (but changed the names)
Hm, if I don't edit selected_item_details it works in both
But then the item description is in the middle of the screen, which isn't ideal
As soon as I change anchors it stops working in the chest ._.
Got it somewhat working
Ain’t great but better than nothing showing up / text covering screen
what are you intend to do?
Just wanted to move the item description text to the side of the ui (be it the inventory or a chest/enderchest)
Thank you!
You can change the screen settings for npc and hud to get both screens up at once, which will allow you to put certain title elements on the NPC screen. Though it's not an ideal solution.
Someone help this guy https://discord.com/channels/523663022053392405/1144507975722094641
Does anyone know what this error is?
the element is probably missing a type
more or less in which? in textures/ui or just in the ui itself?
Guys how do I increase the width of the ui?
Size
syntax error
is your elements' @ pointing to other invalid elements?
Hi I dont know anything about json ui only server ui and i wann to start with it. Are there any disadvantages to the fame or is it just hard
?json ui is tough
Welcome to JSON UI!
If you are reading this, there is a good chance that you were inspired by The Hive, Galaxite, or some other addon or server. Welcome! This is the right place to learn about these topics.
To get started in learning JSON UI, we recommend you check out the Wiki first: https://wiki.bedrock.dev/json-ui/json-ui-intro.html.
However, please be aware of these things:
- JSON UI is much tougher than other addon topics.
- JSON UI is 100% only documented from vanilla reference and reverse engineering. There are no documentation directly from Mojang.
- We will not give you step-by-step instructions on how to create UI from Hive/Galaxite.
JSON UI is one of the toughest addon topics, so please be patient. Try and attempt small tasks. Ask concrete, answerable questions. We won't spoon-feed you.
Stupid question: do I need to log out of my world and log back in for every change I make to server_form.json?
Honestly any JSON UI related, you need to reload your world/minecraft.
💀
Any resource pack related thing requieres you to reload the world (or mc)
bruh
where can i learn json-ui
How would I go about getting a specific buttons image using collection_index on a server_form
did anyone try just downloading server's resource pack?
Quick question, how to change form title from just the RP keeping the server script as menu in the title?
nvm I found and alternative to my question that results in the same goal
?json-ui is tough
Welcome to JSON UI!
If you are reading this, there is a good chance that you were inspired by The Hive, Galaxite, or some other addon or server. Welcome! This is the right place to learn about these topics.
To get started in learning JSON UI, we recommend you check out the Wiki first: https://wiki.bedrock.dev/json-ui/json-ui-intro.html.
However, please be aware of these things:
- JSON UI is much tougher than other addon topics.
- JSON UI is 100% only documented from vanilla reference and reverse engineering. There are no documentation directly from Mojang.
- We will not give you step-by-step instructions on how to create UI from Hive/Galaxite.
JSON UI is one of the toughest addon topics, so please be patient. Try and attempt small tasks. Ask concrete, answerable questions. We won't spoon-feed you.
No, and not recommended too.
Most servers has encrypted packs and before you asking about decryption, No, it's against of this server so we can't or will not help you with that.
doing so may get you kicked or banned here.
Finally getting somewhere. Not big enough to post on showcase yet so i put it here
whats the diffrence btw ore ui and json ui? im completely new and i gotta choose one to learn
Json-UI are data-driven UI via JSON, Really the same concepts as modifying items or something, but just UI.
Ore-UI are upcoming UI and still no data-driven yet.
so my better choice especially as a beginner would be json ui right?
well yes and no.
as long you know about basic of JSON, it should be easier to learn.
there's wiki here
?json-ui
You can learn more and get started with JSON UI here: https://wiki.bedrock.dev/json-ui/json-ui-intro.html.
and also this
Make a button act as a panel
Okok
It looks like this now
Why is the image not centered?
This is what happened when I'm using another image
nvm fixed
People how do I make the ui wider
like more stretched
That way
Use offsets
You're really really close at making what you want
Thanks! I tried offsets however it didn't work so I tried using panel as offsets and it worked.
Inside another stack panel?
"stack_form": {
"type": "stack_panel",
"size": ["fill", "fill"],
"anchor_from": "top_left",
"anchor_to": "top_left",
"orientation": "horizontal",
"factory": {
"name": "buttons",
"control_name": "server_form.dynamic_button"
},
"collection_name": "form_buttons",
"bindings": [
{
"binding_name": "#form_button_length",
"binding_name_override": "#collection_length"
}
]
}
how do you make it go to the next line when it reaches the end of sizeX?
yes
Stack panel
Image
Label
are you using grid or stack_panel?
stack_panel i think
before the image, create a "type": "panel", make it the maximum size "100%"
you cant change the "anchor" after stack_panel, in my experience
I see
so that's why
How do I hide forms button entirely when it's not send by the forms api?
this is not working
i tried #form_button_text = '' doesn't work either
i tried removing/adding the not
show code
this
you are using texture only
#form_button_text = ''
u need to put this on button binding
Like this?
doesnt work
wait wait
if i set the visible there, will the child components be invisible as well?
first take the text with the binding and then you can make the comparison
//collect text
{
"binding_name": "#form_button_text",
"binding_type": "collection",
"binding_collection_name": "form_buttons"
}
//after collect
{
"binding_type": "view",
"source_property_name": "(not (#form_button_text = 'SPLEEF'))",
"target_property_name": "#visible"
}
It works when I put it inside the label, but doesn't work when i put it outside.
The layout
Button
-> Stack Panel
-> Image
-> Label
put on the button
Anywhere else doesn't work. Tried the image, tried the stackpanel, tried the button
oh nvm it worked. I just needed to add another binding
{
"binding_type": "collection",
"binding_collection_name": "form_buttons",
"binding_condition": "none",
"binding_name": "#form_button_text",
"binding_name_override": "#form_button_text"
},
{
"binding_type": "view",
"source_property_name": "((#form_button_text = 'SPLEEF'))",
"target_property_name": "#visible"
}
woo it worked! Thanks
No, I'm using stack panel and adding each rows manually 😅
should've used grid i guess
bc it looks like this for the next row
I want a way to add rows auto but I cant find it on the server
Ah i see. Can you query the collection size maybe?
I see
No idea
Hey anybody knows how can I shift my ui form content into left side
Offset
?
E.g.,
0
0
]```
Legend has a video about splitting the server form if thats what you need. I'm not on my pc right now so i cant send a link
That is a grid
there is no way to do with stack_panel?
Hmm want to set content like this server
you can use orientation but that would only give you one column
You're going to need to split the server form by title and create this from scratch.
Yes
How can i
Code: https://bstlar.com/~e/t-b-s-f-c
This tutorial shows how to make a form only show when the title is specific.
Github: @LeGend077
Discord: LeGend#1687
#minecraft
#minecrafttutorial
That'll show you how to split it by title then you can reference server_form, common, and common_buttons to understand how to make the rest
It's just shows how to adjust size only
I want make ui like this
Yes, by title
There is no tutorial for full uis since ui is very complex
You're going to have to take the split code as a base and edit it to call your custom menu
Hmm let me give a try
wave
i need help 😦
Just buttons with text + image where either the form title or the first button used to render that seperarly
would like some feedback on this, im still working on the textures but I feel like something is missing, like more can be made to make it look better
Make the item background look better
It color clashes with the item name
oh yeah, still working on the textures. using nineslice as I dont want to use static images
I need help, is it impossible to leave the stack_panel equal to the grid?
that is my image. It is a stack panel. Just set the orientation to vertical @spring aspen
Anyone had issues with korean font like this?
it's not in the same place
like this, but vertically it only goes down and not sideways @gray shale
yeah just change the orientation to vertical
u can show the stack_panel code?
no
there is no code of your stack_panel before above button
sure you didnt do it with grid or with collection_index for each button?
How can I add progress screen like this
You can use actionbar/title + (/camera command)
Hm
how do you do this by stack_panel that is my variant but it isn't work
"long_form_dynamic_buttons_panel": {
"type": "stack_panel",
"size": [
"100% - 4px",
"100% - 4px"
],
"orientation": "vertical",
"anchor_from": "top_middle",
"anchor_to": "top_middle",
"factory": {
"name": "buttons",
"control_name": "server_form.squared_button"
},
"collection_name": "form_buttons",
"bindings": [
{
"binding_name": "#form_button_length",
"binding_name_override": "#collection_length"
}
]
}
What server is this?
Idk I found at random video I like it so I asked
Send video I want to see
See date when I send I don't know which video it was
No worries
how can I add a new slot to the players inventory screen
you can't
you can but I don't know how https://discord.com/channels/523663022053392405/1142238760097038406
also ignore the crashing part I just want to know how
you can't.
Since json-ui is client-side only, not server-side.
therefore modifying it to have more inventory slots or more chest slots will not work, even though yeah it's there but will unable to put anything on them.
there's also chance of crashing since you're doing something unintentional in the client.
so, the definitive answer — no, you can't.
alternatively you can sacrifice the existing slots and use them as 'accessories'.
after all, json-ui is about modifying. not adding something new.
you don't add any new functions, you use the exist vanilla code and learn and understand how it works and reuse them at your own advantage.
it's data-driven to be exact.
how come this works then,https://mcpedl.com/nameless-baubles/
and this is why I can't wait for ore-ui
... The addon uses chest_screen.json, but in ...
it's just a modified chest screen with server-side things.
Ore-UI will have the same restrictions in regards, though only thing new is just more ways you can modify things and interacting with server-side.
yeah can't I do the same for the player inventory screen
I know
again, you can't add additional slots.
it's just modified chest screen with server-side as using existence slots, nothing new.
you can technically do that in horse screen with behavior stuff.
though the cost will obviously be buggy mess so yeah.
well that would be notch himself actually.
since json-ui kinda started in 1.0 (pocket edition at that time)
great nvm then
it's nearly decade now.
Not really, notch made the java version, not the bedrock version
Actually both bedrock and java.
Pocket edition exists since weird android age where Sony made a PSP but runs android.
And that then mojang wasn't acquired by microsoft so yeah, it's notch.
back then it's just minecraft but in c++.
sure microsoft acquired them before PE 1.0, it's still notch thing.
then there's "Better together" update, that update is where pocket edition a no longer a thing, but rather bedrock edition.
bedrock edition is still pocket edition but for more mainstream platforms since 'pocket' wouldn't make sense anymore, aswell still have legacy PE stuff like nether reactor and those crafting table but stone version. those are no longer functional though, but still there. not entirely removed. also even better, the game directory still contains 'minecraftpe'.
Is it possible to make a button that runs a command?
No.
Hello, where can I modify the bossbar in minecraft?
vanilla_template/ui/hud_screen.json.
Ty
im changing the server_form (long form), i want a background image to fill the whole screen, but using ["100%", "100%"] makes the image invisible, using e.g [300, 200] will make it visible...no parent element visible to me sets size to 0 or smh, what would i do?
Check parent controls sizes
In the vanilla server_form.json file, the main screen panel size is [ 0, 0 ]
Set it to [ "100%, "100%" ] can fix that issue
What you set up is probably 100% of 0px
already did that
Hello
can someone help me I don't get it Idk how to make when a msg startswith ok: to turn it visible
"actionbar_message": {
"type": "label",
"anchor_from": "center",
"anchor_to": "center",
"color": "$tool_tip_text",
"layer": 31,
"text": "$actionbar_text",
"localize": false,
"alpha": "@hud.anim_actionbar_text_alpha_out",
"bindings": [
{
"binding_name": "#actionbar_text"
},
{
"binding_type": "view",
"source_property_name": "(not (#actionbar_text - 'ok:') = #actionbar_text)",
"target_property_name": "#visible"
}
]
}
or else its should not show
#actionbar_text is not a binding, which is why this isn't working. Instead, in a parent element of actionbar_message, define a variable "$atext": "$actionbar_text (we do this b/c you can't modify the actionbar text variable directly anymore. Then in the element you sent, put:
"ignored": "(($atext - 'ok:') = $atext)
can you show me how bc I'm I don't get it
Instead of your binding, put the ignored line I sent. Then in a parent element of actionbar_message, define the atext variable
no i mean like I have to actionbars and I wont the one show up when the message startswith ok:
like the top one it should always on but the right one not only when the message startswith ok:
@mystic heart
then just add the ignored parameter to the one on the right
like that?
"controls": [
{
"actionbar_message": {
"type": "label",
"anchor_from": "center",
"anchor_to": "center",
"color": "$tool_tip_text",
"layer": 31,
"$atext": "$actionbar_text",
"localize": false,
"alpha": "@hud.anim_actionbar_text_alpha_out",
"ignored": "(($atext - 'ok:') = $atext)"
}
}
]
Is that the one on the right or the top?
right```js
{
"hud_actionbar_text": {
"type": "image",
"anchor_from": "right_middle",
"anchor_to": "right_middle",
"offset": [
0
],
"size": [
"100%c + 12px",
"100%c + 5px"
],
"texture": "textures/ui/hud_tip_text_background",
"alpha": "@hud.anim_actionbar_text_background_alpha_out",
"controls": [
{
"actionbar_message": {
"type": "label",
"anchor_from": "center",
"anchor_to": "center",
"color": "$tool_tip_text",
"layer": 31,
"$atext": "$actionbar_text",
"localize": false,
"alpha": "@hud.anim_actionbar_text_alpha_out",
"ignored": "(($atext - 'ok:') = $atext)"
}
}
]
}
}
Then yes
nope not working I get this error
B/c you need to define the $atext variable in a parent element. Either hud_actionbar_text or a higher order parent.
when I type ok: its make the texture bigger when I remove ok: its gets smaller
that is without
that is with ok:
@mystic heart
bc you aren't hiding the background, only the text. If you want everything to be visible/invisible, you need to modify hud_actionbar_text. Remove ignored from the text element and put "visible": "(not (($atext - 'ok:') = $atext))" in hud_actionbar_text
but the msg doesn't show up
can I send it to you bc I don't get it please
you need to read through https://wiki.bedrock.dev/json-ui/json-ui-intro.html if you're still not getting it b/c the process is explained there
as for this, it seems you removed the text property from the label element, so it doesn't know what text to put. Your original version had this defined correctly but it's not there in the current one
how can I make it when the message startswith § its should put the actionbar right and if not its set it to default
{
"hud_actionbar_text": {
"anchor_from": "top_left",
"anchor_to": "top_left",
"offset": [
0,
0
],
"size": [
"100%",
"100%"
],
"alpha": 0,
"controls": [
{
"hud_actionbar_text": {
"type": "image",
"anchor_from": "right_middle",
"anchor_to": "right_middle",
"offset": [
0
],
"size": [
"100%c + 12px",
"100%c + 5px"
],
"texture": "textures/ui/hud_tip_text_background",
"alpha": "@hud.anim_actionbar_text_background_alpha_out",
"controls": [
{
"actionbar_message": {
"type": "label",
"anchor_from": "center",
"anchor_to": "center",
"color": "$tool_tip_text",
"layer": 1,
"text": "$actionbar_text",
"localize": false,
"alpha": "@hud.anim_actionbar_text_alpha_out",
"$atext": "$actionbar_text",
"visible": "(($atext = '§'))"
}
}
]
}
}
]
}
}
how would I go about adding a 3d entity preview and specifiying the entity thru json ui?
Any idea how to do this? Is it probably a custom font emoji?
Yeah emojis+scoreboard+(fakeplayers?)
done
Edits title, use titleraw to display objectives
bro dm
How can I make a json-ui with just the title
from ui?
No way it's true? The name doesn't telling something JSON - ui
uh?
Just a stupid joke from me)
ahh okay
Finally know enough about ui to create the addon I wanted to make when I first started working on ui
Tip though, you should use invisible characters on form titles (example: §l§r§f§e§a§r§f) to avoid overriding
Overriding what?
ohh wait nvm
no, i use a prefix
nvm but it's a good practice ig, that's what I do cus sometimes people just steal ui's
marketplace encrypts all my work, so i'm good. (this is not apart of a marketplace project, it's a portfolio piece)
Oh u work at marketplace? I'm curious on how do u make money with it
I get given a project, I implement the assets, and my project manager paypals me
Ohh so the marketplace doesn't directly pay you
no, they pay the studio, the studio pays me
Oh alright
Also that pfp looks familiar lol
yeah, probs I didn't make it
is there any way to add a 3d preview of an entity that isn't your own player?
Hello
I want the text I added to the button to stay fixed, when I put a space, the text does not go backwards.
how can I do that?
How can I create menus like this?
Editing Server Form.
https://www.youtube.com/watch?v=3X9Oq2BvLck&t=13s&ab_channel=LeGendMC
https://wiki.bedrock.dev/json-ui/json-ui-intro.html
https://wiki.bedrock.dev/json-ui/json-ui-documentation.html
Code: https://bstlar.com/~e/t-b-s-f-c
This tutorial shows how to make a form only show when the title is specific.
Github: @LeGend077
Discord: LeGend#1687
#minecraft
#minecrafttutorial
This wiki is a knowledge-sharing website for Technical Bedrock, containing documentation, tutorials, and general how-to information.
Thanks
Use the grid.
with scrolling ofc.
The grid is unfortunately not really stable, by stable I mean. not usable for 'trial and error' type. since the game sometimes will crash.
hehe pig renderer
pretty sure that the pig's body is on backwards but we ignore that
whoa how did you managed to render an entity?
Well i assume its a stack_panel type, then you can't move that there directly, what you could do is wrap the buttons with panel so you can move it anywhere you prefer.
Is this only exclusive to selected entities?
It might be the options.txt file
mp_username:skinStandardCust
mp_prev_app_name:skinStandardCustom0c51814704bd47bd9f611041b623baae
no its a bug. usually happens when the game fails to sign in and sets a different username using your skin geo + a unique ID
This is so cool
I really need to learn JSON UI...
Kinda want to wait for OreUI but it seems so long till it gets released
how do you use grids for server form buttons?
Thanks
lol there's a lot more thing to do before it releases
my brother and christ
ore-ui is already out.
but though, not really data-driven yet and limited to couple of screens
bruh, we mean like official
Yeah
wasn't that official enough, like.
we have ore-ui based achievement screen for nearly 2 years
it's on stable.
It's been there since 1.19.10
also the world creation screen is also now stable too, no longer needs beta or preview
I still have it, even fresh reinstall.
We cant modify or make our own custom UI using OreUI yet
So its not really publically released
Although, base on the performance of OreUI in Minecraft Legend, I believe Mojang needs more time to optimize it
Cause...it's bad
It's expected, because most of screens still haven't receive ore-ui treatments yet.
The 'publicly' term doesn't mean anything rather than it already out there in the wild.
to sum it up, ore-ui is already out, but not data-driven. there's a lot more to go.
probably the issue of porting ore-ui to 1.17 base game
what is the renderer used for entities in general? I've been asking about it but literally no answers in this discord most of the time
There's a number of renders which display entities. live_player_renderer, actor_portrait_renderer, live_horse_renderer, etc. Some can render different types of entities as long as the correct entity id/uuid is passed into the binding. I think it's live horse renderer, but I don't remember exactly.
"type": "stack_panel", sil yerine "type": "grid", kullan
hmm I will check it out
How do you exactly get the uuid of an entity?
Does anyone know how do I make so that when I type like "/title @a title You have won" there will be an image showed
It is a numerical uuid. I think it is given to each entity per world.
In script, you can get the id property of the entity source:
entity.id
Scripting is probably the easiest way as LeGend just explained ^^^
But if you're not familiar with scripting you can also get the id for the binding by giving the entity the inventory component and displaying the binding value as text on the horse screen.
Or you could add the entity to a scoreboard. When you display that scoreboard, it will show the uuid of the associated entity
I want it to be darker towards the edges and the background is blurry
Is there a way to animate a chat message?
Thx
how use UV?
"bindings": [
{
"binding_name": "#hud_title_text_string" // reads in the current title string
},
{
"binding_name": "#hud_title_text_string",
"binding_name_override": "#preserved_text", // updates #preserved_text when visibility of this element changes
"binding_condition": "visibility_changed"
},
// element becomes visible then immediately turns invisible when a title containing the update string is passed
{
"binding_type": "view",
"source_property_name": "(not (#hud_title_text_string = #preserved_text) and not ((#hud_title_text_string - $update_string) = #hud_title_text_string))",
"target_property_name": "#visible"
}
]```
I found this code in the documentation. How do i know the name of the binding is called "#hud_title_text_string" to read the title, In another code for scoreboard it was called "#player_score_sidebar". Is there anywhere a list with all #text ?
Well i dont find these
I may be a bit too new to do this stuff, but I am trying to pass it the player uuid since it's the easiest one to test with
is the player model not renderable with that horse renderer?
or am I understanding bindings wrong and just not passing it correctly?
The number of times I tested it, horse render only works in the entity's chest ui (entity's inventory).
You can try editing the horse screen to check the renderer.
I still don't know much about passing it.
"type": "custom",
"animation_reset_name": "screen_animation_reset",
"anims": [
"@common.screen_exit_size_animation_push",
"@common.screen_exit_size_animation_pop",
"@common.screen_entrance_size_animation_push",
"@common.screen_entrance_size_animation_pop"
],
"renderer": "live_horse_renderer",
"layer": 4,
"anchor_from": "center",
"size": [
100, 100
],
"anchor_to": "center",
"property_bag": {
"#entity_id": <entity_id>
}
you can just look at the ui that we answered to though, it's definitely a server form
so it cannot be only working in the chest ui
^
Yeah, but they maybe using other techniques
You can still try it in the server form.
As I said I haven't tried it on different screens.
would this be a bridge documentation issue that it says it's not usable here?
yes, docs issue
hmm alr I will keep trying then
I'm a bit confused, how am I supposed to combine two strings into one?
"$temp_text": "#form_text",
"$second_temp_text": "Test Text",
"$test_qr": "$temp_text + $second_temp_text",
this does not seem to work
bindings does not mix with variables.
putting binding string in variables does not work.
work
@hexed briar look at this
put your code in ()
like "$test_qr": "($temp_text + $second_temp_text)"
ty I'll check
hmm does not seem to work either
look
misinformation moments
your bindings does not even have variables
and your variables doesn't even have a use, it's just literally there
hmm alright I will just leave it on the side for now, for some reason the #player_uuid is just not returning me anything anyway, got a clue why that would be or am I just missing something obvious?
#player_uuid does not exist.
either it was locked behind the forbidden builds of the game
@hexed briar man my variable is used to change texture file location u can see it on vidio that i have send before.
yeah it was locked behind the forbidden builds of this game, you can't use it. so it does not exist in stable
i just hardcoded this before
#texture is a thing, you're only used "$default" which is literally not exist and already has the set of bindings. therefore even without that variables, the element will work fine
this means that your variables is not really used and just for idk, there? nothing?
I've been making json-ui stuff for a year and can clearly read json-ui to the point I can see which one without even launching the game
may be I just translated in wrong way. Some times my English knowledges isn't too good to understand
Technically you can.
It's used on those pause menu profile cards, and its used on Zeqa's Cosmetic UI
You need a certain source property's etc and server setups in order to use it but. It does work
mine doesn't return anything back then so I left it as that.
Yeah, it wont work like that/by itself. But if you try certain way's with Text's and UUID's of the player you want on the server, it would/will work
How check if #title_text include Custom Menu large? What I'm looking for is to place a different title, something like Custom Menu LargeSTATS and only show STATS
(#title_text = 'Custom Menu Large')
I try something like:
...
"$testname": "('%.17s' * #title_text)",
"$showname": "#title_text - ('%.17s' * #title_text)",
"$text_name": "$showname",
...
"source_property_name": "($testname = 'Custom Menu Large')",
...
But dont work
Putting bindings on variables doesn't work
Any solution? I'm really new to JSON ui
I'm having a little hard time understanding why the anchors I set are not working as I expect it
{
"label_panel": {
"type": "panel",
"layer": 99,
"size": [
"223px",
"14px"
],
"offset": [
"17px",
"52px"
],
"anchor_from": "top_left",
"anchor_to": "top_left",
"controls": [
{
"label": {
"type": "label",
"layer": 99,
"text": "#form_text",
"anchor_from": "top_left",
"anchor_to": "bottom_left",
"shadow": true,
"font_scale_factor": 1
}
}
]
}
I would expect that going from top_left to bottom_left would mean that the text that is inside will just start from the left side and go to the right side centered in the middle of the two anchors, instead it actually is shifted up
did somebody make a typo?
It was for years
ok im kinda scared modifying the cursor now. you know they might fix the missing letter and it wont merge with the UI i'm working and everything falls apart
I really don't get this atm, if someone that understands better could let me know it would be very apprecciated!
also how would I split the provided form text into muliple strings after a new line character?
reminder that there's pudding and padding.
First of all, you might need to check the current of your element. some parent elements has fixed size, so therefore anchor won't work as you would expected. instead they'll work only the given fixed size area by the parent element.
I.e, If you're putting this in the button elements, anchors should only work around the button area.
vice versa.
the panels are at a top level of the form and the form has a defined size in pixels so I don't think that should be the issue right? since the default center anchors display correctly
well if you planning to put anchors in the form panel, that wouldn't be issue
but if you're planning to put anchors outside of the form, yeah that'll be the issue for you.
they are inside
well that's limitation right there
not really an limitations but intended way for json-ui I suppose.
Anchors within limited parent size and offset is your only friend on this one.
I don't really understand how there is a limitation? like if I have a basic form panel with a defined size, then the control children which have defined sizes too should be able to obtain anchors, like if anchors are actually working correctly
which they should be or the center anchor would also not be working
Like any UX/UI stuff, having fixed size as parent and elements makes anchor only use that limited size, not entirely the screen.
Forgot to mention, your text panel doesn't have bindings for #form_text
yeah I think you are missundestanding me, I want the anchors to correctly defined the fixed size inside that panel
perhaps change it to "test" and see if it works or not
the text is working I don't think that requires bindings (?)
well it's definitely working
you can't just pick random bindings string without adding bindings array
the form text is displaying correctly, not sure what you are exactly talking about, I'm pretty new to this
weird, never seen bindings working without bindings array.
the title needs a binding or it won't display, not sure about the form text and why it's working
I made the whole pre-game custom UI and those do need bindings array if putting bindings and stuff, otherwise it won't work
what is that parent element name exactly
the server form does not have a mention of that anywere in my file and that form text is only mentioned in that line
label_panel
which is a child of the custom form in my namespace
what's that?
It kinda like a pre-configuration for the elements
nvm I think I read about it in the json ui doc
it was something like hardcoded thing but at the same time it's not
is it cause the binding is specified in the base server form?
yeah.
alright, kinda starting to get it
not sure about those anchors yet, coming from godot and in general they were always a pain, will try and see how they work later, not really needing them right now
it shouldn't hurt without anchors
since you're doing fixed size element and therefore it's the same for every devices
it's not like it gonna move one bit.
I'm working with a specific pixel size ui so it'a not as needed atm, will probably need them if I will work on more hd stuff with not specific sizes
so yeah never mind the title text is also already a defined binding so I can remove that from my custom form
just a reminder that GUI scaling is there. so depends on user, you might definitely need dynamic size instead of fixed size.
I mean it will definitely not go outside their screen area, since the most they can do is make it smaller
Devices with 1080p can go even larger since it has 3 different sizes.
just don't underestimate it.
even large chest screen can't fit properly
yeah I'm working on the biggest scale size
will definitely tweak it later if there will be reports of it not fitting correctly
a close button is required for mobile devices right? otherwise they cannot get out of it?
If you're planning to, just go ahead and read that.
Not really, well. depends on users I guess, since people mainly complains about close button not being there even though the phone has back button.
you can press back button on a phone internally and it should acts like back button
but that's on you and probably userbase
I mean yeah we got every device on our server since we got over 1000 people daily, after bedrock release that became our bigger userbase, which is why I am trying to improve the experience for them
for better accessibility, I guess that's a go.
There's variables type for platforms.
I saw, but for now I really don't wanna mess with it since I'm alone on it and we have over 100 forms lol
since I just started on this, it will take me a bit to make it perfect for every platform
|default is there for variables.
is the button texture in ui common background_button_image? was trying to look for it so I can change it, also trying to understand the button states
it's kinda hard to read thru all the bedrock samples to see what's there in vanilla files
that's depends.
for me, should probably be easy since it's just 85% filled with variables.
removing all variables should give you a clear understanding on how should it work in general, then you can rewrite it from start
read the referencers aswell
button type has 4 states - default, hover, pressed and locked. those are just inside control array or child element of button, but this serve on how button should react and work properly.
those buttons vanilla are big sample of that.
yeah I got the state names, trying to understand how to bind those to different display values, is that just conditional kinda like looking for the title parts to display the custom form?
As long the parent element itself or the referenced parent element has button type on it, it should automatically binds it for you.
there's sample of button type in ui_common.json
this will allows you to control the button sounds and volume.
well, actually everything what you needed i suppose
by the way is there a way to choose the default button that is selected or will it always be the first one?
My first json ui
noice
That is really cool at first try
Although most of it is just texture changing stuff
How can I create 2 3 form_texts?
I want to create 2 separate form_text
What should I do for it?
Bro, can you dm me and have a look, please?
yeah I am also having a hard time splitting the form_text into multiple ones, how would I make it so it gets split on new lines?
Well it's possible if the other text is not dynamically changing its text
What you could do though is split the text
well I need to split the text yes, I have no clue how to
It's stated on json ui docs.
You can learn more and get started with JSON UI here: https://wiki.bedrock.dev/json-ui/json-ui-intro.html.
no it's not, I have looked thru the json ui docs, there is nothing about text splitting on specific characters to create collections of them
Bruh this means u didn't read the whole thing..
if you are talking about this part, then no it's not in the json ui since this only helps when you are sure about the length of the text
Splitting texts?
I need to split strings on every new line, if it's possible
you could by probably using c++ operator thing like this screenshot has.
or alternatively you can use clip_children property on panel property with fixed size, and use the text with offset to set what do you want to display
uhm... how to add text to pack setting screen below slider 
it's a cool alternative since you can use the same #form_text
split it yourself and place it anywhere
so there is no way to split text at a new line where every line can have whatever characters and get a collection to use out of it?
Thats what I said you can't change the second title text dynamically
Automatic ig or something
Static text will do just fine, but dynamic text like having scoreboard score in your text aren't gonna do anything well
static text you could just hard code into the json ui itself if you needed it in multiple places, not really useful then
that's why the clip_children comes in.
you pick a fixed panel size, set the text offset where you want the 'text' (with a new line) to display and there you have it
it works on dynamic text so, it probably should be fine
I don't really see how that would help me if I want to display the provided text in multiple parts of the ui, but I guess I'm too new to this
actually maybe I get it, will test it out later
How can I use only 2 form_text in separate places?
Clip children is essentially just to clip every child elements, so only parent size can be show. kinda like you have scissors, cut the half of the text off.
and it will show an cut version of the text in UI
so you can hide the texts.
so you can use 2 #form_text texts with clip_children at the same time it's different texts
I added 2 bodies and they have the same text and I want to add one of them to another place.
"main_label": {
"type": "label",
"offset": [
2,
2
],
"color": "$main_header_text_color",
"size": [
"100%",
"default"
],
"anchor_from": "top_left",
"anchor_to": "top_left",
"text": "#form_text",
"clip_children":
}
}
]
}
}
]
}
},````
?
Like this
?
I did as you said, it didn't work
"clip_children": true,
Inside manifest.json, add this: (although this method is not related to json ui 💀)
{
"settings": [
{
"type": "label",
"text": "Lorem Ipsum dolor sit."
}
]
}
Replace the dummy text with your text
(Method shared by ZouChenyunfei)
how would I collect buttons that start with specific text into their own collection?
Hello, can anyone send me the server_forms.json file template and how to change the width and height of the form ( action, modal, message form data )thank youu
anyone?
How can I add a background to the scroll bar?
how to change the position of this effect icon? I couldn’t find where to change this in mob_effect_screen.json
That's because it's part of the hud
hud_screen.json?
yeah
thanks
Does anyone know how to display the body text over the frames? I offset it but it is seen below the frame, try with layer but it doesn't work.
there is clip children in the default panel I believe
i try search it but no
well yes or otherwise it would not behave that way
I'm updating my UI Pack with more themes and when I try to load a world using my pack I get an error.
Appearance is taking a long time to load. Proceeding with world generation...
My first thought was, my manifest.json file was messed up. But I don't see any issues.
here is my manifest.json
What could be the issue? I'm using bedrock v1.20.15.
This is thing sometimes happen to me probably because of my device..
You can try lowering the memory tier
No, since it would not affect performance by a lot, try setting all "memory_tier" to 0
is it worth to learn and implement json UI anymore, since its getting replaced with Ore UI or whatever name that is
probably, knowing json ui should help you understand ore ui when it comes out
wouldnt that mess up the subpack selection?
i changed the mem tiers to 0 and still persists. Im not sure whats causing this but it was working before i added the Gold theme in mem tier 6
could my min_engine_version be messed up? that should work right? i tried to apply an old version of my pack that i know worked. It doesnt work with the latest versio of the game. The min engine version on the old version of the UI Pack is set to 1.19.40
no,
it's not required to be unique
It doesnt work at 0 but no version of my pack is working. Makes me think its my game. Because the old version i tried i know for a fact works. Bc it was my public release version. now it doesnt work. So im kinda lost on the fix.
Only thing i can think of is the min engine version not working with 1.20
Then the reason is probably not memory_tier, it's something else
How can I make a scrollbar like this?
i figured it wasnt mem tier when i tried the old version, but i still would like to know why this happens and how i can fix it. I cant properly test my pack if i cant get into the world.
do you know?
I've gotten that error before when I was making changes to my pack.
I managed to figure out a file in my ui folder was causing this, I then removed 1 file and joined the game to see if this file caused the issue and continued with all others in my ui folder till it was fixed.
When I figured out which file was causing the appearance bug I basically remade it using a new version from the uis given in the vanilla folder.
Wait so one of my UI files is messed up? Did the game update cause this? Did they add new OreUI screens that break my code?
Thanks for this, im gonna go through and check all my files and get back to you. Hopefully the settings screens isnt the issue bc i would hate the refactor the spaghetti mess mojang calls code.
Could be, for me is was my inventory_screen.json that was causing the issue
Ill check them all and find it, the inv screen wont be hard to redo.
Rn my UI pack only works on -1 gui scale. How do i make it work on both -1 and 0
not sure what's wrong but UI aren't the actual problem or issue.
they're just like addons stuff, textures for example.
It can't conflicts the manifest, so I don't see why's that the issue
The game would immediately crashes if there's something wrong with the UI, specially inventory or hud.
or straight up throws you an content log errors
after all, it's just overriding the code. if those fail, like syntax errors, the game can fallback to vanilla version.
I removed the inventory_screen.json file from the pack and it loaded. So i would say its an issue with that file.
perhaps it was recipe update thing, might have to reupdate it
im not sure what the issue actually is until i work with it a bit but ill find an answer
only option is just update it to latest I suppose
recipe unlock thing on inventory are already causing problems even at the start of this from preview
yeah ill update it, i dont think im actually changing it in a meaningful way. So i may just remove it
how can i change the textures of the forms? i want them to look similar to the hive in dark mode
whats %16.s mean? what means % and .s?
.
%s for printing as string format, 16. to print 16 characters at the left, but in minecraft it won't work, consider using %.16s (print 16 characters at the right)
aah thank you
anyone?
i cant find the textures
where are the texture files for the forms located?
I'm here to answer your questions!
start at server_form.json and follow the references until you get to the element in control of the texture
usually its common or common_buttons
thanks
Do I have permission to share my server to the json ui channel?
No.
how can I make a Json-UI work with the UI title
server form?
Code: https://bstlar.com/~e/t-b-s-f-c
This tutorial shows how to make a form only show when the title is specific.
Github: @LeGend077
Discord: LeGend#1687
#minecraft
#minecrafttutorial
What does this error mean?
[UI][error]-UI control reference not found: 'main_screen_content.sl'
what is .sl? It's not supported type of file.
The sl element does not exist in main_screen_content namespace/file as the file are attempting to use that element.
Would it be possible to add this in minecraft?
some kind of yes
but the button to "continue", it's not possible
if only on hud screen
Isn't there a button mapping or something that could do that? If im right..
no, there aren't many buttons for that
from what i know, only inventory_left and inventory_right work (on controller) on HUD
It is possible to set it if it is done with json ui
But I don't know if it was made with something else.
you could do it by making the default hovered button something invisible or just the actual x icon a button
He means like detecting which button is pressed in the controller
how did you understand that from a screenshot showing that?
Power
It's a legacy console edition, so obviously some people knows what that is
it kinda possible to make popup like that, though again there's not many button bind for that, so you gotta have condition rendering and the functions for that.
@halcyon spear just show a form type of messageformdata an edit it in json ui
Oh, Thanks for the idea 💀
your welcome
hi, do someone know how to disable only the exprience/progress bar from HUD?
I tried to make one of these and look what happened
idk, i don't have this problems
when i set the type to grid all buttons vanish is there a reason why?
"type": "grid",
"size": ["100%", "100%"],
"orientation": "vertical",
"layer": 1,
"anchor_from": "top_left",
"anchor_to": "top_left",
"controls": [
{
"[email protected]_panel": {
"anchor_to": "top_left",
"anchor_from": "top_left",
"$show_background": false,
"size": [ "100%", "100%" ],
"$scrolling_content": "server_form.long_form_scrolling_content",
"$scroll_size": [ 5, "100% - 4px" ],
"$scrolling_pane_size": [ "100% - 4px", "100% - 2px" ],
"$scrolling_pane_offset": [ 2, 0 ],
"$scroll_bar_right_padding_size": [ 0, 0 ]
}
}
]
}``` im new to json ui
anyone
you can help?
two things linked to the same long_form_panel file
can any one help me with sliders
Waiting since 4 mins...
hello
I ain't got allat of time
i cant send json, why
"menu": {
"type": "panel",
"size": [
100,
100
],
"layer": 5,
"anchor_from": "top_left",
"anchor_to": "top_left",
"controls": [
{
"title": {
"type": "label",
"font_size": "large",
"text": "Menu",
"anchor_from": "top_middle",
"anchor_to": "top_middle"
}
},
{
"[email protected]": {
"$option_label": "ddf",
"$slider_name": "slider_custom",
"$slider_steps": 5,
"property_bag": {
"#slider_steps": 5,
"#slider_value": 0
},
"bindings": {"binding_name": "#slider_value"},
"anchor_from": "bottom_middle",
"anchor_to": "bottom_middle",
"size": [
"75%",
20
]
}
},
{
"testText": {
"type": "label",
"layer": 8,
"anchor_from": "left_middle",
"anchor_to": "left_middle",
"text": "#texta",
"bindings": [
{
"binding_type": "view",
"resolve_sibling_scope": true,
"source_control_name": "slider",
"source_property_name": "('§z' + (#slider_value / 1) +'§z')",
"target_property_name": "#texta"
}
]
}
}
]
}
i want to read slider value, but it fails in reading
test text is used to get current slider value, but i think problem is in binding
tried
('§z' + (#slider_value / 1) +'§z')
('§z' + (#slider_value ) +'§z')
('§z' + (#slider_value ) )
can anyone help?
.
how do i prevent player doll disappearing?
Does anyone know how to make a custom UI for servers? I was looking for help making a custom UI for my server on missions, if anyone can help me, tag me
@visual holly
Hey, quick question, where do i locate the title element for forms? Tried editing standard_title_lable but it just disappears or not affected when i move/resize it. @normal moat perhaps could you help me since I know you have experience for this.
Hello, why do my buttons not appear in my custom ui
check ui_common_dialogs ig
But which? Kinda confused, i tried editing standard_title_label and title_label no changes, even the anchors/offsets.
Thats not what I meant
Title_panel standart title label
Could you send it or link it to me?
"$title_panel": "common_dialogs.standard_title_label",
"$title_size": [
"150% - 30px",
0
],```
...
i have a similar issue like LouTos, whenever i set my ui from stack_panel to grid all buttons disappear
what could casue that? do i need to set the size of the buttons? if so where
How do I change the orientation of the buttons so that they are horizontal
how did you make the buttons appear?
like what was your fix
Come mp
mp?
can you tell me how you fixed it? that the buttons didnt appear
message private
{
"logo": {
"type": "image",
"texture": "textures/ui/logo",
"size": [
100,
100
],
"anchor_from": "top_middle",
"anchor_to": "top_middle",
"layer": 1,
"bindings": [
{
"binding_name": "#objective_sidebar_name",
"binding_type": "global"
},
{
"binding_type": "view",
"source_control_name": "logo",
"resolve_sibling_scope": true,
"source_property_name": "(#objective_sidebar_name = '§l')",
"target_property_name": "#visible"
}
]
}
},
i have this code, but how can i make the scoreboard look right
i dont know what size i have to put in
"100%", "100%"
So "size": "100%", "100%"
Yes
But the picture is invisible now
@velvet heath hmm Make the size 100 by 100 and then post a picture.
you have to look at the image
@torpid nymph yo, which element did you use for making a main_panel_no_buttons but without the close button?
Okay, 1 sec
Wdym
@velvet heath dm
Nvm got the answer
?jsonui
You can learn more and get started with JSON UI here: https://wiki.bedrock.dev/json-ui/json-ui-intro.html.
Good morning,
What do you use to create UIs?
I was told about ore, can you use that?
Or do you modify the json line by line?
Json line by line, atleast for now
Is this kind of UI possible?
i know it is possible on java but idk if it's possible on bedrock
I think someone has done something like this already, i cant remember it tho
I have a problem, I added an item texture in the button but the button has changed size, at the base it must be like the others. How can I do this?
I have tI have the same problem
Is something like this possible? (dynamically setting an image based on dialogue text) I have checked the string output by making this a label and the path does exist but when I try to use a binding for it, it shows the missing texture icon.
right now, I'm passing it to a panel of images each referencing a binding template to show when their corresponding text is being shown but this would be much more convenient.
Someone had a problem with that before, I'm pretty sure because the filepath you put doesn't exist?
already checked that multiple times
Try doing it with different elements, like labels
Look at his approach:
#1074461752181395497 message
Can't get that to work, I'll just use this, only 6 images so it should be fine
I know that JSON UI is murky and difficult waters to navigate, but could someone please link a video on how to get started? Where do I get the vanilla files so I can examine them? How to make a small example from beginning to end? Anything? I’m just starting to play with this and I’m wondering should I even waste my time because of Ore?
You can learn more and get started with JSON UI here: https://wiki.bedrock.dev/json-ui/json-ui-intro.html.
and secondly, you can get and learn vanilla example from vanilla template. (RP/UI folder)
be warned that json-ui is deprecated due to upcoming ore-ui.
Are we able to start using Ore now, or do we have to wait?
And if so, where is that API and documentation?
Gotcha, thank you.
Ore Ui >>> JsonUI
live "xKingDark" editing message in #1067869374410657962 moment
I can’t seem to find RP/UI anywhere. I see in my PE files in a resource folder what appears to be world style folders or mcpack that have a ui folder with like one json per “pack” or “world” but nothing like a directory full of json files for ui…..
try looking for those at template pack files
?template packs
Lol I was literally just coming here to say “oh, I found the repo with the vanilla resources.”
Thank you for the response though.
any way that I can change the text size in a label depending on the gui scale (-1, or 0)?
Man, so confusing…. This is gonna be a headache. I wish there was a simple tutorial pack to download - like “Custom Menu Tutorial” that would show you what files need to be included and how for a basic project.
Annotated or with an explanation read me
Code: https://bstlar.com/~e/t-b-s-f-c
This tutorial shows how to make a form only show when the title is specific.
Github: @LeGend077
Discord: LeGend#1687
#minecraft
#minecrafttutorial
So, do I create a new add on pack with a “ui” folder and put my custom JSONs in there? Or do I have to edit the core files? I have the links, Google works too, but as thoroughly noted everywhere you look information for this is limited.
My overall objective is a custom dialogue menu with selectable responses
ui files go into a folder named "ui" in the resources. Any custom ui files must be defined in _ui_defs.json with their file path but they must have the ui folder as their root. E.g.,
- you can have: ui/server_forms/form_menu_1.json
- you cannot have: custom_ui/server_forms/form_menu_1.json
All ui is an edit of vanilla ui though
for example, custom hud elements that you add will be done via title text (edited in hud_screen.json)
Ok, so when I downloaded the vanilla RP, those are the files I’m editing, right? And if that’s the case how do I implement these custom ui files in my add-on without also installing this massive 52mb pack from the GitHub into my realm?
You only need what you're editing, for example, if you're going to use hud_screen and you want to disable the hunger render, you'd create a file in resources/ui/hud_screen.json and add only this code into it:
{
"hunger_renderer": {
"ignored": true
}
}
Ok, but for the form you said I’d need to declare them in ui_refs. So where would I do that? Create a new ui_refs file in my add on pack?
You say in resources/ui/hud_screen - this is found in the GitHub download here — #1067870274894172260 message right?
_ui_defs.json
all you need is this:
"ui_defs": [
// NPC Dialogue
"ui/kirby/npc_dialogue/npc_0.json" // path to ui file
]
}
Ok, just to clarify - I create a folder called “myCustomUIAddon” and inside there is a folder titled “ui” which contains two files. One “_ui_defs.json” which only includes the lines here —#1067870274894172260 message — (with proper values and not placeholders of course) and a npc_dialogue.json which will only define the objects it edits. Is that about the jist of it? Then when I install the pack, my new definitions merge with the games and mine replace files whenever contradictory data is passed?
No, kinda unnecessary.
You can go with any folders you want as long the UI path is valid.
example I could put it on textures folder, or my own folder specially. It works too
shhh we can't let the new devs know they can be unorganised
y
I dont understand, why don't mojang expand the JSON UI and release docs for it. For me, honestly JSON UI is actually really good, just have some limitations.
Json-UI is a decade old system from MCPE 1.0
of course, those will be obsolete. but that's ain't the main reason anyways
the goal of that was for new employees who knows react or html to make UI for it with ease, while they won't have a brain damage with json-ui like any of us have
I could immediately tell that after those mobile new touch things. that json-ui code is eh, questionable.
the usage of actual image file name which are not really required, and weird way to stack up elements
I can clearly see why would ore-ui exist
Ohh alright
Most legacy devs aren't there anymore on bedrock, mostly new devs. that's expected.
But we're still not sure if ore ui will get data-driven
We may, but that's depends on Mojang.
why wouldn't it be? isn't that the whole point of rewriting it?
We may get data-driven stuff for that ore-ui once it's fully done. but not really sure when since it's long development
for now, it's nowhere near to 20%.
we only get couple of main few screens and one in-game screen (death screen)
achievement is there since probably years now, that world creation screen and very recently the world selection screen or aka play_screen
Also I noticed they made the create world with oreui but not the edit world? Wouldn't it just be the same?
might get it when play screen is done
though the where and when is idk, long I guess
world creation is fully global or rollout for everyone after more than 6 months
The edit world screen is wip
it’s in the game files but they still haven’t released it yet
maybe soon
yeah, in term of ore-ui. don't expect new stuff that much. it's just that long
it's not life changing or anything, it's just minor layout and new design changes
at the same time they may try their best to optimize so low-end people can run it like json-ui
Oh yeah
They need optimize the lag when opening chest or inventories
Those are annoying
I don't have those issues really.
If you uh don't want animation because of it slowing you down, there's "screen animation" toggle in the video settings.
may reduce the loading time.
Is there a way to add a new button in Minecraft like F5 button and this button open a Form like ActionFormData and ModaleFormData??
No
i saw someone a while ago in this channel show that they had like 20 buttons on an npc dialogue menu and i was curious if anyone knew how to do that? assuming that most json ui stuff is resource pack based, i dont think commands will work for members tho, so it may not be what i want idk
You can get more than 6 buttons by using NBT editor at the same time modify the Json-UI npc screen to make it compatible with it.
what in the
Again, json-ui are client-side whereas NPC dialogue are server-side.
that's how it works.
is there a tutorial somewhere on that? im curious
well I don't think there's one
at the same time you don't want to invest on that, there's server forms that does exact the same thing
but alot easier.
NPC dialogue are, I guess really outdated for today add-ons standard.
yeh.. there's a problem for me though
i cannot use server forms due to using an outdated version
afaik
which version?
my map is going to be supported on 1.18.10-present
not sure why would you go for 1.18.10
there's no render dragon on any version below 1.18.12, assuming that you arent using the 64 bit windows version of mc
many players in the community i'm in uses 1.18.12 x86
for better performance
i can work with 6 buttons per page but yeh it's a shame i can't rly do much about it
yeah I don't think not any NBT editors support that anymore expect downgrade, and at the same time there's not many of them
I would honestly go over 1.19.30 for more performance based at the same time script-api supports
would it be supported from 1.19.30-latest if i went for that?
oh interesting
it'll function the same even latest version
there's 1.0, 1.1, 1.2 and 1.3 for stable afaik
knowing that over time 1.18.12 is slowly getting more and more obsolete due to servers not supporting it very well
it's something to consider
well it's already obsolete since it's 2 major versions behind.
and not only that, addons components gets changed everytime. so some 1.18 add-ons components might not work in the latest
and very recently, in the latest preview. they seems to deprecated few addons components in the favor of scripting-api, might wanna keep in mind with that
but the issue is that i have loads of command blocks i made 2 years ago that all have old executes in them
so i cannot touch them anymore or i just remake it which is PAIN but maybe it's worth the sacrifice
i see
It's technically not hard to convert them into new execute format.
if you don't want to, you can put those into function/behavior pack instead.
prolly should move most of them to funcitons
change the format version of the behavior and I suppose the old execute command should work in the latest
well i like the functionality of the new execute so im torn
i could just split it into two behaviors
after all
I probably would go for remake the whole map and use scripting-api instead
command block is still optional though
thank god i havent made enough to where it would be that bad to redo
most of my plans are still just plans
i have to learn all the scripting stuff but it's prolly not that hard
i understand the basics of javascript
shouldn't be that hard to learn everything i need to learn with the decent amount of experience that i have... right?
then it shouldn't be hard considering script-api does not use advanced javascript codes but instead they have minecraft related code for you to tickle around.
there's a lot of example everywhere in the wiki about how should it work
for best support, use script-api 1.3 for it. don't worry though, there's even beta version for it too Incase you might wanna tickle latest script feature stuff and want to implement it while in development
would it be hard to convert all the npc uis that i made into server form uis
How can i make a new button in Minecraft bedrock?
in terms of json ui appearance
idk json ui very well at all
they also uses less code too.
what am i getting myself into
i feel like the worst thing will be converting the npc dialog ui appearances
it probably not gonna be that bad despite server form being more easiest json-ui to modify
okayyy
you have buttons, image from the server-side (optional, can be disabled if you want though) and text
surely if i just copy the positional values and the pngs i should be set
im assuming i still have to use bindings to change the appearance correct?
alr goood
@hexed briar one more question, what do you think is the most efficient and effective way of learning this scripting stuff?
Script-api can be reloaded during in-game with /reload command.
you can change or make new stuff, /reload it and should able to see changes to it.
there's wiki for examples of how server forms should work
so you're saying i should just learn by doing?
well it's rather trial and errors, don't worry, you can ask people in #1067535382285135923
alr
#1046947779118895114 for inspiration I suppose, there's a lot of showcases with the usage of script-api there
okay
just trying to not lose a lot of time figuring things out and then realizing there's a quick easy solution
it also can run commands just in case you want to
yeh i tried doing that just to realize that it only worked on 1.18.12 lol
that's why i gave up scripting for the longest time
bc it seemed like every new version there was something stupid that changed all the compatibility
probably the script was still beta at that time, that's why.
Beta version always get changes whereas stable doesn't.
so you can in theory use stable script version, and it should last about 5 major minecraft update long
if there was a decent stable version of gametest on 1.18.12 i might do that
but i dont think there is
so 1.19.30 is the lowest for universal scripting
you can downgrade to 1.0 stable if you don't like 1.2 or 1.3
yeah afaik
alr
cant really be sure though, you might wanna check wiki for that
looks like certain stuff is supported on 1.18.30
but that version is the absolute worst
you could try to select script versions in manifest behavior file, if it doesn't work then it should throw out in content log.
yeh true
How do I add a texture like here but doing it in the server_form?
One question, is it possible to remove some slots from the hotbar?
u add the icon in scripts
yep there is optional param in button builder where you can specify the path