#JSON-UI General

1 messages · Page 50 of 1

weak cape
#

idk

#

reinstall it maybe

#

i recommend using VSC

placid geode
#

i use notepad++

charred lodge
#

first time ever majorly editing a ui file

weak cape
#

cool

charred lodge
#

and it was successful

weak cape
#

really cool

charred lodge
#

most other times ive tried ive broken it

weak cape
#

relatable

limpid reef
#

Wait, can a block be « Minecraft:empty » ?? Instead of air??

placid geode
#

well, air is empty or unfefined

limpid reef
#

Ok

jolly void
#

@weak cape I tried quite a lot and I couldn't

#

Finally, I deleted the script completely.

charred lodge
#

i think air is the default block if the identifer matches nothing else

weak cape
jolly void
weak cape
# jolly void <@692078498785001514> I tried quite a lot and I couldn't
{
   "root_panel/hud_title_text_area": {
      "type": "panel",
      "factory": {
         "name": "hud_title_text_factory",
         "control_ids": {
            "hud_title_text": "[email protected]_title_text"
         }
      }
   },
   "custom_title_text": {
      "type": "panel",
      "size": [
         "100%cm",
         "100%cm"
      ],
      "controls": [
          {
             "here the vanilla title": {
               // rest of the code + conditional rendering
             }
          },
          {
             "Here the element of the animation": {
               // rest of the code + conditional rendering
             }
          }
      ]
   }
}
jolly void
weak cape
#

The code I sent you does not hide the hotbar, nor makes the hotbar unusable

jolly void
#

I will try to find out why then

weak cape
#

Like, did you try my code without any changes?

#

-# Just to state te obvious, you will have to fix the elements, according to the comments

jolly void
#

I placed it like this on the HUD screen.
root_panel": {
"type": "panel",
"controls": [
{
"hud_title_text_area": {
"type": "panel",
"factory": {
"name": "hud_title_text_factory",
"control_ids": {
"hud_title_text": "[email protected]_title_text"
}

weak cape
#

That is not the entire file, is it...

deft shadow
#

Why is this not working

{
  "namespace": "custom_shop",

  "shop_background": {
    "type": "image",
    "texture": "textures/ui/shop_background", // Change to your texture path
    "size": [ "100%", "100%" ]
  },

  "exit_button": {
    "type": "button",
    "size": [ 32, 32 ],
    "anchor_from": "top_right",
    "anchor_to": "top_right",
    "offset": [ -5, 5 ],
    "controls":,
    "button_mappings": [
      {
        "from_button_id": "button.menu_exit",
        "to_button_id": "button.menu_exit",
        "mapping_type": "global"
      }
    ]
  },

  "custom_button_panel": {
    "type": "panel",
    "size": [ "100%", 36 ],
    "controls": [
      {
        "button_content": {
          "type": "button",
          "size": [ "100%", "100%" ],
          "controls":
              }
            },
            {
              "hover": {
                "type": "image",
                "texture": "textures/ui/thick_default_hover" // <-- Changed to your thick hover
              }
            },
            {
              "pressed": {
                "type": "image",
                "texture": "textures/ui/thick_default_pressed" // <-- Changed to your thick pressed
              }
            }
          ],
          "button_mappings": [
            {
              "from_button_id": "button.menu_select",
              "to_button_id": "button.menu_select",
              "mapping_type": "focused"
            }
          ]
        }
      }
    ]
  },

  "shop_screen_content": {
    "type": "panel",
    "controls": [
      { "background": { "bundle": "shop_background" } },
      { "exit": { "bundle": "exit_button" } },
      {
        "scrolling_panel": {
          "type": "stack_panel",
          "size": [ "90%", "80%" ],
          "factory": {
            "name": "buttons",
            "control_name": "custom_shop.custom_button_panel"
          }
        }
      }
    ]
  }
}
#

@hoary skiff or anyone else that knows

jolly rock
deft shadow
jolly rock
#

This is the biggest problem

#

Bundle does not exist, it must be called this way: json "background@custom_shop.shop_background": {}.

#

@deft shadow

deft shadow
#

I fixed it already I took textures for Zeqa Network Ui Json ui

#

To fix mine

#

And no I didn't copy them

placid geode
#

happy new year yall (:

rocky canyon
#

I found that when my form UI generates fewer than a certain number of buttons, it automatically creates some unnecessary extra buttons.Are there some ways to solve this problem?

#

I only gave the form 5 buttons. but it would give me 5 functional buttons and 1 useless button.

weak cape
#

Try this

weak cape
timber smelt
#

and how that would be done is that I don't know much about it

jolly void
# weak cape Try this

In the end I couldn't. I spent all night trying and part of today too, and even then I couldn't. I don't understand why.

#

I appreciate that you tried to help me anyway.

cunning bridge
#

how to stop a scrolling element from clipping elements from the side?

cunning bridge
#

or rather, is it possible to make certain elements escape the clipper element and not be clipped by it ever?

manic dragon
cunning bridge
cunning bridge
#

is it possible to make an element take the size of one of its children rather than the combined size of all elements?

chilly yacht
#

100%cn

#

cm

#

itll take the biggest size

cunning bridge
#

the funny thing is that i have the wiki open on that page exactly at this part, yet i couldn't see it

#

i thought it meant centimeters so my brain just brushed it off and ignored it

cunning bridge
abstract sage
#

Does anyone know how to make it so that when clicking on either of the two toggle buttons, an image is displayed? json "source_control_name": "(#name = 'next') or (#name = 'back)" I tried this and it doesn't work.

upbeat frigate
#

is it possible to create a server form that shows any entity through the entity renderer?

pulsar hornet
#

any ideas of how i can make title render an image when inputting the correct text?

hoary skiff
#

How do I make a custom collection

#

If it's a complex thing to make, I'll patiently listen more

eternal arrow
#

or this one from the wiki:

"namespace": "hud",

    "black_conditional_image": {
        "type": "image",
        "texture": "textures/ui/Black",
        "size": [16, 16],
        "layer": 10,
        "bindings": [
            {
                "binding_name": "#hud_title_text_string"
            },
            {
                "binding_type": "view",
                "source_property_name": "(#hud_title_text_string = 'hello world')",
                "target_property_name": "#visible"
            }
        ]
    },

    "black_conditional_image_factory": {
        "type": "panel",
        "factory": {
            "name": "hud_title_text_factory",
            "control_ids": {
                "hud_title_text": "[email protected]_conditional_image"
            }
        }
    },

    "root_panel": {
        "modifications": [
            {
                "array_name": "controls",
                "operation": "insert_front",
                "value": {
                    "[email protected]_conditional_image_factory": {}
                }
            }
        ]
    }
}```
weak cape
#

And it is "control_name" you have to use "property_name"

#

(unless you want to get a control names after a boolean)

river flower
#
{
    "namespace": "progress",
    "nether_loading_background": {
        "type": "image",
        "texture": "textures/ui/transfer_screen",
        "color": [
            0.5,
            0.5,
            0.5
        ]
    }
}

For some reason, this only shows a small part that is the top left of the texture image

#

I want it to show the whole image

manic dragon
candid shadow
# timber smelt and how that would be done is that I don't know much about it
{
  "your_element":{
    "type":"image",
    "$texture|default":"textures/ui/your_texture",
    "texture": "$texture", //$texture is a variable
    "variables":{
      "requires": "$condition", //returns a boolean
      "$texture":"textures/ui/your_second_texture" //this value overwrites the default $texture value if the $condition is true
    }
  }
}
#

something like this @timber smelt

unique swan
#

What is the mistake?

#

.button("§l§rButton 24")
.button("§l§rButton 25")
I only want these buttons to be hidden; if "Button 1" is hidden, they don't appear.

abstract sage
weak cape
abstract sage
weak cape
#

you gotta get it using the binding too

weak cape
abstract sage
river flower
#

what is it called?

#

I tried this:

    "progress_screen_content": {
        "ignored": true
    },

And

    "progress_content_panel": {
        "ignored": true
    },
river flower
manic dragon
#

There are multiple screen elements in that file. I don't really remember which one was it

river flower
#

I tried progress_screen and it kept crashing my minecraft

river flower
#

It was world_convert_modal_progress_screen_content!

patent bramble
weak cape
#

i think you can add the hotbarleft twice so it fires twice but idk if it works

patent bramble
#

I've been trying to make something that would help controller players a lot but keep running into brick walls

#

There's 1 pack I've seen that's able to fire multiple events at once but I'm not sure if I can duplicate inputs the same way for this

patent bramble
#

Thanks for your time

patent bramble
#

I wish a lot of the "remap gods" actually decided to teach ppl

weak cape
#

thats why most gave up or rarely help

patent bramble
#

The people who make those giant technical UI packs are amazing tbh. I just want to be able to do stuff like that too yk?

weak cape
#

But when I compare myself to other people, others find it utterly hard to understand json ui

#

depends on the person tbh

patent bramble
#

I am 1 of them sadly

#

I don't get half of it

#

I know it's frowned upon but I've been trying to use vibe coding to understand it better

weak cape
#

It has like 0 knowledge

#

Only helps with JSON syntax.

patent bramble
#

I do a sort of guided method. Pointing to resources / providing examples of working code

weak cape
patent bramble
#

AI is better at recognizing patterns than me

weak cape
#

AI explaining can do something. Not really a fan but if it helps, why not

patent bramble
#

I wish I could get a hold of the creator of deezii UI or whatever it's called

#

They seem to understand the field better than 90% here

weak cape
#

There are more experts than people may think

patent bramble
#

It seems all comfortable-ish until you try applying any rendering / binding logic

weak cape
#

had this happened couple days ago

manic dragon
#

I've seen a lot of undocumented things that you can only know through trial & error Or if someone tells you

#

Making layout is quite simple but adding functionality to it is the hard part and can be confusing in many ways

patent bramble
#

It's actively hindering me in creating some QoL for controller users
@manic dragon

manic dragon
#

For something like JSON UI with no proper documentation, gatekeeping is to be expected tbh

patent bramble
#

I've seen the concept of input duplication in 1 pack and I've been trying to apply it but it keeps failing

manic dragon
manic dragon
patent bramble
#

It's a method to turn 1 input into multiple using factories and panels

#

Like have you ever seen a resource pack with a drop all items function?
@manic dragon

manic dragon
#

Yeah

patent bramble
#

That's input duplication

#

Turning 1 click into multiple actions

manic dragon
#

I see what you mean, that's done via "consume_event": false on the element that receives the input. So other elements can also utilize that same input

#

And the factory is to have all the elements that will use this input at one place but it's not a necessary thing

patent bramble
#

I was trying to do the same to turn hotbar left into many hotbar left under a conditional

#

Controllers require multiple inputs to go from slot 1 to slot 8 for example my logic was pretty much

if slot = air then
skip
end

#

trying to do it in all 1 action

#

I even have a way to turn it on / off due to a redundant bind

#

@manic dragon

manic dragon
#

I can think of a way but it's repetitive and not very efficient ig.
Edit: it probably won't work

patent bramble
#

Please anything is better than no solution

weak cape
#

You set the button mapping to a specific slot if the condition is met, which condition? up to you

patent bramble
#

Radwl has tried (the person I am working with) but this doesn't work as you need to manually compute how far to travel in every single circumstance

#

If slot 1, 4 are filled you go from 1 straight to 4 but what if the numbers change?

#

You can't hardcode every outcome

manic dragon
patent bramble
weak cape
patent bramble
#

Loops? In Json UI?

#

Tell me another joke

weak cape
#

That is a concept you havent yet learned

patent bramble
#

We've tried

weak cape
patent bramble
#

The only loop that I've seen thus far is via factories

patent bramble
weak cape
#

I was searching for it.

#

I believe EchoRif coded it. Maybe someone else. There is a post somewhere hidden. Discord loves to hide important posts love

patent bramble
#

Lemme see

patent bramble
#

I wish I could see the code without downloading it .. I'm on mobile atm

#

Well that was sure an experience

#

It's a type converter using an iterative system

#

Do we have a join method?

#

cause I would need to check hotbar_"X"

#

For a valid value

#

Tbh tho I might already know the problem and if I'm right it makes this a whole lot more difficult

weak cape
patent bramble
#

@manic dragon
Is there a simple slice of code that can be written to quickly check if you can process 2 hotbar move binding events in the same tick?

#

Im hoping there isn't a priority system and instead that they stack

night holly
#

Anyone had an issue with glyphs/ Unicode emojis looking super pixelated on certain devices (mainly switch)? 🙏

manic dragon
wooden sluice
#

i hope switch 2 fixes this

manic dragon
#

It's probably because switch has issues loading large images. So the image gets scaled down. I'm not fully sure tho

wooden sluice
#

most definitely

#

the switch had many texture issues

river flower
#

I want to show unicode in label based on level number; 0xF020 + #level_number

#

I got this

    "bindings": [
      {
        "binding_name": "#level_number"
      },
    ]
manic dragon
#
    "text": "#text",
    "bindings": [
      {
        "binding_name": "('\uF020' + #level_number)",
        "binding_name_override": "#text"
      }
    ]
river flower
#

As if it concatenated the unicode with the string number

manic dragon
#

That's what it did. Added the number with that Unicode string

river flower
#

e.g. \uF020 + 1 = \uF021

weak cape
#
{
   "fourth_slot_panel": {
      "type": "collection_panel",
      "collection_name": "$hotbar_collection_name",
      "$hotbar_collection_name": "hotbar_items",
      "size": [
         "20px",
         "22px"
      ],
      "controls": [
         {
            "[email protected]_hotbar_grid_item": {
               "collection_index": 3
            }
         }
      ]
   }
}

Any idea why the gui_hotbar_grid_item is broken? It works only when it is in a grid but when I put it in a collection panel the texture stops working.

manic dragon
#

Are you trying to convert the font or smth? You can use property_bag and bindings. 0-9 will be easy but values after that will need calculations

manic dragon
river flower
#

Yeah I'm tryna convert from number to font

weak cape
#

i guess i will have work with mojangs extremely nested elements again, yippie

#

although it is pretty interesting why that happens lol

junior shell
#

I want to add this

charred lark
#

Is it possible, in a binding, to use source_control_name to target an item of a factory?

#

I want to get bindings like #item_id_aux and #slot_selected from a hotbar items collection

#

I know the index of the hotbar item i need to get the data of, but i have no idea how to access these outside of the items created by the factory

weak cape
#

the one with hidden slots

patent bramble
#

@weak cape
How did you get into Json UI? Because every single time I think of a cool resource pack idea. 90% of it is UI....

#

@manic dragon you too. I just wanna know how you deal with it without wanting to tear your hair out

charred lark
weak cape
weak cape
charred lark
#

Ohh okay, they have to be in the same panel?

weak cape
#

yeah

charred lark
#

I had my "data" slot in a completely differnet place

#

Let me try

#

Actually can multiple elements with the same collection_index be defined?

weak cape
#

yeah

charred lark
#

okay fire

patent bramble
weak cape
patent bramble
#

I've been trying to create a custom global resource pack for years atp

#

Full of handy UI changes

#

Also figured out a cool way to create toggles but design and code do not agree with me

patent bramble
#

The idea I had here (it's a rough drawing sorry) is that I could toggle certain UI elements by hotbar nav + a rebound crafting button
Since inventory and crafting screen binds do pretty much the same thing

charred lark
# weak cape item_aux_id? idk, i tried it once but couldnt get it to work. if you want a way ...

I defined this element to use as an item aux id provider for other elements to use

    "slot_data": {
        "type": "input_panel",
        "bindings": [
            {
                "binding_type": "collection",
                "binding_collection_name": "$hotbar_collection_name",
                "binding_name": "#item_aux_id"
            }
        ]
    },
    "mappings": {
        "type": "collection_panel",
        "collection_name": "hotbar_items",
        "size": [ 0, 0 ],
        "controls": [
            {
                "[email protected]_data": {
                    "collection_index": 0
                },
                "[email protected]_data": {
                    "collection_index": 1
                },
                // ...

But the two slotX_data elements error, saying "type not specified (or @-base not found) for control: " (blank)
Any idea why this happens??? I've had this before when defining invalid elements but these seem perfectly fine

#

Yes, the $hotbar_collection_name is defined on the parent hud_content

night holly
upbeat frigate
#

Hello anyone know why this button/toggle only works in desktop with mouse and not with mobile? Although if i hover it in mobile, then release my finger, it works pressing it or dropping the item. However, if you just press it normally, like u don't hover it, it doesn't drop the item.

Would really appreciate, if you know. I tried everything and i can't seem to solve this particular issue.

It works fine, when you are in PC or desktop cause it hover's first, before clicking, however in mobile since mobiles are built pressing it instantly that hover it.

dry fractal
#

Hey everyone, is there a variable like #hp to determine a player's current health?

graceful haven
graceful haven
upbeat frigate
weak cape
graceful haven
#

is there a color element in json ui? and if so, how can I use it?

weak cape
graceful haven
weak cape
#

Rgb but from 0 to 1

#

Instead of 255

whole latch
fresh trench
#

does anyone know how to set a basic panel texture to an item texture from the inventory? like using item renders

jaunty smelt
#

ive confused in form buttons where is the button text stored as?

#

there is #form_button_texture

charred lark
jaunty smelt
jaunty smelt
#

nvm im stupid its just #form_button_text

#

still finding trouble with displaying the text

weak cape
charred lark
weak cape
charred lark
#
    "slot_data": {
        "type": "input_panel",
        "bindings": [
            {
                "binding_type": "collection",
                "binding_collection_name": "$hotbar_collection_name",
                "binding_name": "#item_aux_id"
            }
        ]
    }
#

This is the data i am trying to read

#
// ...
    "mappings": {
        "type": "collection_panel",
        "collection_name": "hotbar_items",
        "size": [ "100%", 0 ],
        "controls": [
            { "[email protected]_data": { "collection_index": 0 } },
            { "[email protected]_data": { "collection_index": 1 } },
            {
                "test": {
                    "type": "input_panel",
                    "collection_index": 0,
                    "button_mappings": [
                        {
                            "from_button_id": "button.inventory_right",
                            "to_button_id": "button.slot_3",
                            "mapping_type": "global"
                        }
                    ],
                    "property_bag": {
                        "#item1": -1
                    },
                    "bindings": [
                        {
                           "binding_type": "collection",
                           "binding_collection_name": "$hotbar_collection_name",
                           "binding_name": "#slot_selected"
                        },
                        {
                            "binding_type": "view",
                            "source_control_name": "slot1_data",
                            "resolve_sibling_scope": true,
                            "source_property_name": "#item",
                            "target_property_name": "#item1"
                        },
                        {  // this doesnt work at all
                            "binding_type": "view",
                            "source_property_name": "((#slot_selected=true) and (#item1 = -1))",
                            "target_property_name": "#enabled"
                        }
                    ]
                }
            }
        ]
    }

#

You can see how slot0 and slot1 data elements are siblings of the test

#

But nothing works inside of that 😭

#

I tried to use your trick with "#enabled" to toggle button mappings on/off

#

I tested and it does indeed work, however the moment i do something a little more complex it seems to stay enabled forever

weak cape
#

For #slot selected you can just use slot selected without checking if it’s true

#

Just a side note for future so your bindings don’t get longer

charred lark
#

Yeah i tried that too

#

Thought it would cause issues so i put =true

charred lark
#

Any idea?

charred lark
#

Still though, this binding doesnt correctly save item aux id into #item1 (property bag):

{
    "binding_type": "view",
    "source_control_name": "slot1_data",
    "resolve_sibling_scope": true,
    "source_property_name": "#item_aux_id",
    "target_property_name": "#item1"
},
weak cape
#

im back on my pc

weak cape
charred lark
#

this is the binding on the data sibling

            {
                "binding_type": "collection",
                "binding_collection_name": "$hotbar_collection_name",
                "binding_name": "#item_aux_id"
            }

and this is what i have on the main problematic element:

"property_bag": {
    "#item1": -1
},
"bindings": [
    {
       "binding_type": "collection",
       "binding_collection_name": "$hotbar_collection_name",
       "binding_name": "#slot_selected",
       "binding_name_override": "#visible"
    },
    {
        "binding_type": "view",
        "source_control_name": "slot1_data",
        "resolve_sibling_scope": true,
        "source_property_name": "#item_aux_id",
        "target_property_name": "#item1"
    },
    {
        "binding_type": "view",
        "source_property_name": "(#visible and (#item1 = -1))",
        "target_property_name": "#visible"
    }
]
charred lark
weak cape
#

To my guess it doesnt work* right?

charred lark
#

The #slot_selected overriding #visible works

#

But the #item1 = -1 will only return the initial value that i give it in the property bag, #item1 never gets updated

weak cape
charred lark
#

It should be

weak cape
#

i tried once to get it but failed

#

selected slot did work but item aux id didnt

charred lark
#

I put a label inside of the slot_data, where the item_aux_id is supposed to be read from and the label displays it correctly

weak cape
#

oh really? nice

charred lark
weak cape
#

because you set visible as visible, and it cycles every frame

charred lark
#

Don't the bindings run in order?

#

One after the other?

#

And then stop?

weak cape
charred lark
#

I tried to do it like a "set" operation, because using #slot_selected directly wasnt working in the 3rd binding for some reason

#

So i first set #visible

#

Then i use its value to set itself again

#

The logic initially was
get #slot_selected (1st binding)
get #item_aux_id from the sibling (2nd binding)
set #visible to (#slot_selected and #item1 = -1)

weak cape
#

wait, did you set the $hotbar_collection_name variable in the parent?

charred lark
#

Yes

#

It's set in the parent of all elements

weak cape
#
    {
        "binding_type": "view",
        "source_control_name": "slot1_data",
        "resolve_sibling_scope": true,
        "source_property_name": "(#item_aux_id * 1)",
        "target_property_name": "#item1"
    }

maybe this?

charred lark
#

That actually might work

#

Nope, it still gets ignored

#

The value isn't set

#

Still uses the default value from the property bag

#

But i did get the #slot_selected working

#

Now it works

weak cape
charred lark
#

😭

weak cape
#

you could send me the code and i could possibly maybe help

charred lark
#

dms or thread?

weak cape
#

i will go snowboarding tomorrow till wednesday or so wont be online

weak cape
weak cape
timber smelt
#

acabo de ver como llega 50k de mensajes ejej

placid geode
charred lark
weak cape
#

damn

placid geode
#

XD

fresh trench
#

what texture is the elipsis on? (the inventory button)

final matrix
#

how to I cut A100 to only take A from it using %. string formmating

final matrix
#

ok

#

can anyone help me fixing the preserved title text I am using it with action bar and the values are not updating until actionbar comes over it while scrolling

#

Also the preserved Titles are not visible after I re-enter the world, unless I start to scroll only do they appear, only 1st is visible when I enter the world

austere flicker
#

does anyone know where can i find this texture or how do i do it.

limpid reef
#

what is the pressed button name in actionformdata?

#

in the button mapping

manic dragon
limpid reef
#

..

limpid reef
# weak cape Wdym

when i click on the button who has the form_button_click the script detect so that i closed the form

#

and r.selection = undefined

weak cape
#

Did you apply a collection index?

#

Or does it include the collection binding?

limpid reef
weak cape
#

Can you send just the button?

manic dragon
limpid reef
#

also i cant use controller to go form buttons to other

#

but thats not a big issue

limpid reef
weak cape
#

Of the button

limpid reef
#

of the button?

#

ok

#

thanks ill try this

manic dragon
#

This one

limpid reef
#

now, it doesnt do anything

#

form.show(player).then((r) => {
world.sendMessage([UI] Choosed button index: ${r.selection})
if (r.canceled) {
world.sendMessage([UI] Closed the form)
}
})

#

this is what i have in my script

#

no messages are sent

#

when i close the form it says: closed the form and index: undefined

manic dragon
#

mb

limpid reef
#

"controls": [
{
"default": {
"type": "image",
"size": "$button_size",
"texture": "$texture"
}
},
{
"hover": {
"type": "image",
"size": "$button_size",
"texture": "$hover_texture"
}
},
{
"pressed": {
"type": "image",
"size": "$button_size",
"offset": [0, 2],
"texture": "$hover_texture"
}
}
],
"button_mappings": [
{
"from_button_id": "button.menu_select",
"to_button_id": "button.form_button_click",
"mapping_type": "pressed"
},
{
"from_button_id": "button.menu_ok",
"to_button_id": "button.form_button_click",
"mapping_type": "focused"
}
],
"bindings": [
{
"binding_type": "collection_details",
"binding_collection_name": "form_buttons"
}
]
}
}
]

limpid reef
#

ohhh

#

maybe yeah

manic dragon
#

Did you give it a collection index

limpid reef
#

it works XD

#

thanks

#

its because i made a json ui test command and i just sent /ui COMBAT and nothing for the buttons so yeah

charred lark
#

Are there any known limits for UI bindings, properties etc? I generated a file with a little over 126 ui controls, 756 bindings and 504 property bag properties that are used in those bindings

#

It's ~7700 lines long and i noticed that when absolutely none of the bindings work until i delete like half of those and then that half starts working

austere flicker
#

is it possible to implement hold and press state for action form buttons

limpid reef
#

?

limpid reef
#

Is it complicated?

weak cape
#

Depends but mostly no

limpid reef
#

So can you show me an example ? Please

#

I don’t think there’s something about this on the wiki

weak cape
#

But I think I can tell you how

#

I'm on vacation rn

limpid reef
#

Yeah please

limpid reef
weak cape
#

Just gimme a sec

weak cape
#

Not sure if that's the one

#

Place it in the button element

limpid reef
#

I thought that it would be a lot difficult

weak cape
#

Like most of the time people just forget this but if that doesn't work gotta add more stuff. But yeah. Its mostly just this.

limpid reef
#

But yeah thanks

weak cape
#

No problem happy to help

placid geode
weak cape
#

Gadly it's only just this.

#

Mojang could have made it much worse

limpid reef
#

I would be a good idea to put a BIG WARNING box of this information in the wiki

#

Is the wiki made by this discord server?

marble rover
#

Hi,
What does frame_step mean in animation?

#

And how can I get elements that are similar to ore ui, is there a library?

manic dragon
marble rover
#

Sorry, I don't really understand your explanation ;v

manic dragon
weak cape
weak cape
clever vapor
#

that why u usually just need to copy from already existing templates common.button

marble rover
manic dragon
marble rover
#

I looked in asset textures/ui but there was nothing similar :/

#

Or am I missing the point?

graceful haven
#

how to change animation of form arriving?

manic dragon
# marble rover Can i get a link?

Oh you will need to go to this C:\XboxGames\Minecraft for Windows\Content\data folder and search there because I forgot the actual folder name :)

marble rover
#

Owh okay thank you so muchh

candid shadow
#

Am I the only one to which modification errors don't appear?

cunning bridge
#

is it possible to store more than 1 dynamically sized string in the action bar for use by UI?

#

i know i can split the string into fixed parts and fill the remanning characters with spaces, but is it possible without?

deft shadow
#
{
    "namespace": "hud",
    "hud_title_text": {
        "type": "stack_panel",
        "size": [
            400,
            400
        ],
        "anchor_from": "top_right",
        "anchor_to": "top_right",
        "offset": [
            60,
            10
        ],
        "orientation": "vertical",
        "controls": [
            {
                "sidebar_bg": {
                    "type": "image",
                    "texture": "textures/ui/title_backround",
                    "size": [
                        350,
                        180
                    ],
                    "controls": [
                        {
                            "sidebar_text": {
                                "type": "label",
                                "text": "$title_text",
                                "anchor_from": "top_left",
                                "anchor_to": "top_left",
                                "offset": [
                                    60,
                                    10
                                ],
                                "text_alignment": "left",
                                "font_scale_factor": 0.8,
                                "shadow": true
                            }
                        }
                    ]
                }
            }
        ]
    }
}

Can someone please tell me how do add a custom logo texture to this and get above the sidebar

patent bramble
#

Are paper dolls treated as being "rendered"?

#

Im trying to see if Json UI could be able to indirectly affect any molang queries

placid geode
unique swan
#

Helppp

patent bramble
candid shadow
#

in the meantime I found those leaked container textures. Am I the only one who is not a big fan of them and prefers something like GUI Revision?

candid shadow
candid shadow
placid geode
#

nineslice is applied script side

candid shadow
#

Is there a way to access those scripts?

placid geode
#

somewhere in the game files (idk where lol)

candid shadow
#

Noice

wintry crater
#

how do I make my image stretch to fit the whole screen?

manic dragon
#

Or "fill": true
Note that this keeps the ratio and resizes the image

weak cape
#

@deft shadow bind a key so pc players can press a binding to use the button

#

Because the can’t use their cursor

#

Same for controllers

deft shadow
#

I haven't even made it yet

#

I was asking if it was possible

#

For PC I will do like h or f3 button, controller the x button

timber smelt
deft shadow
#

When I learn how to do it I will probably make a template or something for people to use

weak cape
weak cape
deft shadow
#

I saying I haven't made the Json yet

#

So thanks for telling me how

unique swan
#

form_button@common_buttons.light_text_button
How can I offset the button text?

valid swan
#

I love Serenity ❤️

#

For those who want to know what this is, it's the Serenity API that handles the game's packages.

wooden sluice
wooden sluice
valid swan
# limpid reef ??

In Serenity, there's a packet that allows you to change the number of inventory slots a player can have, something that's not possible in vanilla.

limpid reef
#

I’m not very familiar with packets thing

#

And this is possible in a vanilla world?

valid swan
patent bramble
jolly rock
#

Oh, I must be blind because I already saw that there are 5 rows

valid swan
upbeat frigate
#

How do you check if player is using mobile and desktop? Like for binding

manic dragon
leaden kayak
#

I'm converting a string into a number it seems to truncate the decimal part, any solutions?

upbeat frigate
manic dragon
upbeat frigate
manic dragon
#

yeah

upbeat frigate
manic dragon
#

np

manic dragon
leaden kayak
#

it's throwing out integers

manic dragon
#

use a variable because floats sometimes don't get parsed properly like that

leaden kayak
#

how do I do that?

manic dragon
#
    "$hundred": 100.0,
    "$one": 1.0,
    "bindings": [
        {
            "binding_name": "#hud_title_text_string"
        },
        {
            "binding_type": "view",
            "source_property_name": "(((#hud_title_text_string - 'sam:alpha_') * $one) / $hundred)",
            "target_property_name": "#alpha"
        }
    ]
leaden kayak
#

oh wow

timber smelt
leaden kayak
manic dragon
final matrix
#

how do I split the string 100,500

#

both are variable strings

hexed briar
#

wakey wakey another JSON-UI changes on the latest preview has been found.

weak cape
#

i have awaited for this for my whole life

hexed briar
#

i have absolutely no idea what does this mean ngl

left yew
#

z_side_eye 😭

manic dragon
#

Jokes aside, could this be about being able to change child control order using bindings? (Maybe not...)

outer stag
#
{
  "health_bar": {
    "layer": 4,
    "type": "image",
    "texture": "textures/ui/healthbarempty",
    "size": [108, 8],
    "controls": [
      {
        "progress": {
          "type": "image",
          "layer": 5,
          "$one": 1,
          "$bar_max": 20.0,
          "clip_direction": "left",
          "clip_pixelperfect": false,
          "texture": "textures/ui/healthbarfull",
          "bindings": [
            {
              "binding_name": "#hud_title_text_string"
            },
            {
              "binding_type": "view",
              "source_property_name": "((('%.5s' * #hud_title_text_string) - ('%.3s' * #hud_title_text_string)) * $one)",
              "target_property_name": "#health"
            },
            {
              "binding_type": "view",
              "source_property_name": "(($bar_max - #health) / $bar_max)",
              "target_property_name": "#clip_ratio"
            }
          ]
        }
      }
    ]
  }
}
#

Does anyone here know what might be wrong with my health bar?

#

When I send this title to the player:
§z16
The progress of the bar remains at 0.

safe wasp
#

{
"binding_type": "view",
"source_property_name": "(('%.5s' * #hud_title_text_string) - '%.2s' * #hud_title_text_string) ",
"target_property_name": "#health"
},

this will return a number value

tho u may need padding like 016

so example title would be

§z010

also make sure ur %.ns lines up with the title u send

tepid ember
#

Also remember that some special characters have more bytes; for example, if you send the letter "A," it means 1 byte, but if you send an emoji, it can be 2 bytes or more.

#

Send us your TRANS code and we'll send the title.

outer stag
safe wasp
#

big chillin 😎 lmk if it works

outer stag
#

Also, in line with both of your suggestions, I tried modifying to this:

{
  "binding_type": "view",
  "source_property_name": "((('%.6s' * #hud_title_text_string) - ('%.3s' * #hud_title_text_string)) * 1)",
  "target_property_name": "#health"
},

Using this new title:
§z016

#

I remembered from previous experience that the § character counts as two bytes, which is why I think that should be right. Is that not the case anymore, maybe?

safe wasp
#

try my way also (('%.5s' * #hud_title_text_string) - '%.2s' * #hud_title_text_string)

#

i think it counts as one byte

#

but trial and error ig

tepid ember
#
            {
                            "binding_type": "view",
                            "source_control_name": "player_hud_data_control",
                            "source_property_name": "#preserved_text",
                            "target_property_name": "#info",
                            "resolve_sibling_scope": true
                        },
                        {
                            "binding_type": "view",
                            "source_property_name": "($min * (#info - ('%.1000s' * #info)))",
                            "target_property_name": "#value"
                        },
                        {
                            "binding_type": "view",
                            "source_property_name": "(($max_value - #value) / $max_value)",
                            "target_property_name": "#clip_ratio"
                        }```
manic dragon
outer stag
tepid ember
#

In my case, I use preserved, but I think the calculation is the same as for binds.

safe wasp
#

in my long title string

outer stag
#

I'll try switching. I have no reason I need to use §z specifically as a seperator.

safe wasp
#

yeah just use a single character

tepid ember
safe wasp
#

i just use ;

outer stag
#

😮 It worked

#

I think, let me test again

tepid ember
outer stag
#

Ayyy

safe wasp
#

lesss gooo

outer stag
#

Thank you both for your help, that was a very easy fix!

broken trail
clever vapor
#

no idea what kind of data it takes, or if its even truncable

broken trail
#

uuh

placid geode
#

maybe the position?

#

like it keeps their index but changing it's position?

broken trail
#

I guess its just layer related lmao

broken trail
manic dragon
# clever vapor

Could this be about being able to change child control order using bindings?

deft shadow
#

@weak cape or anyone and srry for ping I just don't know if your online syylaxx
Can you tell me if this is right
New updated one

{
  "namespace": "daily",
  
  "reward_button@common_buttons.light_text_button": {
    "size": [ 40, 40 ],
    "$button_text": "Item"
  },

  "spinning_container": {
    "type": "panel",
    "size": [ 200, 50 ], // Visible window for the rewards
    "clips_children": true, // Hides buttons outside the window
    "controls": [
      {
        "button_row": {
          "type": "stack_panel",
          "orientation": "horizontal",
          "size": [ "100%c", 40 ],
          "anims": [ "@daily.scroll_spin" ],
          "controls": [
            { "[email protected]_button": {} },
            { "[email protected]_button": {} },
            { "[email protected]_button": {} },
            { "[email protected]_button": {} },
            { "[email protected]_button": {} }
          ]
        }
      }
    ]
  },

  "scroll_spin": {
    "anim_type": "offset",
    "duration": 4.0,
    "from": [ 200, 0 ], // Start off-screen to the right
    "to": [ -150, 0 ],  // End at a specific reward button
    "easing": "out_expo" // Smoothly slows down at the end
  }
}
#

Nvm

#

I using Kitty Shizz daily rewards

#

But how do I make the daily rewards thing open when you right click a NPC with kitty Shizz daily rewards

clever vapor
#

tried messing with it, no idea what it does though

chilly yacht
#

ignored binding coming soon

manic dragon
#

Although I highly doubt

manic dragon
manic dragon
thorny nymph
#

hello, how to render a skin model on a form?

outer stag
#

Custom chat panel and factory:

{
  "stack_panel": {
    "type": "stack_panel",
    "anchor_from": "bottom_left",
    "anchor_to": "bottom_left",
    "factory": {
      "name": "chat_item_factory",
      "control_ids": {
        "chat_item": "[email protected]_ui"
      }
    }
  }
}

Notification element:

"notification_ui": {
  "type": "panel",
  "size": ["100%c", "100%c"],
  "anchor_from": "bottom_left",
  "anchor_to": "bottom_left",
  "controls": [
    {
      "notification": {
        "type": "image",
        "texture": "textures/ui/greyBorder",
        "size": ["100%cm + 10px", 30]
      }
    }
  ],
  "bindings": [
    {
      "binding_name": "#chat_text",
      "binding_name_override": "#text"
    },
    {
      "binding_type": "view",
      "source_property_name": "(not (#text - '§1') == #text)",
      "target_property_name": "#visible"
    }
  ]
}

I am trying to create a custom chat panel that only displays chat messages with a certain flag (§1). Currently, all messages are being displayed. Does anyone know what's wrong with my bindings?

outer stag
# thorny nymph hello, how to render a skin model on a form?

Also, there's a few ways. I think you can use the paper doll renderer, or the live player or horse renderer. Here's an old example I have:

{
  "player_doll_panel": {
    "type": "stack_panel",
    "size": ["46%", "46%"],
    "layer": 3,
    "offset": [0, "-7.5%"],
    "collection_name": "form_buttons",
    "controls": [
      {
        "index_0@form_buttons": {
          "type": "custom",
          "anchor_from": "center",
          "anchor_to": "center",
          "renderer": "live_horse_renderer",
          "collection_index": 0,
          "$item_collection_name": "form_buttons",
          "offset": [0, 0],
          "anims": [],
          "property_bag": {
            "#look_at_cursor": true
          },
          "bindings": [
            {
              "binding_name": "#form_button_text",
              "binding_name_override": "#entity_id",
              "binding_type": "collection",
              "binding_condition": "once",
              "binding_collection_name": "$item_collection_name"
            }
          ]
        }
      }
    ]
  }
}

I then passed the entity's id (entity.id or player.id with Script API) as the text for the first button in the form.

manic dragon
outer stag
manic dragon
#

Also wrap the notification_ui in a panel

outer stag
manic dragon
#

Yea because if I remember correctly #text for chat is not accessible from the directly generated contents of the factory. But can be accessed from their children

#

But if it's working now no need to change anything

outer stag
#

What I did was just put the bindings in the image instead of the panel.

outer stag
manic dragon
outer stag
#

I've used both of these types of bindings before, for some bizarre reason what I've done in the past isn't working.

manic dragon
#

Just add not in front ig

outer stag
#

That worked 😂

#

That's good enough for me for now! Thank you!

limpid reef
#

Can we asign custom button id to a button?

limpid reef
#

is there a nineslice max base size?

#

bcs i had a 16x16 texture and it was not working

#

then i changed to a 10 by 10 and it worked

left yew
#

Did you adjust the nineslice file/json accordingly?

unique swan
limpid reef
left yew
limpid reef
#

{
"base_size": 10,
"nineslice_size": 4
}

left yew
limpid reef
#

why does the stack panel bug there

#

"spin_container": {
"type": "panel",
"size": ["100%", "100%"],
"clips_children": true,
"controls": [
{
"[email protected]_content_stack": {
"anchor_from": "left_middle",
"anchor_to": "left_middle"
}
}
]
}

outer stag
#

Does anyone know what the binding is for being inside of a crafting table (versus the player's inventory) for the inventory_screen?

placid geode
#

they are two different screens

#

inventory_screen and crafting_screen

#

both extends @crafting.inventory_screen_base

limpid reef
outer stag
#

I haven't been able to find that, do you have a copy of the vanilla version by chance?

placid geode
outer stag
placid geode
outer stag
#

I'll try, just a second

placid geode
#

yep

outer stag
edgy root
#

Does anyone know why my game crashes when I use the title command?

outer stag
#

I'm slowing becoming proficient at JSON UI, I appreciate you and everyone else in this server who has helped me along.

edgy root
manic dragon
#

Let me guess. You're doing divisions and you didn't extract values properly so you got a string where you should've got a number and that's crashing it

manic dragon
# edgy root

Instead of directly using the title for the custom bar, use a preserved title. And try not to do division. Instead, multiply with a float. e.g- instead of dividing by 100, multiply with 0.01

edgy root
#

I will try

manic dragon
#
"bindings": [
            {
                "binding_name": "#poste_bar_reserved_title"
            },
            {
                "binding_type": "view",
                "source_property_name": "(#poste_bar_reserved_title - 'poste:')",
                "target_property_name": "#poste_bar"
            },
            {
                "binding_type": "view",
                "source_property_name": "(1 - (#poste_bar * $inverse_max))",
                "target_property_name": "#clip_ratio"
            }
        ]

Just the bindings are enough no need for the whole file.
Where did you get #poste_bar_reserved_title from. This binding name doesn't exist

edgy root
edgy root
# manic dragon ```json "bindings": [ { "binding_name": "#poste_bar_...

"bindings": [
{
"binding_name": "#title"
},
{
"binding_type": "view",
"source_property_name": "(#title - 'poste:')",
"target_property_name": "#poste_bar"
},
{
"binding_type": "view",
"source_property_name": "(1 - (#poste_bar * $inverse_max))",
"target_property_name": "#clip_ratio"
}
]
},

manic dragon
# edgy root "bindings": [ { "binding_name": "#title" ...
"bar_template": {
  "type": "image",
  "layer": 28,
  "$update_string": "poste:",
  "clip_direction": "left",
  "clip_pixelperfect": true,
  "texture": "textures/ui/minus",
  "$max_bar": 50.0,
  "$inverse_max": 0.02,
  "keep_ratio": false,
  "bindings": [
    {
      "binding_type": "view",
      "source_control_name": "data_control_x00",
      "source_property_name": "(#preserved_text - $update_string)",
      "target_property_name": "#poste_bar"
    },
    {
      "binding_type": "view",
      "source_property_name": "(1 - (#poste_bar * $inverse_max))",
      "target_property_name": "#clip_ratio"
    }
  ]
}

just replace the current bar_template with this and in root panel

"root_panel": {
  "modifications": [
    {
      "array_name": "controls",
      "operation": "insert_front",
      "value": [
        {
          "[email protected]_title_display_1": {}
        },
        {
          "[email protected]_title_display_2": {}
        },
        {
          "[email protected]_squid_hud": {}
        },
        {
          "data_control_x00": {
            "type": "panel",
            "size": [0, 0],
            "$update_string": "poste:",
            "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"
              }
            ]
          }
        }
      ]
    }
  ]
}
edgy root
#

