[{"data":1,"prerenderedAt":2644},["ShallowReactive",2],{"/docs/scripts/sky-dj/setup/configuration":3,"/docs/scripts/sky-dj/setup/configuration-surround":2634,"/docs/scripts/sky-dj/setup/configuration-implemented-suggestions":2643},{"id":4,"title":5,"body":6,"description":2624,"extension":2625,"head":2626,"implementedSuggestions":2626,"meta":2627,"navigation":2628,"path":2629,"schemaOrg":2626,"seo":2630,"sitemap":2631,"stem":2632,"__hash__":2633},"docs/1.docs/scripts/7.sky-dj/2.setup/2.configuration.md","Configuration",{"type":7,"value":8,"toc":2604},"minimark",[9,24,29,39,100,119,122,141,145,155,257,271,275,281,392,402,410,414,430,518,521,600,610,621,625,631,776,794,812,856,863,873,887,899,903,932,939,944,1099,1103,1106,1265,1269,1341,1345,1503,1517,1521,1527,1634,1649,1653,1659,1874,1881,1890,1894,1940,1950,1959,1968,1982,1986,2021,2024,2028,2041,2128,2131,2135,2161,2434,2444,2451,2535,2552,2556,2574,2600],[10,11,12,13,17,18,23],"p",{},"Open ",[14,15,16],"code",{},"/djadmin"," to manage clubs and global settings. Complete ",[19,20,22],"a",{"href":21},"/docs/scripts/sky-dj/setup/installation","Installation"," first, then choose how the global configuration should be managed.",[25,26,28],"h2",{"id":27},"choose-sql-or-file-settings","Choose SQL or file settings",[10,30,31,34,35,38],{},[14,32,33],{},"Config.IngameSettings = true"," is the default. This switch is read from ",[14,36,37],{},"config/config.lua"," and requires a resource restart after editing.",[40,41,42,58],"table",{},[43,44,45],"thead",{},[46,47,48,52,55],"tr",{},[49,50,51],"th",{},"Mode",[49,53,54],{},"Active global settings",[49,56,57],{},"Where to make changes",[59,60,61,82],"tbody",{},[46,62,63,69,72],{},[64,65,66],"td",{},[14,67,68],{},"IngameSettings = true",[64,70,71],{},"Saved settings in SQL; a new installation starts with the shipped defaults",[64,73,74,76,77,81],{},[14,75,16],{}," → ",[78,79,80],"strong",{},"Settings",", then save",[46,83,84,89,94],{},[64,85,86],{},[14,87,88],{},"IngameSettings = false",[64,90,91,92],{},"Values in ",[14,93,37],{},[64,95,96,97],{},"Edit the existing file and restart ",[14,98,99],{},"sky_dj",[101,102,105],"callout",{"color":103,"icon":104},"warning","i-lucide-triangle-alert",[10,106,107,108,111,112,115,116,118],{},"In SQL mode, the other values in the customer ",[14,109,110],{},"config.lua"," are ignored, including on the first start. The generated ",[14,113,114],{},"source/shared/config_default.lua"," supplies the shipped defaults. Existing SQL settings take precedence and survive restarts. Editing ",[14,117,110],{}," is not an import operation; do not edit generated defaults or delete the SQL row to apply a change.",[10,120,121],{},"Switching to file mode does not copy saved SQL values into Lua. Review the file settings before switching. It disables global settings saves in-game and leaves the saved SQL settings intact for switching back later. Clubs, speaker and effect layouts, playlists and the boombox journal remain in SQL in either mode.",[10,123,124,125,128,129,132,133,136,137,140],{},"Sky DJ creates its ",[14,126,127],{},"sky_dj_state"," table and missing records automatically through ",[14,130,131],{},"sky_base",". Back up this table before updating or changing the configuration mode. Sky DJ has its own administration interface; it does not require ",[14,134,135],{},"sky_jobs_base"," or register a ",[14,138,139],{},"/jobconfig"," section.",[25,142,144],{"id":143},"find-a-setting","Find a setting",[10,146,147,148,150,151,154],{},"Paths below are relative to the installed ",[14,149,99],{}," resource. The reference lists ",[78,152,153],{},"shipped defaults","; an existing installation can have different saved values. Numeric ranges are the server's accepted global-settings ranges. Keep file-mode values inside those ranges too.",[40,156,157,167],{},[43,158,159],{},[46,160,161,164],{},[49,162,163],{},"Section",[49,165,166],{},"Main settings",[59,168,169,192,209,220,233,241],{},[46,170,171,174],{},[64,172,173],{},"Audio & DJ",[64,175,176,179,180,179,183,179,186,179,189],{},[14,177,178],{},"MaxVolume",", ",[14,181,182],{},"MaxRadius",[14,184,185],{},"InteractDistance",[14,187,188],{},"MaxClubs",[14,190,191],{},"MarkerDrawDistance",[46,193,194,197],{},[64,195,196],{},"Music & Playlists",[64,198,199,179,202,179,205,208],{},[14,200,201],{},"MusicDirectory",[14,203,204],{},"MusicStreamingEnabled",[14,206,207],{},"MusicStreamingBaseUrl",", queue, playlist and track-length limits",[46,210,211,214],{},[64,212,213],{},"Music synchronization",[64,215,216,219],{},[14,217,218],{},"MusicSync.enabled",", source deck, bass/melody response, channel selection and quiet-section behavior",[46,221,222,225],{},[64,223,224],{},"Festival grounds",[64,226,227,179,230],{},[14,228,229],{},"FestivalGroundEnabled",[14,231,232],{},"FestivalFencesEnabled",[46,234,235,238],{},[64,236,237],{},"Boombox",[64,239,240],{},"Enabled state, item placement, command, volume ceiling, fixed range, device/audio limits and carrying",[46,242,243,246],{},[64,244,245],{},"Permissions",[64,247,248,179,251,179,254],{},[14,249,250],{},"AdminCommand",[14,252,253],{},"AdminGroups",[14,255,256],{},"AdminAce",[10,258,259,262,263,266,267,270],{},[14,260,261],{},"IngameSettings"," is a Boolean with default ",[14,264,265],{},"true","; it is the file-owned mode switch described above. The remaining ",[14,268,269],{},"Config"," keys are listed in the sections below. Where the current editor has no control for a compatibility setting, this is stated explicitly.",[25,272,274],{"id":273},"audio-and-dj-limits","Audio and DJ limits",[10,276,12,277,280],{},[78,278,279],{},"Settings → Audio & DJ"," in SQL mode.",[40,282,283,299],{},[43,284,285],{},[46,286,287,290,293,296],{},[49,288,289],{},"Setting",[49,291,292],{},"Default",[49,294,295],{},"Accepted range",[49,297,298],{},"Effect",[59,300,301,323,341,358,375],{},[46,302,303,307,312,320],{},[64,304,305],{},[14,306,178],{},[64,308,309],{},[14,310,311],{},"2.0",[64,313,314,317,318],{},[14,315,316],{},"0.05","–",[14,319,311],{},[64,321,322],{},"Global club-volume ceiling; shown as 5–200% in the editor.",[46,324,325,329,335,338],{},[64,326,327],{},[14,328,182],{},[64,330,331,334],{},[14,332,333],{},"150.0"," m",[64,336,337],{},"5–300 m",[64,339,340],{},"Upper limit for saved club and individual speaker ranges.",[46,342,343,347,352,355],{},[64,344,345],{},[14,346,185],{},[64,348,349,334],{},[14,350,351],{},"2.5",[64,353,354],{},"1–5 m",[64,356,357],{},"DJ interaction distance; server-side control checks include a small distance tolerance.",[46,359,360,364,369,372],{},[64,361,362],{},[14,363,188],{},[64,365,366],{},[14,367,368],{},"50",[64,370,371],{},"1–100, whole number",[64,373,374],{},"Maximum custom clubs; the supplied festival does not count towards this limit.",[46,376,377,381,386,389],{},[64,378,379],{},[14,380,191],{},[64,382,383,334],{},[14,384,385],{},"20.0",[64,387,388],{},"5–100 m",[64,390,391],{},"Distance at which the DJ interaction marker is drawn. This does not extend audio range or grant access.",[10,393,394,395,398,399,401],{},"Lua volume values are multipliers: ",[14,396,397],{},"1.0"," means 100%, and ",[14,400,311],{}," means 200%. The administration interface displays percentages. The ceiling does not raise each club's saved volume or replace individual speaker tuning. Lower existing club and speaker values before reducing a global limit below them; the server rejects incompatible limits.",[10,403,404,405,409],{},"Start with the smallest speaker ranges that cover your venue, then tune speaker direction and gain in the club. Increasing marker distance only makes the interaction easier to find. The ",[19,406,408],{"href":407},"/docs/scripts/sky-dj/features/mixer-and-audio","Mixer and audio guide"," covers the separate per-club mix and speaker controls.",[25,411,413],{"id":412},"administrator-and-dj-access","Administrator and DJ access",[10,415,416,417,419,420,422,423,426,427,429],{},"The default command is ",[14,418,16],{},". Set ",[14,421,250],{}," without a leading slash when renaming it. An old saved default ",[14,424,425],{},"/clubadmin"," is migrated to ",[14,428,16],{},"; custom saved command names are retained.",[40,431,432,445],{},[43,433,434],{},[46,435,436,438,440,443],{},[49,437,289],{},[49,439,292],{},[49,441,442],{},"Accepted value",[49,444,298],{},[59,446,447,471,495],{},[46,448,449,453,458,468],{},[64,450,451],{},[14,452,250],{},[64,454,455],{},[14,456,457],{},"'djadmin'",[64,459,460,461,464,465],{},"1–60 characters: letters, digits, ",[14,462,463],{},"_"," or ",[14,466,467],{},"-",[64,469,470],{},"Administration command, without a leading slash.",[46,472,473,477,482,492],{},[64,474,475],{},[14,476,253],{},[64,478,479],{},[14,480,481],{},"{ admin = true, superadmin = true }",[64,483,484,485,464,487,489,490],{},"Up to 30 group-name keys; each name 1–60 characters using letters, digits, ",[14,486,463],{},[14,488,467],{},", with value ",[14,491,265],{},[64,493,494],{},"ESX groups allowed to administer Sky DJ. An empty table leaves ACE-based access available.",[46,496,497,501,506,515],{},[64,498,499],{},[14,500,256],{},[64,502,503],{},[14,504,505],{},"'sky.dj.admin'",[64,507,460,508,179,510,464,513],{},[14,509,463],{},[14,511,512],{},".",[14,514,467],{},[64,516,517],{},"Additional ACE permission accepted for administration.",[10,519,520],{},"The file-mode entries are:",[522,523,529],"pre",{"className":524,"code":525,"filename":526,"language":527,"meta":528,"style":528},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","AdminCommand = 'djadmin',\nAdminGroups = { admin = true, superadmin = true },\nAdminAce = 'sky.dj.admin',\n","config/config.lua — file mode","lua","",[14,530,531,557,583],{"__ignoreMap":528},[532,533,536,540,544,547,551,554],"span",{"class":534,"line":535},"line",1,[532,537,539],{"class":538},"sTEyZ","AdminCommand ",[532,541,543],{"class":542},"sMK4o","=",[532,545,546],{"class":542}," '",[532,548,550],{"class":549},"sfazB","djadmin",[532,552,553],{"class":542},"'",[532,555,556],{"class":538},",\n",[532,558,560,563,565,568,570,573,576,578,580],{"class":534,"line":559},2,[532,561,562],{"class":538},"AdminGroups ",[532,564,543],{"class":542},[532,566,567],{"class":538}," { admin ",[532,569,543],{"class":542},[532,571,572],{"class":542}," true",[532,574,575],{"class":538},", superadmin ",[532,577,543],{"class":542},[532,579,572],{"class":542},[532,581,582],{"class":538}," },\n",[532,584,586,589,591,593,596,598],{"class":534,"line":585},3,[532,587,588],{"class":538},"AdminAce ",[532,590,543],{"class":542},[532,592,546],{"class":542},[532,594,595],{"class":549},"sky.dj.admin",[532,597,553],{"class":542},[532,599,556],{"class":538},[10,601,602,603,605,606,609],{},"Edit these entries inside the existing ",[14,604,269],{}," table only when using file mode. In SQL mode, change ",[78,607,608],{},"Settings → Permissions"," instead. Administration accepts the configured ESX groups or the configured ACE permission. Keep your own group or a valid ACE permission when saving; the server rejects a change that would remove your access.",[10,611,612,613,616,617,620],{},"Club access is separate. In the club editor, ",[78,614,615],{},"DJ access"," can allow administrators only, a job with a minimum rank, or ",[78,618,619],{},"All players",". Allowing all players to use a DJ booth grants no global administration or playlist-management rights. DJ and FOH control also require the correct nearby interaction and routing bucket; access alone does not provide remote control.",[25,622,624],{"id":623},"music-folder-and-delivery","Music folder and delivery",[10,626,12,627,630],{},[78,628,629],{},"Settings → Music & Playlists → Library & Queues"," for these global values.",[40,632,633,645],{},[43,634,635],{},[46,636,637,639,641,643],{},[49,638,289],{},[49,640,292],{},[49,642,442],{},[49,644,298],{},[59,646,647,672,689,706,723,740,757],{},[46,648,649,653,658,665],{},[64,650,651],{},[14,652,201],{},[64,654,655],{},[14,656,657],{},"'config/music'",[64,659,660,661,664],{},"Resource-relative folder or ",[14,662,663],{},"@resource/folder",", at most 240 characters",[64,666,667,668,671],{},"Chooses the library scanned on the server. A leading ",[14,669,670],{},"@"," selects another resource.",[46,673,674,678,683,686],{},[64,675,676],{},[14,677,204],{},[64,679,680],{},[14,681,682],{},"false",[64,684,685],{},"Boolean",[64,687,688],{},"Selects the prepared HTTPS Opus library instead of resource-file MP3 playback; enabling requires confirmation in the editor.",[46,690,691,695,700,703],{},[64,692,693],{},[14,694,207],{},[64,696,697],{},[14,698,699],{},"''",[64,701,702],{},"HTTPS folder URL, at most 300 characters; may be empty while streaming is off",[64,704,705],{},"Public base URL used to construct delivery URLs for the prepared Opus assets.",[46,707,708,713,718,720],{},[64,709,710],{},[14,711,712],{},"MaxQueue",[64,714,715],{},[14,716,717],{},"30",[64,719,371],{},[64,721,722],{},"Tracks allowed in each deck queue. A mobile boombox queue also uses this limit, capped at 30.",[46,724,725,730,734,737],{},[64,726,727],{},[14,728,729],{},"MaxPlaylists",[64,731,732],{},[14,733,368],{},[64,735,736],{},"1–200, whole number",[64,738,739],{},"Maximum saved playlists.",[46,741,742,747,752,754],{},[64,743,744],{},[14,745,746],{},"MaxPlaylistTracks",[64,748,749],{},[14,750,751],{},"100",[64,753,736],{},[64,755,756],{},"Maximum tracks in one playlist.",[46,758,759,764,770,773],{},[64,760,761],{},[14,762,763],{},"MaxTrackSeconds",[64,765,766,769],{},[14,767,768],{},"7200"," s",[64,771,772],{},"60–14,400 s, whole number",[64,774,775],{},"Maximum playback duration used for deck duration/reporting and queue advancement; also bounds boombox playback. The default is two hours.",[10,777,778,779,782,783,785,786,789,790,793],{},"The default ",[14,780,781],{},"MusicDirectory = 'config/music'"," uses the music folder inside ",[14,784,99],{},". In SQL mode, change ",[78,787,788],{},"Music & Playlists → Library & Queues → Music folder",". An alternative such as ",[14,791,792],{},"@sky_dj_music/music"," selects a folder in another started resource on the same server. Use forward slashes and a resource-relative folder, not an absolute operating-system path.",[10,795,796,797,799,800,802,803,464,805,807,808,811],{},"Resource names use letters, digits, ",[14,798,463],{}," and ",[14,801,467],{}," and are at most 64 characters. Each folder segment starts with a letter, digit, ",[14,804,463],{},[14,806,467],{},"; subsequent characters can also include spaces and periods. Traversal (",[14,809,810],{},"..","), duplicate slashes, control characters and absolute paths are rejected. The catalog scans the selected folder rather than recursive subfolders. Keeping a music folder in another resource still requires that resource to be started and configured for the chosen delivery mode.",[40,813,814,824],{},[43,815,816],{},[46,817,818,821],{},[49,819,820],{},"Delivery",[49,822,823],{},"Settings and preparation",[59,825,826,842],{},[46,827,828,831],{},[64,829,830],{},"Resource MP3s, default",[64,832,833,834,837,838,841],{},"Leave ",[14,835,836],{},"MusicStreamingEnabled = false",". The owning resource must publish the MP3s in its manifest's ",[14,839,840],{},"files"," entries. Restart that resource after adding or replacing files.",[46,843,844,847],{},[64,845,846],{},"Optional HTTPS Opus streaming",[64,848,849,850,852,853,855],{},"Prepare the library with the supplied offline FFmpeg tool, configure a valid ",[14,851,207],{},", then enable ",[14,854,204],{},". The host needs HTTPS, CORS and byte-range support.",[10,857,858,859,862],{},"With the default folder selection, HTTPS mode uses the private ",[14,860,861],{},"config/music-stream"," export produced by the preparation tool. Files can remain on the same server machine, but a working HTTPS host is still required. Node.js and FFmpeg are preparation tools for this optional delivery mode, not dependencies of normal resource MP3 playback.",[10,864,865,866,869,870,872],{},"Use a folder URL such as ",[14,867,868],{},"https://audio.example.com/music/",", without credentials, query parameters or a fragment. A valid explicit port is supported. Saved URLs are normalized with a trailing slash; track URLs come from the server's prepared catalog. Selecting a folder or URL does not install a web server or convert the library for you. Follow ",[19,871,22],{"href":21}," for music preparation and publishing.",[101,874,875],{"color":103,"icon":104},[10,876,877,880,881,883,884,512],{},[78,878,879],{},"Only enable HTTPS Opus streaming if you know what you are doing."," It requires correct certificates, webserver file access and CORS. Enabling it requires an explicit confirmation in the editor; invalid hosting can make music inaudible or expose unintended files. The switch does not remove resource downloads: audio still published in a client manifest is downloaded when players connect. Keep the streamed library outside client ",[14,882,840],{}," entries and streamed asset folders, and back up originals before moving published copies. Follow the advanced setup warning in ",[19,885,22],{"href":886},"/docs/scripts/sky-dj/setup/installation#optional-https-opus-delivery",[10,888,889,890,893,894,898],{},"Keep the same track filenames when moving a library so saved playlist references remain valid. See ",[19,891,892],{"href":407},"Mixer and audio"," for the club playback workflow. The ",[19,895,897],{"href":896},"/docs/scripts/sky-dj/features/boombox","mobile boombox"," has separate YouTube and Spotify pages.",[25,900,902],{"id":901},"music-sync-reference","Music Sync reference",[10,904,905,906,909,910,913,914,179,917,179,920,179,923,799,926,929,930,512],{},"Global ",[14,907,908],{},"Config.MusicSync"," settings are edited under ",[78,911,912],{},"Settings → Music synchronization",". The tabs are ",[78,915,916],{},"Source",[78,918,919],{},"Channels",[78,921,922],{},"Response",[78,924,925],{},"Quiet",[78,927,928],{},"Detection",". The paths below are written in full so they can also be found in ",[14,931,37],{},[10,933,934,935,938],{},"The global enable switch controls normal clubs. The fixed festival has separate ",[78,936,937],{},"FOH → Music Sync"," enable, mode and channel controls. Its analysis also uses shared detection/response values, so global sensitivity changes can affect a festival show that has FOH synchronization enabled. Use the FOH controls for festival participation and overrides.",[940,941,943],"h3",{"id":942},"source-and-sensitivity","Source and sensitivity",[40,945,946,959],{},[43,947,948],{},[46,949,950,952,954,956],{},[49,951,289],{},[49,953,292],{},[49,955,442],{},[49,957,958],{},"Effect and tuning",[59,960,961,976,1009,1034,1051,1067,1083],{},[46,962,963,967,971,973],{},[64,964,965],{},[14,966,218],{},[64,968,969],{},[14,970,682],{},[64,972,685],{},[64,974,975],{},"Enables normal-club music response. Off preserves manual presets. At least one channel must be selected for a response.",[46,977,978,983,988,1006],{},[64,979,980],{},[14,981,982],{},"MusicSync.mode",[64,984,985],{},[14,986,987],{},"'bass'",[64,989,990,179,992,179,995,998,999,799,1002,1005],{},[14,991,987],{},[14,993,994],{},"'melody'",[14,996,997],{},"'full'","; legacy ",[14,1000,1001],{},"'beat'",[14,1003,1004],{},"'beat_bass'"," remain readable",[64,1007,1008],{},"Bass emphasizes low-frequency pulses, melody follows smoother melodic energy, and full combines both. The editor offers the three current modes and displays old beat modes as Bass.",[46,1010,1011,1016,1021,1031],{},[64,1012,1013],{},[14,1014,1015],{},"MusicSync.deck",[64,1017,1018],{},[14,1019,1020],{},"'mix'",[64,1022,1023,179,1025,464,1028],{},[14,1024,1020],{},[14,1026,1027],{},"'A'",[14,1029,1030],{},"'B'",[64,1032,1033],{},"Chooses the audible crossfade mix or one deck. A paused or unavailable selected deck supplies no fresh signal.",[46,1035,1036,1041,1045,1048],{},[64,1037,1038],{},[14,1039,1040],{},"MusicSync.sensitivity",[64,1042,1043],{},[14,1044,397],{},[64,1046,1047],{},"0.25–3",[64,1049,1050],{},"Overall onset/BPM sensitivity. Higher values accept weaker spectral attacks; excessive sensitivity can accept unwanted transients.",[46,1052,1053,1058,1062,1064],{},[64,1054,1055],{},[14,1056,1057],{},"MusicSync.bassSensitivity",[64,1059,1060],{},[14,1061,397],{},[64,1063,1047],{},[64,1065,1066],{},"Low-band response and kick detection sensitivity. Raise gradually if genuine kicks barely react.",[46,1068,1069,1074,1078,1080],{},[64,1070,1071],{},[14,1072,1073],{},"MusicSync.melodySensitivity",[64,1075,1076],{},[14,1077,397],{},[64,1079,1047],{},[64,1081,1082],{},"Melodic envelope strength. Raise for quiet melodic material, lower if its response stays saturated.",[46,1084,1085,1090,1094,1096],{},[64,1086,1087],{},[14,1088,1089],{},"MusicSync.tempoLock",[64,1091,1092],{},[14,1093,265],{},[64,1095,685],{},[64,1097,1098],{},"Smooths updates to a confident detected tempo rather than following each new estimate immediately.",[940,1100,1102],{"id":1101},"pulse-timing-and-show-response","Pulse timing and show response",[10,1104,1105],{},"The depth values are stored as 0–1 fractions and shown as 0–100% in the editor. They blend response with the active fixture/preset; they do not replace every fixture's own settings.",[40,1107,1108,1120],{},[43,1109,1110],{},[46,1111,1112,1114,1116,1118],{},[49,1113,289],{},[49,1115,292],{},[49,1117,295],{},[49,1119,958],{},[59,1121,1122,1140,1158,1176,1194,1210,1227,1247],{},[46,1123,1124,1129,1134,1137],{},[64,1125,1126],{},[14,1127,1128],{},"MusicSync.attackMs",[64,1130,1131,1133],{},[14,1132,717],{}," ms",[64,1135,1136],{},"10–300 ms",[64,1138,1139],{},"Rise time of the analyzed energy envelopes. Lower values respond more sharply; higher values soften the onset.",[46,1141,1142,1147,1152,1155],{},[64,1143,1144],{},[14,1145,1146],{},"MusicSync.releaseMs",[64,1148,1149,1133],{},[14,1150,1151],{},"350",[64,1153,1154],{},"80–2500 ms",[64,1156,1157],{},"Envelope and pulse decay. Higher values leave longer tails; reduce if consecutive beats blur together.",[46,1159,1160,1165,1170,1173],{},[64,1161,1162],{},[14,1163,1164],{},"MusicSync.holdMs",[64,1166,1167,1133],{},[14,1168,1169],{},"120",[64,1171,1172],{},"40–1000 ms",[64,1174,1175],{},"Holds the beat pulse before decay. It is not a manual flame/CO₂ burst-duration setting.",[46,1177,1178,1183,1188,1191],{},[64,1179,1180],{},[14,1181,1182],{},"MusicSync.intensityDepth",[64,1184,1185],{},[14,1186,1187],{},"0.70",[64,1189,1190],{},"0–1",[64,1192,1193],{},"Brightness modulation depth. At zero the fixture keeps its base intensity; higher values give the music more control.",[46,1195,1196,1201,1205,1207],{},[64,1197,1198],{},[14,1199,1200],{},"MusicSync.movementDepth",[64,1202,1203],{},[14,1204,1187],{},[64,1206,1190],{},[64,1208,1209],{},"Amount of music-driven movement timing. Lower values retain more of the preset's normal movement.",[46,1211,1212,1217,1222,1224],{},[64,1213,1214],{},[14,1215,1216],{},"MusicSync.colorDepth",[64,1218,1219],{},[14,1220,1221],{},"0.30",[64,1223,1190],{},[64,1225,1226],{},"Amount of music-driven colour variation. Zero retains the base colour response.",[46,1228,1229,1234,1238,1240],{},[64,1230,1231],{},[14,1232,1233],{},"MusicSync.strobeDepth",[64,1235,1236],{},[14,1237,397],{},[64,1239,1190],{},[64,1241,1242,1243,1246],{},"Strength of beat-driven strobe response. ",[78,1244,1245],{},"Zero retains the fixture's normal strobe clock","; switch the device off when no strobe is wanted.",[46,1248,1249,1254,1259,1262],{},[64,1250,1251],{},[14,1252,1253],{},"MusicSync.smoothingMs",[64,1255,1256,1133],{},[14,1257,1258],{},"150",[64,1260,1261],{},"30–1500 ms",[64,1263,1264],{},"Smooths the resulting movement, colour and brightness response. Increase for gentler transitions; decrease for a tighter response.",[940,1266,1268],{"id":1267},"quiet-sections","Quiet sections",[40,1270,1271,1283],{},[43,1272,1273],{},[46,1274,1275,1277,1279,1281],{},[49,1276,289],{},[49,1278,292],{},[49,1280,295],{},[49,1282,958],{},[59,1284,1285,1303,1324],{},[46,1286,1287,1292,1297,1300],{},[64,1288,1289],{},[14,1290,1291],{},"MusicSync.quietThreshold",[64,1293,1294],{},[14,1295,1296],{},"0.08",[64,1298,1299],{},"0.01–0.5",[64,1301,1302],{},"Energy threshold for quiet-section behavior. Higher values classify more material as quiet.",[46,1304,1305,1310,1315,1317],{},[64,1306,1307],{},[14,1308,1309],{},"MusicSync.quietIntensity",[64,1311,1312],{},[14,1313,1314],{},"0.12",[64,1316,1190],{},[64,1318,1319,1320,1323],{},"Quiet-section brightness response target, blended through ",[14,1321,1322],{},"intensityDepth","; this is not a master-volume control.",[46,1325,1326,1331,1336,1338],{},[64,1327,1328],{},[14,1329,1330],{},"MusicSync.quietSpeed",[64,1332,1333],{},[14,1334,1335],{},"0.20",[64,1337,1190],{},[64,1339,1340],{},"Quiet-section movement target. Lower values produce slower motion.",[940,1342,1344],{"id":1343},"detection-and-frequency-bands","Detection and frequency bands",[40,1346,1347,1359],{},[43,1348,1349],{},[46,1350,1351,1353,1355,1357],{},[49,1352,289],{},[49,1354,292],{},[49,1356,295],{},[49,1358,958],{},[59,1360,1361,1379,1398,1415,1433,1451,1468,1486],{},[46,1362,1363,1368,1373,1376],{},[64,1364,1365],{},[14,1366,1367],{},"MusicSync.noiseFloor",[64,1369,1370],{},[14,1371,1372],{},"0.012",[64,1374,1375],{},"0.001–0.15",[64,1377,1378],{},"Signal removed before analysis. Raise to ignore low-level noise; setting it too high can discard real quiet material.",[46,1380,1381,1386,1392,1395],{},[64,1382,1383],{},[14,1384,1385],{},"MusicSync.minBpm",[64,1387,1388,1391],{},[14,1389,1390],{},"45"," BPM",[64,1393,1394],{},"30–480 BPM",[64,1396,1397],{},"Lower bound of tempo detection.",[46,1399,1400,1405,1410,1412],{},[64,1401,1402],{},[14,1403,1404],{},"MusicSync.maxBpm",[64,1406,1407,1391],{},[14,1408,1409],{},"400",[64,1411,1394],{},[64,1413,1414],{},"Upper bound of tempo detection and minimum separation of detected kicks.",[46,1416,1417,1422,1427,1430],{},[64,1418,1419],{},[14,1420,1421],{},"MusicSync.fallbackBpm",[64,1423,1424,1391],{},[14,1425,1426],{},"128",[64,1428,1429],{},"30–480 BPM, within the chosen tempo window",[64,1431,1432],{},"Motion reference when the detected tempo is unavailable or insufficiently confident. It does not manufacture confirmed beats.",[46,1434,1435,1440,1445,1448],{},[64,1436,1437],{},[14,1438,1439],{},"MusicSync.bassLowHz",[64,1441,1442,1444],{},[14,1443,717],{}," Hz",[64,1446,1447],{},"20–500 Hz",[64,1449,1450],{},"Lower edge of the analyzed bass band.",[46,1452,1453,1458,1463,1465],{},[64,1454,1455],{},[14,1456,1457],{},"MusicSync.bassHighHz",[64,1459,1460,1444],{},[14,1461,1462],{},"200",[64,1464,1447],{},[64,1466,1467],{},"Upper edge of the bass band. Narrowing the band can separate kicks from higher content.",[46,1469,1470,1475,1480,1483],{},[64,1471,1472],{},[14,1473,1474],{},"MusicSync.melodyLowHz",[64,1476,1477,1444],{},[14,1478,1479],{},"250",[64,1481,1482],{},"100–12,000 Hz",[64,1484,1485],{},"Lower edge of the analyzed melodic band.",[46,1487,1488,1493,1498,1500],{},[64,1489,1490],{},[14,1491,1492],{},"MusicSync.melodyHighHz",[64,1494,1495,1444],{},[14,1496,1497],{},"4000",[64,1499,1482],{},[64,1501,1502],{},"Upper edge of the melodic band.",[10,1504,1505,1508,1509,1512,1513,1516],{},[14,1506,1507],{},"minBpm"," must be strictly below ",[14,1510,1511],{},"maxBpm",", and ",[14,1514,1515],{},"fallbackBpm"," must lie between them. Each band's lower frequency must be strictly below its upper frequency. These relationships are checked in addition to the individual ranges.",[940,1518,1520],{"id":1519},"channel-switches","Channel switches",[10,1522,1523,1524,1526],{},"Every channel below defaults to ",[14,1525,265],{}," and accepts a Boolean. They select which existing effect families follow synchronization; they do not place props or enable a disabled device.",[40,1528,1529,1538],{},[43,1530,1531],{},[46,1532,1533,1535],{},[49,1534,289],{},[49,1536,1537],{},"Effect family",[59,1539,1540,1554,1567,1580,1593,1606,1620],{},[46,1541,1542,1547],{},[64,1543,1544],{},[14,1545,1546],{},"MusicSync.channels.lasers",[64,1548,1549,1550,1553],{},"Laser response (",[14,1551,1552],{},"L",")",[46,1555,1556,1561],{},[64,1557,1558],{},[14,1559,1560],{},"MusicSync.channels.strobes",[64,1562,1563,1564,1553],{},"Strobe response (",[14,1565,1566],{},"S",[46,1568,1569,1574],{},[64,1570,1571],{},[14,1572,1573],{},"MusicSync.channels.facade",[64,1575,1576,1577,1553],{},"Stage illumination (",[14,1578,1579],{},"W",[46,1581,1582,1587],{},[64,1583,1584],{},[14,1585,1586],{},"MusicSync.channels.towers",[64,1588,1589,1590,1553],{},"Tower illumination (",[14,1591,1592],{},"T",[46,1594,1595,1600],{},[64,1596,1597],{},[14,1598,1599],{},"MusicSync.channels.co2",[64,1601,1602,1603,1553],{},"CO₂/cryo jets (",[14,1604,1605],{},"C",[46,1607,1608,1613],{},[64,1609,1610],{},[14,1611,1612],{},"MusicSync.channels.smoke",[64,1614,1615,1616,1619],{},"Ground-fog/haze response (",[14,1617,1618],{},"R",") for supported ordinary-club devices",[46,1621,1622,1627],{},[64,1623,1624],{},[14,1625,1626],{},"MusicSync.channels.fire",[64,1628,1629,1630,1633],{},"Flames (",[14,1631,1632],{},"F","), triggered by strong bass peaks rather than continuous loudness",[10,1635,1636,1637,799,1640,1643,1644,1648],{},"Tune with an assigned MP3 playing on the selected deck. Start with one visible channel and the defaults. If the show barely reacts, check deck playback, the global or FOH enable switch and device participation first. Then adjust the relevant sensitivity in small steps. For unwanted activity during quiet passages, tune ",[14,1638,1639],{},"noiseFloor",[14,1641,1642],{},"quietThreshold"," before raising every response depth. Change timing separately from detection so it is clear which value helped. See ",[19,1645,1647],{"href":1646},"/docs/scripts/sky-dj/features/lights-and-effects","Lights and effects"," for manual shots and festival-specific behavior.",[25,1650,1652],{"id":1651},"boombox-settings","Boombox settings",[10,1654,12,1655,1658],{},[78,1656,1657],{},"Settings → Boombox",". Boombox volume and radius have independent ceilings from the club system.",[40,1660,1661,1673],{},[43,1662,1663],{},[46,1664,1665,1667,1669,1671],{},[49,1666,289],{},[49,1668,292],{},[49,1670,442],{},[49,1672,298],{},[59,1674,1675,1691,1710,1731,1752,1770,1788,1806,1824,1840,1856],{},[46,1676,1677,1682,1686,1688],{},[64,1678,1679],{},[14,1680,1681],{},"BoomboxEnabled",[64,1683,1684],{},[14,1685,265],{},[64,1687,685],{},[64,1689,1690],{},"Allows mobile devices. Disabling stores active devices and silences their playback; owners retain item-recovery access.",[46,1692,1693,1698,1702,1704],{},[64,1694,1695],{},[14,1696,1697],{},"BoomboxRequireItem",[64,1699,1700],{},[14,1701,682],{},[64,1703,685],{},[64,1705,1706,1707,1709],{},"Requires an inventory item for placement when enabled. With ",[14,1708,682],{},", the command places without inventory calls.",[46,1711,1712,1717,1722,1728],{},[64,1713,1714],{},[14,1715,1716],{},"BoomboxItem",[64,1718,1719],{},[14,1720,1721],{},"'sky_boombox'",[64,1723,460,1724,464,1726],{},[14,1725,463],{},[14,1727,467],{},[64,1729,1730],{},"Usable-item name registered through Sky Base. Existing claims keep their original item name and metadata.",[46,1732,1733,1738,1743,1749],{},[64,1734,1735],{},[14,1736,1737],{},"BoomboxCommand",[64,1739,1740],{},[14,1741,1742],{},"'boombox'",[64,1744,460,1745,464,1747],{},[14,1746,463],{},[14,1748,467],{},[64,1750,1751],{},"Placement/open/reclaim command, without a leading slash.",[46,1753,1754,1759,1764,1767],{},[64,1755,1756],{},[14,1757,1758],{},"BoomboxMaxDevices",[64,1760,1761],{},[14,1762,1763],{},"32",[64,1765,1766],{},"1–64, whole number",[64,1768,1769],{},"Total deployed and recoverable devices. Each owner still has at most one.",[46,1771,1772,1777,1782,1785],{},[64,1773,1774],{},[14,1775,1776],{},"BoomboxMaxVolume",[64,1778,1779],{},[14,1780,1781],{},"0.7",[64,1783,1784],{},"0.05–1.0",[64,1786,1787],{},"Independent mobile volume ceiling, shown as 5–100% in the editor.",[46,1789,1790,1795,1800,1803],{},[64,1791,1792],{},[14,1793,1794],{},"BoomboxMaxRange",[64,1796,1797,334],{},[14,1798,1799],{},"25",[64,1801,1802],{},"3–50 m",[64,1804,1805],{},"Fixed audible radius for all boomboxes, including restored devices. Players have no per-device range adjustment.",[46,1807,1808,1813,1818,1821],{},[64,1809,1810],{},[14,1811,1812],{},"BoomboxMaxAudible",[64,1814,1815],{},[14,1816,1817],{},"2",[64,1819,1820],{},"1–4, whole number",[64,1822,1823],{},"Maximum nearest audible, playing boomboxes each client renders as audio.",[46,1825,1826,1831,1835,1837],{},[64,1827,1828],{},[14,1829,1830],{},"BoomboxCarry",[64,1832,1833],{},[14,1834,265],{},[64,1836,685],{},[64,1838,1839],{},"Allows owners to carry and put down their device.",[46,1841,1842,1847,1851,1853],{},[64,1843,1844],{},[14,1845,1846],{},"BoomboxDui",[64,1848,1849],{},[14,1850,265],{},[64,1852,685],{},[64,1854,1855],{},"Compatibility name for allowing the native prop display. This no longer creates a browser/DUI and does not turn new displays on.",[46,1857,1858,1863,1868,1871],{},[64,1859,1860],{},[14,1861,1862],{},"BoomboxDuiDistance",[64,1864,1865,334],{},[14,1866,1867],{},"8",[64,1869,1870],{},"2–15 m",[64,1872,1873],{},"Maximum native display visibility distance; at most one nearest display is drawn per client.",[10,1875,1876,799,1878,1880],{},[14,1877,1846],{},[14,1879,1862],{}," remain in saved/global configuration for compatibility. They have no controls in the current editor, and the player panel has no display selector. Unrelated settings saves preserve them. Use the documented file mode when intentionally managing these file values. New devices start with display mode off.",[10,1882,1883,1884,1886,1887,1889],{},"Keep the fixed radius appropriate for a portable speaker. Raising ",[14,1885,1812],{}," permits more overlapping online players on each client; it does not improve the sound of one device. See ",[19,1888,237],{"href":896}," for placement-first behavior, item definitions, shared access and restart recovery.",[25,1891,1893],{"id":1892},"festival-grounds-and-fences","Festival grounds and fences",[40,1895,1896,1908],{},[43,1897,1898],{},[46,1899,1900,1902,1904,1906],{},[49,1901,289],{},[49,1903,292],{},[49,1905,442],{},[49,1907,298],{},[59,1909,1910,1925],{},[46,1911,1912,1916,1920,1922],{},[64,1913,1914],{},[14,1915,229],{},[64,1917,1918],{},[14,1919,265],{},[64,1921,685],{},[64,1923,1924],{},"Loads the supplied fixed festival grounds and enables its booth.",[46,1926,1927,1931,1935,1937],{},[64,1928,1929],{},[14,1930,232],{},[64,1932,1933],{},[14,1934,265],{},[64,1936,685],{},[64,1938,1939],{},"Loads the supplied fence perimeter when festival grounds are enabled.",[10,1941,1942,1945,1946,1949],{},[14,1943,1944],{},"FestivalGroundEnabled = true"," enables the fixed Vespucci Beach venue and its DJ booth. It can be changed under ",[78,1947,1948],{},"Settings → Festival grounds",". This switch controls the supplied festival; it is separate from the custom clubs you create.",[10,1951,1952,1955,1956,1958],{},[14,1953,1954],{},"FestivalFencesEnabled = true"," controls the festival perimeter fences independently. Fences require the festival grounds to be enabled. Set it to ",[14,1957,682],{}," to keep the festival without its supplied fence perimeter.",[101,1960,1961],{"color":103,"icon":104},[10,1962,1963,1964,1967],{},"The festival includes a large map, speakers and show effects. Enabling it can increase ",[78,1965,1966],{},"client resmon time",", especially near the venue with effects active. There is no guaranteed millisecond value: compare enabled and disabled operation on your server with representative clients, graphics settings and player activity.",[10,1969,1970,1972,1973,1975,1976,1978,1979,1981],{},[14,1971,218],{}," is ",[14,1974,682],{}," by default and controls normal club synchronization. The fixed festival has its own ",[78,1977,937],{}," controls, also enabled explicitly; save there to return manually overridden festival channels to automatic control. Manual controls remain available without music. Devices saved as disabled do not follow presets or Music Sync. The FOH panel shows their counts and offers separate actions to enable the flame or CO₂ devices. See ",[19,1980,1647],{"href":1646}," for show operation.",[25,1983,1985],{"id":1984},"retained-media-timeout","Retained media timeout",[40,1987,1988,2001],{},[43,1989,1990],{},[46,1991,1992,1994,1996,1998],{},[49,1993,289],{},[49,1995,292],{},[49,1997,295],{},[49,1999,2000],{},"Scope",[59,2002,2003],{},[46,2004,2005,2010,2015,2018],{},[64,2006,2007],{},[14,2008,2009],{},"MediaTimeout",[64,2011,2012,1133],{},[14,2013,2014],{},"10000",[64,2016,2017],{},"2000–30,000 ms",[64,2019,2020],{},"Retained media-resolution request timeout in the UI/client request layer.",[10,2022,2023],{},"This setting has no current global-editor field. The current club library resolves local catalog entries rather than online media requests, so changing it does not extend MP3 loading timeouts. Mobile YouTube metadata has its own fixed five-second lookup timeout. Keep the default; the current UI has no online resolution workflow that needs tuning here.",[25,2025,2027],{"id":2026},"advanced-audio-file","Advanced audio file",[10,2029,2030,2033,2034,2037,2038,2040],{},[14,2031,2032],{},"config/audio.lua"," defines ",[14,2035,2036],{},"SkyDjAudioConfig",", separately from ",[14,2039,269],{}," and SQL global settings. Edit the file and restart to apply it. These values have no configurator range validation; use the shipped values as the baseline.",[40,2042,2043,2056],{},[43,2044,2045],{},[46,2046,2047,2049,2051,2054],{},[49,2048,289],{},[49,2050,292],{},[49,2052,2053],{},"Unit/type",[49,2055,298],{},[59,2057,2058,2076,2094,2110],{},[46,2059,2060,2065,2070,2073],{},[64,2061,2062],{},[14,2063,2064],{},"SkyDjAudioConfig.RefreshTime",[64,2066,2067],{},[14,2068,2069],{},"300",[64,2071,2072],{},"Milliseconds",[64,2074,2075],{},"Embedded engine player-position update interval and browser distance/volume refresh timing. Lower intervals increase update work; this is separate from Music Sync analysis and server synchronization.",[46,2077,2078,2083,2088,2091],{},[64,2079,2080],{},[14,2081,2082],{},"SkyDjAudioConfig.distanceBeforeUpdatingPos",[64,2084,2085],{},[14,2086,2087],{},"40",[64,2089,2090],{},"Metres",[64,2092,2093],{},"Extra proximity margin around a spatial sound's range for position updates and range management. It does not enlarge the sound's configured audible radius.",[46,2095,2096,2101,2105,2107],{},[64,2097,2098],{},[14,2099,2100],{},"SkyDjAudioConfig.interact_sound_enable",[64,2102,2103],{},[14,2104,682],{},[64,2106,685],{},[64,2108,2109],{},"Enables the optional InteractSound compatibility handlers. Leave it off unless another resource needs that compatibility API.",[46,2111,2112,2117,2122,2125],{},[64,2113,2114],{},[14,2115,2116],{},"SkyDjAudioConfig.interact_sound_file",[64,2118,2119],{},[14,2120,2121],{},"'ogg'",[64,2123,2124],{},"File-extension string",[64,2126,2127],{},"Extension appended to compatibility sound basenames. Supply and publish matching sound files when using the compatibility handlers.",[10,2129,2130],{},"Avoid enabling two resources that both handle the same InteractSound events. The normal DJ/boombox system uses the embedded engine without requiring this emulator or a separate sound resource.",[25,2132,2134],{"id":2133},"sample-catalog-and-per-club-soundboard","Sample catalog and per-club soundboard",[10,2136,2137,2140,2141,2144,2145,2148,2149,2152,2153,2156,2157,2160],{},[14,2138,2139],{},"config/soundboard.lua"," defines the file-owned ",[14,2142,2143],{},"ClubSamples"," catalog. Every entry has a stable ",[14,2146,2147],{},"id",", a ",[14,2150,2151],{},"label",", a sample ",[14,2154,2155],{},"file"," and its ",[14,2158,2159],{},"duration"," in seconds. Preserve IDs and the 16-entry layout when replacing a sound so saved club pad assignments keep their meaning. The runtime indexes the catalog by its position, matching the shipped IDs 1–16.",[40,2162,2163,2179],{},[43,2164,2165],{},[46,2166,2167,2170,2173,2176],{},[49,2168,2169],{},"ID",[49,2171,2172],{},"Label",[49,2174,2175],{},"File",[49,2177,2178],{},"Duration (s)",[59,2180,2181,2197,2212,2228,2244,2260,2275,2291,2306,2322,2338,2354,2370,2386,2402,2418],{},[46,2182,2183,2186,2189,2194],{},[64,2184,2185],{},"1",[64,2187,2188],{},"RISE",[64,2190,2191],{},[14,2192,2193],{},"phaserUp1.ogg",[64,2195,2196],{},"0.496327",[46,2198,2199,2201,2204,2209],{},[64,2200,1817],{},[64,2202,2203],{},"FALL",[64,2205,2206],{},[14,2207,2208],{},"phaserDown1.ogg",[64,2210,2211],{},"0.470204",[46,2213,2214,2217,2220,2225],{},[64,2215,2216],{},"3",[64,2218,2219],{},"ZAP",[64,2221,2222],{},[14,2223,2224],{},"zap1.ogg",[64,2226,2227],{},"1.018776",[46,2229,2230,2233,2236,2241],{},[64,2231,2232],{},"4",[64,2234,2235],{},"LASER",[64,2237,2238],{},[14,2239,2240],{},"laser1.ogg",[64,2242,2243],{},"1.100363",[46,2245,2246,2249,2252,2257],{},[64,2247,2248],{},"5",[64,2250,2251],{},"POWER",[64,2253,2254],{},[14,2255,2256],{},"powerUp1.ogg",[64,2258,2259],{},"1.201633",[46,2261,2262,2265,2268,2273],{},[64,2263,2264],{},"6",[64,2266,2267],{},"JUMP",[64,2269,2270],{},[14,2271,2272],{},"phaseJump1.ogg",[64,2274,2211],{},[46,2276,2277,2280,2283,2288],{},[64,2278,2279],{},"7",[64,2281,2282],{},"LOW",[64,2284,2285],{},[14,2286,2287],{},"lowDown.ogg",[64,2289,2290],{},"0.783673",[46,2292,2293,2295,2298,2303],{},[64,2294,1867],{},[64,2296,2297],{},"HIGH",[64,2299,2300],{},[14,2301,2302],{},"highUp.ogg",[64,2304,2305],{},"0.548571",[46,2307,2308,2311,2314,2319],{},[64,2309,2310],{},"9",[64,2312,2313],{},"TRIPLE",[64,2315,2316],{},[14,2317,2318],{},"threeTone1.ogg",[64,2320,2321],{},"0.827052",[46,2323,2324,2327,2330,2335],{},[64,2325,2326],{},"10",[64,2328,2329],{},"SPACE",[64,2331,2332],{},[14,2333,2334],{},"spaceTrash1.ogg",[64,2336,2337],{},"1.451315",[46,2339,2340,2343,2346,2351],{},[64,2341,2342],{},"11",[64,2344,2345],{},"DOUBLE",[64,2347,2348],{},[14,2349,2350],{},"zapTwoTone.ogg",[64,2352,2353],{},"1.306122",[46,2355,2356,2359,2362,2367],{},[64,2357,2358],{},"12",[64,2360,2361],{},"SWEEP",[64,2363,2364],{},[14,2365,2366],{},"phaserUp3.ogg",[64,2368,2369],{},"0.522449",[46,2371,2372,2375,2378,2383],{},[64,2373,2374],{},"13",[64,2376,2377],{},"BELL",[64,2379,2380],{},[14,2381,2382],{},"impactBell_heavy_000.ogg",[64,2384,2385],{},"1.480181",[46,2387,2388,2391,2394,2399],{},[64,2389,2390],{},"14",[64,2392,2393],{},"METAL",[64,2395,2396],{},[14,2397,2398],{},"impactMetal_heavy_000.ogg",[64,2400,2401],{},"0.167664",[46,2403,2404,2407,2410,2415],{},[64,2405,2406],{},"15",[64,2408,2409],{},"PUNCH",[64,2411,2412],{},[14,2413,2414],{},"impactPunch_heavy_000.ogg",[64,2416,2417],{},"0.649025",[46,2419,2420,2423,2426,2431],{},[64,2421,2422],{},"16",[64,2424,2425],{},"PLATE",[64,2427,2428],{},[14,2429,2430],{},"impactPlate_heavy_000.ogg",[64,2432,2433],{},"0.488662",[10,2435,2436,2437,2440,2441,2443],{},"The file is resolved under ",[14,2438,2439],{},"source/html/samples/",". A replacement must exist there and be included in the resource manifest. Keep ",[14,2442,2159],{}," aligned with the actual recording because the server uses it for sample lifetime and cleanup. Changing this Lua catalog requires a restart; adding runtime audio files also requires publishing those assets correctly.",[10,2445,2446,2447,2450],{},"The mixer's ",[78,2448,2449],{},"Soundboard & mixer"," panel manages separate per-club settings saved in SQL:",[40,2452,2453,2466],{},[43,2454,2455],{},[46,2456,2457,2460,2462,2464],{},[49,2458,2459],{},"Control",[49,2461,292],{},[49,2463,442],{},[49,2465,298],{},[59,2467,2468,2482,2498,2512],{},[46,2469,2470,2473,2476,2479],{},[64,2471,2472],{},"Pad assignments",[64,2474,2475],{},"IDs 1–16 in order",[64,2477,2478],{},"Exactly 16 selections, each ID 1–16",[64,2480,2481],{},"Selects a catalog sample for each A/B pad; right-click a pad to open its assignment.",[46,2483,2484,2487,2493,2495],{},[64,2485,2486],{},"Sample volume",[64,2488,2489,2492],{},[14,2490,2491],{},"0.65"," / 65%",[64,2494,1190],{},[64,2496,2497],{},"Sample playback level for this club.",[46,2499,2500,2503,2507,2509],{},[64,2501,2502],{},"Lower music during samples",[64,2504,2505],{},[14,2506,682],{},[64,2508,685],{},[64,2510,2511],{},"Enables music ducking while samples play.",[46,2513,2514,2517,2522,2532],{},[64,2515,2516],{},"Crossfader curve",[64,2518,2519],{},[14,2520,2521],{},"'smooth'",[64,2523,2524,179,2526,464,2529],{},[14,2525,2521],{},[14,2527,2528],{},"'linear'",[14,2530,2531],{},"'cut'",[64,2533,2534],{},"Chooses the club mixer's crossfade behavior.",[10,2536,2537,2538,2541,2542,799,2545,2548,2549,2551],{},"Save with ",[78,2539,2540],{},"Save for this club",". Pads use ",[78,2543,2544],{},"1–8",[78,2546,2547],{},"Q W E R T Z U I"," while the mixer is active; the loop switch repeats a pad, and sample cut cancels active samples. At most four samples can play simultaneously, and loops stop after 30 seconds. These playback limits are fixed behavior, not additional ",[14,2550,269],{}," settings.",[25,2553,2555],{"id":2554},"language-and-dependencies","Language and dependencies",[10,2557,2558,2559,2562,2563,2565,2566,2569,2570,2573],{},"Sky DJ follows ",[14,2560,2561],{},"Sky.Config.locale"," from ",[14,2564,131],{},", with English fallback. Its 19 JSON dictionaries are in ",[14,2567,2568],{},"config/locales/",". There is no separate ",[14,2571,2572],{},"Config.Locale"," setting in Sky DJ.",[10,2575,2576,2577,179,2580,179,2583,799,2586,2588,2589,2591,2592,2594,2595,2599],{},"The resource requires ",[78,2578,2579],{},"ESX",[78,2581,2582],{},"OneSync",[78,2584,2585],{},"ox_lib",[78,2587,131],{},". SQL uses the provider configured by ",[14,2590,131],{},"; do not add a second audio resource or assume another framework is supported because an integration uses a Sky facade. A configured target provider is optional; the standard interaction uses the Sky TextUI/help adapter when target is disabled. See ",[19,2593,22],{"href":21}," for startup order and ",[19,2596,2598],{"href":2597},"/docs/scripts/sky-dj/reference/troubleshooting","Troubleshooting"," for access or configuration errors.",[2601,2602,2603],"style",{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":528,"searchDepth":535,"depth":559,"links":2605},[2606,2607,2608,2609,2610,2611,2618,2619,2620,2621,2622,2623],{"id":27,"depth":559,"text":28},{"id":143,"depth":559,"text":144},{"id":273,"depth":559,"text":274},{"id":412,"depth":559,"text":413},{"id":623,"depth":559,"text":624},{"id":901,"depth":559,"text":902,"children":2612},[2613,2614,2615,2616,2617],{"id":942,"depth":585,"text":943},{"id":1101,"depth":585,"text":1102},{"id":1267,"depth":585,"text":1268},{"id":1343,"depth":585,"text":1344},{"id":1519,"depth":585,"text":1520},{"id":1651,"depth":559,"text":1652},{"id":1892,"depth":559,"text":1893},{"id":1984,"depth":559,"text":1985},{"id":2026,"depth":559,"text":2027},{"id":2133,"depth":559,"text":2134},{"id":2554,"depth":559,"text":2555},"Complete reference for global settings, Music Sync, boombox limits, permissions, music delivery and advanced audio files.","md",null,{},true,"/docs/scripts/sky-dj/setup/configuration",{"title":5,"description":2624},{"loc":2629},"1.docs/scripts/7.sky-dj/2.setup/2.configuration","bS0vvxuW2Az35b-5ptKlEOFzwX5hf8Wzb7Xb-RmGPqY",[2635,2638],{"title":22,"path":21,"stem":2636,"description":2637,"children":-1},"1.docs/scripts/7.sky-dj/2.setup/1.installation","Install the resource, add your music library, and optionally prepare FFmpeg/Opus streaming with Windows or Linux instructions.",{"title":2639,"path":2640,"stem":2641,"description":2642,"children":-1},"Clubs and placement","/docs/scripts/sky-dj/features/clubs-and-placement","1.docs/scripts/7.sky-dj/3.features/1.clubs-and-placement","Create your own club, assign DJ access, place speakers and props, and define the room's audio boundary.",[],1792547848312]