#JSON-UI General

1 messages · Page 44 of 1

hexed briar
#

mojang themselves and is also WAI.

#

yeah, people actually bug reported this but turned out was flagged as WAI and they mentioned about settings adjustments on their changelog.

hexed briar
broken trail
#

X

#

D

hexed briar
#

basically it's intentional.

#

been like that since i think couple of .100 previews, they left a feedback page that does absolutely has nothing on it so people can't post a feedback

#

it's still here in latest preview.

#

I doubt that they're gonna fix this though tbh, i mean look at sounds settings.

#

it's been like that for years now.

broken trail
#

they added it to make people angry so they have now reason to change it to new design because current sucks

#

change my mind

chilly yacht
#

they added it because the json UI team needed a way to somehow milk mojang before it switches to ore ui

safe wing
#

i code json ui in one line

torpid whale
#

Whats the ninesplice to the inventory?

rocky quail
#

funnily enough, if you manage to open the chat screen and do /ride. You can move around while still in death screen

#

just in a boat or horse tho

opal aurora
#

yay more bugs

#

ore ui introduces even more bugs than json ui

broken trail
opal aurora
#

the bug where players can get stuck in death screen after pressing respawn, that was once fixed when the screen was still json ui, now came back because of ore ui

whole jasper
#

can use other entity renderer?
for example armorstand in smithing table, i want to take anim time only

empty tendon
#

How do you display multiple titles?

wintry crater
real panther
#

Could anyone help me with adding ui to forms pls?

grave jasper
#

I'm pretty sure that i placed the load order correctly because the optional addon has an alternate texture too and it displays properly.

unreal ravine
#

Emmm.. This channel is for User Interface (UI), not for blocks

grave jasper
#

sorry it's because i was messing with json that i thought it was the right place. my apologies

unreal ravine
#

Np

unreal ravine
unreal ravine
#

And theres some way to prevent button closing the form?

wintry crater
#

idk but what im doing is calling the form again after clicking a button

unreal ravine
#

Yeh, ik, but it should be another way than that

jaunty smelt
#

like the same form

#

nvm someone ready told u

unreal ravine
#

Welp, no other ways than that then.

river flower
#

I have a complicated but geometrical animations (resizing, moving, rotating animations)

My designer was gonna do the animation and send it to me but the issue is that the animation would take 60 frames
If I convert that into a flipbook animation (which is the closest thing to an animation in minecraft), 60 frames is HUGE and will take so much space in the texture pack

But since this is geometrical, would it be possible to use json ui's animations? As I said, the animation is geometrical, so I just need translation, rotation etc

#

Another thing I'm worried about is that I am bad at making animations myself- I'd only be good replicating existing animations
In that case, is it reasonable to let the designer make the animation anyway and I'd start trying to mimic every frame of that animation into json ui animations?

#

I don't know what to do and all of this is because json ui doesn't support GIFs which have MUCH less size than 60 separate frames..

chilly yacht
#

youd just have to use flipbook

#

or some entity thing and display it

river flower
safe wing
#

hmmm flipbook vs asprite

jaunty smelt
#

What would the binding be if i wanted to get the first 10 characters of the title for a label ?

wintry crater
jaunty smelt
#

no. that part ik

wintry crater
#

btw, you mean server form title?

jaunty smelt
#

... noooooo hud title

wintry crater
#
"bindings": [
    {
        "binding_name": "#hud_title_text_string"
    },
    {
        "binding_type": "view",
        "source_control_name": "#hud_title_text_string",
        "source_property_name": "('%.10s' * #hud_title_text_string)",
        "target_property_name": "#text"
    }
]

try this

jaunty smelt
#

TY

#

hope it works

jaunty smelt
#

idk whats wrong with dis

wintry crater
#

btw, are you using preserve title text?

jaunty smelt
wintry crater
jaunty smelt
#

idk

#

yeh

#

using title text to condition visiblity

wintry crater
#

if so can you send your current code?

jaunty smelt
#

{
"bar_0@health_bar": {
"size": [
0,
9
],
"uv_size": [
0,
9
],
"$condition": "§h§0§0",
"bindings": [
{
"binding_name": "#hud_title_text_string"
},
{
"binding_type": "view",
"source_property_name": "(not((#hud_title_text_string - $condition) = #hud_title_text_string))",
"target_property_name": "#visible"
}
]
}
},
{
"bar_1@health_bar": {
"size": [
5.5,
9
],
"uv_size": [
5.5,
9
],
"$condition": "§h§0§1",
"bindings": [
{
"binding_name": "#hud_title_text_string"
},
{
"binding_type": "view",
"source_property_name": "(not((#hud_title_text_string - $condition) = #hud_title_text_string))",
"target_property_name": "#visible"
}
]
}
},

#

thats just reapted to make it longer

wintry crater
#

hmmm idk but you can use this as your guide

{
    "mana_text": {
        "$update_string": "mana:",
        "type": "label",
        "text": "#text",
        "layer": 1,
        //"shadow": true,
        "controls": [
            {
                "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 not ((#hud_title_text_string - $update_string) = #hud_title_text_string))",
                            "target_property_name": "#visible"
                        }
                    ]
                }
            }
        ],
        "bindings": [
            {
                "binding_type": "view",
                "source_control_name": "data_control",
                "source_property_name": "('%.25s' * #preserved_text - $update_string)",
                "target_property_name": "#text"
            }
        ]
    }
}

this shows the first 25 characters of the title text

jaunty smelt
#

💀 that js confussed me 10x more

#

like why make another panel

jaunty smelt
safe wing
#

i wonder what will happen to server-ui after oreui

wintry crater
#

how to fix this?

#
//button image layer = 10
{
    "image": {
        "type": "image",
        "layer": 10,
        "size": "$icon_size",
        "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"
            }
        ]
    }
}

//hover layer = 100
"[email protected]_text": {
    "layer": 100,
    "ignored": "$default_state",
    "property_bag": {
        "#hover_text": ""
    },
    "bindings": [
        {
            "binding_name": "#form_button_text",
            "binding_type": "collection",
            "binding_collection_name": "form_buttons"
        },
        {
            "binding_type": "view",
            "source_property_name": "#form_button_text",
            "target_property_name": "#hover_text"
        }
    ]
}
clever maple
opal aurora
wintry crater
opal aurora
wintry crater
#

ill send it later, im not at home atm

wintry crater
oak verge
#

layers order need to be in your second controls:[]

#

-# inside it, not like how the comments show

wintry crater
#

ohh okay

#

thanks! ill try that

frigid drift
#

does MessageFormData uses long form

oak verge
frigid drift
#

thank you

clever maple
#

What do I need to add again to make a button return it index value?

#

in ActionFormData

clever maple
#

nvm I got it

verbal remnant
#

Hello, I created a button in JSON UI in the chat_screen. Is it possible to run a command without clicking on it?

scenic forge
#

If I had 20 labels, each with 20 binds, would making one common label that they all call from improve performance?

tidal vector
#

I see Hex colors chat message in a server someone know how to reproduce something like this ?

broken trail
#

or each letter has vec4 for r,g,b,a value to set it through UI - I dont think so

#

it would look

#

t(0.5,0.2,0.1,1)h(0.2,0.6,0.5,1)i(0.5,0.2,0.1,1) and so on...

chilly yacht
broken trail
#

or wait is it even chat screen?!

chilly yacht
hexed briar
#

it certainly does not look like bedrock's text renderer to me.

#

It has java's italic font, Uses java's item stats.

#

it's likely that a custom entity that summons behind the player (pretty much the same technic where you put a chest behind the player and make them open)

#

rendered by the UI which is something you can do. (commonly used on server forms, but work with other screens too.)

opal aurora
frigid drift
#

is there any sample code of a personal sidebar that can be updated every second without a use of titleraw?

vernal storm
#

How to run right click with only RP

hasty hamlet
#

hi there, do someone know if is possible to make the common.close_button selectable by console? I play on PS and it doesnt allow me to select it, but on PC it works fine to close the window

brisk dock
#

is there a way to change the color of text shadows?

river flower
#

Is there any way to completely disable third person perspective?

broken trail
#

use camers

#

@river flower

river flower
broken trail
#

idk tho, but it locks third person perspective 😂

wintry crater
#

like this??

river flower
river flower
wintry crater
#

yes

river flower
#

awesome

frigid drift
#
[UI][error]-----------------------------------------------------
Unknown properties found in def[hud_title_text] from namespace[hud]
- Unknown property [orientation]
----------------------------------------------------


[UI][error]-----------------------------------------------------
Unknown properties found in def[hud_actionbar_text] from namespace[hud]
- Unknown property [texture]
----------------------------------------------------

after modifying hud_title_text and hud_actionbar_text, how can i ignore this error?

turbid nimbus
novel garden
#

Does anyone knows how to make this button opens the how to play section only when doubl_pressed {
"namespace": "general_section",

"how_to_play_button@settings_common.section_toggle_base": {
"$toggle_view_binding_name": "how_to_play_button_toggle",
"$glyph_texture": "textures/ui/how_to_play_button_default_light",
"$glyph_color_texture": "textures/ui/how_to_play_button_default",
"$glyph_size": [ 15, 15 ],
"$button_text": "menu.howToPlay",
"$toggle_property_bag": {
"#panel_title": "menu.howToPlay"
}
}
}

hardy lily
#

because pressed button texture only appear if you using touch control and hold the button

unreal ravine
hardy lily
unreal ravine
#

Nope

hardy lily
#

then, you should try it

#

as I know, keyboard & mouse control doesn't show the pressed button texture (except Ore UI)

#

except a few button does show a pressed button texture like dropdown

unreal ravine
#

Oh i see

manic dragon
# unreal ravine Oh i see

It's just that button actions get executed on mouse down event (mouse up for OreUI)
So the form in this case closes before the button can show it's pressed texture
If you make a button that does nothing, you can actually see the button's pressed texture

unreal ravine
#

Oh , ok thanks

tidal vector
lean estuary
#

how do i remove the "an error has occurred."

#

i had to move my text above, because if i dont, they get overlapped

safe wing
#

man offset is so confusing

safe wing
#

is there a way to modify start_screen buttons

unreal ravine
#

Someone can tell me what is the toggle_hover referenced as binding in toggle???

muted spire
#

Hi all. How to get item name color like §f or someting, want to change the texture depending on the color of the item name

weak cape
#

is there a way to render an entity with a fixed x rotation?

left yew
#

Paperdoll, live, etc.

Because im pretty sure you can choose a starting rotation for some of them

weak cape
left yew
#

Ah yeah. Im not too sure about horse renderer stuff, I haven't used it before, and I doubt stuff like "rotation_x" and that would work

weak cape
#

the rotation of camera did...

#

but i need it to face the right side.

left yew
#

Ik theres stuff like
"starting_rotation"
For the paperdolls

#

Idk if it'd work there tho

weak cape
#

i dont really know how to display paperdoll as an entity

river flower
#

I have a tpack that has /ui and /textures

Is it possible to put /ui in its own texture pack and /textures in another texture pack?

left yew
left yew
unreal ravine
#

guys, how can I divide the text of the button?

#

cuz using "\n" set the text to standart one

left yew
weak cape
unreal ravine
river flower
#

I see. thanks!

left yew
unreal ravine
#

Ill try

weak cape
left yew
river flower
unreal ravine
#

It works, thanks

left yew
#

Yeah np

fresh summit
#

How can I make a "stamina" bar like this?Or better yet, boy, how do I connect it to my SCRipt? How do I do it so that it depends on a scoreboard and the stamina bar goes down? I don't know, can anyone give me an idea?

gaunt apex
safe wing
#

can someone explain to me what a collection is

fresh summit
#

You can attach more than one title, for example, I have an active interface with one title, but I have a stamina that has another title, but when I run another title, the previous one is deleted and removed The content

weak cape
summer vault
surreal ridge
#

can any talented server form UI developers DM mé, im looking to pay decent money for some custom forms:)

sinful crypt
#

This UI help channel has literally become a hiring server.

surreal ridge
#

it would benefit it alot

sinful crypt
surreal ridge
sinful crypt
#

Please read the rules

surreal ridge
#

holy discord mod

#

also it doesnt say it anywhere in the rules.

random whaleBOT
#
Finding a Dev or a Team?

This discord isn't suited for finding or offering paid work. We can't moderate these transactions, so we ask that you move to a more suitable place.

For a casual discord community, consider joining Skill Share: https://discord.gg/sZ7fkcN.

Find incredible people. Make beautiful things. A home for crafting your career in the Minecraft industry.

https://www.bucketofcrabs.net/

surreal ridge
#

faq not rules

sinful crypt
sinful crypt
#

ok

surreal ridge
#

no need to take discord this seriouly gango, what im doing doesnt affect you

sinful crypt
#

??

#

you can join the Skill Share server for getting devs suiting your needs though

river flower
sinful crypt
#

I don't know ;-;

viral oxide
#

What element handles the item currently held in the cursor in inventories?

#

I feel like im being blind xD, i cant figure out what it is

manic dragon
muted spire
#

How to hell change item tip background texture in UI side, rn i'll find 3 file which uses this texture

#

Changing to mine custom named texture didn't work

quartz pendant
#

textures/ui/purpleBorder should be were its at iron do u mean changing the texture path name but not edit the texture?

hardy lily
#

Is there any other version about this modal form?
as I know, there's a one button version and also three button too. But I'm not sure how to get it and what script should I use.

manic dragon
#

They made MessageFormData only for 2 button layout

hardy lily
#

sad 😔

oak verge
#

Use action form

opal aurora
#

it's part of popup_dlalog, it's recommended to clone them instead of overriding vanilla

sick shell
verbal remnant
#

How do you open a custom chest_screen? For example, when it has the name jobs.paliers, it opens with a behavior pack or a command.

jaunty smelt
broken trail
rocky quail
hardy lily
rocky quail
wary pollen
#

How can I add the score here or is it not possible?

frigid drift
#

i can use percentage for offset right?

#

so basically i want to offset a stack panel that has a height of 100%c into 100% or the endmost of the stack panel (for anims purposes), how can i do that?

