Sword Simulator Macro
Key Required

Sword Simulator Macro

Sword Simulator (Remake)kingdizzy178kingdizzy178 735 views 66 executesUpdated Feb 21, 2026
Unrated
00
Lua Script•154 lines (3748 chars)
local player = game.Players.LocalPlayer
local running = false
local delayTime = 0.03 -- fastest safe speed required 244 fps

-- ===== Macro Logic =====
local function isUsable(obj)
	return obj:IsA("Tool")
		or obj:FindFirstChildOfClass("ClickDetector")
		or obj:IsA("RemoteEvent")
end

local function activate(obj)
	if obj:IsA("Tool") then
		obj.Parent = player.Character
		task.wait()
		obj:Activate()
	end

	local cd = obj:FindFirstChildOfClass("ClickDetector")
	if cd then
		pcall(function()
			fireclickdetector(cd)
		end)
	end

	if obj:IsA("RemoteEvent") then
		pcall(function()
			obj:FireServer()
		end)
	end
end

local function getAllItems()
	local list = {}
	local function scan(container)
		for _, obj in ipairs(container:GetChildren()) do
			if isUsable(obj) then
				table.insert(list, obj)
			end
		end
	end

	if player.Character then scan(player.Character) end
	scan(player.Backpack)
	return list
end

local function startMacro()
	if running then return end
	running = true
	task.spawn(function()
		while running do
			local items = getAllItems()
			for i = 1, #items do
				if not running then break end
				activate(items[i])
				task.wait(delayTime)
			end
		end
	end)
end

local function stopMacro()
	running = false
end

-- ===== Chat Commands =====
player.Chatted:Connect(function(msg)
	local lowerMsg = msg:lower()
	if lowerMsg == "/farm" then
		startMacro()
	elseif lowerMsg == "/unfarm" then
		stopMacro()
	end
end)

-- ===== UI Setup =====
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "MacroUI"
screenGui.Parent = player:WaitForChild("PlayerGui")

-- main frame
local frame = Instance.new("Frame")
frame.Size = UDim2.fromOffset(200, 100)
frame.Position = UDim2.fromScale(0.4,0.4)
frame.BackgroundColor3 = Color3.fromRGB(30,30,30)
frame.BorderSizePixel = 0
frame.Parent = screenGui

-- top draggable bar with title
local topBar = Instance.new("Frame")
topBar.Size = UDim2.fromScale(1,0.25)
topBar.BackgroundColor3 = Color3.fromRGB(50,50,50)
topBar.BorderSizePixel = 0
topBar.Parent = frame

local title = Instance.new("TextLabel")
title.Size = UDim2.fromScale(1,1)
title.BackgroundTransparency = 1
title.Text = "Made By Hexaphytes/Hamza"
title.Font = Enum.Font.Montserrat
title.TextColor3 = Color3.fromRGB(255,255,255)
title.TextScaled = true
title.Parent = topBar

-- toggle button
local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.fromScale(1,0.75)
toggleBtn.Position = UDim2.fromScale(0,0.25)
toggleBtn.Text = "Toggle Farm"
toggleBtn.Font = Enum.Font.Montserrat
toggleBtn.TextColor3 = Color3.fromRGB(255,255,255)
toggleBtn.BackgroundColor3 = Color3.fromRGB(70,70,70)
toggleBtn.Parent = frame

-- ===== Movable Frame Logic =====
local dragging = false
local dragInput, mousePos, framePos

topBar.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 then
		dragging = true
		mousePos = Vector2.new(player:GetMouse().X, player:GetMouse().Y)
		framePos = frame.Position
		input.Changed:Connect(function()
			if input.UserInputState == Enum.UserInputState.End then
				dragging = false
			end
		end)
	end
end)

topBar.InputChanged:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseMovement then
		dragInput = input
	end
end)

game:GetService("UserInputService").InputChanged:Connect(function(input)
	if dragging and input == dragInput then
		local delta = Vector2.new(player:GetMouse().X, player:GetMouse().Y) - mousePos
		frame.Position = UDim2.new(framePos.X.Scale, framePos.X.Offset + delta.X,
		                           framePos.Y.Scale, framePos.Y.Offset + delta.Y)
	end
end)

-- ===== Toggle Button Click =====
toggleBtn.MouseButton1Click:Connect(function()
	if running then
		stopMacro()
	else
		startMacro()
	end
end)

Features & Information

macros
#sword simulator

Community Comments (0)

No comments yet for this script.