local function clean(value)
return value:match('') or value
end
local function parseProperties(obj, block)
for propName, value in block:gmatch('(.-)') do
local val = clean(value)
if val and val:find("rbxassetid://") then
pcall(function() obj[propName] = val end)
end
end
for propName, value in block:gmatch('(.-)') do
local val = clean(value)
if val and val:find("rbxassetid://") then
pcall(function() obj[propName] = val end)
end
end
local cframeMatch = block:match('(.-)')
if cframeMatch and obj:IsA("Tool") then
local x = tonumber(cframeMatch:match('(.-)'))
local y = tonumber(cframeMatch:match('(.-)'))
local z = tonumber(cframeMatch:match('(.-)'))
local rx = tonumber(cframeMatch:match('(.-)'))
local ry = tonumber(cframeMatch:match('(.-)'))
local rz = tonumber(cframeMatch:match('(.-)'))
local r10 = tonumber(cframeMatch:match('(.-)'))
local r11 = tonumber(cframeMatch:match('(.-)'))
local r12 = tonumber(cframeMatch:match('(.-)'))
local r20 = tonumber(cframeMatch:match('(.-)'))
local r21 = tonumber(cframeMatch:match('(.-)'))
local r22 = tonumber(cframeMatch:match('(.-)'))
if x and y and z then
local cf = CFrame.new(x, y, z,
r00, r01, r02,
r10, r11, r12,
r20, r21, r22
)
obj.Grip = cf
end
end
end
local function loadRBXMX(url)
local body = request({Url = url, Method = "GET"}).Body
body = body:gsub('', '')
local model = Instance.new("Model")
model.Name = "LoadedModel"
for item in body:gmatch('- .-
') do
local class = item:match('- (.-)')
obj.Name = rawName and clean(rawName) or class
for propBlock in item:gmatch('(.-)') do
parseProperties(obj, propBlock)
end
obj.Parent = model
end
end
model.Parent = workspace
return model
end
loadRBXMX("PUT_RBXMX_URL_HERE")