Model inserter
Key RequiredUniversal

Model inserter

Universal Scriptstyearstyear 963 views 200 executesUpdated Feb 26, 2026
5.0/ 5(3 votes)
30100% Positive
Lua Script•238 lines (6005 chars)
local Players = game:GetService("Players")

local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()

player.CharacterAdded:Connect(function(c)
	character = c
end)

local function createGui()
	local old = player.PlayerGui:FindFirstChild("ModelInserter")
	if old then
		old:Destroy()
	end

	local gui = Instance.new("ScreenGui")
	gui.Name = "ModelInserter"
	gui.ResetOnSpawn = false
	gui.Parent = player:WaitForChild("PlayerGui")

	local frame = Instance.new("Frame")
	frame.Size = UDim2.new(0,360,0,210)
	frame.Position = UDim2.new(0.5,-180,0.5,-105)
	frame.BackgroundColor3 = Color3.fromRGB(20,20,30)
	frame.Parent = gui
	frame.Active = true
	frame.Draggable = true

	local corner = Instance.new("UICorner")
	corner.CornerRadius = UDim.new(0,18)
	corner.Parent = frame

	local title = Instance.new("TextLabel")
	title.Size = UDim2.new(1,0,0,40)
	title.BackgroundTransparency = 1
	title.Text = "Model Inserter"
	title.Font = Enum.Font.GothamBold
	title.TextSize = 20
	title.TextColor3 = Color3.new(1,1,1)
	title.Parent = frame

	local hideBtn = Instance.new("TextButton")
	hideBtn.Size = UDim2.new(0,35,0,35)
	hideBtn.Position = UDim2.new(1,-40,0,2)
	hideBtn.Text = "-"
	hideBtn.Font = Enum.Font.GothamBold
	hideBtn.TextSize = 18
	hideBtn.BackgroundTransparency = 1
	hideBtn.TextColor3 = Color3.new(1,1,1)
	hideBtn.Parent = frame

	local input = Instance.new("TextBox")
	input.Size = UDim2.new(1,-30,0,40)
	input.Position = UDim2.new(0,15,0,55)
	input.PlaceholderText = "Enter Asset ID"
	input.Text = ""
	input.Font = Enum.Font.Gotham
	input.TextSize = 16
	input.TextColor3 = Color3.new(1,1,1)
	input.BackgroundColor3 = Color3.fromRGB(35,35,45)
	input.Parent = frame

	local inputCorner = Instance.new("UICorner")
	inputCorner.CornerRadius = UDim.new(0,12)
	inputCorner.Parent = input

	local insertBtn = Instance.new("TextButton")
	insertBtn.Size = UDim2.new(1,-30,0,40)
	insertBtn.Position = UDim2.new(0,15,0,105)
	insertBtn.Text = "Insert Model"
	insertBtn.Font = Enum.Font.GothamBold
	insertBtn.TextSize = 17
	insertBtn.TextColor3 = Color3.new(1,1,1)
	insertBtn.BackgroundColor3 = Color3.fromRGB(0,140,255)
	insertBtn.Parent = frame

	local btnCorner = Instance.new("UICorner")
	btnCorner.CornerRadius = UDim.new(0,12)
	btnCorner.Parent = insertBtn

	local tpSpawnBtn = Instance.new("TextButton")
	tpSpawnBtn.Size = UDim2.new(0.5,-20,0,35)
	tpSpawnBtn.Position = UDim2.new(0,15,0,155)
	tpSpawnBtn.Text = "TP Spawn"
	tpSpawnBtn.Font = Enum.Font.GothamBold
	tpSpawnBtn.TextSize = 14
	tpSpawnBtn.TextColor3 = Color3.new(1,1,1)
	tpSpawnBtn.BackgroundColor3 = Color3.fromRGB(0,200,120)
	tpSpawnBtn.Parent = frame

	local tpCenterBtn = Instance.new("TextButton")
	tpCenterBtn.Size = UDim2.new(0.5,-20,0,35)
	tpCenterBtn.Position = UDim2.new(0.5,5,0,155)
	tpCenterBtn.Text = "TP Center"
	tpCenterBtn.Font = Enum.Font.GothamBold
	tpCenterBtn.TextSize = 14
	tpCenterBtn.TextColor3 = Color3.new(1,1,1)
	tpCenterBtn.BackgroundColor3 = Color3.fromRGB(200,120,0)
	tpCenterBtn.Parent = frame

	local hidden = false
	hideBtn.MouseButton1Click:Connect(function()
		hidden = not hidden
		input.Visible = not hidden
		insertBtn.Visible = not hidden
		tpSpawnBtn.Visible = not hidden
		tpCenterBtn.Visible = not hidden
		frame.Size = hidden and UDim2.new(0,360,0,40) or UDim2.new(0,360,0,210)
	end)

	return input, insertBtn, tpSpawnBtn, tpCenterBtn
