Rbxmx loader the model goes to workspace
Key RequiredUniversal

Rbxmx loader the model goes to workspace

Universal Scriptsjjsksjsnnnsnssjjsksjsnnnsns 559 views 58 executesUpdated Apr 4, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•73 lines (2582 chars)
local function clean(value)
    return value:match('<!%[CDATA%[(.-)%]%]>') or value
end

local function parseProperties(obj, block)
    for propName, value in block:gmatch('<string name="(.-)">(.-)</string>') 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('<Content name="(.-)">(.-)</Content>') do
        local val = clean(value)
        if val and val:find("rbxassetid://") then
            pcall(function() obj[propName] = val end)
        end
    end

    local cframeMatch = block:match('<CoordinateFrame name="Grip">(.-)</CoordinateFrame>')
    if cframeMatch and obj:IsA("Tool") then
        local x = tonumber(cframeMatch:match('<X>(.-)</X>'))
        local y = tonumber(cframeMatch:match('<Y>(.-)</Y>'))
        local z = tonumber(cframeMatch:match('<Z>(.-)</Z>'))
        local rx = tonumber(cframeMatch:match('<R00>(.-)</R00>'))
        local ry = tonumber(cframeMatch:match('<R01>(.-)</R01>'))
        local rz = tonumber(cframeMatch:match('<R02>(.-)</R02>'))
        local r10 = tonumber(cframeMatch:match('<R10>(.-)</R10>'))
        local r11 = tonumber(cframeMatch:match('<R11>(.-)</R11>'))
        local r12 = tonumber(cframeMatch:match('<R12>(.-)</R12>'))
        local r20 = tonumber(cframeMatch:match('<R20>(.-)</R20>'))
        local r21 = tonumber(cframeMatch:match('<R21>(.-)</R21>'))
        local r22 = tonumber(cframeMatch:match('<R22>(.-)</R22>'))

        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('<Item class=".-">.-</Item>') do
        local class = item:match('<Item class="(.-)"')
        local obj
        pcall(function() obj = Instance.new(class) end)
        if obj then
            local rawName = item:match('<string name="Name">(.-)</string>')
            obj.Name = rawName and clean(rawName) or class

            for propBlock in item:gmatch('<Properties>(.-)</Properties>') do
                parseProperties(obj, propBlock)
            end

            obj.Parent = model
        end
    end

    model.Parent = workspace
    return model
end

loadRBXMX("PUT_RBXMX_URL_HERE")

Features & Information

Rbxmx loader The model parents to workspace!

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts