
Key Required
Opensource and No Key
Lua Script•727 lines (24580 chars)
--[[
Tr0ngX Fantasy Arena [Magma] Suite - Rayfield Gen 2 Edition (V15.0)
Developer: Tr0ngX
Language: 100% English
Emojis: Zero (Clean ASCII only)
Target Game Metadata:
- Game Name: Fantasy Arena [Magma]
- GameId: 10474700206
- PlaceId: 73227142902215
- Creator: Personal Path
Documentation Reference: https://docs.sirius.menu/llms.txt
--]]
local Rayfield = loadstring(game:HttpGet("https://sirius.menu/gen2"))() or loadstring(game:HttpGet("https://raw.githubusercontent.com/SiriusSoftwareLtd/Rayfield/main/source.lua"))()
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
-- Clean up previous scripts if re-executed
if _G.ProjectRealCleanup then
pcall(_G.ProjectRealCleanup)
end
local Connections = {}
local Running = true
_G.ProjectRealCleanup = function()
Running = false
for _, conn in ipairs(Connections) do
if conn and conn.Disconnect then
conn:Disconnect()
end
end
print("[Tr0ngX Suite V10.2] Cleaned up.")
end
--------------------------------------------------------------------
-- REMOTES (require once, reuse everywhere)
--------------------------------------------------------------------
local Remotes = require(ReplicatedStorage.Shared.Remotes)
local VirtualUser = game:GetService("VirtualUser")
local HttpService = game:GetService("HttpService")
local CONFIG_FILE = "Tr0ngX_ProjectReal_Config.json"
--------------------------------------------------------------------
-- GLOBAL CONFIGURATION
--------------------------------------------------------------------
local Config = {
FloatEnabled = true,
HeightOffset = 24, -- Raised default for 100% safety above all boss hitboxes
AutoCollectShards = true,
ShardDelay = 0.2,
AutoUpgrade = true,
AutoAttack = true,
AutoAim = true,
AntiDeath = true,
AutoAbility = true,
AutoSkipWave = true,
AntiAFK = true,
InfinitePierce = true,
MultiShot = true,
HugeHitbox = true,
UltraHoming = true,
}
local function saveConfig()
pcall(function()
if writefile then
writefile(CONFIG_FILE, HttpService:JSONEncode(Config))
end
end)
end
local function loadConfig()
local success = pcall(function()
if isfile and isfile(CONFIG_FILE) and readfile then
local data = HttpService:JSONDecode(readfile(CONFIG_FILE))
if type(data) == "table" then
for k, v in pairs(data) do
Config[k] = v
end
end
end
end)
return success
end
--------------------------------------------------------------------
-- RAYFIELD GEN 2 UI
--------------------------------------------------------------------
local Window = Rayfield:CreateWindow({
name = "Tr0ngX Fantasy Arena [Magma]",
subtitle = "V15.0 Clean English Suite | GameID: 10474700206",
configuration = {
autoSave = false,
autoLoad = false,
fileName = "Tr0ngXProjectReal"
}
})
--------------------------------------------------------------------
-- LAUNCH POPUP MODAL (RAYFIELD GEN 2 POPUPS API)
--------------------------------------------------------------------
local hasOldConfig = (type(isfile) == "function" and isfile(CONFIG_FILE))
if hasOldConfig then
Window:Popup({
title = "Config Manager",
subtitle = "Saved Configuration Detected",
content = "Found a saved configuration file from your previous session. Would you like to load your saved settings?",
dismissable = false,
options = {
{
text = "YES - Load Saved Config",
style = "primary",
callback = function()
if loadConfig() then
Window:Notify({
title = "Config Loaded",
content = "Successfully restored your saved settings!",
})
end
end,
},
{
text = "NO - Use Default Settings",
style = "neutral",
callback = function()
Window:Notify({
title = "Default Config Active",
content = "Using default configuration settings.",
})
end,
},
},
})
end
local MainTab = Window:CreateTab({ name = "Main Utilities" })
MainTab:CreateSection("Ground Hover Settings")
MainTab:CreateToggle({
name = "Enable Ground Hover",
currentValue = Config.FloatEnabled,
callback = function(Value)
Config.FloatEnabled = Value
saveConfig()
end,
})
MainTab:CreateSlider({
name = "Height Offset (Studs)",
range = {0, 50},
increment = 0.5,
suffix = "Studs",
currentValue = Config.HeightOffset,
callback = function(Value)
Config.HeightOffset = Value
saveConfig()
end,
})
MainTab:CreateSection("Super Weapon Modifications")
MainTab:CreateToggle({
name = "Infinite Pierce (Penetrate 9999 Enemies)",
currentValue = Config.InfinitePierce,
callback = function(Value)
Config.InfinitePierce = Value
saveConfig()
end,
})
MainTab:CreateToggle({
name = "Multi-Shot (5 Projectiles Burst)",
currentValue = Config.MultiShot,
callback = function(Value)
Config.MultiShot = Value
saveConfig()
end,
})
MainTab:CreateToggle({
name = "Huge Hitbox (10x Bullet Size)",
currentValue = Config.HugeHitbox,
callback = function(Value)
Config.HugeHitbox = Value
saveConfig()
end,
})
MainTab:CreateToggle({
name = "Ultra Homing (500m Target Tracking)",
currentValue = Config.UltraHoming,
callback = function(Value)
Config.UltraHoming = Value
saveConfig()
end,
})
MainTab:CreateSection("Combat & Invincibility")
MainTab:CreateToggle({
name = "Auto Precision Aim (Hitbox Cone)",
currentValue = Config.AutoAim,
callback = function(Value)
Config.AutoAim = Value
saveConfig()
end,
})
MainTab:CreateToggle({
name = "Ultra 0.001s Rapid Fire Auto Attack",
currentValue = Config.AutoAttack,
callback = function(Value)
Config.AutoAttack = Value
saveConfig()
end,
})
MainTab:CreateToggle({
name = "Anti-Death (Tri-Loop God Mode)",
currentValue = Config.AntiDeath,
callback = function(Value)
Config.AntiDeath = Value
saveConfig()
end,
})
MainTab:CreateToggle({
name = "Anti-AFK Protection (24/7 Keep-Alive)",
currentValue = Config.AntiAFK,
callback = function(Value)
Config.AntiAFK = Value
saveConfig()
end,
})
MainTab:CreateSection("Automation (All Remote-Based)")
MainTab:CreateToggle({
name = "Ultra 0.001s Fast Ability Spammer",
currentValue = Config.AutoAbility,
callback = function(Value)
Config.AutoAbility = Value
saveConfig()
end,
})
MainTab:CreateToggle({
name = "Auto Skip Waves [SetAutoSkip]",
currentValue = Config.AutoSkipWave,
callback = function(Value)
Config.AutoSkipWave = Value
pcall(function()
Remotes.SetAutoSkip.fireServer(Value)
end)
saveConfig()
end,
})
MainTab:CreateToggle({
name = "Instant Global Auto-Collect (Map-Wide)",
currentValue = Config.AutoCollectShards,
callback = function(Value)
Config.AutoCollectShards = Value
saveConfig()
end,
})
--------------------------------------------------------------------
-- CONFIG MANAGER TAB
--------------------------------------------------------------------
local ConfigTab = Window:CreateTab({ name = "Config Manager" })
ConfigTab:CreateSection("Saved Configuration Prompt")
local hasOldConfig = (type(isfile) == "function" and isfile(CONFIG_FILE))
if hasOldConfig then
ConfigTab:CreateSection("Previous Config Detected!")
ConfigTab:CreateButton({
name = "YES - Load Old Configuration Settings",
callback = function()
if loadConfig() then
Window:Notify({
title = "Config Loaded",
content = "Successfully restored your saved settings!",
})
end
end,
})
ConfigTab:CreateButton({
name = "NO - Use Default Settings",
callback = function()
Window:Notify({
title = "Default Config Active",
content = "Using default configuration settings.",
})
end,
})
end
ConfigTab:CreateSection("Manual Config Controls")
ConfigTab:CreateButton({
name = "Save Current Settings to File",
callback = function()
saveConfig()
Window:Notify({
title = "Config Saved",
content = "Current settings saved to " .. CONFIG_FILE,
})
end,
})
ConfigTab:CreateButton({
name = "Reload Config from File",
callback = function()
if loadConfig() then
Window:Notify({
title = "Config Reloaded",
content = "Reloaded settings from file!",
})
end
end,
})
--------------------------------------------------------------------
-- CACHED FLOOR RAYCAST FILTER
--------------------------------------------------------------------
local cachedFloorFilter = {}
local function buildFloorFilter()
local filter = {}
local map = Workspace:FindFirstChild("Map")
if map then
local floor = map:FindFirstChild("Floor")
if floor then
table.insert(filter, floor)
end
for _, child in ipairs(map:GetChildren()) do
local name = child.Name:lower()
if name:find("floor") or name:find("ground") or name:find("base") then
if not table.find(filter, child) then
table.insert(filter, child)
end
end
end
end
if Workspace.Terrain then
table.insert(filter, Workspace.Terrain)
end
return filter
end
cachedFloorFilter = buildFloorFilter()
table.insert(Connections, Workspace.ChildAdded:Connect(function(child)
if child.Name == "Map" then
task.wait(1)
cachedFloorFilter = buildFloorFilter()
end
end))
--------------------------------------------------------------------
-- FLOOR RAYCAST (from fixed Y=500, immune to jitter)
--------------------------------------------------------------------
local floorRayParams = RaycastParams.new()
floorRayParams.FilterType = Enum.RaycastFilterType.Include
local fallbackRayParams = RaycastParams.new()
fallbackRayParams.FilterType = Enum.RaycastFilterType.Exclude
local function getFloorY(xPos, zPos, character)
if #cachedFloorFilter > 0 then
floorRayParams.FilterDescendantsInstances = cachedFloorFilter
local result = Workspace:Raycast(Vector3.new(xPos, 500, zPos), Vector3.new(0, -1000, 0), floorRayParams)
if result then
return result.Position.Y
end
end
fallbackRayParams.FilterDescendantsInstances = {character}
local result = Workspace:Raycast(Vector3.new(xPos, 500, zPos), Vector3.new(0, -1000, 0), fallbackRayParams)
if result then
return result.Position.Y
end
return nil
end
--------------------------------------------------------------------
-- PRECISION ENEMY FINDER (matches ToolClient's targeting cone)
--------------------------------------------------------------------
local function getBestEnemy(playerPos, cameraLookCF)
local bestAimPos = nil
local bestBodyPos = nil
local bestScore = -math.huge
pcall(function()
local roundState = require(ReplicatedStorage.Client.RoundClient.RoundStateClient)
if not (roundState and roundState.state and roundState.state.entityMap) then return end
for _, entity in pairs(roundState.state.entityMap) do
if entity.team ~= "Player" and entity.spawnTimer and entity.spawnTimer <= 0.1 then
local hitPos = entity.hitboxPosition
if not hitPos then
hitPos = entity.position
if hitPos and entity.hitboxPositionOffset then
hitPos = hitPos + entity.hitboxPositionOffset
end
end
if hitPos then
if cameraLookCF then
local localPoint = cameraLookCF:PointToObjectSpace(hitPos)
local depth = -localPoint.Z
if depth > 0 then
local angularDev = (localPoint.X * localPoint.X + localPoint.Y * localPoint.Y * 0.2) / depth
if angularDev <= 3 then
local score = (3 - angularDev) * 10 - angularDev * depth * 0.5
if score > bestScore then
bestScore = score
bestAimPos = entity.position + Vector3.new(0, 3, 0)
bestBodyPos = entity.position
end
end
end
else
local dist = (hitPos - playerPos).Magnitude
local score = -dist
if score > bestScore then
bestScore = score
bestAimPos = entity.position + Vector3.new(0, 3, 0)
bestBodyPos = entity.position
end
end
end
end
end
end)
return bestAimPos, bestBodyPos
end
--------------------------------------------------------------------
-- FEATURE 1: GROUND HOVER + PRECISION AIM (RenderStepped)
--------------------------------------------------------------------
local function updateFloatAndAim()
local character = LocalPlayer.Character
if not character then return end
local hum = character:FindFirstChildOfClass("Humanoid")
if not hum or hum.Health <= 0 then return end
local hrp = character:FindFirstChild("HumanoidRootPart")
if not hrp or not hrp.Parent then return end
local camera = Workspace.CurrentCamera
if Config.FloatEnabled then
hrp.AssemblyLinearVelocity = Vector3.zero
hrp.AssemblyAngularVelocity = Vector3.zero
local floorY = getFloorY(hrp.Position.X, hrp.Position.Z, character)
if floorY then
local targetY = floorY + Config.HeightOffset
local targetPos = Vector3.new(hrp.Position.X, targetY, hrp.Position.Z)
if Config.AutoAim then
local camLookCF = camera and CFrame.lookAt(camera.CFrame.Position, camera.CFrame.Position + camera.CFrame.LookVector * 1000) or nil
local aimPos, bodyPos = getBestEnemy(hrp.Position, camLookCF)
if aimPos and bodyPos then
local lookTarget = Vector3.new(bodyPos.X, targetY, bodyPos.Z)
hrp.CFrame = CFrame.lookAt(targetPos, lookTarget)
if camera then
camera.CFrame = CFrame.lookAt(camera.CFrame.Position, aimPos)
end
return
end
end
hrp.CFrame = CFrame.new(targetPos) * hrp.CFrame.Rotation
end
elseif Config.AutoAim then
local camLookCF = camera and CFrame.lookAt(camera.CFrame.Position, camera.CFrame.Position + camera.CFrame.LookVector * 1000) or nil
local aimPos, bodyPos = getBestEnemy(hrp.Position, camLookCF)
if aimPos and bodyPos then
local lookTarget = Vector3.new(bodyPos.X, hrp.Position.Y, bodyPos.Z)
hrp.CFrame = CFrame.lookAt(hrp.Position, lookTarget)
if camera then
camera.CFrame = CFrame.lookAt(camera.CFrame.Position, aimPos)
end
end
end
end
table.insert(Connections, RunService.RenderStepped:Connect(updateFloatAndAim))
--------------------------------------------------------------------
-- FEATURE 2: ULTIMATE TRI-LOOP ANTI-DEATH & DEAD-STATE DISABLE
--------------------------------------------------------------------
local function applyInvincibility()
if not Config.AntiDeath then return end
local character = LocalPlayer.Character
if not character then return end
local hum = character:FindFirstChildOfClass("Humanoid")
if hum then
-- Prevent engine from entering Dead state
pcall(function()
hum:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
end)
-- Instantly reset health to max before any frame resolves
if hum.Health < hum.MaxHealth then
hum.Health = hum.MaxHealth
end
end
end
table.insert(Connections, RunService.RenderStepped:Connect(applyInvincibility))
table.insert(Connections, RunService.Stepped:Connect(applyInvincibility))
table.insert(Connections, RunService.Heartbeat:Connect(applyInvincibility))
----------------------------------------------------------------------
-- FEATURE 3: INSTANT GLOBAL MAP-WIDE CURRENCY & SHARD COLLECTOR
-- 1. Direct Remote Hook: Claims drop in 0ms when SpawnCurrencyDrop fires
-- 2. Global ProximityPrompt Auto-Fire for chests/shards across entire map
--------------------------------------------------------------------
table.insert(Connections, Remotes.SpawnCurrencyDrop.onClientEvent(function(dropId)
if Config.AutoCollectShards then
pcall(function()
Remotes.RequestClaimCurrencyDrop.fireServer(dropId)
end)
end
end))
local function getDropMap()
local ok, cdc = pcall(require, ReplicatedStorage.Client.RoundClient.CurrencyDropClient)
if not ok or not cdc or not cdc.postSimulation then return nil end
for i = 1, 10 do
local success, val = pcall(debug.getupvalue, cdc.postSimulation, i)
if success and type(val) == "table" then
for _, entry in pairs(val) do
if type(entry) == "table" and entry.state ~= nil then
return val
end
end
end
end
return nil
end
task.spawn(function()
while Running do
if Config.AutoCollectShards then
-- Sweep 1: Remote Drop Map
local dropMap = getDropMap()
if dropMap then
for dropId, data in pairs(dropMap) do
if data.state == "Spawning" or data.state == "Idle" then
data.state = "RequestedClaim"
Remotes.RequestClaimCurrencyDrop.fireServer(dropId)
end
end
end
-- Sweep 2: Workspace Prompts (Chests / Interactive Shards)
for _, obj in ipairs(Workspace:GetDescendants()) do
if obj:IsA("ProximityPrompt") then
local name = obj.Parent and obj.Parent.Name:lower() or ""
if name:find("shard") or name:find("crate") or name:find("currency") or name:find("chest") then
fireproximityprompt(obj)
end
end
end
end
task.wait(0.2)
end
end)
--------------------------------------------------------------------
-- FEATURE 5: ULTRA-FAST 0.001s SKILL SPAMMER & COOLDOWN RESET
--------------------------------------------------------------------
local function getUpgradeSlots()
local ok, hudClient = pcall(require, ReplicatedStorage.Client.HudClient)
if not ok or not hudClient then return nil end
for _, fnName in ipairs({"start", "postSimulation"}) do
local fn = hudClient[fnName]
if fn then
for i = 1, 50 do
local success, val = pcall(debug.getupvalue, fn, i)
if not success then break end
if type(val) == "table" then
for k, v in pairs(val) do
if type(v) == "table" and v.cooldown ~= nil then
return val
end
end
end
end
end
end
return nil
end
task.spawn(function()
while Running do
if Config.AutoAbility then
local slots = getUpgradeSlots()
if slots then
for upgradeName, data in pairs(slots) do
if type(data) == "table" then
data.cooldown = 0.001
data.cooldownTimer = 0
pcall(function()
Remotes.UseUpgrade.fireServer(upgradeName)
Remotes.ResetUpgradeCooldown.fireServer(upgradeName)
end)
end
end
end
end
task.wait(0.01)
end
end)
--------------------------------------------------------------------
-- FEATURE 6: REMOTE AUTO SKIP WAVES
--------------------------------------------------------------------
task.spawn(function()
task.wait(1)
if Config.AutoSkipWave then
pcall(function()
Remotes.SetAutoSkip.fireServer(true)
end)
end
end)
--------------------------------------------------------------------
-- FEATURE 7: ULTRA-FAST 0.001s RAPID FIRE & SUPER WEAPON MODS
--------------------------------------------------------------------
pcall(function()
local toolClient = require(ReplicatedStorage.Client.RoundClient.ToolClient)
task.spawn(function()
while Running do
if Config.AutoAttack then
pcall(function()
-- Force continuous automatic firing flag (Upvalue 14)
debug.setupvalue(toolClient.postSimulation, 14, true)
-- Direct Upvalue 7 Inspection (toolStateMap)
local toolStateMap = debug.getupvalue(toolClient.postSimulation, 7)
if type(toolStateMap) == "table" then
for _, item in pairs(toolStateMap) do
if type(item) == "table" then
-- Instantly zero out live cooldown timers every frame
item.cooldownTimer = 0
item.burstCooldownTimer = 0
if type(item.info) == "table" then
item.info.Cooldown = 0.001
item.info.BurstCooldown = 0.001
if Config.InfinitePierce then item.info.Pierce = 9999 end
if Config.MultiShot then item.info.Projectiles = 5 end
if Config.HugeHitbox then item.info.ProjectileRadius = 10 end
if Config.UltraHoming then
item.info.ProjectileHomingRadius = 500
item.info.ProjectileHomingForce = 50000
end
item.info.ProjectileSpread = Vector3.zero
end
end
end
end
end)
end
task.wait(0.01)
end
end)
end)
--------------------------------------------------------------------
-- FEATURE 8: ANTI-AFK 24/7 KEEP-ALIVE PROTECTION
--------------------------------------------------------------------
table.insert(Connections, LocalPlayer.Idled:Connect(function()
if Config.AntiAFK then
pcall(function()
VirtualUser:CaptureController()
VirtualUser:ClickButton2(Vector2.zero)
end)
end
end))
task.spawn(function()
while Running do
if Config.AntiAFK then
pcall(function()
VirtualUser:CaptureController()
VirtualUser:ClickButton2(Vector2.zero)
end)
end
task.wait(60)
end
end)
Window:Notify({
title = "Tr0ngX Suite Loaded",
content = "Fantasy Arena [Magma] Suite Active.",
})Features & Information
• Enable Ground Hover: Dynamically hovers player character safely above ground level (Y = 24 studs) using a fixed origin raycast filter (fixed Y=500 origin).
• Height Offset (Studs): Adjustable slider (0 to 50 studs) to customize hover height above enemy AOE hitboxes.
• Infinite Pierce (Penetrate 9999 Enemies): Modifies Pierce = 9999 so projectiles penetrate infinitely through all monsters.
• Multi-Shot (5 Projectiles Burst): Modifies Projectiles = 5 to spawn 5 clustered projectiles per shot.
• Huge Hitbox (10x Bullet Size): Modifies ProjectileRadius = 10 for massive collision detection.
• Ultra Homing (500m Target Tracking): Overrides ProjectileHomingRadius = 500 & ProjectileHomingForce = 50000 for 500m auto-tracking homing bullets.
• Auto Precision Aim (Hitbox Cone): Matches game's ToolClient cone & angular deviation formula to snap character and camera directly onto hitboxPosition.
• Ultra 0.001s Rapid Fire Auto Attack: Overrides Cooldown = 0.001 and zeroes out live cooldownTimer / burstCooldownTimer every frame while locking continuous fire flag (Upvalue 14).
• Anti-Death (Tri-Loop God Mode): Disables engine death state via SetStateEnabled(Enum.HumanoidStateType.Dead, false) and locks max health across 3 engine render loops (RenderStepped, Stepped, Heartbeat).
• Anti-AFK Protection (24/7 Keep-Alive): Hooks LocalPlayer.Idled with VirtualUser:CaptureController() and runs a periodic 60-second keep-alive loop to prevent 20-minute AFK disconnections.
#### 4. Automation Utilities (All Remote-Based)
• Ultra 0.001s Fast Ability Spammer: Sets skill cooldown = 0.001 and fires UseUpgrade + ResetUpgradeCooldown remotes every 0.01s.
• Auto Skip Waves [SetAutoSkip]: Automatically fires Remotes.SetAutoSkip.fireServer(true) on launch.
• Instant Global Auto-Collect (Map-Wide): 0ms instant claim on Remotes.SpawnCurrencyDrop.onClientEvent via RequestClaimCurrencyDrop.fireServer(dropId) + ProximityPrompt map sweeper.
• Modal Launch Popup: Displays a centered Rayfield Gen 2 modal card (Window:Popup) over a dimmed backdrop on startup when a saved configuration file (Tr0ngX_ProjectReal_Config.json) is detected.
• YES - Load Saved Config / NO - Use Default Settings: One-click confirmation buttons to load or skip previous settings.
Community Comments (0)
No comments yet for this script.
