Old Roblox Forcefield
Key RequiredUniversal

Old Roblox Forcefield

Universal Scriptpeakcoileraccountpeakcoileraccount 1.1K views 1.9K executesUpdated Jan 9, 2026
5.0/ 5(2 votes)
20100% Positive
Lua Script•324 lines (8631 chars)
-- OldForceFields.lua (client)
local plr = game:GetService("Players").LocalPlayer
local TweenService = game:GetService("TweenService")
local pg = plr:WaitForChild("PlayerGui")

local sg = Instance.new("ScreenGui")
sg.Name = "OldForceFieldsUI"
sg.Parent = pg

local frame = Instance.new("Frame")
frame.Size = UDim2.new(0,260,0,180)
frame.Position = UDim2.new(0.5,-130,0,-200)
frame.BackgroundColor3 = Color3.new(1,1,1)
frame.BorderColor3 = Color3.new(0,0,0)
frame.Parent = sg

local title = Instance.new("TextLabel")
title.Size = UDim2.new(1,0,0,40)
title.BackgroundTransparency = 1
title.Text = "Old Forcefield"
title.Font = Enum.Font.Legacy
title.TextSize = 24
title.TextColor3 = Color3.new(0,0,0)
title.Parent = frame

local b1 = Instance.new("TextButton")
b1.Size = UDim2.new(1,-20,0,40)
b1.Position = UDim2.new(0,10,0,60)
b1.Text = "Early 2006"
b1.Font = Enum.Font.Legacy
b1.TextSize = 20
b1.BackgroundColor3 = Color3.new(1,1,1)
b1.BorderColor3 = Color3.new(0,0,0)
b1.TextColor3 = Color3.new(0,0,0)
b1.Parent = frame

local b2 = Instance.new("TextButton")
b2.Size = UDim2.new(1,-20,0,40)
b2.Position = UDim2.new(0,10,0,110)
b2.Text = "Mid 2012"
b2.Font = Enum.Font.Legacy
b2.TextSize = 20
b2.BackgroundColor3 = Color3.new(1,1,1)
b2.BorderColor3 = Color3.new(0,0,0)
b2.TextColor3 = Color3.new(0,0,0)
b2.Parent = frame

-- pop-in tween
TweenService:Create(frame, TweenInfo.new(0.35, Enum.EasingStyle.Linear), {
	Position = UDim2.new(0.5,-130,0.5,-90)
}):Play()

--------------------------------------------------------------------
-- HOVER EFFECT FOR MID 2012 BUTTON (ALL outlines go red)
--------------------------------------------------------------------
local hovering = false

local function applyHover()
	if hovering then
		frame.BackgroundColor3 = Color3.new(0,0,0)
		frame.BorderColor3 = Color3.new(1,0,0)

		title.TextColor3 = Color3.new(1,1,1)

		b1.BackgroundColor3 = Color3.new(0,0,0)
		b1.TextColor3 = Color3.new(1,1,1)
		b1.BorderColor3 = Color3.new(1,0,0)

		b2.BackgroundColor3 = Color3.new(0,0,0)
		b2.TextColor3 = Color3.new(1,1,1)
		b2.BorderColor3 = Color3.new(1,0,0)
	else
		frame.BackgroundColor3 = Color3.new(1,1,1)
		frame.BorderColor3 = Color3.new(0,0,0)

		title.TextColor3 = Color3.new(0,0,0)

		b1.BackgroundColor3 = Color3.new(1,1,1)
		b1.TextColor3 = Color3.new(0,0,0)
		b1.BorderColor3 = Color3.new(0,0,0)

		b2.BackgroundColor3 = Color3.new(1,1,1)
		b2.TextColor3 = Color3.new(0,0,0)
		b2.BorderColor3 = Color3.new(0,0,0)
	end
end

b2.MouseEnter:Connect(function()
	hovering = true
	applyHover()
end)

b2.MouseLeave:Connect(function()
	hovering = false
	applyHover()
end)

------------------------------------------------------------
-- EARLY 2006
------------------------------------------------------------
local function run2006()
	sg:Destroy()

	local RunService = game:GetService("RunService")
	local Players = game:GetService("Players")
	local lp = Players.LocalPlayer

	local ffpart

	local function createFFPart()
		if ffpart and ffpart.Parent then return ffpart end
		ffpart = Instance.new("Part")
		ffpart.Name = "FF"
		ffpart.Size = Vector3.new(8,8,8)
		ffpart.Shape = Enum.PartType.Ball
		ffpart.BrickColor = BrickColor.new("Steel blue")
		ffpart.Material = Enum.Material.Plastic
		ffpart.Transparency = 0.5
		ffpart.Anchored = true
		ffpart.CanCollide = false
		ffpart.CanTouch = false
		ffpart.Massless = true
		ffpart.Parent = workspace
		return ffpart
	end

	local function destroyFFPart()
		if ffpart then
			if ffpart.Parent then ffpart:Destroy() end
			ffpart = nil
		end
	end

	local function hideForceFields(char)
		for _, v in ipairs(char:GetChildren()) do
			if v:IsA("ForceField") then v.Visible = false end
		end
		char.ChildAdded:Connect(function(c)
			if c:IsA("ForceField") then c.Visible = false end
		end)
	end

	RunService.RenderStepped:Connect(function()
		local char = lp.Character
		if not char then destroyFFPart() return end

		local hrp = char:FindFirstChild("HumanoidRootPart")
		local hasFF = char:FindFirstChildOfClass("ForceField")

		if hasFF and hrp then
			createFFPart()
			if ffpart and ffpart.Parent then ffpart.CFrame = hrp.CFrame end
		else
			destroyFFPart()
		end
	end)

	lp.CharacterAdded:Connect(function(char)
		char:WaitForChild("HumanoidRootPart", 5)
		hideForceFields(char)
	end)

	if lp.Character then hideForceFields(lp.Character) end
end

