local Rayfield = loadstring(game:HttpGet('https://[Log in to view URL]'))()

local Window = Rayfield:CreateWindow({
   Name = "AGONY HUB",
   Icon = 0, -- Icon in Topbar. Can use Lucide Icons (string) or Roblox Image (number). 0 to use no icon (default).
   LoadingTitle = "INK GAME SCRİPT AGONYHUB",
   LoadingSubtitle = "by agonyoffical1",
       ShowText = "AgonyHub", -- for mobile users to unhide rayfield, change if you'd like
   Theme = "Default", -- Check https://[Log in to view URL]

   ToggleUIKeybind = "Y", -- The keybind to toggle the UI visibility (string like "K" or Enum.KeyCode)

   DisableRayfieldPrompts = false,
   DisableBuildWarnings = false, -- Prevents Rayfield from warning when the script has a version mismatch with the interface

   ConfigurationSaving = {
      Enabled = true,
      FolderName = nil, -- Create a custom folder for your hub/game
      FileName = "agonyhub"
   },

   Discord = {
      Enabled = true, -- Prompt the user to join your Discord server if their executor supports it
      Invite = "https://[Log in to view URL]", -- The Discord invite code, do not include discord.gg/. E.g. discord.gg/ ABCD would be ABCD
      RememberJoins = false -- Set this to false to make them join the discord every time they load it up
   },

   KeySystem = true, -- Set this to true to use our key system
   KeySettings = {
      Title = "INK GAME SCRİPT | AgonyHub",
      Subtitle = "INK GAME SCRİPT",
      Note = "To get key join discord server! https://[Log in to view URL]", -- Use this to tell the user how to get a key
      FileName = "KEY", -- It is recommended to use something unique as other scripts using Rayfield may overwrite your key file
      SaveKey = true, -- The user's key will be saved, but if you change the key, they will be unable to use your script
      GrabKeyFromSite = false, -- If this is true, set Key below to the RAW site you would like Rayfield to get the key from
      Key = {"freeınkgametrialscript910@"} -- List of keys that will be accepted by the system, can be RAW file links (pastebin, github etc) or simple strings ("hello","key22")
   }
})

Rayfield:Notify({
   Title = "Execute Notification",
   Content = "Succesfully Executed AgonyHub",
   Duration = 3,
   Image = 4483362458,
})

local Tab = Window:CreateTab("Main Menu", 4483362458) -- Title, Image
local Section = Tab:CreateSection("Main Cheats")

local Button = Tab:CreateButton({
   Name = "INK Game Cheat",
   Callback = function()
        loadstring(game:HttpGet("https://[Log in to view URL]"))()
   end,
})

local Toggle = Tab:CreateToggle({
   Name = "ESP",
   CurrentValue = false,
   Flag = "ESP", -- A flag is the identifier for the configuration file, make sure every element has a different flag if you're using configuration saving to ensure no overlaps
   Callback = function(Value)
        loadstring(game:HttpGet('https://[Log in to view URL]'))()
   end,
})

local Button = Tab:CreateButton({
   Name = "AİMBOT (NPC)",
   Callback = function()
        local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")

local player = Players.LocalPlayer
local mouse = player:GetMouse()
local camera = workspace.CurrentCamera

-- FOV ayarları
local FOV_RADIUS = 100
local FOV_COLOR = Color3.fromRGB(255, 0, 0)

-- UI Circle (FOV Dairesi)
local ScreenGui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui"))
local Circle = Instance.new("Frame", ScreenGui)
Circle.Size = UDim2.new(0, FOV_RADIUS * 2, 0, FOV_RADIUS * 2)
Circle.BackgroundTransparency = 1

-- UI stroke (çizgi)
local UIStroke = Instance.new("UIStroke", Circle)
UIStroke.Thickness = 2
UIStroke.Color = FOV_COLOR
UIStroke.Transparency = 0
UIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border

-- Daireyi daire yapan şey (mask)
local UICorner = Instance.new("UICorner", Circle)
UICorner.CornerRadius = UDim.new(1, 0)

-- Sağ tık kontrolü
local rightClicking = false

UserInputService.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton2 then
		rightClicking = true
	end
end)

UserInputService.InputEnded:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton2 then
		rightClicking = false
	end
end)

-- NPC olup olmadığını kontrol et (Squid Game askerleri)
local function isTargetNPC(model)
	if model:FindFirstChild("Head") and model:FindFirstChildOfClass("Humanoid") then
		return true
	end
	return false
end

-- FOV içindeki en yakın NPC’yi bul
local function getNearestNPC()
	local nearest = nil
	local minDist = FOV_RADIUS

	for _, model in ipairs(workspace:GetDescendants()) do
		if model:IsA("Model") and isTargetNPC(model) then
			local head = model:FindFirstChild("Head")
			if head then
				local screenPos, onScreen = camera:WorldToViewportPoint(head.Position)
				if onScreen then
					local dist = (Vector2.new(screenPos.X, screenPos.Y) - Vector2.new(mouse.X, mouse.Y)).Magnitude
					if dist <= FOV_RADIUS and dist < minDist then
						minDist = dist
						nearest = head
					end
				end
			end
		end
	end

	return nearest
end

-- Her frame güncelle
RunService.RenderStepped:Connect(function()
	-- Daireyi mouse’a göre hareket ettir
	Circle.Position = UDim2.new(0, mouse.X - FOV_RADIUS, 0, mouse.Y - FOV_RADIUS)

	if rightClicking then
		local target = getNearestNPC()
		if target then
			camera.CFrame = CFrame.new(camera.CFrame.Position, target.Position)
		end
	end
end)

   end,
})

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: