5
ModuleJSON
Mees van der Wijk edited this page 2025-08-28 19:15:31 +02:00

module.json

The module.json file serves as the central configuration file for each module in Getiyo. It contains essential metadata that informs Getiyo about the module's identity, as well as the module's properties, triggers, and conditions. The GetiyoModuleTool can automatically generate this file for you, streamlining the setup process. However, if you want to modify or add properties, triggers, or conditions, you can refer to the documentation provided below.

Structure

{
	"name": "DemoModule",

	"author": "Mees van der Wijk",
	"category": "Widget",
	"description": "Showcase the module!",

	"default_reference_properties": {
        "text": {
			"type": "text",
			"title": "Text",
			"description": "The text for the demo!",
			"value": "Hello world!"
		},
		"color": {
			"type": "color",
			"title": "Color",
			"description": "The color of the demo.",
			"value": "#f44336"
		},
        "style": {
			"type": "select",
			"title": "Style",
			"description": "The style of the demo",
			"value": "cool",
			"allowedValues": [
				{
					"id": "cool",
					"text": "Cool Demo"
				},
				{
					"id": "fast",
					"text": "Fast Demo"
				},
				{
					"id": "slow",
					"text": "Slow Demo"
				}
			]
		}
	},

	"default_module_properties": {},

	"triggers": {
		"setText": {
			"title": "Set text",
			"description": "Set the text of the demo.",
			"arguments": [
				{
					"type": "scenes",
					"title": "In scenes",
					"onlyContainingModule": true
				},
				{
					"type": "text",
					"title": "New text"
				}
			]
		}
	},

	"conditions": {
		"server": {
			"textStop": {
				"title": "Text Stop",
				"description": "Will be met when the text stops."
			}
		},
		"client": {
		}
	},

	"default_size": {
		"width": 300,
		"height": 300
	},

	"default_location": {
		"x": 100,
		"y": 100
	}
}

Property Description Example
name The module name, used internally for creating an ID. Changing this will break modules using the old name.
author The module author.
category A fitting category for the module.
description A short module description.
default_reference_properties An object with property IDs as keys and property objects as values. Reference properties are unique for each scene a module is a part of. These are also the properties you edit in the scene editor. See property for all parameters. { property1: { property }, property2: { property } }
default_module_properties An object with property IDs as keys and property objects as values. Module properties are shared for the entire module instance. See property for all parameters. { property1: { property }, property2: { property } }
triggers An object with trigger IDs as keys and trigger data as values. Triggers allow a cue list to call the server-side of a module, controlling module behavior automatically. See trigger for all parameters. { trigger1: { trigger }, trigger1: { trigger } }
conditions.client An object with condition IDs as keys and condition data as values. A condition is a way for a cue list to wait till a condition is met. These are client conditions, they can be met via the ModuleClientAPI. Because the ModuleClientAPI runs on the machines of viewers which you can not trust, Getiyo has a system that allows cue list makers to specify a minimum percentage of clients to have met the condition before continuing. The ModuleServerAPI can force a client condition. See conditions for all parameters. { condition1: { condition }, condition2: { condition } }
conditions.server An object with condition IDs as keys and condition data as values. These are server conditions, they can be met via the ModuleServerAPI. The object is the same as conditions.client. { condition1: { condition }, condition2: { condition } }
defaultsize.width The default width of the module.
defaultsize.height The default height of the module.
defaultlocation.x Deprecated! Default x coordinate of the module.
defaultlocation.y Deprecated! Default y coordinate of the module.