------------------------------------------------------------
-- MID 2012
------------------------------------------------------------
local function run2012()
	sg:Destroy()

	local Players = game:GetService("Players")
	local RunService = game:GetService("RunService")
	local TweenService = game:GetService("TweenService")
	local lp = Players.LocalPlayer

	local ffFolder = Instance.new("Folder")
	ffFolder.Name = "FFCloneHolder"
	ffFolder.Parent = workspace

	local function getTorso(c)
		return c:FindFirstChild("UpperTorso") or c:FindFirstChild("Torso")
	end

	local function buildFF()
		ffFolder:ClearAllChildren()

		local model = Instance.new("Model")
		model.Name = "Forcefield2012"
		model.Parent = ffFolder

		local main = Instance.new("Part")
		main.Name = "VisualForcefield2012"
		main.Anchored = true
		main.CanCollide = false
		main.CastShadow = false
		main.Color = Color3.fromRGB(86,125,142)
		main.Transparency = 1
		main.Size = Vector3.new(1,1,1)
		main.Parent = model

		local mc = Instance.new("Part")
		mc.Name = "MainCircle"
		mc.Anchored = true
		mc.CanCollide = false
		mc.CastShadow = false
		mc.Color = Color3.fromRGB(0,0,128)
		mc.Material = Enum.Material.Neon
		mc.Transparency = 0.6
		mc.Size = Vector3.new(0.9,0.9,0.9)
		mc.Parent = model
		local mcM = Instance.new("SpecialMesh")
		mcM.MeshType = Enum.MeshType.Sphere
		mcM.Scale = Vector3.new(7,7,7)
		mcM.Parent = mc

		local oc = Instance.new("Part")
		oc.Name = "OuterCircle"
		oc.Anchored = true
		oc.CanCollide = false
		oc.CastShadow = false
		oc.Color = Color3.fromRGB(0,0,128)
		oc.Material = Enum.Material.Neon
		oc.Transparency = 0.95
		oc.Size = Vector3.new(0.9,0.9,0.9)
		oc.Parent = model
		local ocM = Instance.new("SpecialMesh")
		ocM.MeshType = Enum.MeshType.Sphere
		ocM.Scale = Vector3.new(7.7,7.7,7.7)
		ocM.Parent = oc

		local sp = Instance.new("Part")
		sp.Name = "Sparkles83"
		sp.Anchored = true
		sp.CanCollide = false
		sp.CastShadow = false
		sp.Transparency = 1
		sp.Size = Vector3.new(5,1,5)
		sp.Parent = model

		local old = Instance.new("ParticleEmitter")
		old.Name = "OldSparkles"
		old.Lifetime = NumberRange.new(3,3)
		old.LightEmission = 1e9
		old.LockedToPart = true
		old.Rate = 7
		old.RotSpeed = NumberRange.new(25,25)
		old.Rotation = NumberRange.new(8,8)
		old.Size = NumberSequence.new(1)
		old.Speed = NumberRange.new(2,4)
		old.Texture = "rbxassetid://6334617852"
		old.Transparency = NumberSequence.new(0.5,1)
		old.Parent = sp

		local rays = Instance.new("ParticleEmitter")
		rays.Name = "Rays"
		rays.Lifetime = NumberRange.new(1,1)
		rays.LightEmission = 1
		rays.LockedToPart = true
		rays.Rate = 100
		rays.RotSpeed = NumberRange.new(-50,50)
		rays.Rotation = NumberRange.new(-180,180)
		rays.Size = NumberSequence.new(2)
		rays.Speed = NumberRange.new(0,0)
		rays.Texture = "rbxassetid://1084975295"
		rays.Transparency = NumberSequence.new(0.4,1)
		rays.Parent = model

		task.spawn(function()
			while model.Parent do
				TweenService:Create(mc, TweenInfo.new(0.55, Enum.EasingStyle.Sine), {Transparency = 0.95}):Play()
				TweenService:Create(oc, TweenInfo.new(0.7, Enum.EasingStyle.Sine), {Transparency = 0.6}):Play()
				task.wait(0.55)
				TweenService:Create(oc, TweenInfo.new(0.5, Enum.EasingStyle.Sine), {Transparency = 0.95}):Play()
				TweenService:Create(mc, TweenInfo.new(0.5, Enum.EasingStyle.Sine), {Transparency = 0.6}):Play()
				task.wait(0.35)
			end
		end)

		return model
	end

	local currentModel = nil
	local char = nil

	local function watchFF()
		while true do
			local ff = char and char:FindFirstChildOfClass("ForceField")
			if ff then
				ff.Visible = false
				if not currentModel then currentModel = buildFF() end
			else
				if currentModel then
					currentModel:Destroy()
					currentModel = nil
				end
			end
			task.wait(0.1)
		end
	end

	local function hook(c)
		char = c
		task.spawn(watchFF)
	end

	plr.CharacterAdded:Connect(hook)
	if plr.Character then hook(plr.Character) end

	RunService.PreRender:Connect(function()
		if not currentModel or not char then return end
		local t = getTorso(char)
		if not t then return end

		for _,p in currentModel:GetDescendants() do
			if p:IsA("BasePart") then
				p.CFrame = t.CFrame
			end
		end
	end)
end

b1.MouseButton1Click:Connect(run2006)
b2.MouseButton1Click:Connect(run2012)

Features & Information

Converts the roblox forcefields you pick to the older ones
#Retro

Community Comments (1)

MOCCOHACMOCCOHACJan 22, 2026

YOOO COIL, I'M SYSTEM!!! your script ir really cool, especially the 2012 forcefield! if you're reading this next time u see me enable Conchat so we can chat again!

More Scripts for Universal Scripts