thx u brother🥺

hollow needle
#

Can I call properties from animations?

#

Like this:

  "a": {
    "anim_type": "size",
    "from": [ "100%", 5 ],
    "to": [ 0, 5 ],

    "duration": "0 + #form_title"
  }
chilly yacht
#

thats bindings and no

hollow needle
chilly yacht
#

there is

#

just have animations on 1 panel

#

bindings on that panel

#

and animations on another panel

#

with bindings on that one

hollow needle
#

So multliple animations for each situation?

#

Or each panel has its own variables for the same animation

#

I'm gonna try

dry fractal
#

How should I cut the string so that it works? Clearly it looks really reasonable, but it bugs out when I enter the game. Does anyone know how to fix it?

#

In the line above, I only use this method, so it will display, but the excess part will not be removed.

manic dragon
polar frigate
#

is there a way to stop flip book animation at the end?

weak cape
#

Should be in the wiki

outer stag
#
"[email protected]_edit_box": {
  "anchor_from": "top_left",
  "anchor_to": "top_left",
  "size": ["93%", 12],
  "offset": [14, 0],
  "$text_box_name": "search_text_box",
  "$text_edit_text_control": "search_test",
  "$place_holder_text": "Search...",
  "$text_clear_button_enabled": true,
  "$text_edit_box_clear_to_button_id": "button.text_edit_box_deselected"
}

