Files
minecraft-bedrock-json-schemas/source/resource/ui/ui.json
2023-10-24 00:31:52 +02:00

1526 lines
50 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "Minecraft JSON UI",
"type": "object",
"properties": {
"namespace": {
"title": "Namespace",
"type": "string",
"pattern": "^[a-zA-Z0-9_-]+$"
}
},
"definitions": {
"control_ids": {
"title": "Control IDs",
"description": "The IDs of the controls that will be created by the factory.",
"oneOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"title": "Control ID",
"type": "string"
}
}
]
},
"variables": {
"title": "Variable Definition",
"description": "A variable is a reference to a value that can be used in the UI."
},
"control": {
"title": "Element",
"description": "An element is a control that can be added to a screen. It can be a button, a label, an image, etc.",
"type": "object",
"propertyNames": {
"examples": ["$variable"]
},
"additionalProperties": false,
"patternProperties": {
"^\\$.*": {
"$ref": "#/definitions/variables"
}
},
"properties": {
"allow_scroll_even_when_content_fits": {
"title": "Allow Scroll Even When Content Fits",
"description": "If true, the element will allow scrolling even when the content fits.",
"$ref": "./general/boolean.json"
},
"always_handle_scrolling": {
"title": "Always Handle Scrolling",
"description": "If true, the element will always handle scrolling.",
"$ref": "./general/boolean.json"
},
"always_rotate": {
"title": "Always Rotate",
"description": "If true, the element will always rotate.",
"$ref": "./general/boolean.json"
},
"always_listen_to_input": {
"title": "Always Listen To Input",
"description": "If true, the element will always listen to input.",
"$ref": "./general/boolean.json"
},
"always_handle_pointer": {
"title": "Always Handle Pointer",
"description": "If true, the element will always handle the pointer.",
"$ref": "./general/boolean.json"
},
"anims": {
"title": "Animations",
"description": "The animations that are contained within this element.",
"oneOf": [
{
"$ref": "./general/item_ref.json"
},
{
"type": "array",
"items": {
"$ref": "./general/item_ref.json"
}
}
]
},
"alpha": {
"title": "Alpha",
"description": "The alpha of the element.",
"oneOf": [
{
"$ref": "./general/item_ref.json"
},
{
"type": "number",
"minimum": 0,
"maximum": 1
}
]
},
"anchor_from": {
"title": "Anchor From",
"description": "The anchor point of the element. This is the point that the element will be positioned relative to.",
"oneOf": [{ "$ref": "./general/anchor.json" }, { "$ref": "./general/variable.json" }]
},
"anchor_to": {
"title": "Anchor To",
"description": "The anchor point of the element. This is the point that the element will be positioned relative to.",
"oneOf": [{ "$ref": "./general/anchor.json" }, { "$ref": "./general/variable.json" }]
},
"bindings": {
"title": "Bindings",
"description": "The bindings that are contained within this element.",
"oneOf": [
{
"$ref": "./general/item_ref.json"
},
{
"type": "array",
"items": {
"type": "object",
"title": "Bindings",
"additionalProperties": false,
"properties": {
"binding_collection_name": {
"title": "Binding Collection Name",
"description": "The name of the collection that the binding is in.",
"$ref": "./general/string.json"
},
"binding_collection_prefix": {
"title": "Binding Collection Prefix",
"description": "The prefix of the collection that the binding is in.",
"$ref": "./general/string.json"
},
"binding_condition": {
"title": "Binding Condition",
"description": "The condition that must be met for the binding to be applied.",
"anyOf": [
{
"enum": ["once", "always", "always_when_visible", "visible"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"binding_name": {
"title": "Binding Name",
"description": "The name of the binding. This is used to reference the binding in the element's properties.",
"$ref": "./general/string.json"
},
"binding_name_override": {
"title": "Binding Name Override",
"description": "The name of the binding. This is used to reference the binding in the element's properties.",
"$ref": "./general/string.json"
},
"binding_type": {
"title": "Binding Type",
"description": "The type of the binding.",
"anyOf": [{ "enum": ["collection", "global", "collection_details", "none", "view"] }, { "$ref": "./general/variable.json" }]
},
"ignored": {
"title": "Ignored",
"description": "If true, the binding will be ignored.",
"$ref": "./general/boolean.json"
},
"resolve_sibling_scope": {
"title": "Resolve Sibling Scope",
"description": "If true, the binding will resolve sibling scope.",
"$ref": "./general/boolean.json"
},
"source_control_name": {
"title": "Source Control Name",
"description": "The name of the control that the binding is in.",
"$ref": "./general/string.json"
},
"source_property_name": {
"title": "Source Property Name",
"description": "The name of the property that the binding is in.",
"$ref": "./general/string.json"
},
"target_property_name": {
"title": "Target Property Name",
"description": "The name of the property that the binding is in.",
"$ref": "./general/string.json"
}
}
}
}
]
},
"bilinear": {
"title": "Bilinear",
"description": "If true, the element will use bilinear filtering.",
"$ref": "./general/boolean.json"
},
"background_control": {
"title": "Background Control",
"description": "The control that will be used for the background.",
"$ref": "./general/string.json"
},
"background_hover_control": {
"title": "Background Hover Control",
"description": "The control that will be used for the background when hovered.",
"$ref": "./general/string.json"
},
"backup_font_type": {
"title": "Backup Font Type",
"description": "The type of the backup font.",
"type": "string",
"oneOf": [
{
"enum": ["UIFont"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"button_mappings": {
"title": "Button Mappings",
"description": "The button mappings that are contained within this element.",
"oneOf": [
{
"$ref": "./general/item_ref.json"
},
{
"type": "array",
"items": {
"type": "object",
"title": "Button Mappings",
"additionalProperties": {
"type": ["string", "boolean"],
"title": "Button Mapping",
"examples": ["button.menu", "button.back", "global"]
}
}
}
]
},
"checked_control": {
"title": "Checked Control",
"description": "The control that will be checked.",
"anyOf": [
{
"enum": ["checked"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"checked_hover_control": {
"title": "Checked Hover Control",
"description": "The control that will be checked when hovered.",
"anyOf": [
{
"enum": ["checked"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"checked_locked_control": {
"title": "Checked Locked Control",
"description": "The control that will be checked when locked.",
"anyOf": [
{
"enum": ["checked"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"checked_locked_hover_control": {
"title": "Checked Locked Hover Control",
"description": "The control that will be checked when locked and hovered.",
"anyOf": [
{
"enum": ["checked"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"clips_children": {
"title": "Clips Children",
"description": "If true, the element will clip its children.",
"$ref": "./general/boolean.json"
},
"clip_direction": {
"title": "Clip Direction",
"description": "The direction that the element will be clipped in.",
"type": "string",
"oneOf": [
{
"enum": ["left", "right", "top", "bottom"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"clip_pixelperfect": {
"title": "Clip Pixel Perfect",
"description": "If true, the element will be clipped pixel perfect.",
"type": "boolean"
},
"close_on_player_hurt": {
"title": "Close On Player Hurt",
"description": "If true, the element will close when the player is hurt.",
"$ref": "./general/boolean.json"
},
"collection_name": {
"title": "Collection Name",
"description": "The name of the collection that the element is in.",
"type": "string",
"$ref": "./general/string.json"
},
"color": {
"title": "Color",
"description": "The color of the text. This can be a hex color code or a color keyword.",
"$ref": "./general/color.json"
},
"contained": {
"title": "Contained",
"description": "If true, the element will be contained.",
"$ref": "./general/boolean.json"
},
"controls": {
"title": "Controls",
"description": "The controls that are contained within this element.",
"oneOf": [
{
"type": "array",
"items": {
"additionalProperties": {
"title": "Sub Element",
"$ref": "#/definitions/grouped"
}
}
},
{
"$ref": "./general/item_ref.json"
}
]
},
"control_name": {
"title": "Control Name",
"description": "The name of the control.",
"$ref": "./general/string.json"
},
"consume_hover_events": {
"title": "Consume Hover Events",
"description": "If true, the element will consume hover events.",
"$ref": "./general/boolean.json"
},
"default_control": {
"title": "Default Control",
"description": "The default control that will be focused.",
"$ref": "./general/string.json"
},
"default_focus_precedence": {
"title": "Default Focus Precedence",
"description": "The default focus precedence of the element.",
"$ref": "./general/integer.json"
},
"disable_anim_fast_forward": {
"title": "Disable Anim Fast Forward",
"description": "If true, the animation will not be fast forwarded.",
"$ref": "./general/boolean.json"
},
"draggable": {
"title": "Draggable",
"description": "If true, the element will be draggable.",
"$ref": "./general/boolean.json"
},
"dropdown_area": {
"title": "Dropdown Area",
"description": "The area that the dropdown will be in.",
"$ref": "./general/vec4.json"
},
"dropdown_content_control": {
"title": "Dropdown Content Control",
"description": "The control that will be used for the dropdown content.",
"$ref": "./general/string.json"
},
"dropdown_name": {
"title": "Dropdown Name",
"description": "The name of the dropdown.",
"$ref": "./general/string.json"
},
"enabled": {
"title": "Enabled",
"description": "If true, the element will be enabled.",
"$ref": "./general/boolean.json"
},
"enabled_newline": {
"title": "Enabled Newline",
"description": "If true, the element will be enabled when a new line is created.",
"$ref": "./general/boolean.json"
},
"enable_directional_toggling": {
"title": "Enable Directional Toggling",
"description": "If true, the element will enable directional toggling.",
"$ref": "./general/boolean.json"
},
"enable_profanity_filter": {
"title": "Enable Profanity Filter",
"description": "If true, the element will enable the profanity filter.",
"$ref": "./general/boolean.json"
},
"factory": {
"title": "Factory",
"description": "The factory that will be used to create the element.",
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^\\$.*": {
"$ref": "#/definitions/variables"
}
},
"properties": {
"control_ids": {
"$ref": "#/definitions/control_ids"
},
"control_name": {
"title": "Control Name",
"description": "The name of the control that will be created by the factory.",
"$ref": "./general/string.json"
},
"factory_variables": {
"title": "Factory Variables",
"description": "The variables that will be used by the factory.",
"oneOf": [
{
"type": "array",
"items": {
"type": "string",
"title": "Factory Variable"
}
},
{
"type": "string"
}
]
},
"name": {
"title": "Name",
"description": "The name of the factory.",
"type": "string"
}
}
},
"fill": {
"title": "Fill",
"description": "If true, the element will fill the screen.",
"$ref": "./general/boolean.json"
},
"focus_enabled": {
"title": "Focus Enabled",
"description": "If true, the element will be focus enabled.",
"$ref": "./general/boolean.json"
},
"focus_change_left": {
"title": "Focus Change Left",
"oneOf": [
{
"enum": ["FOCUS_OVERRIDE_STOP"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"focus_change_right": {
"title": "Focus Change Right",
"oneOf": [
{
"enum": ["FOCUS_OVERRIDE_STOP"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"focus_change_down": {
"title": "Focus Change Down",
"oneOf": [
{
"enum": ["FOCUS_OVERRIDE_STOP"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"focus_change_up": {
"title": "Focus Change Up",
"oneOf": [
{
"enum": ["FOCUS_OVERRIDE_STOP"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"focus_identifier": {
"title": "Focus Identifier",
"description": "The identifier of the element that will be focused.",
"$ref": "./general/string.json"
},
"focus_magnet_enabled": {
"title": "Focus Magnet Enabled",
"description": "If true, the element will be focus magnet enabled.",
"$ref": "./general/boolean.json"
},
"focus_wrap_enabled": {
"title": "Focus Wrap Enabled",
"description": "If true, the element will be focus wrap enabled.",
"$ref": "./general/boolean.json"
},
"force_render_below": {
"title": "Force Render Below",
"description": "If true, the element will be rendered below the screen.",
"$ref": "./general/boolean.json"
},
"force_texture_reload": {
"title": "Force Texture Reload",
"description": "If true, the texture will be reloaded.",
"$ref": "./general/boolean.json"
},
"font_scale_factor": {
"title": "Font Scale Factor",
"description": "The scale factor of the font.",
"$ref": "./general/number.json"
},
"font_size": {
"title": "Font Size",
"description": "The size of the font.",
"anyOf": [
{
"enum": ["normal"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"font_type": {
"title": "Font Type",
"description": "The type of the font.",
"type": "string",
"oneOf": [
{
"enum": ["smooth", "MinecraftTen"]
},
{
"$ref": "./general/variable.json"
}
]
},
"grid_item_template": {
"title": "Grid Item Template",
"description": "The template that will be used for the grid item.",
"type": "string"
},
"grid_dimensions": {
"title": "Grid Dimensions",
"description": "The dimensions of the grid.",
"$ref": "./general/vec2.json"
},
"grid_dimension_binding": {
"title": "Grid Dimension Binding",
"description": "The binding that will be used for the grid dimension.",
"$ref": "./general/variable.json"
},
"grid_position": {
"title": "Grid Position",
"description": "The position of the grid.",
"$ref": "./general/vec2.json"
},
"grid_rescaling_type": {
"title": "Grid Rescaling Type",
"description": "The type of the grid rescaling.",
"type": "string",
"enum": ["horizontal"]
},
"handle_select": {
"title": "Handle Select",
"description": "If true, the element will handle select.",
"$ref": "./general/boolean.json"
},
"handle_deselect": {
"title": "Handle Deselect",
"description": "If true, the element will handle deselect.",
"$ref": "./general/boolean.json"
},
"hover_alpha": {
"title": "Hover Alpha",
"description": "The alpha of the text when hovered.",
"$ref": "./general/number.json"
},
"hover_color": {
"title": "Hover Color",
"description": "The color of the text when hovered. This can be a hex color code or a color keyword.",
"$ref": "./general/color.json"
},
"hover_control": {
"title": "Hover Control",
"description": "The control that will be hovered.",
"anyOf": [
{
"enum": ["hover"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"hover_enabled": {
"title": "Hover Enabled",
"description": "If true, the element will be hover enabled.",
"$ref": "./general/boolean.json"
},
"ignored": {
"title": "Ignored",
"description": "If true, the element will be ignored.",
"$ref": "./general/boolean.json"
},
"indent_control": {
"title": "Indent Control",
"description": "The control that will be indented.",
"anyOf": [
{
"enum": ["indent"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"inherit_max_sibling_height": {
"title": "Inherit Max Sibling Height",
"description": "If true, the element will inherit the maximum height of its siblings.",
"type": "boolean"
},
"is_modal": {
"title": "Is Modal",
"description": "If true, the element will be modal.",
"$ref": "./general/boolean.json"
},
"is_showing_menu": {
"title": "Is Showing Menu",
"description": "If true, the element will be showing the menu.",
"$ref": "./general/boolean.json"
},
"jump_to_bottom_on_update": {
"title": "Jump To Bottom On Update",
"description": "If true, the element will jump to the bottom when updated.",
"$ref": "./general/boolean.json"
},
"keep_ratio": {
"title": "Keep Ratio",
"description": "If true, the element will keep its ratio.",
"$ref": "./general/boolean.json"
},
"layer": {
"title": "Layer",
"description": "The layer that the element will be rendered in. Higher layers are rendered on top of lower layers.",
"$ref": "./general/integer.json"
},
"localize": {
"title": "Localize",
"description": "If true, the element will be localized.",
"$ref": "./general/boolean.json"
},
"locked_alpha": {
"title": "Locked Alpha",
"description": "The alpha of the text when locked.",
"$ref": "./general/number.json"
},
"locked_color": {
"title": "Locked Color",
"description": "The color of the text when locked. This can be a hex color code or a color keyword.",
"$ref": "./general/color.json"
},
"locked_control": {
"title": "Locked Control",
"description": "The control that will be locked.",
"anyOf": [
{
"enum": ["locked", ""]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"low_frequency_rendering": {
"title": "Low Frequency Rendering",
"description": "If true, the element will be rendered at a lower frequency.",
"$ref": "./general/boolean.json"
},
"maximum_grid_items": {
"title": "Maximum Grid Items",
"description": "The maximum number of grid items.",
"$ref": "./general/integer.json"
},
"max_length": {
"title": "Max Length",
"description": "The maximum length of the text. If the text is longer than this, it will be truncated.",
"$ref": "./general/integer.json"
},
"max_size": {
"title": "Max Size",
"description": "The maximum size of the element.",
"$ref": "./general/size.json"
},
"min_size": {
"title": "Min Size",
"description": "The minimum size of the element.",
"$ref": "./general/size.json"
},
"modal": {
"title": "Modal",
"description": "If true, the element will be modal.",
"$ref": "./general/boolean.json"
},
"offset": {
"title": "Offset",
"description": "The offset of the element from the anchor point. horizontal by vertical.",
"$ref": "./general/vec2.json"
},
"orientation": {
"title": "Orientation",
"description": "The orientation of the element.",
"type": "string",
"anyOf": [
{
"enum": ["horizontal", "vertical"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"primary_color": {
"title": "Primary Color",
"description": "The primary color of the element. This can be a hex color code or a color keyword.",
"$ref": "./general/color.json"
},
"place_holder_control": {
"title": "Place Holder Control",
"description": "The control that will be used for the place holder.",
"$ref": "./general/string.json"
},
"pressed_alpha": {
"title": "Pressed Alpha",
"description": "The alpha of the text when pressed.",
"$ref": "./general/number.json"
},
"pressed_color": {
"title": "Pressed Color",
"description": "The color of the text when pressed. This can be a hex color code or a color keyword.",
"$ref": "./general/color.json"
},
"pressed_control": {
"title": "Pressed Control",
"description": "The control that will be pressed.",
"anyOf": [
{
"enum": ["hover", "pressed"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"prevent_touch_input": {
"title": "Prevent Touch Input",
"description": "If true, the element will prevent touch input.",
"$ref": "./general/boolean.json"
},
"progress_control": {
"title": "Progress Control",
"description": "The control that will be used for the progress.",
"$ref": "./general/string.json"
},
"progress_hover_control": {
"title": "Progress Hover Control",
"description": "The control that will be used for the progress when hovered.",
"$ref": "./general/string.json"
},
"property_bag": {
"title": "Property Bag",
"description": "The property bag that will be used by the element.",
"anyOf": [
{
"type": "object",
"additionalProperties": {
"title": "Property Bag Property",
"$ref": "./general/any.json"
}
},
{
"$ref": "./general/string.json"
}
]
},
"radio_toggle_group": {
"title": "Radio Toggle Group",
"description": "The radio toggle group that the element is in.",
"$ref": "./general/string.json"
},
"renderer": {
"title": "Renderer",
"description": "The renderer that will be used by the element.",
"anyOf": [
{
"enum": ["ui_holo_cursor"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"render_game_behind": {
"title": "Render Game Behind",
"description": "If true, the game will be rendered behind the element.",
"$ref": "./general/boolean.json"
},
"render_only_when_topmost": {
"title": "Render Only When Topmost",
"description": "If true, the element will only be rendered when it is the topmost element.",
"$ref": "./general/boolean.json"
},
"reset_event": {
"title": "Reset Event",
"description": "The event that will be reset.",
"$ref": "./general/string.json"
},
"reset_on_focus_lost": {
"title": "Reset On Focus Lost",
"description": "If true, the element will be reset when focus is lost.",
"$ref": "./general/boolean.json"
},
"rotate_speed": {
"title": "Rotate Speed",
"description": "The speed that the element will rotate at.",
"$ref": "./general/number.json"
},
"screen_draws_last": {
"title": "Screen Draws Last",
"description": "If true, the screen will be drawn last.",
"$ref": "./general/boolean.json"
},
"screen_not_flushable": {
"title": "Screen Not Flushable",
"description": "If true, the screen will not be flushed when the element is added.",
"$ref": "./general/boolean.json"
},
"send_telemetry": {
"title": "Send Telemetry",
"description": "If true, the element will send telemetry.",
"$ref": "./general/boolean.json"
},
"size": {
"title": "Size",
"description": "The size of the element.",
"$ref": "./general/size.json"
},
"shadow": {
"title": "Shadow",
"description": "If true, the text will have a shadow.",
"$ref": "./general/boolean.json"
},
"should_steal_mouse": {
"title": "Should Steal Mouse",
"description": "If true, the element will steal the mouse.",
"$ref": "./general/boolean.json"
},
"slider_box_control": {
"title": "Slider Box Control",
"description": "The control that will be used for the slider box.",
"anyOf": [
{
"enum": ["slider_box"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"slider_collection_name": {
"title": "Slider Collection Name",
"description": "The name of the collection that the slider is in.",
"$ref": "./general/string.json"
},
"slider_direction": {
"title": "Slider Direction",
"description": "The direction of the slider.",
"type": "string",
"$ref": "./general/item_ref.json"
},
"slider_name": {
"title": "Slider Name",
"description": "The name of the slider.",
"$ref": "./general/string.json"
},
"slider_select_on_hover": {
"title": "Slider Select On Hover",
"description": "If true, the slider will select on hover.",
"$ref": "./general/boolean.json"
},
"slider_small_decrease_button": {
"title": "Slider Small Decrease Button",
"description": "The button that will be used for the slider small decrease.",
"$ref": "./general/item_ref.json"
},
"slider_small_increase_button": {
"title": "Slider Small Increase Button",
"description": "The button that will be used for the slider small decrease.",
"$ref": "./general/item_ref.json"
},
"slider_selected_button": {
"title": "Slider Selected Button",
"description": "The button that will be used for the slider selected.",
"$ref": "./general/item_ref.json"
},
"slider_deselected_button": {
"title": "Slider Deselected Button",
"description": "The button that will be used for the slider deselected.",
"$ref": "./general/item_ref.json"
},
"slider_steps": {
"title": "Slider Steps",
"description": "The steps of the slider.",
"$ref": "./general/integer.json"
},
"slider_track_button": {
"title": "Slider Track Button",
"description": "The button that will be used for the slider track.",
"$ref": "./general/item_ref.json"
},
"scroll_box_and_track_panel": {
"title": "Scroll Box And Track Panel",
"description": "The panel that will be used for the scroll box and track.",
"$ref": "./general/string.json"
},
"scroll_content": {
"title": "Scroll Content",
"description": "The content that will be scrolled.",
"$ref": "./general/string.json"
},
"scroll_speed": {
"title": "Scroll Speed",
"description": "The speed that the element will scroll at.",
"$ref": "./general/integer.json"
},
"scroll_view_port": {
"title": "Scroll View Port",
"description": "The view port that the element will be scrolled in.",
"$ref": "./general/string.json"
},
"scrollbar_box": {
"title": "Scrollbar Box",
"description": "The box of the scrollbar.",
"anyOf": [
{
"enum": ["box"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"scrollbar_track_button": {
"title": "Scrollbar Track Button",
"description": "The button that will be used for the scrollbar track.",
"$ref": "./general/item_ref.json"
},
"scrollbar_touch_button": {
"title": "Scrollbar Touch Button",
"description": "The button that will be used for the scrollbar touch.",
"$ref": "./general/item_ref.json"
},
"scrollbar_track": {
"title": "Scrollbar Track",
"description": "The track of the scrollbar.",
"anyOf": [
{
"enum": ["track"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"sound_name": {
"title": "Sound Name",
"description": "The name of the sound.",
"$ref": "./general/string.json"
},
"sound_pitch": {
"title": "Sound Pitch",
"description": "The pitch of the sound.",
"$ref": "./general/number.json"
},
"sound_volume": {
"title": "Sound Volume",
"description": "The volume of the sound.",
"type": "number",
"minimum": 0,
"maximum": 1
},
"text": {
"title": "Text",
"description": "The text to display.",
"type": "string"
},
"text_alignment": {
"title": "Text Alignment",
"description": "The alignment of the text.",
"type": "string",
"anyOf": [
{
"enum": ["left", "center", "right"]
},
{
"$ref": "./general/variable.json"
}
]
},
"text_box_name": {
"title": "Text Box Name",
"description": "The name of the text box.",
"$ref": "./general/string.json"
},
"text_control": {
"title": "Text Control",
"description": "The control that will be used for the text.",
"$ref": "./general/string.json"
},
"text_edit_box_grid_collection_name": {
"title": "Text Edit Box Grid Collection Name",
"description": "The name of the collection that the text edit box grid is in.",
"$ref": "./general/string.json"
},
"text_type": {
"title": "Text Type",
"description": "The type of the text.",
"anyOf": [
{
"enum": ["ExtendedASCII"]
},
{
"$ref": "./general/variable.json"
}
]
},
"texture": {
"title": "Texture",
"description": "The texture to display.",
"anyOf": [
{
"type": "string",
"pattern": "^textures/[a-zA-Z0-9/_-]+$",
"examples": ["textures/ui/file"]
},
{
"$ref": "./general/item_ref.json"
},
{
"type": "string"
}
]
},
"texture_file_system": {
"title": "Texture File System",
"description": "The file system that the texture is in.",
"oneOf": [
{
"enum": ["RawPath"]
},
{
"$ref": "./general/variable.json"
}
]
},
"tiled": {
"title": "Tiled",
"description": "If true, the texture will be tiled.",
"anyOf": [
{ "type": "boolean" },
{ "enum": ["x", "y"] },
{
"$ref": "./general/item_ref.json"
}
]
},
"toggle_grid_collection_name": {
"title": "Toggle Grid Collection Name",
"description": "The name of the collection that the toggle grid is in.",
"$ref": "./general/string.json"
},
"toggle_group_default_selected": {
"title": "Toggle Group Default Selected",
"description": "The default selected toggle of the toggle group.",
"$ref": "./general/string.json"
},
"toggle_default_state": {
"title": "Toggle Default State",
"description": "The default state of the toggle.",
"type": "string",
"anyOf": [
{
"enum": ["checked", "unchecked"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"toggle_group_forced_index": {
"title": "Toggle Group Forced Index",
"description": "The forced index of the toggle group.",
"$ref": "./general/integer.json"
},
"toggle_name": {
"title": "Toggle Name",
"description": "The name of the toggle.",
"$ref": "./general/string.json"
},
"toggle_on_button": {
"title": "Toggle On Button",
"description": "The button that will toggle the element.",
"$ref": "./general/string.json"
},
"toggle_off_button": {
"title": "Toggle Off Button",
"description": "The button that will toggle the element.",
"$ref": "./general/string.json"
},
"touch_mode": {
"title": "Touch Mode",
"description": "The touch mode of the element.",
"type": "string",
"oneOf": [
{
"enum": ["touch", "mouse"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"ttsSectionContainer": {
"title": "TTS Section Container",
"description": "The TTS section container.",
"$ref": "./general/boolean.json"
},
"tts_control_header": {
"title": "TTS Control Header",
"description": "The header of the TTS control.",
"$ref": "./general/string.json"
},
"tts_control_type_order_priority": {
"title": "TTS Control Type Order Priority",
"description": "The priority of the TTS control type order.",
"$ref": "./general/integer.json"
},
"tts_ignore_subsections": {
"title": "TTS Ignore Subsections",
"description": "If true, the element will ignore subsections.",
"$ref": "./general/boolean.json"
},
"tts_ignore_count": {
"title": "TTS Ignore Count",
"description": "The number of TTS ignores.",
"$ref": "./general/integer.json"
},
"tts_index_priority": {
"title": "TTS Index Priority",
"description": "The priority of the TTS index.",
"$ref": "./general/integer.json"
},
"tts_inherit_siblings": {
"title": "TTS Inherit Siblings",
"description": "If true, the element will inherit its siblings.",
"$ref": "./general/boolean.json"
},
"tts_name": {
"title": "TTS Name",
"description": "The name of the TTS.",
"$ref": "./general/string.json"
},
"tts_toggle_on": {
"title": "TTS Toggle On",
"description": "If true, the TTS will toggle on.",
"$ref": "./general/boolean.json"
},
"tts_toggle_off": {
"title": "TTS Toggle Off",
"description": "If true, the TTS will toggle off.",
"$ref": "./general/boolean.json"
},
"tts_override_control_value": {
"title": "TTS Override Control Value",
"description": "If true, the TTS will override the control value.",
"$ref": "./general/boolean.json"
},
"tts_section_header": {
"title": "TTS Section Header",
"description": "The header of the TTS section.",
"$ref": "./general/string.json"
},
"tts_value_changed": {
"title": "TTS Value Changed",
"description": "If true, the TTS value will change.",
"$ref": "./general/boolean.json"
},
"tts_value_order_priority": {
"title": "TTS Value Order Priority",
"description": "The priority of the TTS value order.",
"$ref": "./general/integer.json"
},
"type": {
"title": "Type",
"description": "The type of the element",
"type": "string",
"enum": [
"always_rotate",
"button",
"carousel_label",
"custom",
"dropdown",
"edit_box",
"grid",
"image",
"input_panel",
"label",
"panel",
"scrollbar_box",
"scroll_track",
"scroll_view",
"slider_box",
"slider",
"stack_panel",
"toggle"
]
},
"unchecked_control": {
"title": "Unchecked Control",
"description": "The control that will be unchecked.",
"anyOf": [
{
"enum": ["unchecked"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"unchecked_hover_control": {
"title": "Unchecked Hover Control",
"description": "The control that will be unchecked when hovered.",
"anyOf": [
{
"enum": ["unchecked"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"unchecked_locked_control": {
"title": "Unchecked Locked Control",
"description": "The control that will be unchecked when locked.",
"anyOf": [
{
"enum": ["unchecked"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"unchecked_locked_hover_control": {
"title": "Unchecked Locked Hover Control",
"description": "The control that will be unchecked when locked and hovered.",
"anyOf": [
{
"enum": ["unchecked"]
},
{
"$ref": "./general/item_ref.json"
}
]
},
"uv": {
"title": "UV",
"description": "The UV of the animation.",
"$ref": "./general/vec2.json"
},
"uv_size": {
"title": "UV Size",
"description": "The size of the UV.",
"$ref": "./general/vec2.json"
},
"variables": {
"title": "Variables",
"description": "The variables that are contained within this element.",
"anyOf": [
{
"$ref": "./general/item_ref.json"
},
{
"type": "array",
"items": {
"type": "object",
"title": "Variables",
"additionalProperties": {
"$ref": "#/definitions/variables"
}
}
},
{
"type": "object",
"title": "Variables",
"additionalProperties": {
"$ref": "#/definitions/variables"
}
}
]
},
"visible": {
"title": "Visible",
"description": "If true, the element will be visible.",
"$ref": "./general/boolean.json"
},
"virtual_keyboard_buffer_control": {
"title": "Virtual Keyboard Buffer Control",
"description": "The control that will be used for the virtual keyboard buffer.",
"$ref": "./general/string.json"
},
"zip_folder": {
"title": "Zip Folder",
"description": "The folder that the element will be zipped into.",
"$ref": "./general/string.json"
}
}
},
"animation": {
"type": "object",
"title": "Animation",
"description": "An animation is a set of keyframes that can be applied to an element.",
"additionalProperties": false,
"required": ["anim_type"],
"patternProperties": {
"^\\$.*": {
"$ref": "#/definitions/variables"
}
},
"properties": {
"anim_type": {
"title": "Animation Type",
"description": "The type of the animation.",
"type": "string",
"enum": ["wait", "offset", "alpha", "flip_book"]
},
"animation_reset_name": {
"title": "Animation Reset Name",
"description": "The name of the animation that will be reset.",
"$ref": "./general/string.json"
},
"destroy_at_end": {
"title": "Destroy At End",
"description": "If true, the element will be destroyed at the end of the animation.",
"anyOf": [
{
"enum": ["popup", "details_bubble_control"]
},
{
"$ref": "./general/variable.json"
}
]
},
"disable_anim_fast_forward": {
"title": "Disable Anim Fast Forward",
"description": "If true, the animation will not be fast forwarded.",
"$ref": "./general/boolean.json"
},
"duration": {
"title": "Duration",
"description": "The duration of the animation.",
"$ref": "./general/number.json"
},
"end_event": {
"title": "End Event",
"description": "The event that will be triggered when the animation ends.",
"type": "string"
},
"easing": {
"title": "Easing",
"description": "The easing of the animation.",
"type": "string",
"enum": ["spring", "in_sine", "linear", "in_quint", "out_cubic"]
},
"frame_count": {
"title": "Frame Count",
"description": "The number of frames in the animation.",
"$ref": "./general/integer.json"
},
"frame_step": {
"title": "Frame Step",
"description": "The step of the frame.",
"$ref": "./general/integer.json"
},
"from": {
"title": "From",
"description": "The starting point of the animation.",
"anyOf": [{ "type": "number" }, { "$ref": "./general/vec2.json" }]
},
"fps": {
"title": "FPS",
"description": "The FPS of the animation.",
"$ref": "./general/integer.json"
},
"initial_uv": {
"title": "Initial UV",
"description": "The initial UV of the animation.",
"$ref": "./general/vec2.json"
},
"next": {
"title": "Next",
"description": "The name of the next element.",
"$ref": "./general/item_ref.json"
},
"play_event": {
"title": "Play Event",
"description": "The event that will be played.",
"$ref": "./general/string.json"
},
"propagate_alpha": {
"title": "Propagate Alpha",
"description": "If true, the alpha will be propagated.",
"$ref": "./general/boolean.json"
},
"reversible": {
"title": "Reversible",
"description": "If true, the animation will be reversible.",
"$ref": "./general/boolean.json"
},
"scale_from_starting_alpha": {
"title": "Scale From Starting Alpha",
"description": "If true, the animation will scale from the starting alpha.",
"$ref": "./general/boolean.json"
},
"to": {
"title": "To",
"description": "The ending point of the animation.",
"oneOf": [{ "type": "number" }, { "$ref": "./general/vec2.json" }]
},
"uv": {
"title": "UV",
"description": "The UV of the animation.",
"$ref": "./general/vec2.json"
},
"uv_size": {
"title": "UV Size",
"description": "The size of the UV.",
"$ref": "./general/vec2.json"
}
}
},
"control_factory": {
"title": "Control Factory",
"type": "object",
"propertyNames": {
"examples": ["$variable"]
},
"additionalProperties": false,
"patternProperties": {
"^\\$.*": {
"$ref": "#/definitions/variables"
}
},
"properties": {
"type": {
"title": "Type",
"description": "The type of the element",
"type": "string",
"enum": ["factory"]
},
"control_ids": {
"$ref": "#/definitions/control_ids"
}
}
},
"grouped": {
"title": "UI definition",
"type": "object",
// Either a control or an animation
"anyOf": [
{
"$ref": "#/definitions/control"
},
{
"$ref": "#/definitions/animation"
},
{
"$ref": "#/definitions/control_factory"
}
]
}
},
"additionalProperties": {
"$ref": "#/definitions/grouped"
}
}