frigid drift
#
{
      "itemstack": {
      "type": "stack_panel",
      "size": ["100%", "100%c"],
      "offset": [0, "-100%"],
      "anchor_from": "top_middle",
      "anchor_to": "top_middle",
      "factory":{
      "name": "buttons",
      "control_ids": {                                         
        "button": "ec_spin.itemvis"
        }
      },
      "collection_name": "form_buttons",
      "bindings": [
      {
      "binding_name": "#form_button_contents",
      "binding_name_override": "#collection_length"
      }
    ]
  }
}
pulsar hornet
#
"dynamic_button": {
    "type": "stack_panel",
    "$size|default": [
        48,
        32
    ],
    "$text": "#form_button_text",
    "size": "$size",
    "variables": [
        {
            "requires": "(not (($text - '§T§Y§P§E§1§r') = $text))",
            "$size": [
                64,
                32
            ]
        }
    ],

why is size not working? am i using the wrong variable?

oak verge
#

if only

unreal ravine
frigid drift
#

is there a way i can use nineslice for flipbook images

#

eg animated frames that are sized 18x18

short chasm
#

Are dynamic interfaces a thing that exists?
Is it possible to change the texture of an element based on a variable?

night holly
#

I have a cursor following input panel, inside of a scrolling panel, does anyone know if theres a way to make it so it isnt clipped inside?

manic dragon
hollow oxide
safe wing
#

how to make nineslice json file

broken trail
#

yo someone wanna it?

surreal ridge
#

Looking for custom server form dev again, 2 people have cancelled, can pay. Dm me

night holly
manic dragon
valid swan
#

My grid has extra buttons until it reaches button 6, which is the maximum, what do I do?
"grid_buttons": {
"type": "grid",
"grid_rescaling_type": "horizontal",
"anchor_to": "center",
"anchor_from": "center",
"size": [96, "100%c"],
"maximum_grid_items": 6,
"grid_dimensions": [3 , 3],
"collection_name": "form_buttons",
"grid_item_template": "many-npc.dynamic_button"
}

unreal ravine
#

Damm

surreal ridge
night holly
unreal ravine
#

F

manic dragon
# valid swan ????

Try adding the bindings for maximum grid item rather than setting them directly

valid swan
#

?

manic dragon
#
{
  "binding_name": "#form_button_length",
  "binding_name_override": "#maximum_grid_items"
}
night holly
valid swan
weak cape
hexed briar
# broken trail

love the 7,628,646,548,813th server form that looks like recolored ore-ui

frigid drift
#

how can i replace server form button's texture image with something else if it's texture is missing? (not by replacing the missing texture image)

#

like bindings if possible

broken trail
manic dragon
manic dragon
broken trail
#

maybe it's reason why I saw many similar ones

#

however speedrunning it it around 1/1.5h is not that bad

manic dragon
#

🔥Topics covered in this video:
JSON UI Variables
JSON UI Sizes and Scaling
Bindings in JSON UI
Server Forms
Custom Buttons

🔗Links :
Last Video Part: https://youtu.be/zWecyvsbKHY
Join My Discord! : https://discord.gg/tzrmH56JXC
My Website And Code: http://skyls.de
JSON UI docs : https://wiki.bedrock.dev/json-ui/json-ui-intro.html
Vanilla ...

▶ Play video
#

You can see from the thumbnail

#

He also made a tutorial on texturing the form

broken trail
#

yea its similar

#

everything I see here is

#

and dingsel video at the bottom instead of ffmpeg

#

lmao

manic dragon
#

lol

pulsar hornet
#

Any ideas to fix those stripes between characters?

uncut lantern
#

excel in minecraft before gta 6 😳

manic dragon
#

Why not use squares

river flower
pulsar hornet
pulsar hornet
oak verge
#

i don't think you can do anything about it

pulsar hornet
#

That's what i came up with for now

manic dragon
pulsar hornet
#

i alredy tried but it fixes it only vertically

#

i prefer having squares than having stripes

strange snow
#

how do you prevent hover_text_renderer from overflowing off the screen

weak cape
strange snow
#

like it doesnt fit inside the window of minecraft

weak cape
#

Show me your screen

#

Maybe your text too big

#

Happens in craftersmc

#

Sometimes you can't read some items cuz of big text

last pollen
#

source code ? please

hardy lily
#

anyway, Is it possible to display 20 line in scoreboard? and does the scoreboard can read the 20th index (index 19)?

#

I haven't tried that myself

weak cape
#

@oak verge

#

did you delete your nineslice site?

weak cape
#

yay

#

thakns

opal aurora
weak cape
#
{
   "profile_grid": {
      "type": "grid",
      "collection_name": "players_collection",
      "grid_item_template": "hud.profile_name",
      "debug": "yellow",
      "maximum_grid_items": 1,
      "size": [
         "40px",
         "100%"
      ]
   },
  "profile_name": {
     "type": "label",
     "text": "#gamertag",
     "debug": "red",
     "size": [
        "100%",
        "100%"
     ],
     "bindings": [
        {
           "binding_type": "collection",
           "binding_collection_name": "players_collection",
           "binding_name": "#gamertag"
        }
     ]
  }
}

any clue why this does not display the gamertag?

opal aurora
#

as i saw a pack that adds block glyphs but those glyphs are bigger than normal, by 2 times the standard text size

sick shell
#

that kinda sucks, just use images on a grid

#

to hopefully help it perform better and you can customize the padding between

weak cape
manic dragon
pulsar hornet
#

but i think they re fine honestly

weak cape
manic dragon
#

No

whole jasper
jolly rock
hardy lily
unreal ravine
pulsar hornet
pulsar hornet
weak cape
#

why yall reply to him at the same time

#

xd

pulsar hornet
#

Fr

pulsar hornet
sinful crypt
unreal ravine
valid swan
unreal ravine
#

💀

pulsar hornet
#

What's the variable to get the actionformdata title text?

jolly rock
#

#title_text

pulsar hornet
#

this isnt working what should i do?

"$titletext": "#title_text"

(ping me)

pulsar hornet
#

im going crazy json ui is so ass

pulsar hornet
manic dragon
#

I meant the code

pulsar hornet
#

@manic dragon

manic dragon
#

Try adding the binding for it

{
 "binding_name": "#title_text"
}
pulsar hornet
#

just that?

#

bindings: [
{
"binding_name": "#title_text"
}
]

manic dragon
#

Yeah

pulsar hornet
#

i just used

new ActionFormData()
    .title(`§T§Y§P§E§4§rWorld Map`)
manic dragon
#

You won't really get any errors
Sometimes using bindings in variables doesn't work as intended

pulsar hornet
#

so there is not a fix for that?

jolly rock
pulsar hornet
jolly rock
#

And the number change the scale

#

Right?

#

that is what you want?

pulsar hornet
# jolly rock Right?

number changes the scale of the text and the type is to make the font small yes

jolly rock
#

Of the main_label label?

#

@pulsar hornet or another label inside controls?

pulsar hornet
#

i need to change the .body() not the .label()

jolly rock
#

In your code i dont see "font_size": "$font_size"

pulsar hornet
jolly rock
#

If you change the default value it changes?

manic dragon
#

How about using some property bag values and bindings
There are #font_type and #font_scale_factor bindings right?

jolly rock
#

I think no

manic dragon
#

I've seen them in vanilla files but didn't try before

pulsar hornet
#

i need it to make base forms also work when my addon is installed and also change size couse 75k characters in a form might make some device crash

#

why are bindings that hard to use?

manic dragon
# pulsar hornet why are bindings that hard to use?

Try using this and see if font scale changes

"property_bag": {
  "#font_scale": 0.15
},
"bindings": [
  {
    "binding_type": "view",
    "source_property_name": "#font_scale",
    "target_property_name": "#font_scale_factor"
  }
]
manic dragon
#

You can add more values in the property bag

pulsar hornet
#

i do have to do the same thing as "requires" but in property name?

manic dragon
#

Yes but you'll need to modify that to do something similar to if else

pulsar hornet
#

fontscale: "(not (#title_text - '§T§Y§P§E§4') = #title_text) ? 0.15 : 0.30"

#

something like this in the property bag?

manic dragon
#

You can define property bag value like this:
"#§T§Y§P§E§2": 0.6

Then in source_property_name: "('#' + '%.15s' * #title_text)"

#

It should work but I'm not sure

manic dragon
pulsar hornet
#

what is that %.15s *

manic dragon
#

Gets the first 15 characters from title text

pulsar hornet
#

json ui is so weird

pulsar hornet
manic dragon
#

§ counts as 2 characters so §T§Y§P§E§2 is 15 characters

pulsar hornet
#

oh

manic dragon
#

Did it work?

pulsar hornet
#

yes

manic dragon
#

Honestly I wasn't so sure because of the § character
Glad it worked

pulsar hornet
#

@manic dragon

"property_bag": {
    "#§T§Y§P§E§1": [
        "20%",
        32
    ]
},
"bindings": [
    {
        "binding_type": "view",
        "source_property_name": "('#' + '%.15s' * #form_button_text)",
        "target_property_name": "#size"
    }
],
"size": [
    "100%",
    32
],

for size it doesnt work like that right?

chilly yacht
#

no lol

#

its #size_binding_x and y

earnest acorn
#

can json ui access entity properties?

unreal ravine
#

Nope

hot granite
#

What’s the best way to learn json ui?

weak cape
oak verge
#

And reading vanilla files

pulsar hornet
#

where do i donwload good auto completions for json ui in vscode?

hollow knot
#

Can anyone help me with my UI problem

#

How can I add a scrolling panel so it can support how many buttons i wanted

hardy lily
#

I heard minecraft 1.21.110 will break some json ui code. Is that true?

valid swan
#

How can I define the color of my custom bar?


    "custom_bar": {
        "type": "image",
        "texture": "textures/pokemon/ui/ore-ui/buttons/button_header_light",
        "size": [128, 8],
        "color": "#color",
        "clip_direction": "left",
        "clip_pixelperfect": false,
        "$max_value": 100.0,
        "$min": 1.0,
        
        "$string": "('%.10s' * #form_button_text)",
        
        "bindings": [
            {
                "binding_type": "collection",
                "binding_collection_name": "form_buttons",
                "binding_name": "#form_button_text"
            },
            {
                "binding_type": "view",
                "source_property_name": "($min * ($string - '~'))",
                "target_property_name": "#value"
            },
            {
                "binding_type": "view",
                "source_property_name": "(($max_value - #value) / $max_value)",
                "target_property_name": "#clip_ratio"
            },
            {
                "binding_type": "view",
                "source_property_name": "(('%.10s' * (#form_button_text - $string )) - '~')",
                "target_property_name": "#color"
            }
        ]
    },
jolly rock
valid swan
#

I'm avoiding using +1 texture '-'

#

without the bindings it works without problems, with the bindings it doesn't work

jolly rock
chilly yacht
#

i dont think u can use #color like that lol

jaunty smelt
#

"bindings": [
{
"binding_name": "#hud_title_text_string"
},
{
"binding_type": "view",
"source_property_name": "#hud_title_text_string",
"target_property_name": "#text"
}
] this is a binding to apply title text to my label but how can i edit the text before applying?

valid swan
#

Worse still, it was working, in the title, the only thing that doesn't work is the form.

paper yew
#

Hi guys, how can I disable the esc function in server_form.json?

nocturne salmon
#

i dont really touch UI. But does someone know if i can enable the crosshair for specific entities when riding them?

night holly
hardy lily
# jolly rock

Is there any tools that can help me slicing a string 🤔

unreal ravine
hardy lily
unreal ravine
#

Dunno ig

hardy lily
#

brah

weak cape
weak cape
hardy lily
#

fine. I'll make my own

#

ummm... any docs available?

#

nvm, found it

#

It's called Text Formatting, but I called it text slice 🤦‍♂️

hardy lily
#

that should work

hardy lily
#

oh, someone already make this on javascript. I guess this is not needed

weak cape
#

Something that will make stacking multiple information inside one button more feasable

clear lantern
#

Can someone please help me with issue with server forms progress bar? It's in post

lean estuary
hardy lily
weak cape
#

might start a project like this if nobody would do it

hardy lily
#

I am sick btw

#

Oh yeah, can you give me any example about string formatting? Maybe I can create one of thoose

hardy lily
#

So far, this is what I can make. Idk if this correct

unreal ravine
hardy lily
#

maybe I'll keep this to jumpscare other people :p

nocturne salmon
hardy lily
jolly rock
untold dawn
#

umm, is it possible to add that screenShot button to the hudScreen?

opal aurora
manic dragon
#

Does anyone know what carousel_label is?
I saw it in ui_common.json but couldn't use it

oak verge
#

it is Legacy, so not sure if it is usable

manic dragon
#

It's not usable I think

oak verge
#

seem so, no screen is calling it

manic dragon
#

Also no other screen has any element of this type

hexed briar
manic dragon
#

Was it used for the splash text?

hexed briar
#

i think they're pretty much been removed or something since they don't work anymore and throws a content logs that this type of element does not exist.

hexed briar
#

I've seen someone rotated text with this element type before, but that's like couple of years ago.

manic dragon
#

Yeah I was thinking about using it for rotated text. But ig there's no luck with this

sick shell
#

literally no one used that cus that wasn't even used below 1.0.0 versions

#

thats probably just paper doll tricks

hardy lily
#

does json ui bindings support text as boolean? like (($var1 or $var2) = true)?

weak cape
untold dawn
untold dawn
# opal aurora not possible

-# my idea was taking a screenShot from the game and use it ingame, like those java mods but for bedrock, yeah i think thats near impossible,

hardy lily
#

and I need confirmation about this

weak cape
weak cape
weak cape
hardy lily
#

I'll fix this tomorrow. json bindings is a bit weird

umbral trench
#

Can anyone tell me why this isn't working?

"health": {
    "type": "image",
    "$value1": "[inCombat]",
    "$value2": "[inSafe]",
    "size": [
        218,
        25
    ],
    "texture": "$texture",
    "bindings": [
        {
            "binding_name": "#hud_title_text_string"
        }
    ],
    "variables": [
        {
            "requires": "((#hud_title_text_string - $value1) = #hud_title_text_string))",
            "$texture": "textures/ui/xubis/health/healthInCombat"
        },
        {
            "requires": "((#hud_title_text_string - $value1) = #hud_title_text_string))",
            "$texture": "textures/ui/xubis/health/healthSafe"
        }
    ]
}
hardy lily
#

as far I know, ((#hud_title_text_string - $value1) = #hud_title_text_string)) will return a boolean. but I'm not quite sure this is work in variables

#

I recommend to use string formatting for this case

#

it would be something like this

manic dragon
hollow oxide
#

pls help me
why is the text not displayed on the buttons

        "type": "stack_panel",
        "size": ["100%", "100%"],
        "orientation": "horizontal",
        "anchor_from": "center",
        "anchor_to": "center",
        "collection_name": "form_buttons",

        "controls": [
                                        "text": {
                                            "type": "label",
                                            "text": "#form_button_text",
                                            "layer": 32,
                                            "color": [1, 1, 1],
                                            "offset": [0, 0],
                                            "anchor_from": "top_middle",
                                            "bindings": [
                                                {
                                                    "binding_name": "#form_button_text",
                                                    "binding_type": "collection",
                                                    "binding_collection_name": "form_buttons"
                                                }
                                            ]
                                        }
                                    }
hollow oxide
#

no

hardy lily
#

and, is that golang?

hollow oxide
#

java

hardy lily
#

oh, I thought it was go

#

have you try with the normal text?

hollow oxide
hardy lily
hollow oxide
#

because there was no time to create from scratch

hardy lily
#

can I see the whole code of "custom_button"?

hollow oxide
#

yes

hardy lily
#

I think I know

hollow oxide
#

and what is the mistake?

hardy lily
# hollow oxide and what is the mistake?
                                        "text": {
                                            "type": "label",
                                            "text": "#form_button_text",
                                            "layer": 32,
                                            "color": [1, 1, 1],
                                            "offset": [0, 0],
                                            "anchor_from": "top_middle",
                                            "bindings": [
                                                {
                                                    "binding_name": "#form_button_text",
                                                    "binding_type": "collection",
                                                    "binding_collection_name": "form_buttons"
                                                }
                                            ]
                                        }

try moving this outside the "panel_name" and set the layer like 1000

hollow oxide
#

ok, thanks. I'll try it now

hardy lily
#

it just for testing btw, if it still doesn't appear, that mean you need to change the entire custom button structure

#

because the text won't appear if there's no texture available

#

🤦‍♂️ took me long enough to realize

hollow oxide
hardy lily
hollow oxide
#

ок

#

send file ?

hardy lily
#

try this

hollow oxide
#

ok

#

found a mistake

hardy lily
#

brah

hollow oxide
#

Thank you very much

hardy lily
#

at least it shows the text

hollow oxide
#

I think I can fix it myself

torpid whale
#

Really quick the title bar is in hud_screen.json right?

torpid whale
#

Oh god "title" shows up so much 😭

#

76 times is crazy 💀

nocturne python
#

It is possible to do something similar to a progress bar but have the red flag move based on the value of a variable?

hardy lily
#

from 0% to 100%

nocturne python
hardy lily
#

🤔

broken trail
broken trail
manic dragon
broken trail
#

or well actually there might be some tricks to adjust it since its percentage

manic dragon
#

yea you can always adjust it a bit

whole jasper
#

tes

bold dawn
#

Eeeeee

#

Can I ask, Which one is better between the two UI designs that I made? bao_ext_toldyouso

weak cape
#

red one is better

bold dawn
bold dawn
weak cape
#

tho i have a question to everyone

#

do i need to use toggles to open a screen after clicking a button in pause screen?

#

i want to use a button but how do i open a screen clicking?

weak cape
#

nvm mojang has common_toggles.light_text_toggle which is a button but as a toggle so no need to code a button toggle from scratch

torpid whale
#

Where do i edit the position of the title bar in hud_screen? I found 76 results but im not the best at json ui so idk 😭

weak cape
#

i think thats how

manic dragon
torpid whale
#

Found it! Line 2122

#

hud_tip_text_background, is this the background of the title bar?

weak cape
#

and what is it called? 🙏

#

"textures/ui/dialog_background_opaque"

torpid whale
#

is that the inventory screen background image?

torpid whale
#

I assume its used in multiple other area's though right?

weak cape
torpid whale
#

Hm cool!

torpid whale
weak cape
#

oh i didnt see your message sorry

#

lemme check

weak cape
torpid whale
#

Texture file yeah

#

".png"

weak cape
#

yup

#

correct

torpid whale
#

Ah cool! Tysm

winged flicker
#

Hi, how can I set a custom hover text instead of #form_button_text ? For example : set the text to "Test" if I have "$hover_text": "Test" and if I haven't use the default value which is #form_button_text

  "[email protected]_text": {
    "$hover_text|default": "#form_button_text", // Currently not used
    "bindings": [
      {
        "binding_name": "#form_button_text",
        "binding_type": "collection",
        "binding_collection_name": "form_buttons"
      },
      {
        "binding_type": "view",
        "source_property_name": "#form_button_text",
        "target_property_name": "#hover_text"
      }
    ]
  
manic dragon
#

What's the difference between MinecraftTen and MinecraftTenEmoticon fonts?

oak verge
manic dragon
oak verge
manic dragon
oak verge
manic dragon
#

So it's just MinecraftTen?

oak verge
#

probably

manic dragon
#

Wait it's possible to use any custom font in Minecraft?

oak verge
#

i got mixed answers asking that, someone said yes while another said no

manic dragon
#

this is poppins

oak verge
manic dragon
#

I didn't know that but it does work

oak verge
#

that is a ttf font?

manic dragon
#

yes

oak verge
#

how?
i haven't looked into that stuff

manic dragon
#

in font_type just have to put "BACK"

oak verge
#

ah, i thought it is some json ui stuff

#

thanks

manic dragon
# oak verge

it seems it does have to be in global resources

oak verge
#

weird

hexed briar
# oak verge

be warned that custom .ttf fonts is experimental.

#

you can load up packs that uses custom .ttf font, but the game will have to be restarted for it to fully apply.

#

since the game will cache it, turn it into spritesheet for whatever reason.

#

you can replace the existing .ttf fonts but it will be there permanently until you clear the cache.

manic dragon
#

ngl that seems like a pain

hexed briar
#

it is, that's why it's experimental.

#

you can't even get the font_metadata.json in the sample pack, and there's absolutely 0 document on this thing too.

#

you can only get that file by the game assets itself.

oak verge
manic dragon
manic dragon
hexed briar
oak verge
#

i had a site that turn ttf to glyph but i lost it

hexed briar
#

can't load the packs in the server-side anyway since you need to restart the game for it to cache and use them.

#

the game will NOT cache anything if you apply it right now so yeah

oak verge
#

yeah, thanks

hexed briar
#

also be warned about glyphs too.

oak verge
#

lol

hexed briar
#

you can't use big fonts on this

#

or literally anything that is beyond 256x without making them extremely big for whatever reason

oak verge
#

yeah, i played around a bit with that idea trying to remove the gap between letters

hexed briar
#

i did a funny thing with it when i don't even know about JSON-UI

oak verge
#

a question about a bad idea i had.
i have a script api addon that cancel chat messages and perform some changes to each letter, how bad can performance get if this was done in json ui, if possible to start with

hexed briar
#

you just make the glyphs about 2048x and fill it with black color just to make a transition thing

#

this however, lags or even crash people devices alot.

hexed briar
#

chat messages are based on factory.

oak verge
#

it is a lot of conditions

hexed briar
#

this means that element does not exist until you say something in the chat.

#

you just use that template element and replace stuff whenever you feels like it and the performance wouldn't drop.

#

also when the chat is completely faded out, the said template element gets eradicated from the memory anyways.

#

so performance wise, it's shouldn't be bad unless people just spamming, even though if they're spamming. the default chat is limited to 30 total messages on display. can be changed to 5 or 20 if you like it

oak verge
#

alright, but that logic is to advanced for my json knowledge, lol
i struggled to even make it in js

hexed briar
#

the replace logic part in JSON-UI is possible pretty easily but each letter may require some complexity.

#

it doesn't feel laggy or anything either so i guess there's that.

oak verge
#

the complexity is in the condition part, it depend on the letter and it forms, the letter after and it forms, the letter before and it forms

hexed briar
#

unfortunately only few people knows it since this is some cutting edge thing and you know people ain't gonna share that either.

hexed briar
#

i'd probably do it in script side rather than UI side

oak verge
#

yeah, i had the script version for a long time, but that event is still beta after all this. and people needing it to work in servers they don't own

hexed briar
#

yeah honestly it is too much of burden.

oak verge
#

sound like it, lol

#

thanks for your time

tropic idol
#

now this just looks odd 🤣 but also kind of works...

wintry crater
#

It actually looks pretty cool

tropic idol
#

this is it on GUI SCALE -2 (1440p)

#

full screen reference

#

not sure what i'm planning on doing with it yet though

manic dragon
# opal aurora how

Probably using string formatting to loop through each letter. Then using property bag values to get a replacement for the letter. And then adding that letter to a string which will be empty at first and each replacement letter will be added to it after each iteration.

There might be an easier way. But that's what I can think of for now.

manic dragon
#

There's probably better ways to do it which I don't know of

elder lava
#

helllo why this is no hide first button?

"button_grid": {
        "type": "grid",
        "size": ["100%", "100%c"],
        "anchor_from": "top_middle",
        "anchor_to": "top_middle",
        "grid_item_template": "bc_panel_back.banner_list_entry",
        "grid_rescaling_type": "horizontal",
        "collection_name": "form_buttons",
        "bindings": [
            {
                "binding_name": "#form_button_length",
                "binding_name_override": "#maximum_grid_items"
            },

            {
                "binding_type": "view",
                "source_property_name": "(#collection_index > 0)",
                "target_property_name": "#visible",
                "binding_condition": "none"
            }
        ]
    },```
elder lava
elder lava
#

{
"binding_type": "view",
"source_property_name": "(#collection_index > 1)",
"target_property_name": "#visible",
"binding_condition": "none"
}
]

#

@hardy lily no

#

this works {
"binding_type": "view",
"source_property_name": "(#collection_index > 0)",
"target_property_name": "#visible",
"binding_condition": "none"
}

#

but

#

i must give it to another place

#

@hardy lily i have next problem

#

because

#

i have a empty space between buttons

#
"banner_list_entry": {
        "type": "panel",
        "size": "$button_size",
        "controls": [
            {
                "[email protected]": {
                    "size": ["100% - 5px", "100% - 5px"],
                    "anchor_from": "top_left",
                    "anchor_to": "top_left",
                    "offset": [2.5, 2.5],
                    "layer": 1,
                    "$pressed_button_name": "button.form_button_click",
                    "controls": [
                        { "default@bc_panel_back.button_image": { "$state": "default" } },
                        { "hover@bc_panel_back.button_image": { "$state": "hover" } },
                        { "pressed@bc_panel_back.button_image": { "$state": "pressed" } }
                    ],
                    "bindings": [
                        {
                            "binding_type": "collection_details",
                            "binding_collection_name": "form_buttons"
                        },

                        {
                            "binding_type": "view",
                            "source_property_name": "(#collection_index > 0)",
                            "target_property_name": "#visible",
                            "binding_condition": "none"
                        }
                    ]
                }
            }
        ]
    },```
#

code

#

`

elder lava
hardy lily
#

try adding bindings inside the button panel

something like this:

"bindings": [
 {
  "binding_name": "#text_button",
  "binding_type": "view",
  "source_property_name": "(not(#text_button = ''))",
  "target_property_name": "#visible"
 }
]
elder lava
#

i think the problem is something else

#

uh

elder lava
#

help me please 😭

undone marsh
#

Wtf is that pfp 🙏

elder lava
#

😇

#

@undone marsh can u help me

#

please

undone marsh
#

Uhh sure lemme see

elder lava
#

❤️

undone marsh
#

Try this

"button_grid": {
        "type": "grid",
        "size": ["100%", "100%c"],
        "anchor_from": "top_middle",
        "anchor_to": "top_middle",
        "grid_item_template": "bc_panel_back.banner_list_entry",
        "grid_rescaling_type": "horizontal",
        "collection_name": "form_buttons",
        "bindings": [
            {
                "binding_name": "#form_button_length",
                "binding_name_override": "#maximum_grid_items"
            },
            {
                "binding_type": "view",
                "source_property_name": "(#collection_index == 0)",
                "target_property_name": "#visible",
                "binding_condition": "none"
            }
        ]
    }
elder lava
undone marsh
#

Could you send the full json file?

undone marsh
#
"button_grid": {
  "type": "grid",
  "size": ["100%", "100%c"],
  "anchor_from": "top_middle",
  "anchor_to": "top_middle",
  "grid_item_template": "bc_panel_back.banner_list_entry",
  "grid_rescaling_type": "horizontal",
  "collection_name": "form_buttons",
  "bindings": [
    {
      "binding_type": "view",
      "source_property_name": "(#form_button_length - 1)",
      "target_property_name": "#maximum_grid_items"
    },
    {
      "binding_type": "collection",
      "binding_collection_name": "form_buttons",
      "binding_collection_prefix": "1"
    }
  ]
}
#

Try this

#

@elder lava

undone marsh
#

My knowledge about forms is limited since I don't mess with it sorry

elder lava
#

okay no problem

undone marsh
#

I do things like these

elder lava
undone marsh
#

Yea, my knowledge about forms is limited :c

elder lava
#

okay

#

:c

manic dragon
clever vapor
#

what the hell is that profile lol

#

TOS

oak verge
#

I can't @ mods :/

elder lava
weak cape
#

youre checking the grids collection index, and set based on it its visibility state

elder lava
weak cape
weak cape
#

that needs to be in the button element

elder lava
#

okay wait

elder lava
# weak cape ```json { "binding_type": "view", "source_property_name": "(#collection_...
"banner_list_entry": {
        "type": "panel",
        "size": "$button_size",
        "controls": [
            {
                "[email protected]": {
                    "size": ["100% - 5px", "100% - 5px"],
                    "anchor_from": "top_left",
                    "anchor_to": "top_left",
                    "offset": [2.5, 2.5],
                    "layer": 1,
                    "$pressed_button_name": "button.form_button_click",
                    "controls": [
                        { "default@bc_panel_back.button_image": { "$state": "default" } },
                        { "hover@bc_panel_back.button_image": { "$state": "hover" } },
                        { "pressed@bc_panel_back.button_image": { "$state": "pressed" } }
                    ],
                    "bindings": [
                        {
                            "binding_type": "collection_details",
                            "binding_collection_name": "form_buttons"
                        },

                        {
                            "binding_name": "#collection_index",
                            "binding_type": "collection",
                            "binding_collection_name": "form_buttons"
                        },

                        {
                            "binding_type": "view",
                            "source_property_name": "(#collection_index > 0)",
                            "target_property_name": "#visible",
                            "binding_condition": "none"
                        }
                    ]
                }
            }
        ]
    }, ```
#

I forgot that I already have it

weak cape
#

show me how it looks ingame

elder lava
weak cape
#

exactly

#

you cannot do that

#

with grids you cannot make an element invisible by simply using the visible property

elder lava
#

what should i do?

weak cape
#

I havent done something like this

#

but my idea would be

#

to set the size to 0,0 instead of visible false

oak verge
#

Use Dynamic grid

elder lava
elder lava
oak verge
# elder lava hm?

a grid without the dimensions
You can hide buttons in it and the grid will adjust

weak cape
elder lava
weak cape
#

okay i have an idea

elder lava
weak cape
#

i dont know for sure

#

but I guess its possible

weak cape
#

and let me know if it works

oak verge
elder lava
#

if so it doesn't work

weak cape
#

try without

#

or with always

hardy lily
#

but I simply resolved this by making different factories

#

instead of normal grid, I use prefix grid

elder lava
elder lava
hardy lily
#

let me search it

elder lava
#

okay

hardy lily
#
  "[email protected]_button": {
    "bindings": [
      {
        "binding_name": "#form_button_text",
        "binding_type": "collection",
        "binding_collection_name": "form_buttons"
      },
      {
        "binding_type": "view",
        "source_property_name": "(not ((#form_button_text - '§x§z') = #form_button_text)))",
        "target_property_name": "#visible"
      }
    ]
  }
elder lava
#

ym?

hardy lily
#

wait, I kinda forget with my own code

#

oh, I'm using a different approach

#
  "custom_dynamic_button_panel": {
    "type": "grid",
    "size": ["100%", "100%c"],
    "offset": [2, 0],
    "grid_rescaling_type": "horizontal",
    "grid_item_template": "server.custom_button",
    "anchor_from": "top_middle",
    "anchor_to": "top_middle",

    "factory": {
      "name": "buttons",
      "control_name": "server.custom_button"
    },

    "collection_name": "form_buttons",
    "bindings": [
      {
        "binding_name": "#form_button_length",
        "binding_condition": "once",
        "binding_name_override": "#collection_length"
      },
      {
        "binding_type": "view",
        "source_property_name": "((#collection_length * 1) - 1)",
        "target_property_name": "#maximum_grid_items"
      }
    ]
  }
#

This is what I use

#

alternatively, you can use this:

  "dynamic_button": {
    "type": "stack_panel",
    "size": ["100%", 32],
    "orientation": "horizontal",
    "controls": [{}], //your current custom button controls
    "bindings": [
      {
        "binding_name": "#form_button_text",
        "binding_type": "collection",
        "binding_collection_name": "form_buttons"
      },
      {
        "binding_type": "view",
        "source_property_name": "(not ((#form_button_text - '§x§x') = #form_button_text)))",
        "target_property_name": "#visible"
      }
    ]
  }
}

you can change whatever you want

weak cape
#

ugh i need to take my frustration out

#

JSON is so dumb

#

stack_panel works completly fine,
grid crashes my client...

#
"type": "grid",
"grid_fill_direction": "horizontal",
"grid_rescaling_type": "horizontal",
"maximum_grid_items": 10,
"size": [
    "100%",
    "100%c"
],
"bindings": [],
"controls": []
wooden sluice
oak verge
#

yes

wooden sluice
#

thought so

#

its just annoying to edit the glyphs

#

thats why i dont make custom fonts

storm dagger
#

can someone explain to me how this is made (the buttons on the left n right)? is it possible to apply the same to chest ui (place buttons on a chest ui and move them using script)?

storm dagger
#

how would this be make?

weak cape
#

Its hard to explain

#

you just code a new button, apply a specific collection index and place it beside the chest panel

torpid whale
#

If i want to edit all the json textures seperately do i have to edit the texture file paths within their .json files?

#

Also where should i find all of the ui files nineslice code? From my zip searcher i could only find 3 "nineslice" throughout the entire ui sample file

turbid sphinx
#

"localize": false in "item_text_label" causes translation keys set by the script to be the item name to not be translated, I hope they fix this, it's really bad to have to use only English name when renaming an item by script

hardy lily
#

@weak cape, about that String Formatting I created before, I don't have any ideas left

#

simulating boolean using gate is kinda hard to code, so the result may not quite right

nocturne python
#

@manic dragon Can you check direct messages? I need help with something.

wooden sluice
#

does anyone know how to get a flipbook animation to work

#

i have my sprite and i also took a look at animations in the vanilla ui files

#
// hud_screen.json
    "slash": {
        "type": "image",
        "uv_size": [32, 32],
        "uv": "@slash_animation",
        "anchor_from": "top_middle",
        "anchor_to": "top_middle",
        "texture": "textures/ui/animation/RPGslash",
        "bindings": [
            {
                "binding_name": "#hud_title_text_string"
            },
            {
                "binding_type": "view",
                "source_property_name": "(#hud_title_text_string = '⌂')",
                "target_property_name": "#visible"
            }
        ]
    },

    "slash_animation": {
    "anim_type": "flip_book",
    "initial_uv": [0, 0],
    "frame_count": 17,
    "frame_step": 1,
    "fps": 2.86,
    "easing": "linear"
    }

i am using the right symbol with the conditional rendering, and it fails.
i think this is the hud text tho, i feel like my animation is right

#

nevermind it works, my rp was off 😂

hollow knot
#

#1411942793609351178 everybody help me

gaunt apex
hardy lily
#

almost made it

#

is it any other way to set size 100% inside the 100%c or "default"?

hardy lily
#

nevermind, I found another way

storm dagger
#

woah charlotte avatar so pretty

weak cape
umbral trench
#

I can't get the entity to appear. When I cut the string, the entity_id stops working. Does anyone have any idea what I can do?

"render_char": {
        "type": "custom",
        "renderer": "live_horse_renderer",
        "size": [
            25,
            25
        ],
        "offset": [
            0,
            0
        ],
        "layer": 8,
        "anchor_from": "center",
        "anchor_to": "center",
        "property_bag": {
            "#entity_id": "#new_value"
        },
        "bindings": [
            {
                "binding_type": "global",
                "binding_name": "#hud_subtitle_text_string",
                "binding_name_override": "#text"
            },
            {
                "binding_type": "view",
                "source_property_name": "(('a' + #text - ('%.81s' * #text)) - '$')",
                "target_property_name": "#new_text"
            },
            {
                "binding_type": "view",
                "source_property_name": "('§z' + #new_text - 'a')",
                "target_property_name": "#new_value"
            }
        ]
    }
night holly
#

You can wrap everything and put (1 * (STUFF))

manic dragon
#

Trying to do string formatting to extract the entity_id will make it an int which is not going to work

You'll have to pass the number without doing any operation on that so it remains in string format

umbral trench
manic dragon
#

That's just how it is :)

manic dragon
#

Is it possible to access properties of factory generated elements?
source_control_name doesn't seem to work in this case

clever vapor
#

no because it doesn't make sense to do so

weak cape
manic dragon
#

I'll just have to take a different approach then

dusty rune
#

Is there way to remove the normal healthbar while it also stay hidden still with other addons? "I'm using progress_bar_for_collections to hide it through modifications"

surreal ridge
#

how would i make a loading screen?

weak cape
unreal ravine
#

But horizontal

chilly yacht
surreal ridge
chilly yacht
#

then why are you trying to learning it

surreal ridge
eager hazel
#

can someone help me with redirecting a file depending on the title text?

eager hazel
manic dragon
eager hazel
#

i have been at this for hours i can't figure it out

#

the file name and namespace is both cosmetics

manic dragon
# eager hazel the file name and namespace is both cosmetics

Assuming the form element name is ui inside cosmetics file

"form_selector": {
    "type": "panel",
    "anchor_from": "center",
    "anchor_to": "center",
    "controls": [
        {
            "edit1@form_type": {
                "$text": "Mines",
                "$content": "mines.ui"
            }
        },
        {
            "edit2@form_type": {
                "$text": "Towers",
                "$content": "towers.ui"
            }
        },
        {
            "edit3@form_type": {
                "$text": "Cosmetics",
                "$content": "cosmetics.ui"
            }
        },
        {
            "vanilla@vanilla_form": {}
        }
    ]
},
#

the bindings are already there

#
"vanilla_form": {
    "type": "panel",
    "bindings": [
        {
            "binding_name": "#title_text"
        },
        {
            "binding_type": "view",
            "source_property_name": "((#title_text - 'Mines' - 'Towers' - 'Cosmetics') = #title_text)",
            "target_property_name": "#visible"
        }
    ],
eager hazel
#

i don't get it 😭

#
    "form_selector": {
        "type": "panel",
        "anchor_from": "center",
        "anchor_to": "center",
        "controls": [
            {
                "edit1@form_type": {
                    "$text": "Mines",
                    "$content": "mines.ui"
                }
            },
            {
                "edit2@form_type": {
                    "$text": "Towers",
                    "$content": "towers.ui"
                }
            },
            {
                "edit3@form_type": {
                    "$text": "Cosmetics",
                    "$content": "cosmetics.ui"
                }
            },
            {
                "vanilla@vanilla_form": {}
            }
        ]
    },```

```js
                "vanilla_form": {
                    "type": "panel",
                    "bindings": [
                        {
                            "binding_name": "#title_text"
                        },
                        {
                            "binding_type": "view",
                            "source_property_name": "((#title_text - 'Mines' - 'Towers' - 'Cosmetics') = #title_text)",
                            "target_property_name": "#visible"
                        }
                    ]
                }```
eager hazel
manic dragon
#

what's in the cosmetics file

eager hazel
#

i will send you in in dms

manic dragon
#

okay

river flower
#

What's the image called for the scrollbar?

weak cape
#

textures/ui/ScrollHandle

#

@river flower maybe this

river flower
#
  "scrolling_content": {
    "type": "panel",
    "size": ["100%", "100%c"],
    "controls": [
      {
        "tmc_form_dynamic_buttons_panel": {
          "type": "grid",
          "size": ["100%", "100%c"],
          "grid_dimensions": [3, 50],
          "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"
            }
          ]
        }
      }
    ]
  },

  "custom_button@common_buttons.light_text_button": {
    "$pressed_button_name": "button.form_button_click",
//    "size": ["33.33%", "33.33%"],
    "size": [64, 64],
    "$button_text": "#null",
    "$button_text_binding_type": "collection",
    "$button_text_grid_collection_name": "form_buttons",
    "$button_text_max_size": [
      "100%",
      20
    ],
    "bindings": [
      {
        "binding_type": "collection_details",
        "binding_collection_name": "form_buttons"
      }
    ],
  }

My grid has 3 columns. I want the buttons' size be a third of the form at all times; meaning I need to use percentages instead of pixels.

I tried 33.33% and it put all the buttons on top of each other. When I go back to [64, 64], it goes back to being normal but still didn't achieve my goal of adjusting button size based on form size (form size is also percentage and changes on how big the minecraft screen is)

manic dragon
river flower
#

should I make it 100%y instead?

manic dragon
river flower
#

ohh okay

river flower
#

Got another question 😓

#
"scrolling_content": {
  "type": "panel",
  "size": ["98%", "100%c"],
  "offset": ["2%", 0],
  "controls": [
    {
      "tmc_form_dynamic_buttons_panel": {
        "type": "grid",
        "size": ["100%", "100%c"],
        "grid_dimensions": [3, 50],
        "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"
          }
        ]
      }
    }
  ]
},

I've always known that I need to wrap a child with a panel to add padding and that's what I did
I was able to add left and righ padding of 2px, but when I try to add top padding, the grid gets cut from the bottom and the top padding doesn't get added at all:

"size": ["98%", "95%c"],
"offset": ["2%", "5%"],
manic dragon
#

The thing with % is that it'll adjust the value according to the parent size
I suppose the parent of scrolling_control has something with %c for its height
So it's adjusting its size according to its child element
Using vertical offset of a % value doesn't work in this case

river flower
#

Here is the parent:

"ui": { //form panel
  "type": "image",
  "texture": "textures/tmc_form/background",
  "size": ["50%", "80%"],
  "controls": [
    // other children
    {
      "[email protected]_panel": {
        "anchor_to": "top_middle",
        "anchor_from": "top_middle",
        "$show_background": false,
        "$scrolling_content": "tmc_form.scrolling_content",
        "$scroll_size": [8, "100% - 50px"],
        "$scrolling_pane_size": ["100% - 4px", "100% - 2px"],
        "$scrolling_pane_offset": [0, 0],
        "$scroll_bar_right_padding_size": [0, 0]
      }
    }
  ]
},
#

$scrolling_pane_size I change this maybe?

#

Nah that's probs just the scrollbar

#

ohh wait scroll_size is size of scroll bar

river flower
#

YEP it worked

#

imo they should've called it scrolling_content_size

manic dragon
#

I think it should've worked even without changing the scrolling pane size

river flower
manic dragon
#

It could be that the bottom padding was cut off a little bit by the scrolling panel
That'd explain why changing it's size fixed it
-# I'm not sure if that's the right wording

river flower
#

I see

soft junco
#

I’m working with BedrockUI for Minecraft Bedrock and I’m looking for an easy way to preview and test UIs without opening the game.

Any tools or tips would be appreciated!

bright trench
#

does anyone know if its possible to make a navigation screen similar to the creative with different categories, but without closing and reopening the UI (which would make it flicker)

wintry crater
#

is it possible to get text value of other element and use it somewhere?

like this

"hud_text_1": {
    "type": "label",
    "text": "Sample Text",
    "anchor_from": "top_right",
    "anchor_to": "top_right",
    "offset": [ -4, 4 ]
},

"hud_text_2": {
    "type": "label",
    "text": "hud_text_1", // "hud_text_1" text value here: Sample Text
    "anchor_from": "top_right",
    "anchor_to": "top_right",
    "offset": [ -4, 8 ]
}
river flower
#

So you can use #variable in other sibling controllers

surreal ridge
#

how do i add the paperdoll to my form?

manic dragon
# wintry crater is it possible to get text value of other element and use it somewhere? like th...
"hud_text_1": {
    "type": "label",
    "text": "#text",
    "anchor_from": "top_right",
    "anchor_to": "top_right",
    "offset": [ -4, 4 ],
    "property_bag": {
        "#text": "Sample Text"
    }
},

"hud_text_2": {
    "type": "label",
    "text": "#text", // "hud_text_1" text value here: Sample Text
    "anchor_from": "top_right",
    "anchor_to": "top_right",
    "offset": [ -4, 8 ],
    "bindings": [
        {
            "binding_type": "view",
            "source_control_name": "hud_text_1",
            "source_property_name": "#text",
            "target_property_name": "#text",
            "resolve_sibling_scope": true
        }
    ]
}
bright trench
storm dagger
#

does anyone know when ore ui will be usable in addons

#

available for use i meant

opal aurora
#

i hope it'd be through resource packs instead

surreal ridge
#

how can i is there a way i could use $texture like this?

#

because puttting it as this doesnt work

#

nvm i got it

weak cape
opal aurora
river flower
#

This works well:

"card_animation": {
  "anim_type": "offset",
  "easing": "linear",
  "from": [0, -150],
  "to": [0, 0],
  "duration": 3
}

This doesn't do the animation at all:

"card_animation": {
  "anim_type": "offset",
  "easing": "out_cubic",
  "from": [0, -150],
  "to": [0, 0],
  "duration": 3
}

Why is out_cubic broken? even though the vanilla tpack uses it just fine

surreal ridge
#

How would i add the player paperdoll to my server form?

#

nvm got it

gaunt apex
left yew
#

Still got the NG unicode on your scoreboard ✌️😭💔🥀

night holly
#

does anyone know if theres cases of huge amounts of variables crashing the game?
I have a massively dynamic form that uses a lot of flags and it seems to be crashing every 1-100 form opens

opal aurora
left yew
#

Thats alot of flags

night holly
#

i dont think theres a better way to do it

gaunt apex
#

👀👀

unreal ravine
opal aurora
night holly
#

does "cache_screen": false work on server forms

opal aurora
gaunt apex
#

boring time

wooden sluice
#

at least space your code out man

#

like

"title@npc_interact.title_label": {}
"close@npc_interact.x_close_button": {}
wooden sluice
surreal ridge
#

any feedback on this, idk if i like the button texture

river flower
dusty rune
#

is it possible to add new text type? like text but different fonts I could use sometimes in actionbar for example

manic dragon
#

Yes

manic dragon
dusty rune
#

adds new text, just like that?

manic dragon
#

There are some issues with using custom fonts like this
Like the pack has to be in the global resources, Minecraft has to be reopened to load the fonts etc.

manic dragon
dusty rune
#

god bless you

#

thank you so much I was worrying about this one lmao

manic dragon
#

btw that file was from an older version of Minecraft
I don't have the new one

dusty rune
#

I will still check it
at least I know its possible

dusty rune
#

darn dis thing is experimental then
oh well, at least got the answer for it

manic dragon
#

Yeah it's experimental

hexed briar
dusty rune
#

ngl this needs to be global is the worst part

hexed briar
#

the fact that you can permanently changing the default MinecraftTen font that will be like that the rest of your life until you reset the game.

dusty rune
#

needed it for sans/papyrus fonts for my dialogue system
guess I will still be waiting for your, btw uh since you lost your backups does this mean you lost your ui system too?

hexed briar
#

even if taking the resource pack out, this thing will be unchanged.

hexed briar
#

since the GUI im working on (actually showcased several times now) does use that system heavily.

dusty rune
hexed briar
#

yeah, not the actual custom ones btw just the normal modified fonts.

hexed briar
#

there's alot of unused fonts mojang didn't use so i did as reusing them

dusty rune
#

ah,

#

still you need to use it as global right?

#

dis sucks a bit

hexed briar
#

basically this uses the same spritesheet font and not TTF font.

hexed briar
#

essentially, it works like plug and play.

dusty rune
#

so it works fine

hexed briar
#

no need to restart the game, put the pack anywhere you want

#

custom font still loads.

dusty rune
#

nice... one thing I need to check
does it break every update or it's chillin?

#

knowing this thing is uh
expermantel

hexed briar
#

it does not and fortunately, my system isn't experimental.

hexed briar
#

honestly since deltarune literally uses font colors as entirely different fonts, i might aswell use glyphs or something.

dusty rune
#

why colors have there own fonts 😭

hexed briar
# manic dragon What's this about?

A thing that converts string to actual custom fonts in real time without the needs to restart the game or any issues that custom TTF fonts has.

hexed briar
#

literally not recoloring the existing font whatsoever, just a entirely different font with same but different color.

dusty rune
#

I know toby's code is messy since undertale
but is it still there even in deltarune lol

gaunt apex
#

hmm🤔🤔

manic dragon
jolly rock
# gaunt apex

It could be better, why not use 100% of the width for the text?

gaunt apex
hexed briar
#

Originally the system is gonna be pure JSON-UI, a actually working font system at certain point but I feel that it's not optimized so i went with server-side script instead.

manic dragon
#

Oh so the conversion is on the server-side

hexed briar
#

fyi the custom font IN the GUI are client-side.

#

like, that one i didn't convert it to server-side that time

#

i just wanna get a working prototype so i reused my old client-side custom font system as that.

manic dragon
#

I think I lack the knowledge to understand this properly

Btw where's this system used? In an addon?

hexed briar
#

tl;dr — crap ton of bindings.

#

unfortunately this system isn't used anywhere since, well. i didn't even release any addons ever since 2023.

manic dragon
#

Yeah makes sense it has a lot of bindings

hexed briar
#

and also i made alot of very experimental or cutting edge stuff, i.e proper text splitting, optimized percentage system etc

#

this included too.

#

aswell a search bar that works regardless of case.

manic dragon
#

You've been on this for a long time now
No wonder you did all of that

manic dragon
hexed briar
#

yeah, ive joined this discord server for JSON-UI purpose and it seems that i do JSON-UI stuff for 4 years now.

hexed briar
#

JSON-UI doesn't support character value conversion atleast what i find.

#

basically how it works is value turns into their perspective character that works like JS.

#

since that doesn't work, i had to add a check which character is which, replace it. and basically that's how my old custom font system works.

#

the big con is that the entire characters list has to be checked in a loop and that ain't performance friendly either knowing bindings does not play nice with it.

#

that's why i went to script/server-side instead.

#

the search bar is essentially the same except that i limit to 10 characters total and after that it's normal. or alternatively i could add extra variables that contains both uppercased and lowercased and it'll work surprisedly performance free.

manic dragon
#

I was using a loop to get each character and using property bag to convert it to lowercase

hexed briar
#

for me, it works limitless but i made a limit due to performance reasons.

#

i think ive reached like 120~ at certain point and my phone can't handle it anymore so i call the experiment paused for awhile.

#

after the limit, the search goes normal so case sensitive is back after 10 characters.

manic dragon
#

120 chars is a lot. I don't think it needs any more than that

#

I'll try to optimize mine but might give up if things don't work out properly

hexed briar
#

my phone is low-end nowadays so i probably consider it as very optimized system that i ever done tbh

#

but, it seems that I don't have any use for it. yet.

#

fortunately, i made another search bar instead uses both of my cutting edge tech stuff and performance free aswell.

#

i just doing stuff like these in my free time tbh, since they're experimental and that, i tend not to use them for performance reasons

#

though i spend my time optimizing rather than new stuff, somehow i even optimized the settings screen to the point it reduces loading time by 25%.

manic dragon
#

I'm a bit late to JSON UI but I experiment with things in my free time. Ultimately it's going to be replaced

hexed briar
#

yeah, this is why ive moved to other stuff i.e texture pack btw

#

probably pixel arts and spritesheet stuff aswell.

manic dragon
hexed briar
#

i basically, well.

#

rewrote literally every screens.

#

including buttons, sliders and stuff aswell

#

so everything i do, i know where to find and fix it directly.

#

while making sure it has more customizability than vanilla, such as themes (really customizable btw), better slider looking, all toggles has their own descriptions, dropdown looking like something from sodium mod

#

all of this with 20% reduced loading time.

#

no wonder why most people calling my stuff very optimized somehow.

manic dragon
#

What actually effects the loading time?
I use fully custom buttons or toggles mostly and they seem to be good enough. Vanilla ones have a lot going on in them