I'm using this text box to search an inventory (grid of input panels), and I'm trying to make it clear itself when it is either deselected or an item/panel is clicked.

Either works as a solution for me, but I've had no luck with either method. Does anyone know how I could get this to work?

balmy crow
unique swan
weak cape
polar frigate
placid geode
#

"looping": false ig

unique swan
#

Size:[ 254,32]

weak cape
polar frigate
#

there's no documentation in wiki about this LoL

unique swan
#

on the right side

weak cape
#

100%cm for the width
100%c for the length

opal aurora
limpid reef
chilly yacht
bright gazelle
clever vapor
#

like contents and texture and all that?

unique swan
rocky quail
#

thats sick

opal aurora
#

the only problem that prevented me from using renderers are not allowing localizable texts

bright gazelle
rocky quail
bright gazelle
rocky quail
#

mine kept crashing though

bright gazelle
#

hmm mine doesnt

rocky quail
#

mightve messed it up

hoary skiff
upbeat frigate
#

Hello, is it possible to render an entity with the same entity renderer from donkey or horses, but they're not alive or summoned in the world, like i just want to render their models and such with their entityID.

Is this possible?

hoary skiff
#

Looks cool

upbeat frigate
#

Ah okay, sadge

pulsar hornet
#

How do i make text aligned to center

