mirror of
https://github.com/overte-org/overte.git
synced 2025-08-28 22:25:52 +02:00
562 lines
19 KiB
JSON
562 lines
19 KiB
JSON
{
|
|
"version": 1.1,
|
|
"settings": [
|
|
{
|
|
"name": "metaverse",
|
|
"label": "Metaverse / Networking",
|
|
"settings": [
|
|
{
|
|
"name": "access_token",
|
|
"label": "Access Token",
|
|
"help": "This is your OAuth access token to connect this domain-server with your High Fidelity account. <br/>It can be generated by clicking the 'Connect Account' button above.<br/>You can also go to the <a href='https://metaverse.highfidelity.com/user/security' target='_blank'>My Security</a> page of your account and generate a token with the 'domains' scope and paste it here.",
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "id",
|
|
"label": "Domain ID",
|
|
"help": "This is your High Fidelity domain ID. If you do not want your domain to be registered in the High Fidelity metaverse you can leave this blank."
|
|
},
|
|
{
|
|
"name": "automatic_networking",
|
|
"label": "Automatic Networking",
|
|
"help": "This defines how other nodes in the High Fidelity metaverse will be able to reach your domain-server.<br/>If you don't want to deal with any network settings, use full automatic networking.",
|
|
"default": "disabled",
|
|
"type": "select",
|
|
"options": [
|
|
{
|
|
"value": "full",
|
|
"label": "Full: update both the IP address and port to reach my server"
|
|
},
|
|
{
|
|
"value": "ip",
|
|
"label": "IP Only: update just my IP address, I will open the port manually"
|
|
},
|
|
{
|
|
"value": "disabled",
|
|
"label": "None: use the network information I have entered for this domain at metaverse.highfidelity.com"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "local_port",
|
|
"label": "Local UDP Port",
|
|
"help": "This is the local port your domain-server binds to for UDP connections.<br/>Depending on your router, this may need to be changed to run multiple full automatic networking domain-servers in the same network.",
|
|
"default": "40102",
|
|
"type": "int",
|
|
"advanced": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"label": "Places / Paths",
|
|
"html_id": "places_paths",
|
|
"settings": [
|
|
{
|
|
"name": "paths",
|
|
"label": "Paths",
|
|
"help": "Clients can enter a path to reach an exact viewpoint in your domain.<br/>Add rows to the table below to map a path to a viewpoint.<br/>The index path ( / ) is where clients will enter if they do not enter an explicit path.",
|
|
"type": "table",
|
|
"key": {
|
|
"name": "path",
|
|
"label": "Path",
|
|
"placeholder": "/"
|
|
},
|
|
"columns": [
|
|
{
|
|
"name": "viewpoint",
|
|
"label": "Viewpoint",
|
|
"placeholder": "/0,0,0"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "security",
|
|
"label": "Security",
|
|
"settings": [
|
|
{
|
|
"name": "http_username",
|
|
"label": "HTTP Username",
|
|
"help": "Username used for basic HTTP authentication."
|
|
},
|
|
{
|
|
"name": "http_password",
|
|
"label": "HTTP Password",
|
|
"type": "password",
|
|
"help": "Password used for basic HTTP authentication. Leave this blank if you do not want to change it.",
|
|
"value-hidden": true
|
|
},
|
|
{
|
|
"name": "restricted_access",
|
|
"type": "checkbox",
|
|
"label": "Restricted Access",
|
|
"default": false,
|
|
"help": "Only users listed in \"Allowed Users\" can enter your domain."
|
|
},
|
|
{
|
|
"name": "allowed_users",
|
|
"type": "table",
|
|
"label": "Allowed Users",
|
|
"help": "You can always connect from the domain-server machine.",
|
|
"numbered": false,
|
|
"columns": [
|
|
{
|
|
"name": "username",
|
|
"label": "Username",
|
|
"can_set": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "maximum_user_capacity",
|
|
"label": "Maximum User Capacity",
|
|
"help": "The limit on how many avatars can be connected at once. 0 means no limit.",
|
|
"placeholder": "0",
|
|
"default": "0",
|
|
"advanced": false
|
|
},
|
|
{
|
|
"name": "allowed_editors",
|
|
"type": "table",
|
|
"label": "Allowed Editors",
|
|
"help": "List the High Fidelity names for people you want to be able lock or unlock entities in this domain.<br/>An empty list means everyone.",
|
|
"numbered": false,
|
|
"columns": [
|
|
{
|
|
"name": "username",
|
|
"label": "Username",
|
|
"can_set": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "editors_are_rezzers",
|
|
"type": "checkbox",
|
|
"label": "Only Editors Can Create Entities",
|
|
"help": "Only users listed in \"Allowed Editors\" can create new entites.",
|
|
"default": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "scripts",
|
|
"label": "Scripts",
|
|
"settings": [
|
|
{
|
|
"name": "persistent_scripts",
|
|
"type": "table",
|
|
"label": "Persistent Scripts",
|
|
"help": "Add the URLs for scripts that you would like to ensure are always running in your domain.",
|
|
"columns": [
|
|
{
|
|
"name": "url",
|
|
"label": "Script URL"
|
|
},
|
|
{
|
|
"name": "num_instances",
|
|
"label": "# instances",
|
|
"default": 1
|
|
},
|
|
{
|
|
"name": "pool",
|
|
"label": "Pool"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "asset_server",
|
|
"label": "Asset Server (ATP)",
|
|
"assignment-types": [3],
|
|
"settings": [
|
|
{
|
|
"name": "enabled",
|
|
"type": "checkbox",
|
|
"label": "Enabled",
|
|
"help": "Assigns an asset-server in your domain to serve files to clients via the ATP protocol (over UDP)",
|
|
"default": true,
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "assets_path",
|
|
"type": "string",
|
|
"label": "Assets Path",
|
|
"help": "The path to the directory assets are stored in.<br/>If this path is relative, it will be relative to the application data directory.<br/>If you change this path you will need to manually copy any existing assets from the previous directory.",
|
|
"default": "",
|
|
"advanced": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "audio_env",
|
|
"label": "Audio Environment",
|
|
"assignment-types": [0],
|
|
"settings": [
|
|
{
|
|
"name": "attenuation_per_doubling_in_distance",
|
|
"label": "Default Domain Attenuation",
|
|
"help": "Factor between 0 and 1.0 (0: No attenuation, 1.0: extreme attenuation)",
|
|
"placeholder": "0.18",
|
|
"default": "0.18",
|
|
"advanced": false
|
|
},
|
|
{
|
|
"name": "noise_muting_threshold",
|
|
"label": "Noise Muting Threshold",
|
|
"help": "Loudness value for noise background between 0 and 1.0 (0: mute everyone, 1.0: never mute)",
|
|
"placeholder": "0.003",
|
|
"default": "0.003",
|
|
"advanced": false
|
|
},
|
|
{
|
|
"name": "enable_filter",
|
|
"label": "Low-pass Filter",
|
|
"type": "checkbox",
|
|
"help": "Positional audio stream uses low-pass filter",
|
|
"default": true
|
|
},
|
|
{
|
|
"name": "zones",
|
|
"type": "table",
|
|
"label": "Zones",
|
|
"help": "In this table you can define a set of zones in which you can specify various audio properties.",
|
|
"numbered": false,
|
|
"key": {
|
|
"name": "name",
|
|
"label": "Name",
|
|
"placeholder": "Zone_Name"
|
|
},
|
|
"columns": [
|
|
{
|
|
"name": "x_range",
|
|
"label": "X range",
|
|
"can_set": true,
|
|
"placeholder": "0-16384"
|
|
},
|
|
{
|
|
"name": "y_range",
|
|
"label": "Y range",
|
|
"can_set": true,
|
|
"placeholder": "0-16384"
|
|
},
|
|
{
|
|
"name": "z_range",
|
|
"label": "Z range",
|
|
"can_set": true,
|
|
"placeholder": "0-16384"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "attenuation_coefficients",
|
|
"type": "table",
|
|
"label": "Attenuation Coefficients",
|
|
"help": "In this table you can set custom attenuation coefficients between audio zones",
|
|
"numbered": true,
|
|
"can_order": true,
|
|
"columns": [
|
|
{
|
|
"name": "source",
|
|
"label": "Source",
|
|
"can_set": true,
|
|
"placeholder": "Zone_A"
|
|
},
|
|
{
|
|
"name": "listener",
|
|
"label": "Listener",
|
|
"can_set": true,
|
|
"placeholder": "Zone_B"
|
|
},
|
|
{
|
|
"name": "coefficient",
|
|
"label": "Attenuation coefficient",
|
|
"can_set": true,
|
|
"placeholder": "0.18"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "reverb",
|
|
"type": "table",
|
|
"label": "Reverb Settings",
|
|
"help": "In this table you can set reverb levels for audio zones. For a medium-sized (e.g., 100 square meter) meeting room, try a decay time of around 1.5 seconds and a wet level of -10 db. For an airplane hangar or cathedral, try a decay time of 4 seconds and a wet level of -5 db.",
|
|
"numbered": true,
|
|
"columns": [
|
|
{
|
|
"name": "zone",
|
|
"label": "Zone",
|
|
"can_set": true,
|
|
"placeholder": "Audio_Zone"
|
|
},
|
|
{
|
|
"name": "reverb_time",
|
|
"label": "Reverb Decay Time",
|
|
"can_set": true,
|
|
"placeholder": "(in sec)"
|
|
},
|
|
{
|
|
"name": "wet_level",
|
|
"label": "Wet Level",
|
|
"can_set": true,
|
|
"placeholder": "(in db)"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "audio_buffer",
|
|
"label": "Audio Buffers",
|
|
"assignment-types": [0],
|
|
"settings": [
|
|
{
|
|
"name": "dynamic_jitter_buffer",
|
|
"type": "checkbox",
|
|
"label": "Dynamic Jitter Buffers",
|
|
"help": "Dynamically buffer client audio based on perceived jitter in packet receipt timing",
|
|
"default": true,
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "static_desired_jitter_buffer_frames",
|
|
"label": "Static Desired Jitter Buffer Frames",
|
|
"help": "If dynamic jitter buffers is disabled, this determines the target number of frames maintained by the AudioMixer's jitter buffers",
|
|
"placeholder": "1",
|
|
"default": "1",
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "max_frames_over_desired",
|
|
"label": "Max Frames Over Desired",
|
|
"help": "The highest number of frames an AudioMixer's ringbuffer can exceed the desired jitter buffer frames by",
|
|
"placeholder": "10",
|
|
"default": "10",
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "use_stdev_for_desired_calc",
|
|
"type": "checkbox",
|
|
"label": "Stdev for Desired Jitter Frames Calc",
|
|
"help": "Use Philip's method (stdev of timegaps) to calculate desired jitter frames (otherwise Fred's max timegap method is used)",
|
|
"default": false,
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "window_starve_threshold",
|
|
"label": "Window Starve Threshold",
|
|
"help": "If this many starves occur in an N-second window (N is the number in the next field), then the desired jitter frames will be re-evaluated using Window A.",
|
|
"placeholder": "3",
|
|
"default": "3",
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "window_seconds_for_desired_calc_on_too_many_starves",
|
|
"label": "Timegaps Window (A) Seconds",
|
|
"help": "Window A contains a history of timegaps. Its max timegap is used to re-evaluate the desired jitter frames when too many starves occur within it.",
|
|
"placeholder": "50",
|
|
"default": "50",
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "window_seconds_for_desired_reduction",
|
|
"label": "Timegaps Window (B) Seconds",
|
|
"help": "Window B contains a history of timegaps. Its max timegap is used as a ceiling for the desired jitter frames value.",
|
|
"placeholder": "10",
|
|
"default": "10",
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "repetition_with_fade",
|
|
"type": "checkbox",
|
|
"label": "Repetition with Fade",
|
|
"help": "Dropped frames and mixing during starves repeat the last frame, eventually fading to silence",
|
|
"default": false,
|
|
"advanced": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "entity_server_settings",
|
|
"label": "Entity Server Settings",
|
|
"assignment-types": [6],
|
|
"settings": [
|
|
{
|
|
"name": "persistFilePath",
|
|
"label": "Entities File Path",
|
|
"help": "The path to the file entities are stored in.<br/>If this path is relative it will be relative to the application data directory.<br/>The filename must end in .json.gz.",
|
|
"placeholder": "models.json.gz",
|
|
"default": "models.json.gz",
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "persistInterval",
|
|
"label": "Save Check Interval",
|
|
"help": "Milliseconds between checks for saving the current state of entities.",
|
|
"placeholder": "30000",
|
|
"default": "30000",
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "backups",
|
|
"type": "table",
|
|
"label": "Backup Rules",
|
|
"help": "In this table you can define a set of rules for how frequently to backup copies of your entites content file.",
|
|
"numbered": false,
|
|
"default": [
|
|
{"Name":"Half Hourly Rolling","backupInterval":1800,"format":".backup.halfhourly.%N","maxBackupVersions":5},
|
|
{"Name":"Daily Rolling","backupInterval":86400,"format":".backup.daily.%N","maxBackupVersions":7},
|
|
{"Name":"Weekly Rolling","backupInterval":604800,"format":".backup.weekly.%N","maxBackupVersions":4},
|
|
{"Name":"Thirty Day Rolling","backupInterval":2592000,"format":".backup.thirtyday.%N","maxBackupVersions":12}
|
|
],
|
|
"columns": [
|
|
{
|
|
"name": "Name",
|
|
"label": "Name",
|
|
"can_set": true,
|
|
"placeholder": "Example",
|
|
"default": "Example"
|
|
},
|
|
{
|
|
"name": "format",
|
|
"label": "Rule Format",
|
|
"can_set": true,
|
|
"help": "Format used to create the extension for the backup of your persisted entities. Use a format with %N to get rolling. Or use date formatting like %Y-%m-%d.%H:%M:%S.%z",
|
|
"placeholder": ".backup.example.%N",
|
|
"default": ".backup.example.%N"
|
|
},
|
|
{
|
|
"name": "backupInterval",
|
|
"label": "Backup Interval in Seconds",
|
|
"help": "Interval between backup checks in seconds.",
|
|
"placeholder": 1800,
|
|
"default": 1800,
|
|
"can_set": true
|
|
},
|
|
{
|
|
"name": "maxBackupVersions",
|
|
"label": "Max Rolled Backup Versions",
|
|
"help": "If your backup extension format uses 'rolling', how many versions do you want us to keep?",
|
|
"placeholder": 5,
|
|
"default": 5,
|
|
"can_set": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "NoPersist",
|
|
"type": "checkbox",
|
|
"label": "Disable Persistence",
|
|
"help": "Don't persist your entities to a file.",
|
|
"default": false,
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "NoBackup",
|
|
"type": "checkbox",
|
|
"label": "Disable Backup",
|
|
"help": "Don't regularly backup your persisted entities to a backup file.",
|
|
"default": false,
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "statusHost",
|
|
"label": "Status Hostname",
|
|
"help": "Host name or IP address of the server for accessing the status page",
|
|
"placeholder": "",
|
|
"default": "",
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "statusPort",
|
|
"label": "Status Port",
|
|
"help": "Port of the server for accessing the status page",
|
|
"placeholder": "",
|
|
"default": "",
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "persistFileDownload",
|
|
"type": "checkbox",
|
|
"label": "Persist File Download",
|
|
"help": "Includes a download link to the persist file in the server status page.",
|
|
"default": false,
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "wantEditLogging",
|
|
"type": "checkbox",
|
|
"label": "Edit Logging",
|
|
"help": "Logging of all edits to entities",
|
|
"default": false,
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "wantTerseEditLogging",
|
|
"type": "checkbox",
|
|
"label": "Edit Logging (Terse)",
|
|
"help": "Logging of all edits to entities",
|
|
"default": false,
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "verboseDebug",
|
|
"type": "checkbox",
|
|
"label": "Verbose Debug",
|
|
"help": "Lots of debugging",
|
|
"default": false,
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "debugReceiving",
|
|
"type": "checkbox",
|
|
"label": "Extra Receiving Debug",
|
|
"help": "Extra debugging on receiving",
|
|
"default": false,
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "debugSending",
|
|
"type": "checkbox",
|
|
"label": "Extra Sending Debug",
|
|
"help": "Extra debugging on sending",
|
|
"default": false,
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "debugTimestampNow",
|
|
"type": "checkbox",
|
|
"label": "Extra Timestamp Debugging",
|
|
"help": "Extra debugging for usecTimestampNow() function",
|
|
"default": false,
|
|
"advanced": true
|
|
},
|
|
{
|
|
"name": "clockSkew",
|
|
"label": "Clock Skew",
|
|
"help": "Number of msecs to skew the server clock by to test clock skew",
|
|
"placeholder": "0",
|
|
"default": "0",
|
|
"advanced": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "avatar_mixer",
|
|
"label": "Avatar Mixer",
|
|
"assignment-types": [1],
|
|
"settings": [
|
|
{
|
|
"name": "max_node_send_bandwidth",
|
|
"type": "double",
|
|
"label": "Per-Node Bandwidth",
|
|
"help": "Desired maximum send bandwidth (in Megabits per second) to each node",
|
|
"placeholder": 1.0,
|
|
"default": 1.0,
|
|
"advanced": true
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|