--PFService by scandalous#0069
local RG = rawget
local GC = getgc(true)
local Modules = {}
local Guns = {}
for i = 1, #GC do
local v = GC[i]
if typeof(v) == "table" then
if RG(v, "_requireStack") then
warn("Found module")
local cache = RG(v, "_cache")
if cache then
warn("Found cache")
Modules = cache
end
end
end
end
for _, Module in next, game:GetService("ReplicatedStorage"):WaitForChild("Content"):WaitForChild("ProductionContent"):WaitForChild("WeaponDatabase"):GetDescendants() do
if Module:IsA("ModuleScript")then
local Gun = require(Module)
table.insert(Guns, Gun)
end
end
print("Found",#Guns,"guns")
local self = {}
function self:Require(module)
local cache = Modules[module]
local v8 = string.format("Module %q not found!", module)
if not cache then
error(v8, 0)
end
return cache.module
end
function self:RequireGuns()
return Guns
end
function self:GetModules()
return Modules
end
function self:GetModulesWithIndex(Key, Type)
local Found = {}
for Name, Module in next, Modules do
if typeof(Module.module) == "table" then
local Data = Module.module[Key]
if Data ~= nil and typeof(Data) == Type then
Found[Name] = Module.module
end
end
end
return Found
end
local ReplicationInterface = self:Require("ReplicationInterface")
local Replication = {}
function Replication:GetCharacterFromPlayer(player)
for _, Model in ipairs(workspace.Players:GetDescendants()) do
if Model.Name == "Player" then
local head = Model:FindFirstChild("Head")
if head then
local Player = ReplicationInterface.getPlayerFromBodyPart(head)
if Player and Player == player then
return Model
end
end
end
end
end
self.Replication = Replication
function self:Destroy()
warn("Cleaning up PFService")
end
return self