#

resolved

candid shadow
#

does anyone know how the texture of the background is called?

#

You can see this grey texture better in this left panel

candid shadow
stiff creek
#

(

hollow needle
#

Is there a way to make it so the first button in my form is not focused by default?

silent apex
chilly yacht
#

not sure if it actually works though

hollow needle
#

I wanted to make it so it doesn't focus any button by default

chilly yacht
valid swan
fleet yoke
valid swan
glass valley
#

Is it possible to prevent player renderer from overflowing?

runic portal
#

clips_children: true

glass valley
glass valley
river flower
hoary skiff
#

What's the file name of hopper ui

#

Nvm found it

hoary skiff
hexed briar
#

here's goes the settings screen

placid geode
#

i just hope it doesnt take too long to load

broken trail
#

I think for hud and sevrer forms yeah - because a lot of content on marketplace use this stuff

#

however for the rest?

#

I don't think so, even about marketplace related stuff

#

end of jasonUI is now

hexed briar
broken trail
#

well exactly as I thought

hexed briar
#

it would be unwise of them somehow removing something featured servers using tbh

#

but yeah my UI is dead now.

manic dragon
hexed briar
manic dragon
hexed briar
#

ts is out right now

#

only preview atm

manic dragon
#

I meant in stable

hexed briar
#

unfortunately looks like this preview is ending so, we might get that sooner on stable

broken trail
hexed briar
#

i literally just worked on settings screen for hours yesterday

#

now lmao yeah i just can't.

manic dragon
#

I completely remade the settings but it's mostly useless because of this

#

It was to be expected tbh but still sad...

hoary skiff
#

Maybe remake the settings the other way, since it's just a secondary button, why not group it all into one panel like one click access

#

-# just my idea

hexed briar
#

That's not how JSON-UI works sadly.

#

for one, each screens has their own hardcoded bindings and stuff that should only be used on that said screen. including settings.

#

this means that you can't just fetch some stuff from other screen and expecting it to work.

hoary skiff
#

Thought it's just like accessing button id to open the screen

hexed briar
#

button ID were affected too so yeah

#

the ID will remains the same as before but this time it gets you to Ore-UI ver instead.

manic dragon
#

When might the next stable version be released? 🤔

hexed briar
#

And no, that's hardcoded by some treatments

hexed briar
manic dragon
hexed briar
#

Death screen and Play screen actually used to have one.

manic dragon
hexed briar
#

though unfortunately this treatment thing doesn't last long until it permanently gets hardcoded into the game that only gets you Ore-UI screen.

#

probably a few versions after that.

hexed briar
#

if the Ore-UI version is too laggy or something, they can just pull it out without updating the client.

manic dragon
#

Makes sense

hexed briar
#

if it works perfectly fine, yeah they'll hardcode it.

#

Bedrock is like a huge module stuff going on, known as treatment.

#

it's just a kill switch OR an exclusive feature to some people.

#

you may have Ore-UI settings where people may not.

manic dragon
proven kiln
#

@languid girder

#

@raw barn

#

can u ban @languid girder

#

he re uploaded my friends website

hoary skiff
#

Bruh

crisp merlin
#

whats the different between binding types view and global?

placid geode
#

'view' is used to obtain the properties of another object, or to operate on the properties of that same object (like obtaining toggle state of a specific toggle)

#

'global' (default if you dont set type) is for obtaining specific properties of each screen (like obtaining the player experience level)

placid geode
#

yeah

crisp merlin
#

tysm bro this helps alot

silent apex
wooden sluice
faint junco
#

Why, I've put two scrolls in my menu, but only the first one works, it scrolls all the content up to the one in the second scroll. Anyone has any idea?

#

I already changed the "slider_name" but nothing works

valid swan
#

There's no way I can render the player's inventory from the form, right?

#

😔

hoary skiff
#

I think U can you render it but not able to control it

valid swan
charred lodge
charred lodge
#

lol

faint junco
candid shadow
#

Is "variables" accepted as a value for "array_name" in modifications?

night holly
night holly
left yew
warped bronze
faint junco
#

@night holly do u know how to fix it?

left yew
faint junco
oblique gust
#

Does anyone have open source ore ui texture template

faint junco
#

but it just works with one slider, when i put two, just one work for both

night holly
faint junco
#

ok...

left yew
limpid reef
#

We can use it?

left yew
#

No.

#

💀💀

limpid reef
#

Okk

night holly
#

youre banned from ore ui

limpid reef
#

JSON > ore

night holly
#

real

valid swan
#

I want them to release it soon so I can start playing around with ORE UI.

manic dragon
#

Performance-wise JSON UI is much better than Ore UI

#

And we still don't know how much customizability we will get. What if it's more restricted than JSON UI :)

valid swan
valid swan
hexed briar
#

Like i said before —

  • Menu/Pre-game UIs isn't possible anymore.
  • Data-driven UIs (That would be Ore-UI based) are extremely basic and lack a lot of stuff.
#

The only thing that might be a little more customizable is just the server forms, that's it.

clever vapor
#

are extremely basic and lack a lot of stuff.
You are referencing something that isn't quite done yet though

#

you can't just say that as it is

candid shadow
jovial hemlock
#

it only works when i open the form, but not when touching it

river flower
#

Works

            {
              "binding_type": "view",
              "source_control_name": "stats_data_control",
              "source_property_name": "(('%.1s' * (#preserved_text - $tw_hud_key)) = 'a')",
              "target_property_name": "#visible",
              "resolve_sibling_scope": true
            }

Doesn't work

            {
              "binding_type": "view",
              "source_control_name": "stats_data_control",
              "source_property_name": "((1 * ('%.1s' * (#preserved_text - $tw_hud_key))) = 1)",
              "target_property_name": "#visible",
              "resolve_sibling_scope": true
            }

Didn't I convert to int properly? What's going on??

manic dragon
#

this is because of the new update. you can't multiply number with '%.ns'

river flower
#

$tw_hud_key = tmc.tw::

#

The first number is what I want for this

