[ { "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 data.highfidelity.io" } ] }, { "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": "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": "Persistant Filename", "help": "the filename for your entities", "placeholder": "resources/models.svo", "default": "resources/models.svo", "advanced": true }, { "name": "persistInterval", "label": "Persist Interval", "help": "Interval between persist checks in msecs.", "placeholder": "30000", "default": "30000", "advanced": true }, { "name": "NoPersist", "type": "checkbox", "help": "Don't persist your entities to a file.", "default": false, "advanced": true }, { "name": "backupExtensionFormat", "label": "Backup File Extension Format:", "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.%N", "default": ".backup.%N", "advanced": true }, { "name": "backupInterval", "label": "Backup Interval", "help": "Interval between backup checks in msecs.", "placeholder": "1800000", "default": "1800000", "advanced": 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", "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": "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": "voxel_server_settings", "label": "Voxel Server Settings", "assignment-types": [3], "settings": [ { "name": "persistFilename", "label": "Persistant Filename", "help": "the filename for your voxels", "placeholder": "resources/voxels.svo", "default": "resources/voxels.svo", "advanced": true }, { "name": "persistInterval", "label": "Persist Interval", "help": "Interval between persist checks in msecs.", "placeholder": "30000", "default": "30000", "advanced": true }, { "name": "NoPersist", "type": "checkbox", "help": "Don't persist your voxels to a file.", "default": false, "advanced": true }, { "name": "backupExtensionFormat", "label": "Backup File Extension Format:", "help": "Format used to create the extension for the backup of your persisted voxels.", "placeholder": ".backup.%Y-%m-%d.%H:%M:%S.%z", "default": ".backup.%Y-%m-%d.%H:%M:%S.%z", "advanced": true }, { "name": "backupInterval", "label": "Backup Interval", "help": "Interval between backup checks in msecs.", "placeholder": "1800000", "default": "1800000", "advanced": true }, { "name": "NoBackup", "type": "checkbox", "help": "Don't regularly backup your persisted voxels 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": "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": "sendEnvironments", "type": "checkbox", "help": "send environmental data", "default": false, "advanced": true }, { "name": "minimalEnvironment", "type": "checkbox", "help": "send minimal environmental data if sending environmental data", "default": false, "advanced": true } ] } ]