Fonctionnel
Unlock All Open Source
Code du script
Lua
run_on_actor(getactors()[1], [[
local repStorage = game:GetService('ReplicatedStorage')
local players = game:GetService('Players')
local localPlayer = players.LocalPlayer
local character = localPlayer.Character
local knit = require(repStorage.Packages.Knit)
local items = require(repStorage.Modules.Items)
local inventory = require(repStorage.Controllers.UIController.Inventory)
local store = require(repStorage.Controllers.UIController.Store)
local visuals = require(repStorage.Controllers.VisualController)
local economy = knit.GetService('EconomyService')
local data = knit.GetController('DataController').Data
local inventoryFrames = localPlayer.PlayerGui.Main.Inventory
local storeFrames = localPlayer.PlayerGui.Main.Store.StoreFrames
local function WaitForChildWhichIsA(self: Instance, ClassName: string)
while self:FindFirstChildWhichIsA(ClassName) == nil do
task.wait()
end
end
local storeButtons = {
Equipped = {
Text = 'USING',
Color = ColorSequence.new(Color3.fromRGB(146, 26, 221), Color3.fromRGB(53, 7, 71)),
Image = 'rbxassetid://16546841553'
};
Equip = {
Text = 'EQUIP',
Color = ColorSequence.new(Color3.fromRGB(23, 221, 198), Color3.fromRGB(8, 71, 64)),
Image = 'rbxassetid://16546837268'
}
}
local function unlockAll()
local bannerAssets = game.ReplicatedStorage.Assets.Banners
local effectAssets = game.ReplicatedStorage.Assets.Effects
local dunks = {}
for dunk, dunkData in next, items.Dunks do
dunks[dunk] = false
end
local newInventory = {Skins={},Effects={},Banners={},Emotes={}}
for category, _ in next, newInventory do
for item, _ in next, items[category] do
newInventory[category][#newInventory[category]+1] = {item, false}
end
end
for gamepass, _ in next, data.Gamepasses do
data.Gamepasses[gamepass] = true
end
data.Prestige = 3
for dunk, _ in next, items.Dunks do
data.Dunks.Owned[dunk] = true
end
data.Inventory = newInventory
local function unequipAll(category: string)
for i,v in next, inventoryFrames[category]:GetChildren() do
if v:FindFirstChild('Using') then
v.Using.Visible = false
end
end
end
inventory:UpdateInventory(newInventory)
inventory.UpdateInventory = function() end
store.UpdateData = function() end
local ball = localPlayer.Character:FindFirstChild('Basketball')
local currentSkin = nil
local currentEffect = nil
local currentBanner = nil
local currentEmote = nil
local currentDunk = nil
local function getItemDataByName(category: string, name: string)
local nigga = nil
for i,v in next, items[category] do
if v[1] == name then
nigga = v
break
end
end
return nigga
end
local function getRealItemName(category: string, name: string)
local nigga = nil
local nameIdx = 1
if category == 'Dunks' then
nameIdx = 2
end
for i,v in next, items[category] do
if v[nameIdx] == name then
nigga = i
break
end
end
return nigga
end
local function getMyWorkspaceBall()
local nigger = nil
for i,v in next, workspace:GetChildren() do
if v.Name == 'Basketball' and v:GetAttribute('Owner') == localPlayer.UserId then
nigger = v
break
end
end
return nigger
end
local oldEffects = {}
local oldBallEffects = {}
local function applyBallAppearance(name: string)
for i,v in next, oldEffects do
v.Parent = nil
v:Destroy()
end
local realName = getRealItemName('Skins', name)
if not realName then return end
local effects = repStorage.Assets.Ball:FindFirstChild(realName)
if not effects then return end
for _, possibleEffect in next, effects:GetChildren() do
if possibleEffect:IsA('ParticleEmitter') then
local newEffect = possibleEffect:Clone()
newEffect.Parent = ball.Attach:FindFirstChildWhichIsA('SpecialMesh')
table.insert(oldEffects, newEffect)
end
end
if effects:FindFirstChild('CUSTOM_SKIN_HOLDER') then
local skinHolder = effects.CUSTOM_SKIN_HOLDER.CUSTOM_SKIN_HOLDER
for _, skinElement in next, skinHolder:GetChildren() do
if skinElement:IsA('MeshPart') then
local newEffect = skinElement:Clone()
local weld = newEffect:FindFirstChildWhichIsA('WeldConstraint')
newEffect.CFrame = ball.Attach.CFrame
weld.Part0 = ball.Attach
newEffect.Parent = ball.Attach
table.insert(oldEffects, newEffect)
end
end
if skinHolder:FindFirstChild('AttHolder') then
for _, attEffect in next, skinHolder.AttHolder:GetChildren() do
local newAttEffect = attEffect:Clone()
newAttEffect.Parent = ball.Attach
table.insert(oldEffects, newAttEffect)
end
end
end
if effects:FindFirstChild('CUSTOM_AURA') then
for _, bodyPart in next, effects.CUSTOM_AURA:GetChildren() do
for _, effect in next, bodyPart:GetChildren() do
if effect:IsA('CFrameValue') then
local attachment = Instance.new('Attachment')
attachment.Parent = character[bodyPart.Name]
attachment.CFrame = effect.Value
for _, cfEffect in next, effect:GetChildren() do
local newCfEffect = cfEffect:Clone()
newCfEffect.Parent = attachment
table.insert(oldEffects, newCfEffect)
end
continue
end
if effect:IsA('BasePart') then
local newPart = effect:Clone()
local weld = Instance.new('WeldConstraint')
weld.Parent = newPart
newPart.CFrame = character[bodyPart.Name].CFrame * newPart:GetAttribute('Offset')
weld.Part0 = character[bodyPart.Name]
weld.Part1 = newPart
newPart.Parent = character[bodyPart.Name]
table.insert(oldEffects, newPart)
continue
end
local newEffect = effect:Clone()
newEffect.Parent = character[bodyPart.Name]
table.insert(oldEffects, newEffect)
end
end
end
end
local sharedUtil = require(game.ReplicatedStorage.Modules.SharedUtil)
local function applyBallEffects(name: string, basketball: Instance)
local effectFolder = effectAssets:FindFirstChild(name)
if not effectFolder then
return
end
local basketball = sharedUtil.Ball:GetClosestBall(localPlayer)
if basketball:FindFirstChildWhichIsA('Trail') then
basketball:FindFirstChildWhichIsA('Trail'):Destroy()
end
for i,v in next, effectFolder:GetChildren() do
if v:IsA('Trail') then
local a = v:Clone()
a.Enabled = true
a.Attachment0 = basketball.A0
a.Attachment1 = basketball.A1
a.Parent = basketball
table.insert(oldBallEffects, a)
end
if v.Name == 'EffectAtt' then
for _,effect in next, v:GetChildren() do
local newEffect = effect:Clone()
newEffect.Parent = basketball.A0
table.insert(oldBallEffects, newEffect)
end
end
if v.Name == 'EffectAtt2' then
for _,effect in next, v:GetChildren() do
local newEffect = effect:Clone()
newEffect.Parent = basketball.A1
table.insert(oldBallEffects, newEffect)
end
end
if v:IsA('ParticleEmitter') then
v.Parent = basketball
table.insert(oldBallEffects, v)
end
end
end
local function changeEmote(name: string)
local realName = getRealItemName('Emotes', name)
data.Emotes.Equipped = realName
end
local function changeBallSkin(ball: Tool | Part)
if ball and currentSkin then
local skinData = getItemDataByName('Skins', currentSkin)
if ball.Parent == character then
ball:WaitForChild('Attach')
end
local attach = ball:FindFirstChild('Attach') or ball
WaitForChildWhichIsA(attach, 'SpecialMesh')
if typeof(skinData[3]) == 'number' then
attach.Transparency = 0
attach:FindFirstChildWhichIsA('SpecialMesh').MeshId = 'rbxassetid://14536927547'
attach:FindFirstChildWhichIsA('SpecialMesh').TextureId = 'rbxassetid://' .. skinData[3]
end
if typeof(skinData[3]) == 'table' then
attach.Transparency = 1
attach:FindFirstChildWhichIsA('SpecialMesh').TextureId = ''
attach:FindFirstChildWhichIsA('SpecialMesh').MeshId = 'rbxassetid://' .. skinData[4]
end
if ball.Parent == character then
applyBallAppearance(currentSkin)
end
end
end
local function changeBanner(name: string)
local bannerName = getRealItemName('Banners', name)
local newBg = bannerAssets:FindFirstChild(bannerName)
if not newBg then
return
end
local infoUi = character.HumanoidRootPart.Info
local currentBg = infoUi.BG
if infoUi:FindFirstChild('Frame') then
infoUi.Frame:Destroy()
end
local score = currentBg.Score.Record.Text
local streak = currentBg.Streak.Title.Text
currentBg:Destroy()
local newBgFrame = newBg.BG:Clone()
local newAnimFrame = newBg:FindFirstChild('Frame')
if newAnimFrame then
newAnimFrame = newAnimFrame:Clone()
newAnimFrame.ZIndex = 0
newAnimFrame.Parent = infoUi
end
newBgFrame.UsernameBox.Username.Text = localPlayer.Name
newBgFrame.Streak.Title.Text = streak
newBgFrame.Score.Record.Text = score
newBgFrame.Parent = infoUi
end
local function newEquip(category: string, name: string)
for i,v in next, data[category].Inventory do
if v[1] == name then
data[category].Inventory[i][2] = true
else
data[category].Inventory[i][2] = false
end
end
end
for _, category in next, inventoryFrames:GetChildren() do
if not newInventory[category.Name] then continue end
for _, item in next, category:GetChildren() do
if item:IsA('ImageButton') then
if item.Name:match('Model') then continue end
if category.Name == 'Banners' then
local bannerName = getRealItemName('Banners', item.Name)
item.Icon.Image = bannerAssets[bannerName].BG.BasicBanner.Image
end
hookfunction(getconnections(item.MouseButton1Click)[1].Function, function() end)
item.MouseButton1Click:Connect(function()
unequipAll(category.Name)
newEquip(category.Name, item.Name)
item.Using.Visible = true
if category.Name == 'Skins' then
currentSkin = item.Name
changeBallSkin(ball)
elseif category.Name == 'Emotes' then
currentEmote = item.Name
changeEmote(currentEmote)
elseif category.Name == 'Banners' then
currentBanner = item.Name
changeBanner(currentBanner)
elseif category.Name == 'Effects' then
currentEffect = item.Name
end
end)
end
end
end
local dunkInfo = storeFrames.Dunks.Info
local equipDunkButton = dunkInfo.Buy
for _,dunkItem in next, storeFrames.Dunks.List:GetChildren() do
if dunkItem:IsA('ImageButton') then
hookfunction(getconnections(dunkItem.MouseButton1Click)[1].Function, function()
local dunkName = dunkItem.Name
dunkInfo.Title.Text = dunkItem.Title.Text
if dunks[dunkName] then
equipDunkButton.UIGradient.Color = storeButtons.Equipped.Color
equipDunkButton.Title.Text = storeButtons.Equipped.Text
equipDunkbutton.Image = storeButtons.Equipped.Image
else
equipDunkButton.UIGradient.Color = storeButtons.Equip.Color
equipDunkButton.Title.Text = storeButtons.Equip.Text
equipDunkButton.Image = storeButtons.Equip.Image
end
end)
end
end
oldEquipDunk = hookfunction(getconnections(equipDunkButton.MouseButton1Click)[1].Function, function()
local dunkName = getRealItemName('Dunks', storeFrames.Dunks.Info.Title.Text)
for dunkState,_ in next, dunks do
dunks[dunkState] = false
end
dunks[dunkName] = true
data.Dunks.Equipped = dunkName
equipDunkButton.UIGradient.Color = storeButtons.Equipped.Color
equipDunkButton.Title.Text = storeButtons.Equipped.Text
end)
local function ballAdded()
character.ChildAdded:Connect(function(ballObj: Tool)
if ballObj.Name ~= 'Basketball' then return end
ball = ballObj
if currentSkin then
changeBallSkin(ball)
end
ball.AncestryChanged:Connect(function()
for i,v in next, oldEffects do
v.Parent = nil
v:Destroy()
end
changeBallSkin(getMyWorkspaceBall())
end)
end)
end
localPlayer.CharacterAdded:Connect(ballAdded)
ballAdded()
character.ChildAdded:Connect(function(ballObj: Tool)
if ballObj.Name ~= 'Basketball' then return end
ball = ballObj
if currentSkin then
changeBallSkin(ball)
end
ball.AncestryChanged:Connect(function()
for i,v in next, oldEffects do
v.Parent = nil
v:Destroy()
end
changeBallSkin(getMyWorkspaceBall())
end)
end)
local c = require(game.ReplicatedStorage.Controllers.VisualController.TOOL_Emotes)
oldEffect = hookfunction(visuals.Effect, function(self, effect, ...)
local args = {...}
if effect == 'StartBallEffect' then
local effectOwner = args[3]
if effectOwner == character.HumanoidRootPart then
local effectName = getRealItemName('Effects', currentEffect) or 'Default'
args[1] = effectName or 'Default'
local ball = sharedUtil.Ball:GetClosestBall(localPlayer)
applyBallEffects(effectName, ball)
c:Emote(data.Emotes.Equipped)
end
end
if effect == 'BallEffect' then
local effectBall = args[3]
if effectBall == sharedUtil.Ball:GetClosestBall(localPlayer) then
for _, effectObj in next, oldBallEffects do
effectObj.Parent = nil
effectObj:Destroy()
end
local effectName = getRealItemName('Effects', currentEffect)
args[1] = effectName or 'Default'
end
end
return oldEffect(self, effect, unpack(args))
end)
end
unlockAll()
]])Commentaires (0)
Connectez-vous pour participer à la conversation
- Soyez le premier à commenter.
Questions fréquentes
- Comment utiliser le script Unlock All Open Source ?
- Copiez le code ci-dessus, ouvrez votre exécuteur Roblox, collez le code et appuyez sur exécuter pendant que vous êtes dans le jeu. Les fonctionnalités s'activent instantanément une fois le script lancé.
- Le script Unlock All Open Source est-il gratuit ?
- Oui. Ce script est gratuit à copier et utiliser. S'il utilise un système de clé, suivez le lien « Obtenir la clé » pour le débloquer gratuitement.
- Le script Unlock All Open Source est-il sûr à utiliser ?
- Le code source complet est affiché sur cette page pour que vous puissiez lire exactement ce qu'il fait avant de l'exécuter. Utilisez toujours un exécuteur de confiance, et n'oubliez pas que l'utilisation de scripts est contraire aux conditions d'utilisation de Roblox — utilisez-les à vos propres risques.
- Quel exécuteur fonctionne avec Unlock All Open Source ?
- Ce script fonctionne avec la plupart des exécuteurs Roblox populaires. Consultez notre page d'exécuteurs pour trouver un exécuteur gratuit ou payant fiable pour votre appareil.