#

1 = visible, 0 = invisible

#

do I convert to string, then multiply with %.ns? but then I'd have like

#

&z1

#

so I check with that?

manic dragon
#

"(('%.12s' * #preserved_text) - $tw_hud_key) = 1)"

river flower
#

Ohhhh

#

tmc.tw:: is 8

#

what about the other 4?

manic dragon
#

1ꀀꀀꀀ this part

river flower
#

Ah okie

#

tysm

manic dragon
#

I'm assuming ꀀ is one byte. idk what's the byte count for this

#

it's 3 bytes

#

use characters of 1 byte for consistent result

river flower
#

yeye i understand

candid shadow
#

Am I the only one who still doesn't understand the difference between binding_name_override and target_property_name?

valid swan
#

Can a grid return the collection_index of the objects within it?

hoary skiff
#

I remember someone said its grid_position: [x, y]

valid swan
placid geode
candid shadow
placid geode
#

global (or default) it's for fetching a global property (hardcoded, screen specific, like #level_number in hud_screen) and view is for fetching other control properties and operating with it (like getting the #toggle_state of a toggle or modifying a text output)

candid shadow
candid shadow
#

or to override variable values

jovial hemlock
#

hello, is there a way to pass a binding from a parent to a child?

normal moat
dry fractal
#

How can I insert this custom font into the lore? On Java, we can use methods like Negative Space Font or something similar to put images into the lore, but on BE it's not available. What should I do now?

restive lance
#

I think its the default8 one specifically

