
Keyless

--====================================================
-- SERVICES
--====================================================
local Players = game:GetService("Players")
local player = Players.LocalPlayer
--====================================================
-- WAIT
--====================================================
local function safeWait(parent, child)
while parent and not parent:FindFirstChild(child) do
parent.ChildAdded:Wait()
end
return parent:FindFirstChild(child)
end
--====================================================
-- GROOVY
--====================================================
local playerGui = safeWait(player, "PlayerGui")
local groovy = safeWait(playerGui, "Groovy")
local playerUi = safeWait(playerGui, "PlayerUi")
local rightUi = safeWait(playerUi, "Right")
local musicLabel = safeWait(rightUi, "Music")
--====================================================
-- SKINS DATA
--====================================================
local Skins = {
-- MAYHEM
HAM = {Id=125443190466629, Name="t+pazolite & getty - Twisted drop party"},
MAY = {Id=137014398546441, Name="Camellia - Spin Eternally"},
TEST = {Id=13764407822, Name="t+pazolite - Cheatreal #TPZREMAKE"},
MAYHEM2 = {Id=10046618066, Name="moro - Folgore"},
DISORDER = {Id=10648806684, Name="m1dy - Mad Speed Disorder"},
DELUSIVE = {Id=11190425836, Name="Bokusatsu Shoujo Koubou - Designer Demon"},
["🅱️AYHEM"] = {Id=9751367057, Name="ReDALICE & CosMo - Angel Halo"},
ZENITH = {Id=106132241467298, Name="Azrael - Tune out"},
SKIN_L0L = {Id=1132772797, Name="DJ Striden - Lights"},
MAYHEMX = {Id=88500969704794, Name="Blanke - Immunity"},
MALEVOLENCE = {Id=118933850264498, Name="RoughSketch - MAYHEM (Extreme Full Ver.)"},
LIMITED = {Id=14400424108, Name="gmtn. - trappola bewitching (Extended)"},
["GREEN MAYS AND HEM"] = {Id=16963357955, Name="Zelda Malo Mart"},
CRISIS = {Id=109283287305953, Name="The Sickest Squad - Hard Abuse"},
DESECRATION = {Id=75332651217744, Name="end of the world - explicit massacre over the body of a dead god"},
["MORTEM^2"] = {Id=11886085333, Name="Roughsketch - Ill"},
MUTILATION = {Id=109024781122281, Name="Femtan** -- GIRL HELL 1999"},
-- VIOLENCE
STRESSED = {Id=9614333818, Name="The Quick Brown Fox - Electrohell"},
["VIOLENCE?"] = {Id=11749330011, Name="Team Grimoire - katahastrophe"},
ANIMOSITY = {Id=7442711894, Name="CANVAS feat.QuimärCarmina (FallenShepard Remix)"},
ANTAGONIZING = {Id=10099675843, Name="Laur - Exitium"},
DEVASTATION = {Id=14046308736, Name="Big Jim - Voyage To Eternity"},
STRIFE = {Id=99818022733723, Name="A-Saph - CLAUDIA ~libertia~"},
DYSPATHY = {Id=130109536794469, Name="Team Grimoire - Nightmare System"},
DISASTER = {Id=140403531765526, Name="Ampongabendanitte - СAƊAƲƸⱤƖƇ"},
-- DEATH
REVENANT = {Id=10099671052, Name="Juggernaut. - Revenant"},
HARBINGER = {Id=97440480553675, Name="Clovis Reyes - ALWAYS DREAMING"},
Closure = {Id=94699466301086, Name="muyu - Abyssal∴Factory"},
COAGULANT = {Id=12529893922, Name="Camellia - Bleed Blood"},
-- MALICE
PULSE = {Id=122509965090221, Name="Quark - Kill Everybody"},
HAVOC = {Id=16930390734, Name="NeLiME - Code Name: Gamma"},
DECAY = {Id=13781396116, Name="Nero's Day At Disneyland - Sprawling Idiot Effigy"},
DEFECTIVE = {Id=109934719751693, Name="Laur - ATAMA WARUI"},
FORGOTTEN = {Id=13922497365, Name="Nagazaki - Suicide Simulator"},
EXECRABLE = {Id=10046618066, Name="moro - Folgore"},
-- MALEVOLENT
-- VINDICTIVE
-- PURITY
COMMON = {Id=101463939911764, Name="Kaizo Slumbed - Puddle of Nitrogen"},
COMPLEXITY = {Id=11602411545, Name="EBIMAYO - Badtek"},
CYANIC = {Id=14309861829, Name="nuphory - Pearl Blue Soul"},
EXCRALISITE = {Id=14381044478, Name="Kurokotei - Faurie"},
EXQUISITE = {Id=11246398407, Name="Camellia - INSECTICIDE (Ext Ver)"},
INTEGRIOUS = {Id=11665439078, Name="EBIMAYO - Ocean Abyss"},
INTEGRIOUS2 = {Id=12775778039, Name="Akamasumi - Ressurection"},
INVERSA = {Id=117422908285148, Name="Dj Kuroneko - I don't"},
POSTERITY = {Id=112545501536999, Name="fen - deep blue sunrise"},
PULARY = {Id=13551323798, Name="Under Night In-Birth - Purity & Strictly"},
PURIFIED = {Id=14400233209, Name="Kurokotei - Lussamine in a Perfect World"},
PURITYX = {Id=126553820316661, Name="Black Sun Empire - Parallels"},
SALUBRITY = {Id=10962236341, Name="FtlFrame - Speech Disorder"},
SERENITY_JDR = {Id=78236039262842, Name="ENNWAY! - EDENIC WHISPERS"},
TRANAXAS = {Id=10363574580, Name="TRAELMYX - Neon Island B-Side"},
-- SANCTUARY
SUSTAINABILITY = {Id=11907415829, Name="Camellia - Newspapers for Magicians"},
HAVEN = {Id=7028518546, Name="Protostar - New Horizons"},
SALVATION = {Id=81335699182106, Name="Yooh - Salvation"},
ANGELIC = {Id=133011586497796, Name="Clovis Reyes - Fluxxwave"},
-- SHD
}
--====================================================
-- PLAYER DATA
--====================================================
local Saving = safeWait(workspace, "Saving")
local PlayerData = safeWait(Saving, player.Name .. "'s Data")
local ModeData = safeWait(PlayerData, "ModeData")
local Entities = safeWait(workspace, "Entities")
local Entity = safeWait(Entities, player.Name)
local Simulator = safeWait(Entity, "NeonWingSimulator")
local SideValue = safeWait(Simulator, "Side")
local ModeValue = safeWait(Simulator, "Mode")
--====================================================
-- SKON
--====================================================
local function getCurrentSkin()
local sideFolder = ModeData:FindFirstChild(SideValue.Value)
if not sideFolder then return nil end
local modeFolder = sideFolder:FindFirstChild(ModeValue.Value)
if not modeFolder then return nil end
local skinValue = modeFolder:FindFirstChild("SkinEquipped")
if not skinValue then return nil end
return skinValue
end
--====================================================
-- BEATBOX
--====================================================
local function updateMusic()
local skinValue = getCurrentSkin()
if not skinValue then return end
if skinValue.Value == "" then
return
end
local data = Skins[skinValue.Value]
if not data then return end
local newId = "rbxassetid://" .. data.Id
if groovy.SoundId ~= newId then
musicLabel.Text = data.Name
groovy:Stop()
groovy.SoundId = newId
groovy:Play()
end
end
--====================================================
-- INITIAL
--====================================================
updateMusic()
--====================================================
-- LISTENERS
--====================================================
ModeValue:GetPropertyChangedSignal("Value"):Connect(updateMusic)
SideValue:GetPropertyChangedSignal("Value"):Connect(updateMusic)
local function bindSkinListener()
local skinValue = getCurrentSkin()
if skinValue then
skinValue:GetPropertyChangedSignal("Value"):Connect(updateMusic)
end
end
bindSkinListener()
ModeValue:GetPropertyChangedSignal("Value"):Connect(bindSkinListener)
SideValue:GetPropertyChangedSignal("Value"):Connect(bindSkinListener)
Nice
This is perfect, but it's still missing the rest to be the most complete script.