[ { "name": "metaverse", "label": "Metaverse Registration", "settings": [ { "name": "access_token", "label": "Access Token", "help": "This is an access token generated on the My Security page of your High Fidelity account.
Generate a token with the 'domains' scope and paste it here.
This is required to associate this domain-server with a domain in your account." }, { "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.
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.
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 } ] }, { "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": "allowed_users", "type": "table", "label": "Allowed Users", "help": "List the High Fidelity names for people you want to be able to connect to this domain.
An empty list means everyone.
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.
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 new entities", "help": "When checked, only those who can edit the domain 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": "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", "type": "checkbox", "help": "positional audio stream uses lowpass 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": false, "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": "Use 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": "print_stream_stats", "type": "checkbox", "label": "Print Stream Stats:", "help": "audio upstream and downstream stats of each agent printed to audio-mixer stdout", "default": false, "advanced": true } ] }, { "name": "entity_server_settings", "label": "Entity Server Settings", "assignment-types": [6], "settings": [ { "name": "persistFilename", "label": "Entities Filename", "help": "the path to the file entities are stored in. Make sure the path exists.", "placeholder": "resources/models.svo", "default": "resources/models.svo", "advanced": true }, { "name": "persistAsFileType", "label": "File format for entity server's persistent data", "help": "This defines how the entity server will save entities to disk.", "default": "svo", "type": "select", "options": [ { "value": "svo", "label": "Entity server persists data as SVO" }, { "value": "json", "label": "Entity server persists data as JSON" } ], "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", "help": "Don't persist your entities to a file.", "default": false, "advanced": true }, { "name": "NoBackup", "type": "checkbox", "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": "wantEditLogging", "type": "checkbox", "help": "Logging of all edits to entities", "default": true, "advanced": true }, { "name": "verboseDebug", "type": "checkbox", "help": "lots of debugging", "default": false, "advanced": true }, { "name": "debugReceiving", "type": "checkbox", "help": "extra debugging on receiving", "default": false, "advanced": true }, { "name": "debugSending", "type": "checkbox", "help": "extra debugging on sending", "default": false, "advanced": true }, { "name": "debugTimestampNow", "type": "checkbox", "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 } ] } ]