dry fractal
restive lance
final matrix
#
        "gender_icon": {
          "type": "image",
          "texture": "#texture",
          "size": [4, 4],
          "offset": [4, 0],
          "layer":26,
          "bindings": [
            {
  "binding_type": "view",
  "source_control_name": "$control",
"source_property_name": "('textures/ui/'+ ((#preserved_text) - ('%.18s' * #preserved_text) - $preserved - $a - $f))",
  
  "target_property_name": "#texture"
}
          ]
            }
           },
      {
        "preserved_title_name": {
          "type": "label",
          "anchor_from": "center",
          "anchor_to": "center",
          "layer": 34,
          "font_size": "small",
          "offset": [-14, 12],
          "text_alignment": "left",
          "enable_profanity_filter": false,
          "text": "#text_0",
          "bindings": [
            {
  "binding_type": "view",
  "source_control_name": "$control",
"source_property_name": "(('§z' + #preserved_text) - ('%.18s' * #preserved_text) - $preserved - $a - $f - 'M' - 'F' - ' ')",
  
  "target_property_name": "#text_0"
}

can anyone help with string formatting

#

preserved title name gives me the name like Azure M (I subtracted M /F in code to only get name)

#

Here the M can be M/F male or female but how do I extract this male female in gender icon

wooden sluice
#

does anyone know how to add a new font type? theres MinecraftTen, default, etc, i have heard things about font_metadata.json and ttfs

chilly yacht
#

possible but only for global rps i think

#

something along those lines

manic dragon
austere flicker
#

whats the size value limit for px or pixels value.
i tried 640x330 to achieve full screen with my display but i think that value is not dynamic for various screens and is just specific for my display

candid shadow
hardy lily
#

Hello, can I ask about the custom UI that doesn't load properly like this?
When I tried to see it by myself, there was no problem at all. While some users had this issue, I cannot pinpoint the cause of this bug. Any idea what's going on?

#

This is what the UI should look like.

manic dragon
#

Could be a different pack interfering with this one

weak cape
hardy lily
weak cape
#

In the element, the texture property/binding

#

Does it say textues/ui/nineslice.png

#

it cannot say .png

hardy lily
#

No, I use normal name instead

#

I never put a file format inside the textures path

weak cape
#

hmm in that case probably some buckrock moment or rp interfering

#

send the element maybe

hardy lily
#

I already turned off my computer. But I think all my elements are fine

hardy lily
carmine lintel
#

Ayo, i search somone who know how to make this type of UI on pocketmine, come dm

nimble harness
#

Or how to do it better?

limpid reef
#

Don’t understand

edgy root
#

Is it possible to render two paper dolls from different players on the screen without a UI?

tall trellis
#

Is it possible to make the screen very bright if brightness is set to over 0?

valid swan
#

Could I render an item's name like this? If not, how could I do it?

            {
                "collection_panel": {
                    "type": "collection_panel", 
                    "collection_name": "hotbar_items", 
                    "controls": [
                        {
                            "hotbar_first_name": {
                                "type": "label",
                                "anchor_to": "top_left",
                                "anchor_from": "top_left",
                                "collection_index": 0,
                                "text": "#item_text",
                                "size": [ 40, 16 ],
                                "layer": 15,
                                "shadow": true,
                                "font_size": "normal",
                                "bindings": [
                                    {
                                        "binding_type": "collection",
                                        "binding_name": "#item_text",
                                        "binding_collection_name": "hotbar_items"
                                    },
                                    {
                                        "binding_type": "collection_details",
                                        "binding_collection_name": "hotbar_items"
                                    }
                                ]
                            }
                        }
                    ]
                }
            }
manic dragon
viral oxide
#

What does > and < do with string comparisons?

(#text < '%') or (#text > '&')

weak cape
#

No idea tbh

viral oxide
#

I just noticed it in some UI im looking at for reference and had never seen it before xD

weak cape
#

Never seen that so seems kinda weird

#

Wiki doesn’t say anything so maybe some experts could perhaps say something

viral oxide
#

my only thought is it might be a string doesnt include condition?

#

wait yeah im testing in game atm, it seems to check if the string contains those chars

weak cape
#

the lexicographical order perhaps?

viral oxide
livid vault
weak cape
#

Seems to fit your suspicion

viral oxide
#

(#text < '%')

I think this might be string starts with character

#

cus it matched %test but not test%

#

but the thing that makes me think otherwise is, > does not seem to match for it being at the end which i would've suspected in that case

viral oxide
manic dragon
placid geode
#

its on cubecraft ui

#

'!hi' > '!' -> true, '!' > '!' -> false ig

weak cape
manic dragon
#

Is it something intended?!

wooden sluice
#

if yes i guess i would just modify a barely used glyph then

manic dragon
wooden sluice
#

thats not fun

jolly rock
#

But im not sure if #item_text is Correct

valid swan
manic dragon
#

Try #hover_text instead

I don't think #item_text can be accessed outside the item name factory

valid swan
manic dragon
#

Never saw that before

night holly
valid swan
earnest wind
#

Is it possible to give a slot in the chest UI a color depending on the item it contains, and make that slot keep its color even when another item is put into it?

hollow needle
#

Is there a list of all existing vanilla collection names?

placid geode
wooden sluice
#

i dont know anything about chests or items in json ui tho so dont ask me

jolly rock
earnest wind
manic dragon
#

You can copy the code from the wiki page but you need to make an appropriate condition to trigger the preserved text. Because hover text becomes empty for a split second whenever you interact with any of the slots

upbeat frigate
#

Yooooww saw the RLCraft 1.2 Update with new json ui. So Minecraft marketplace now accepts json ui thingies?

Last thing i saw is they were limited with json ui, or were really not using at all, anyone know about this? I just found out

chilly yacht
#

something released by lunar client has json ui

#

the stranger things marketplace addon

#

loads of stuff

#

90% of it is just npc screen but some do have forms

#

like the avatar one by gamemode 1

upbeat frigate
#

Ohh, haven't saw that. I saw like the RLCraft uses the chest inventory

#

Although i saw some like those marketplace worlds that has some addons on it. Kinda new to me seeing somethint like actual addon

chilly yacht
#

yeah

manic dragon
#

I'm pretty sure you can use JSON UI in world templates but not in addon

chilly yacht
#

yeah that

#

well

#

no since rl craft just added it?

#

isnt that an addon

upbeat frigate
#

This is nicee

chilly yacht
#

i feel like you dont see much json ui because there are already a small amount of people who are good at json ui, let alone on the marketplace

upbeat frigate
#

True, just love seeing addons that has some json-ui in it, cuz they're bao_icon_particles

manic dragon
chilly yacht
#

oh weird

#

how do they push updates to a world??

#

youd think it would be addons

upbeat frigate
#

Hmmm whatt that's a world template

crisp merlin
#

Do you guys know how I get somehow get buttons on modal form? I tried overlaying an invisible toggle over a button but It acts weird

upbeat frigate
#

Last thing i knew about rlcraft is it's a dynamic world thingy

#

Like same with Realismcraft before

manic dragon
crisp merlin
crisp merlin
#

.label()

manic dragon
chilly yacht
#

look at galaxites new ui

#

looks like they got a new ui dev or something

crisp merlin
#

I don’t need the button to do anything only the toggle to be detected from scripts

chilly yacht
#

oh so

#

ur making toggles look like buttons

crisp merlin
#

Yes

chilly yacht
#

yeah u dont have to do that weird stuff

#

just change the texture 💀

crisp merlin
#

where is it in Japan ui

#

Jason ui

#

JSON

manic dragon
#

Some variables

chilly yacht
#

i would build ur own toggle tbh

#

alot more control

#

just look through ui_common

crisp merlin
#

Does toggle have hover texture

chilly yacht
#

yes

crisp merlin
#

Ok thanks I’ll try when I’m home

#

??

chilly yacht
#

take a look at this too its pretty cool

crisp merlin
#

Bet

chilly yacht
#

npc like menu switching

#

no re opening the form cowboy_eyes

crisp merlin
#

Wait you don’t need to reopen form?

#

That’s tuff

chilly yacht
#

its cool but defenitely can cause lag

#

since we dont have the IGNORED BINDING

chilly yacht
#

just drowning myself in tears dont mind me

crisp merlin
chilly yacht
#

so ive heard

#

its just a template

#

but certain contents are hidden when one is toggled

#

so you can put buttons on it and what not