Open source release — skin, wrap, charm & finisher changer. Full source in the script; use it however you want. Report bugs in comments if something breaks after a game update.
1

Reviewed by QueueSherlockPaid revieweron How review works
Cosmetics changer (open source) is a RIVALS script for Roblox, uploaded to ScriptBlox on Oct 3, 2026. Reviewed by a person on Oct 8, 2026.
100% say it works · 1 report in the last 2 weeks
Skin changer — Works as intended Wrap changer — Works as intended, but can be buggy when applying invalid wraps or wraps that aren't in the game Charm changer — Slightly buggy, but works fine on most items Finisher changer — Slightly buggy Tested with Potassium and Volt
Open source release — skin, wrap, charm & finisher changer. Full source in the script; use it however you want. Report bugs in comments if something breaks after a game update.
--[[
do with this as u wish i just seen that nobody really made one thats open source so here u go
]]
local localPlayer = game:GetService("Players").LocalPlayer
local RS = game:GetService("ReplicatedStorage")
getgenv().Rivals_getOthLibrary = function()
if typeof(oth) == "table" then return oth end
if typeof(getgenv().oth) == "table" then return getgenv().oth end
return nil
end
getgenv().Rivals_withOthHook = function(target, hookBody)
if type(target) ~= "function" or type(hookBody) ~= "function" then return nil, false end
local othLib = getgenv().Rivals_getOthLibrary()
if othLib and type(othLib.hook) == "function" then
local original
local ok = pcall(function()
original = othLib.hook(target, function(...)
local root = original
if type(othLib.get_root_callback) == "function" then
local fromThread = othLib.get_root_callback()
if type(fromThread) == "function" then root = fromThread end
end
if type(root) ~= "function" then error("oth root missing") end
return hookBody(function(...) return root(...) end, ...)
end)
end)
if ok then
if type(original) == "function" then return original, true end
if type(othLib.get_root_callback) == "function" then return target, true end
end
end
local orig = target
return function(...)
return hookBody(function(...) return orig(...) end, ...)
end, false
end
getgenv().Rivals_othUnhook = function(target)
if type(target) ~= "function" then return false end
local othLib = getgenv().Rivals_getOthLibrary()
if othLib and type(othLib.unhook) == "function" then
![[🎃] RIVALS](/images/script/17625359962-1740013283779.png)
![[🎃] RIVALS](/images/script/17625359962-1726152330516.png)
![[🎃] RIVALS](/images/script/17625359962-1790601872306.png)
![[🎃] RIVALS](/images/script/17625359962-1788667362743.jpg)
![[🎃] RIVALS](/images/script/17625359962-1786199589306.png)