end

local function getExtremelyFarPosition()
	return Vector3.new(
		math.random(2000000,3000000),
		math.random(800000,1200000),
		math.random(2000000,3000000)
	)
end

local function getAllParts(container)
	local parts = {}
	for _,v in pairs(container:GetDescendants()) do
		if v:IsA("BasePart") then
			table.insert(parts,v)
		end
	end
	return parts
end

local function removeInvisibleParts(container)
	for _,v in pairs(container:GetDescendants()) do
		if v:IsA("BasePart") and v.Transparency >= 1 then
			v:Destroy()
		end
	end
end

local function getCenterPart(container)
	local parts = getAllParts(container)
	if #parts == 0 then return nil end

	local total = Vector3.zero
	for _,p in pairs(parts) do
		total += p.Position
	end

	local center = total / #parts
	local closest = parts[1]
	local dist = (closest.Position - center).Magnitude

	for _,p in pairs(parts) do
		local d = (p.Position - center).Magnitude
		if d < dist then
			closest = p
			dist = d
		end
	end

	return closest
end

local function getSpawnPart(container)
	for _,v in pairs(container:GetDescendants()) do
		if v:IsA("BasePart") and string.find(string.lower(v.Name),"spawn") then
			return v
		end
	end
	return nil
end

local currentModel = nil

local function prepareModel(model, position)
	removeInvisibleParts(model)

	for _,v in pairs(model:GetDescendants()) do
		if v:IsA("BasePart") then
			v.Anchored = true
			v.CanCollide = true
			v.Transparency = 0
		end
	end

	if model:IsA("Model") then
		model:PivotTo(CFrame.new(position))
	end
end

local function insertModel(assetId)
	local id = tonumber(assetId)
	if not id then return end

	local success, objects = pcall(function()
		return game:GetObjects("rbxassetid://"..id)
	end)

	if not success or not objects or #objects == 0 then return end

	local model = objects[1]
	model.Parent = workspace

	local farPos = getExtremelyFarPosition()
	prepareModel(model, farPos)

	currentModel = model
end

local function teleportTo(part)
	if character and character:FindFirstChild("HumanoidRootPart") and part then
		character.HumanoidRootPart.CFrame = part.CFrame + Vector3.new(0,5,0)
	end
end

local inputBox, insertButton, tpSpawnBtn, tpCenterBtn = createGui()

insertButton.MouseButton1Click:Connect(function()
	insertModel(inputBox.Text)
end)

tpSpawnBtn.MouseButton1Click:Connect(function()
	if currentModel then
		local spawn = getSpawnPart(currentModel)
		if spawn then
			teleportTo(spawn)
		end
	end
end)

tpCenterBtn.MouseButton1Click:Connect(function()
	if currentModel then
		local centerPart = getCenterPart(currentModel)
		if centerPart then
			teleportTo(centerPart)
		end
	end
end)

Features & Information

Model inserter This script is client-sided To insert a model you must go to roblox marketplace get a model ID and then press Insert I recommend models like nn_russia, gm_research,nn_crossroad
#Exploit

Community Comments (3)

Evil_ADSKerEvil_ADSKerFeb 26, 2026

does it works with the client side tool to damage or kill the npc?

Replying to @Evil_ADSKer
styearstyearFeb 26, 2026

@Evil_ADSKer I dont know I haven't tried for tools

Evil_ADSKerEvil_ADSKerFeb 26, 2026

no im not talking about the player is the npc

More Scripts for Universal Scripts