[ad_1]
Created by siper#9938
Features:
- UNLOCK ALL
- DEV NOTES:
- this will not change the gun data so it will not have the same stats as the unlocked gun instead so
- thats why some guns wont work the same.
-- made by siper#9938
-- modules
local network, char, loadgun, loadknife; do
for _, object in next, getgc(true) do
if (typeof(object) == "table") then
if (rawget(object, "send")) then
network = object;
elseif (rawget(object, "setbasewalkspeed")) then
char = object;
end
elseif (typeof(object) == "function") then
local name = debug.getinfo(object).name;
if (name == "loadgun") then
loadgun = object;
elseif (name == "loadknife") then
loadknife = object;
end
end
end
end
-- services
local replicatedStorage = game:GetService("ReplicatedStorage");
-- cache
local content = replicatedStorage:WaitForChild("Content");
local productionContent = content:WaitForChild("ProductionContent");
local attachmentModules = productionContent:WaitForChild("AttachmentModules");
local gunModules = productionContent:WaitForChild("GunModules");
-- stored data
local gunIgnore = {"JUGGUN", "HK417Old", "PAINTBALL GUN", "RAILGUN OLD", "PPK12", "SVK12E", "MG42"};
local weaponData = {};
local attachmentData = {};
local primaryClasses = { "ASSAULT", "BATTLE", "CARBINE", "SHOTGUN", "PDW", "DMR", "LMG", "SNIPER" };
local generalClassData = {
["ASSAULT"] = "AK12",
["BATTLE"] = "AK12",
["CARBINE"] = "M4A1",
["SHOTGUN"] = "KSG 12",
["PDW"] = "MP5K",
["DMR"] = "INTERVENTION",
["LMG"] = "COLT LMG",
["SNIPER"] = "INTERVENTION",
["PISTOL"] = "M9",
["MACHINE PISTOL"] = "M9",
["REVOLVER"] = "M9",
["OTHER"] = "M9",
["FRAGMENTATION"] = "M67 FRAG",
["HIGH EXPLOSIVE"] = "M67 FRAG",
["IMPACT"] = "M67 FRAG",
["ONE HAND BLADE"] = "KNIFE",
["TWO HAND BLADE"] = "KNIFE",
["ONE HAND BLUNT"] = "MAGLITE CLUB",
["TWO HAND BLUNT"] = "HOCKEY STICK",
};
local weapons = {};
-- hooks
do
local oldNetworkSend = network.send; network.send = function(self, name, ...)
local args = {...};
if (name == "changewep") then
weaponData[args[1]] = args[2];
args[2] = generalClassData[weapons[args[2]].type];
end
if (name == "changeatt") then
attachmentData[args[2]] = args[3];
return
end
return oldNetworkSend(self, name, unpack(args));
end
local oldLoadgrenade = char.loadgrenade; char.loadgrenade = function(self, name, ...)
name = weaponData["Grenade"] or name;
return oldLoadgrenade(self, name, ...);
end;
local oldLoadknife; oldLoadknife = hookfunction(loadknife, function(name, ...)
name = weaponData["Knife"] or name;
return oldLoadknife(name, ...);
end);
local oldLoadgun; oldLoadgun = hookfunction(loadgun, function(name, magsize, sparerounds, attachments, ...)
local gunData = weapons[name];
local newName = table.find(primaryClasses, gunData.type) and weaponData["Primary"] or weaponData["Secondary"];
name = (newName and newName or name);
local attachs = attachmentData[name];
if (attachs) then
attachments = attachs;
end
return oldLoadgun(name, magsize, sparerounds, attachments, ...);
end);
end
-- init
do
for _, module in next, gunModules:GetChildren() do
if (not table.find(gunIgnore, module.Name)) then
local data = require(module);
weapons[module.Name] = data;
end
end
for _, module in next, attachmentModules:GetChildren() do
local data = require(module);
data.unlockkills = 0;
end
for _, module in next, gunModules:GetChildren() do
if (not table.find(gunIgnore, module.Name)) then
local data = require(module);
data.unlockrank = 0;
data.adminonly = false;
data.supertest = false;
data.exclusiveunlock = false;
data.hideunlessowned = false;
data.adminonly = false;
end
end
end
ENJOY!
Warning: DO NOT DOWNLOAD anything from this page, you’re only here to copy the script!
[ad_2]