Description
Ai slop script LOL, check it (it's like cs:go)
GAMEMath Murder
UPDATEDOct 25, 2026
ACCESSKeyless
PLATFORMDesktop
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
local players_service = game:GetService("Players")
local workspace_service = game:GetService("Workspace")
local tween_service = game:GetService("TweenService")
local user_input_service = game:GetService("UserInputService")
local run_service = game:GetService("RunService")
local lighting_service = game:GetService("Lighting")
local stats_service = game:GetService("Stats")
local virtual_input_manager = game:GetService("VirtualInputManager")
local core_gui_service = game:GetService("CoreGui")
local local_player = players_service.LocalPlayer
local player_gui = local_player:WaitForChild("PlayerGui")
local current_camera = workspace_service.CurrentCamera
local state = {
auto_answer = false,
humanize_typing = false,
auto_click_detector = true,
spatial_3d_enabled = true,
bezier_spline_enabled = true,
overlay_2d_enabled = true,
crosshair_enabled = true,
world_vfx_enabled = true,
player_trail_enabled = true,
reaction_delay = 0.05,
delay_presets = { 0.05, 0.25, 0.50, 0.85 },
delay_index = 1,
solved_count = 0,
last_question = "",
last_answer = "",
is_submitting = false,
ui_visible = true,
wave_time = 0,
board_part = nil,
board_label = nil,
board_highlight = nil,
wireframe_adornment = nil,
aura_adornment = nil,
player_trail = nil,
trail_att_0 = nil,
trail_att_1 = nil,
bloom_effect = nil,
color_correction = nil,
dof_effect = nil,
last_cam_look = Vector3.new(0, 0, -1),
sway_offset = Vector2.new(0, 0),
ghost_bar_ratio = 1,
main_bar_ratio = 1,
crosshair_angle = 0,
crosshair_gap = 6,
toast_list = {},
active_shockwaves = {},
active_floating_texts = {},
render_connection = nil,
input_connection = nil
}
local ui_refs = {
screen_gui = nil,
main_container = nil,
window_scale = nil,
target_hud = nil,
target_eq_label = nil,
target_ans_label = nil,
target_dist_label = nil,
target_main_bar = nil,
target_ghost_bar = nil,
watermark_label = nil,
binds_frame = nil,
binds_list_labels = {},
overlay_box_frame = nil,
overlay_corners = {},
overlay_tag = nil,
overlay_bar_main = nil,
overlay_bar_ghost = nil,
oof_arrow = nil,
crosshair_lines = {},
toast_holder = nil
}
local function get_ui_parent()
local success, core_ref = pcall(function()
return core_gui_service
end)
if success and core_ref then
return core_ref
end
return player_gui
end
local function lerp_number(start_val, end_val, alpha_val)
return start_val + (end_val - start_val) * math.clamp(alpha_val, 0, 1)
end
local function lerp_color(color_a, color_b, alpha_val)
local clamped = math.clamp(alpha_val, 0, 1)
return Color3.new(
lerp_number(color_a.R, color_b.R, clamped),
lerp_number(color_a.G, color_b.G, clamped),
lerp_number(color_a.B, color_b.B, clamped)
)
end
local function get_wave_color(phase_offset)
local cycle = (state.wave_time * 1.4 + (phase_offset or 0)) % 3
local color_cyan = Color3.fromRGB(0, 225, 255)
local color_violet = Color3.fromRGB(150, 80, 255)
local color_emerald = Color3.fromRGB(0, 255, 175)
if cycle < 1 then
return lerp_color(color_cyan, color_violet, cycle)
elseif cycle < 2 then
return lerp_color(color_violet, color_emerald, cycle - 1)
end
return lerp_color(color_emerald, color_cyan, cycle - 2)
end
local function play_tween(instance_obj, duration, easing_style, easing_direction, property_table)
if not instance_obj then return nil end
local tween_info = TweenInfo.new(duration, easing_style, easing_direction)
local tween_object = tween_service:Create(instance_obj, tween_info, property_table)
tween_object:Play()
return tween_object
end
local function cleanup_all()
local parent_container = get_ui_parent()
local old_ui = parent_container:FindFirstChild("math_murder_vfx_suite")
if old_ui then old_ui:Destroy() end
local old_pg_ui = player_gui:FindFirstChild("math_murder_vfx_suite")
if old_pg_ui then old_pg_ui:Destroy() end
local old_folder = workspace_service:FindFirstChild("math_murder_3d_vfx_folder")
if old_folder then old_folder:Destroy() end
local old_bloom = lighting_service:FindFirstChild("mm_vfx_bloom")
if old_bloom then old_bloom:Destroy() end
local old_cc = lighting_service:FindFirstChild("mm_vfx_cc")
if old_cc then old_cc:Destroy() end
local old_dof = lighting_service:FindFirstChild("mm_vfx_dof")
if old_dof then old_dof:Destroy() end
end
local vfx_folder = nil
local function ensure_vfx_folder()
if vfx_folder and vfx_folder.Parent then return vfx_folder end
vfx_folder = Instance.new("Folder")
vfx_folder.Name = "math_murder_3d_vfx_folder"
vfx_folder.Parent = workspace_service
return vfx_folder
end
local function setup_lighting_vfx()
local bloom = Instance.new("BloomEffect")
bloom.Name = "mm_vfx_bloom"
bloom.Intensity = 0.65
bloom.Size = 24
bloom.Threshold = 0.85
bloom.Enabled = state.world_vfx_enabled
bloom.Parent = lighting_service
state.bloom_effect = bloom
local color_corr = Instance.new("ColorCorrectionEffect")
color_corr.Name = "mm_vfx_cc"
color_corr.Saturation = 0.18
color_corr.Contrast = 0.12
color_corr.TintColor = Color3.fromRGB(240, 245, 255)
color_corr.Enabled = state.world_vfx_enabled
color_corr.Parent = lighting_service
state.color_correction = color_corr
local dof = Instance.new("DepthOfFieldEffect")
dof.Name = "mm_vfx_dof"
dof.FarIntensity = 0.35
dof.NearIntensity = 0
dof.FocusDistance = 15
dof.InFocusRadius = 20
dof.Enabled = state.world_vfx_enabled and state.ui_visible
dof.Parent = lighting_service
state.dof_effect = dof
end
local function setup_character_trail()
local character = local_player.Character
local root_part = character and character:FindFirstChild("HumanoidRootPart")
if not root_part then return end
if state.player_trail and state.player_trail.Parent then
state.player_trail.Enabled = state.player_trail_enabled
state.player_trail.Color = ColorSequence.new(get_wave_color(0), get_wave_color(1.2))
return
end
local att_top = Instance.new("Attachment")
att_top.Name = "mm_trail_top"
att_top.Position = Vector3.new(0, 1.2, 0)
att_top.Parent = root_part
local att_bottom = Instance.new("Attachment")
att_bottom.Name = "mm_trail_bottom"
att_bottom.Position = Vector3.new(0, -1.8, 0)
att_bottom.Parent = root_part
local trail = Instance.new("Trail")
trail.Name = "mm_neon_trail"
trail.Attachment0 = att_top
trail.Attachment1 = att_bottom
trail.Lifetime = 0.55
trail.LightEmission = 0.9
trail.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.25),
NumberSequenceKeypoint.new(1, 1)
})
trail.WidthScale = NumberSequence.new({
NumberSequenceKeypoint.new(0, 1),
NumberSequenceKeypoint.new(1, 0)
})
trail.Color = ColorSequence.new(get_wave_color(0), get_wave_color(1.2))
trail.Enabled = state.player_trail_enabled
trail.Parent = root_part
state.trail_att_0 = att_top
state.trail_att_1 = att_bottom
state.player_trail = trail
end
local function push_toast(title_text, body_text, duration_sec)
if not ui_refs.toast_holder then return end
local life_time = duration_sec or 3.2
local toast_frame = Instance.new("Frame")
toast_frame.Size = UDim2.new(0, 250, 0, 54)
toast_frame.Position = UDim2.new(1, 300, 1, -64)
toast_frame.BackgroundColor3 = Color3.fromRGB(14, 18, 28)
toast_frame.BackgroundTransparency = 0.1
toast_frame.BorderSizePixel = 0
toast_frame.ClipsDescendants = true
toast_frame.Parent = ui_refs.toast_holder
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 10)
corner.Parent = toast_frame
local stroke = Instance.new("UIStroke")
stroke.Color = get_wave_color(0)
stroke.Thickness = 1.4
stroke.Parent = toast_frame
local side_bar = Instance.new("Frame")
side_bar.Size = UDim2.new(0, 4, 1, 0)
side_bar.BackgroundColor3 = get_wave_color(0.5)
side_bar.BorderSizePixel = 0
side_bar.Parent = toast_frame
local title_lbl = Instance.new("TextLabel")
title_lbl.Size = UDim2.new(1, -20, 0, 20)
title_lbl.Position = UDim2.new(0, 14, 0, 6)
title_lbl.BackgroundTransparency = 1
title_lbl.Text = title_text
title_lbl.TextColor3 = Color3.fromRGB(240, 245, 255)
title_lbl.TextSize = 12
title_lbl.Font = Enum.Font.GothamBold
title_lbl.TextXAlignment = Enum.TextXAlignment.Left
title_lbl.Parent = toast_frame
local body_lbl = Instance.new("TextLabel")
body_lbl.Size = UDim2.new(1, -20, 0, 20)
body_lbl.Position = UDim2.new(0, 14, 0, 24)
body_lbl.BackgroundTransparency = 1
body_lbl.Text = body_text
body_lbl.TextColor3 = Color3.fromRGB(160, 215, 255)
body_lbl.TextSize = 11
body_lbl.Font = Enum.Font.GothamMedium
body_lbl.TextXAlignment = Enum.TextXAlignment.Left
body_lbl.Parent = toast_frame
local timer_bar = Instance.new("Frame")
timer_bar.Size = UDim2.new(1, 0, 0, 3)
timer_bar.Position = UDim2.new(0, 0, 1, -3)
timer_bar.BackgroundColor3 = get_wave_color(0)
timer_bar.BorderSizePixel = 0
timer_bar.Parent = toast_frame
table.insert(state.toast_list, 1, toast_frame)
for idx, active_toast in ipairs(state.toast_list) do
local target_y = -62 * idx
play_tween(active_toast, 0.32, Enum.EasingStyle.Back, Enum.EasingDirection.Out, {
Position = UDim2.new(1, -264, 1, target_y)
})
end
play_tween(timer_bar, life_time, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, {
Size = UDim2.new(0, 0, 0, 3)
})
task.delay(life_time, function()
for idx, item in ipairs(state.toast_list) do
if item == toast_frame then
table.remove(state.toast_list, idx)
break
end
end
local exit_tween = play_tween(toast_frame, 0.25, Enum.EasingStyle.Quart, Enum.EasingDirection.In, {
Position = UDim2.new(1, 300, toast_frame.Position.Y.Scale, toast_frame.Position.Y.Offset)
})
if exit_tween then
exit_tween.Completed:Connect(function()
toast_frame:Destroy()
end)
end
end)
end
local function spawn_solve_vfx(origin_pos, solved_text)
if not state.world_vfx_enabled then return end
local holder = ensure_vfx_folder()
local anchor_part = Instance.new("Part")
anchor_part.Name = "mm_vfx_anchor"
anchor_part.Size = Vector3.new(0.2, 0.2, 0.2)
anchor_part.Position = origin_pos
anchor_part.Anchored = true
anchor_part.CanCollide = false
anchor_part.CanQuery = false
anchor_part.Transparency = 1
anchor_part.Parent = holder
local ring_adorn = Instance.new("CylinderHandleAdornment")
ring_adorn.Adornee = anchor_part
ring_adorn.CFrame = CFrame.Angles(math.rad(90), 0, 0)
ring_adorn.Height = 0.15
ring_adorn.Radius = 1.5
ring_adorn.InnerRadius = 1.1
ring_adorn.Color3 = get_wave_color(0)
ring_adorn.Transparency = 0.1
ring_adorn.AlwaysOnTop = true
ring_adorn.ZIndex = 4
ring_adorn.Parent = anchor_part
local billboard = Instance.new("BillboardGui")
billboard.Size = UDim2.new(0, 220, 0, 60)
billboard.StudsOffset = Vector3.new(0, 2, 0)
billboard.AlwaysOnTop = true
billboard.Adornee = anchor_part
billboard.Parent = anchor_part
local text_label = Instance.new("TextLabel")
text_label.Size = UDim2.new(1, 0, 1, 0)
text_label.BackgroundTransparency = 1
text_label.Text = "SOLVED // " .. solved_text
text_label.TextColor3 = Color3.fromRGB(90, 255, 185)
text_label.TextStrokeTransparency = 0.2
text_label.TextScaled = true
text_label.Font = Enum.Font.GothamBold
text_label.Parent = billboard
table.insert(state.active_shockwaves, {
part = anchor_part,
ring = ring_adorn,
label = text_label,
billboard = billboard,
elapsed = 0,
duration = 1.25
})
end
local function is_question(text_value)
if type(text_value) ~= "string" then return false end
return string.match(text_value, "%d+%s*[%+%-%*/xXхХ×÷:]%s*%d+%s*=") ~= nil
end
local function format_number(number_value)
if type(number_value) ~= "number" then return nil end
local rounded_value = number_value >= 0 and math.floor(number_value + 0.5) or math.ceil(number_value - 0.5)
if math.abs(number_value - rounded_value) < 0.0001 then
return tostring(rounded_value)
end
return tostring(number_value)
end
local function solve_question(raw_text)
if not is_question(raw_text) then return nil end
local expression = raw_text
expression = string.gsub(expression, "×", "*")
expression = string.gsub(expression, "[xXхХ]", "*")
expression = string.gsub(expression, "÷", "/")
expression = string.gsub(expression, ":", "/")
expression = string.gsub(expression, "=.*", "")
expression = string.gsub(expression, "[^%d%.%+%-%*/%s]", "")
if type(loadstring) == "function" then
local compiled_fn = loadstring("return " .. expression)
if compiled_fn then
local status, result = pcall(compiled_fn)
if status and type(result) == "number" then
return format_number(result)
end
end
end
local left_num, operator, right_num = string.match(expression, "(%-?%d+%.?%d*)%s*([%+%-%*/])%s*(%-?%d+%.?%d*)")
local first_val = tonumber(left_num)
local second_val = tonumber(right_num)
if not first_val or not second_val then return nil end
local answer_val = 0
if operator == "+" then answer_val = first_val + second_val end
if operator == "-" then answer_val = first_val - second_val end
if operator == "*" then answer_val = first_val * second_val end
if operator == "/" and second_val ~= 0 then answer_val = first_val / second_val end
return format_number(answer_val)
end
local function find_input_textbox()
local fallback_box = nil
for _, item in ipairs(player_gui:GetDescendants()) do
if item:IsA("TextBox") and item.Visible then
local item_name = string.lower(item.Name)
if not string.find(item_name, "chat") and not string.find(item_name, "search") then
if item.PlaceholderText == "..." or item.Text == "..." then
return item
end
fallback_box = item
end
end
end
for _, item in ipairs(workspace_service:GetDescendants()) do
if item:IsA("TextBox") and item.Visible then
if item.PlaceholderText == "..." or item.Text == "..." then
return item
end
if not fallback_box then
fallback_box = item
end
end
end
return fallback_box
end
local function trigger_green_desk_button()
if not state.auto_click_detector then return end
if type(fireclickdetector) ~= "function" then return end
local character = local_player.Character
local root_part = character and character:FindFirstChild("HumanoidRootPart")
if not root_part then return end
for _, item in ipairs(workspace_service:GetDescendants()) do
if item:IsA("ClickDetector") and item.Parent and item.Parent:IsA("BasePart") then
local part_parent = item.Parent
local distance = (part_parent.Position - root_part.Position).Magnitude
if distance <= 18 and part_parent.Color.G > part_parent.Color.R then
pcall(function()
fireclickdetector(item)
end)
end
end
end
end
local function submit_answer(answer_text)
if not answer_text or answer_text == "" then return end
if state.is_submitting then return end
local input_box = find_input_textbox()
if not input_box then return end
state.is_submitting = true
state.crosshair_gap = 18
task.spawn(function()
task.wait(state.reaction_delay)
pcall(function()
input_box:CaptureFocus()
end)
task.wait(0.03)
if state.humanize_typing then
input_box.Text = ""
for char_index = 1, #answer_text do
input_box.Text = string.sub(answer_text, 1, char_index)
task.wait(0.04)
end
else
input_box.Text = answer_text
end
task.wait(0.04)
local signal_fired = false
if type(firesignal) == "function" then
local success = pcall(function()
firesignal(input_box.FocusLost, true)
end)
signal_fired = success
end
pcall(function()
virtual_input_manager:SendKeyEvent(true, Enum.KeyCode.Return, false, game)
task.wait(0.02)
virtual_input_manager:SendKeyEvent(false, Enum.KeyCode.Return, false, game)
end)
if not signal_fired then
task.wait(0.02)
pcall(function()
input_box:ReleaseFocus(true)
end)
end
trigger_green_desk_button()
state.is_submitting = false
end)
end
local function attach_board_part(label_object)
local surface_gui = label_object:FindFirstAncestorWhichIsA("SurfaceGui")
if not surface_gui then return end
local board_part = surface_gui.Adornee or surface_gui.Parent
if not board_part or not board_part:IsA("BasePart") then return end
state.board_part = board_part
state.board_label = label_object
if not state.board_highlight or not state.board_highlight.Parent then
local highlight_obj = Instance.new("Highlight")
highlight_obj.Name = "mm_breathing_chams"
highlight_obj.Adornee = board_part
highlight_obj.Parent = ensure_vfx_folder()
state.board_highlight = highlight_obj
end
end
local function process_label_text(label_object)
local raw_text = label_object.Text
if not is_question(raw_text) then
if raw_text == "" then
state.last_question = ""
end
return
end
attach_board_part(label_object)
if raw_text == state.last_question then return end
local answer = solve_question(raw_text)
if not answer then return end
state.last_question = raw_text
state.last_answer = answer
state.solved_count = state.solved_count + 1
state.main_bar_ratio = 0.15
state.ghost_bar_ratio = 1.0
if state.board_part then
spawn_solve_vfx(state.board_part.Position, answer)
end
push_toast("EQUATION SOLVED", raw_text .. " " .. answer, 2.8)
if state.auto_answer then
submit_answer(answer)
end
end
local function watch_object(instance_obj)
if not instance_obj:IsA("TextLabel") then return end
if is_question(instance_obj.Text) then
process_label_text(instance_obj)
end
instance_obj:GetPropertyChangedSignal("Text"):Connect(function()
process_label_text(instance_obj)
end)
end
local function initialize_scanner()
for _, item in ipairs(workspace_service:GetDescendants()) do
watch_object(item)
end
for _, item in ipairs(player_gui:GetDescendants()) do
watch_object(item)
end
workspace_service.DescendantAdded:Connect(watch_object)
player_gui.DescendantAdded:Connect(watch_object)
end
local function draw_3d_corner_box(wireframe, part_cframe, part_size, corner_length)
local half_x = part_size.X * 0.5 + 0.35
local half_y = part_size.Y * 0.5 + 0.35
local half_z = part_size.Z * 0.5 + 0.35
local sign_values = { -1, 1 }
for _, sx in ipairs(sign_values) do
for _, sy in ipairs(sign_values) do
for _, sz in ipairs(sign_values) do
local corner_local = Vector3.new(sx * half_x, sy * half_y, sz * half_z)
local corner_world = part_cframe:PointToWorldSpace(corner_local)
local end_x = part_cframe:PointToWorldSpace(corner_local - Vector3.new(sx * corner_length, 0, 0))
local end_y = part_cframe:PointToWorldSpace(corner_local - Vector3.new(0, sy * corner_length, 0))
local end_z = part_cframe:PointToWorldSpace(corner_local - Vector3.new(0, 0, sz * corner_length))
wireframe:AddLine(corner_world, end_x)
wireframe:AddLine(corner_world, end_y)
wireframe:AddLine(corner_world, end_z)
end
end
end
end
local function evaluate_cubic_bezier(point_0, point_1, point_2, point_3, t_val)
local inv_t = 1 - t_val
local term_0 = inv_t * inv_t * inv_t * point_0
local term_1 = 3 * inv_t * inv_t * t_val * point_1
local term_2 = 3 * inv_t * t_val * t_val * point_2
local term_3 = t_val * t_val * t_val * point_3
return term_0 + term_1 + term_2 + term_3
end
local function draw_3d_bezier_spline(wireframe, start_pos, end_pos)
local mid_point = (start_pos + end_pos) * 0.5
local wave_lift = math.sin(state.wave_time * 3) * 2.5
local control_1 = start_pos:Lerp(mid_point, 0.5) + Vector3.new(0, 5 + wave_lift, 0)
local control_2 = mid_point:Lerp(end_pos, 0.5) + Vector3.new(0, 7 - wave_lift, 0)
local segments = 22
local prev_point = start_pos
for step = 1, segments do
local t_val = step / segments
local next_point = evaluate_cubic_bezier(start_pos, control_1, control_2, end_pos, t_val)
wireframe:AddLine(prev_point, next_point)
prev_point = next_point
end
end
local function update_3d_spatial_visuals(delta_time)
local folder = ensure_vfx_folder()
if not state.wireframe_adornment or not state.wireframe_adornment.Parent then
local wf = Instance.new("WireframeHandleAdornment")
wf.Name = "mm_3d_wireframe"
wf.Adornee = workspace_service.Terrain
wf.AlwaysOnTop = true
wf.ZIndex = 5
wf.Parent = folder
state.wireframe_adornment = wf
end
state.wireframe_adornment:Clear()
state.wireframe_adornment.Color3 = get_wave_color(0)
state.wireframe_adornment.Transparency = 0.15 + math.sin(state.wave_time * 4) * 0.1
local character = local_player.Character
local root_part = character and character:FindFirstChild("HumanoidRootPart")
if root_part then
setup_character_trail()
if not state.aura_adornment or not state.aura_adornment.Parent then
local aura = Instance.new("CylinderHandleAdornment")
aura.Name = "mm_player_aura"
aura.Height = 0.08
aura.AlwaysOnTop = false
aura.Parent = folder
state.aura_adornment = aura
end
state.aura_adornment.Visible = state.spatial_3d_enabled
state.aura_adornment.Adornee = root_part
local pulse_radius = 3.8 + math.sin(state.wave_time * 3.5) * 0.45
state.aura_adornment.Radius = pulse_radius
state.aura_adornment.InnerRadius = pulse_radius - 0.22
state.aura_adornment.CFrame = CFrame.new(0, -2.8, 0) * CFrame.Angles(math.rad(90), 0, 0)
state.aura_adornment.Color3 = get_wave_color(0.8)
state.aura_adornment.Transparency = 0.25
end
if state.board_part and state.board_part.Parent then
if state.spatial_3d_enabled then
local pulse_len = 2.2 + math.sin(state.wave_time * 5) * 0.3
draw_3d_corner_box(state.wireframe_adornment, state.board_part.CFrame, state.board_part.Size, pulse_len)
end
if state.bezier_spline_enabled and root_part then
draw_3d_bezier_spline(state.wireframe_adornment, root_part.Position, state.board_part.Position)
end
if state.board_highlight then
state.board_highlight.Enabled = state.spatial_3d_enabled
state.board_highlight.Adornee = state.board_part
state.board_highlight.FillColor = get_wave_color(0)
state.board_highlight.OutlineColor = get_wave_color(1)
state.board_highlight.FillTransparency = 0.78 + math.sin(state.wave_time * 3) * 0.1
state.board_highlight.OutlineTransparency = 0.1 + math.cos(state.wave_time * 3) * 0.1
end
end
for idx = #state.active_shockwaves, 1, -1 do
local item = state.active_shockwaves[idx]
item.elapsed = item.elapsed + delta_time
local progress = math.clamp(item.elapsed / item.duration, 0, 1)
local eased = 1 - math.pow(1 - progress, 3)
if item.ring then
item.ring.Radius = 1.5 + eased * 14
item.ring.InnerRadius = math.max(0, item.ring.Radius - (0.45 * (1 - progress)))
item.ring.Transparency = progress
item.ring.Color3 = get_wave_color(progress)
end
if item.billboard and item.label then
item.billboard.StudsOffset = Vector3.new(0, 2 + eased * 5.5, 0)
item.label.TextTransparency = progress
item.label.TextStrokeTransparency = 0.2 + progress * 0.8
end
if progress >= 1 then
if item.part then item.part:Destroy() end
table.remove(state.active_shockwaves, idx)
end
end
end
local function update_2d_overlay_and_hud(delta_time)
current_camera = workspace_service.CurrentCamera
if not current_camera then return end
local cam_look = current_camera.CFrame.LookVector
local look_delta = cam_look - state.last_cam_look
state.last_cam_look = cam_look
local target_sway = Vector2.new(-look_delta.X * 160, look_delta.Y * 160)
state.sway_offset = state.sway_offset:Lerp(target_sway, math.clamp(delta_time * 10, 0, 1))
state.main_bar_ratio = lerp_number(state.main_bar_ratio, 1.0, delta_time * 4.5)
state.ghost_bar_ratio = lerp_number(state.ghost_bar_ratio, state.main_bar_ratio, delta_time * 1.8)
local character = local_player.Character
local root_part = character and character:FindFirstChild("HumanoidRootPart")
local board_dist = 0
if root_part and state.board_part then
board_dist = math.floor((state.board_part.Position - root_part.Position).Magnitude)
end
if ui_refs.target_hud then
ui_refs.target_hud.Position = UDim2.new(0.5, -150 + state.sway_offset.X, 0, 56 + state.sway_offset.Y)
ui_refs.target_eq_label.Text = state.last_question ~= "" and ("Equation: " .. state.last_question) or "Equation: Scanning..."
ui_refs.target_ans_label.Text = state.last_answer ~= "" and ("Result: " .. state.last_answer) or "Result: ..."
ui_refs.target_dist_label.Text = tostring(board_dist) .. " studs | Solved: " .. tostring(state.solved_count)
ui_refs.target_main_bar.Size = UDim2.new(state.main_bar_ratio, 0, 1, 0)
ui_refs.target_main_bar.BackgroundColor3 = get_wave_color(0)
ui_refs.target_ghost_bar.Size = UDim2.new(state.ghost_bar_ratio, 0, 1, 0)
end
if ui_refs.watermark_label then
local fps_val = math.floor(1 / math.max(delta_time, 0.001))
local ping_val = 0
pcall(function()
ping_val = math.floor(stats_service.Network.ServerStatsItem["Data Ping"]:GetValue())
end)
ui_refs.watermark_label.Text = string.format("MATH MURDER VFX // %d FPS // %d MS", fps_val, ping_val)
end
if ui_refs.binds_frame then
ui_refs.binds_frame.Position = UDim2.new(1, -185 + state.sway_offset.X, 0, 54 + state.sway_offset.Y)
end
local viewport_size = current_camera.ViewportSize
local center_screen = viewport_size * 0.5
if state.crosshair_enabled then
local move_speed = 0
if root_part then
move_speed = root_part.Velocity.Magnitude
end
local target_gap = 6 + math.clamp(move_speed * 0.45, 0, 14)
state.crosshair_gap = lerp_number(state.crosshair_gap, target_gap, delta_time * 10)
state.crosshair_angle = (state.crosshair_angle + delta_time * 95) % 360
for idx, line_frame in ipairs(ui_refs.crosshair_lines) do
line_frame.Visible = true
local angle_rad = math.rad(state.crosshair_angle + (idx - 1) * 90)
local dist_center = state.crosshair_gap + 5
local offset_x = math.cos(angle_rad) * dist_center
local offset_y = math.sin(angle_rad) * dist_center
line_frame.Position = UDim2.new(0, center_screen.X + offset_x, 0, center_screen.Y + offset_y)
line_frame.Rotation = math.deg(angle_rad)
line_frame.BackgroundColor3 = get_wave_color(idx * 0.3)
end
else
for _, line_frame in ipairs(ui_refs.crosshair_lines) do
line_frame.Visible = false
end
end
if not state.overlay_2d_enabled or not state.board_part or not state.board_part.Parent then
if ui_refs.overlay_box_frame then ui_refs.overlay_box_frame.Visible = false end
if ui_refs.oof_arrow then ui_refs.oof_arrow.Visible = false end
return
end
local screen_pos, on_screen = current_camera:WorldToViewportPoint(state.board_part.Position)
if on_screen and screen_pos.Z > 0 then
if ui_refs.oof_arrow then ui_refs.oof_arrow.Visible = false end
ui_refs.overlay_box_frame.Visible = true
local scale_factor = math.clamp(1200 / math.max(screen_pos.Z, 1), 70, 260)
local box_w = scale_factor * 1.45
local box_h = scale_factor * 0.95
ui_refs.overlay_box_frame.Size = UDim2.new(0, box_w, 0, box_h)
ui_refs.overlay_box_frame.Position = UDim2.new(0, screen_pos.X - box_w * 0.5, 0, screen_pos.Y - box_h * 0.5)
local wave_col = get_wave_color(0)
for _, corner_line in ipairs(ui_refs.overlay_corners) do
corner_line.BackgroundColor3 = wave_col
end
ui_refs.overlay_tag.Text = (state.last_question ~= "" and state.last_question or "BOARD") .. " [" .. tostring(state.last_answer) .. "] " .. tostring(board_dist) .. "m"
ui_refs.overlay_bar_main.Size = UDim2.new(0, 3, state.main_bar_ratio, 0)
ui_refs.overlay_bar_main.Position = UDim2.new(0, -7, 1 - state.main_bar_ratio, 0)
ui_refs.overlay_bar_main.BackgroundColor3 = wave_col
ui_refs.overlay_bar_ghost.Size = UDim2.new(0, 3, state.ghost_bar_ratio, 0)
ui_refs.overlay_bar_ghost.Position = UDim2.new(0, -7, 1 - state.ghost_bar_ratio, 0)
else
ui_refs.overlay_box_frame.Visible = false
ui_refs.oof_arrow.Visible = true
local relative_pos = current_camera.CFrame:PointToObjectSpace(state.board_part.Position)
local angle = math.atan2(-relative_pos.Y, relative_pos.X)
local radius_x = viewport_size.X * 0.32
local radius_y = viewport_size.Y * 0.32
local arrow_x = center_screen.X + math.cos(angle) * radius_x
local arrow_y = center_screen.Y + math.sin(angle) * radius_y
ui_refs.oof_arrow.Position = UDim2.new(0, arrow_x - 14, 0, arrow_y - 14)
ui_refs.oof_arrow.Rotation = math.deg(angle)
ui_refs.oof_arrow.BackgroundColor3 = get_wave_color(0.4)
ui_refs.oof_arrow.BackgroundTransparency = 0.2 + math.sin(state.wave_time * 6) * 0.2
end
end
local function refresh_binds_widget()
local active_entries = {}
if state.auto_answer then table.insert(active_entries, "Auto Answer [ON]") end
if state.humanize_typing then table.insert(active_entries, "Humanize Typing [ON]") end
if state.spatial_3d_enabled then table.insert(active_entries, "3D Spatial Box [ON]") end
if state.bezier_spline_enabled then table.insert(active_entries, "3D Bezier Spline [ON]") end
if state.overlay_2d_enabled then table.insert(active_entries, "2D Viewport ESP [ON]") end
if state.world_vfx_enabled then table.insert(active_entries, "World Shaders [ON]") end
for idx, lbl in ipairs(ui_refs.binds_list_labels) do
local entry_text = active_entries[idx]
if entry_text then
lbl.Visible = true
lbl.Text = entry_text
lbl.TextColor3 = get_wave_color(idx * 0.2)
else
lbl.Visible = false
end
end
if ui_refs.binds_frame then
local target_height = 28 + (#active_entries * 18)
play_tween(ui_refs.binds_frame, 0.22, Enum.EasingStyle.Quart, Enum.EasingDirection.Out, {
Size = UDim2.new(0, 170, 0, target_height)
})
end
end
local function enable_smooth_dragging(drag_handle, target_frame)
local dragging = false
local drag_start = nil
local start_pos = nil
drag_handle.InputBegan:Connect(function(input_obj)
if input_obj.UserInputType == Enum.UserInputType.MouseButton1 or input_obj.UserInputType == Enum.UserInputType.Touch then
dragging = true
drag_start = input_obj.Position
start_pos = target_frame.Position
end
end)
user_input_service.InputChanged:Connect(function(input_obj)
if not dragging then return end
if input_obj.UserInputType == Enum.UserInputType.MouseMovement or input_obj.UserInputType == Enum.UserInputType.Touch then
local delta = input_obj.Position - drag_start
local goal_pos = UDim2.new(
start_pos.X.Scale,
start_pos.X.Offset + delta.X,
start_pos.Y.Scale,
start_pos.Y.Offset + delta.Y
)
play_tween(target_frame, 0.12, Enum.EasingStyle.Quart, Enum.EasingDirection.Out, { Position = goal_pos })
end
end)
user_input_service.InputEnded:Connect(function(input_obj)
if input_obj.UserInputType == Enum.UserInputType.MouseButton1 or input_obj.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
end
local function create_toggle_card(parent_frame, title_text, default_value, y_offset, callback_fn)
local card_frame = Instance.new("Frame")
card_frame.Size = UDim2.new(1, -20, 0, 40)
card_frame.Position = UDim2.new(0, 10, 0, y_offset)
card_frame.BackgroundColor3 = Color3.fromRGB(20, 24, 36)
card_frame.BorderSizePixel = 0
card_frame.Parent = parent_frame
local card_scale = Instance.new("UIScale")
card_scale.Scale = 1
card_scale.Parent = card_frame
local card_corner = Instance.new("UICorner")
card_corner.CornerRadius = UDim.new(0, 9)
card_corner.Parent = card_frame
local card_stroke = Instance.new("UIStroke")
card_stroke.Color = default_value and Color3.fromRGB(0, 210, 255) or Color3.fromRGB(42, 48, 68)
card_stroke.Thickness = 1.2
card_stroke.Parent = card_frame
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, -70, 1, 0)
label.Position = UDim2.new(0, 12, 0, 0)
label.BackgroundTransparency = 1
label.Text = title_text
label.TextColor3 = Color3.fromRGB(235, 240, 255)
label.TextSize = 12
label.Font = Enum.Font.GothamBold
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = card_frame
local switch_bg = Instance.new("Frame")
switch_bg.Size = UDim2.new(0, 42, 0, 20)
switch_bg.Position = UDim2.new(1, -52, 0.5, -10)
switch_bg.BackgroundColor3 = default_value and Color3.fromRGB(0, 195, 255) or Color3.fromRGB(38, 44, 58)
switch_bg.BorderSizePixel = 0
switch_bg.Parent = card_frame
local switch_corner = Instance.new("UICorner")
switch_corner.CornerRadius = UDim.new(1, 0)
switch_corner.Parent = switch_bg
local knob = Instance.new("Frame")
knob.Size = UDim2.new(0, 14, 0, 14)
knob.Position = default_value and UDim2.new(1, -17, 0.5, -7) or UDim2.new(0, 3, 0.5, -7)
knob.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
knob.BorderSizePixel = 0
knob.Parent = switch_bg
local knob_corner = Instance.new("UICorner")
knob_corner.CornerRadius = UDim.new(1, 0)
knob_corner.Parent = knob
local click_button = Instance.new("TextButton")
click_button.Size = UDim2.new(1, 0, 1, 0)
click_button.BackgroundTransparency = 1
click_button.Text = ""
click_button.Parent = card_frame
local is_enabled = default_value
click_button.MouseEnter:Connect(function()
play_tween(card_scale, 0.16, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, { Scale = 1.02 })
end)
click_button.MouseLeave:Connect(function()
play_tween(card_scale, 0.16, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, { Scale = 1 })
end)
click_button.MouseButton1Click:Connect(function()
is_enabled = not is_enabled
local target_knob = is_enabled and UDim2.new(1, -17, 0.5, -7) or UDim2.new(0, 3, 0.5, -7)
local target_bg = is_enabled and Color3.fromRGB(0, 195, 255) or Color3.fromRGB(38, 44, 58)
local target_stroke = is_enabled and Color3.fromRGB(0, 210, 255) or Color3.fromRGB(42, 48, 68)
play_tween(knob, 0.22, Enum.EasingStyle.Back, Enum.EasingDirection.Out, { Position = target_knob })
play_tween(switch_bg, 0.22, Enum.EasingStyle.Quart, Enum.EasingDirection.Out, { BackgroundColor3 = target_bg })
play_tween(card_stroke, 0.22, Enum.EasingStyle.Quart, Enum.EasingDirection.Out, { Color = target_stroke })
callback_fn(is_enabled)
refresh_binds_widget()
push_toast(title_text, is_enabled and "Module Enabled" or "Module Disabled", 2.0)
end)
end
local function create_action_button(parent_frame, button_text, y_offset, callback_fn)
local button_obj = Instance.new("TextButton")
button_obj.Size = UDim2.new(1, -20, 0, 38)
button_obj.Position = UDim2.new(0, 10, 0, y_offset)
button_obj.BackgroundColor3 = Color3.fromRGB(24, 32, 48)
button_obj.Text = button_text
button_obj.TextColor3 = Color3.fromRGB(115, 230, 255)
button_obj.TextSize = 12
button_obj.Font = Enum.Font.GothamBold
button_obj.BorderSizePixel = 0
button_obj.Parent = parent_frame
local button_scale = Instance.new("UIScale")
button_scale.Scale = 1
button_scale.Parent = button_obj
local button_corner = Instance.new("UICorner")
button_corner.CornerRadius = UDim.new(0, 9)
button_corner.Parent = button_obj
local button_stroke = Instance.new("UIStroke")
button_stroke.Color = Color3.fromRGB(0, 165, 230)
button_stroke.Thickness = 1.2
button_stroke.Parent = button_obj
button_obj.MouseEnter:Connect(function()
play_tween(button_scale, 0.16, Enum.EasingStyle.Back, Enum.EasingDirection.Out, { Scale = 1.02 })
end)
button_obj.MouseLeave:Connect(function()
play_tween(button_scale, 0.16, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, { Scale = 1 })
end)
button_obj.MouseButton1Click:Connect(function()
play_tween(button_scale, 0.08, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, { Scale = 0.96 })
task.delay(0.08, function()
play_tween(button_scale, 0.14, Enum.EasingStyle.Back, Enum.EasingDirection.Out, { Scale = 1 })
end)
callback_fn(button_obj)
end)
return button_obj
end
local function build_hud_and_overlays(screen_gui)
local watermark_frame = Instance.new("Frame")
watermark_frame.Size = UDim2.new(0, 290, 0, 28)
watermark_frame.Position = UDim2.new(1, -305, 0, 14)
watermark_frame.BackgroundColor3 = Color3.fromRGB(12, 16, 24)
watermark_frame.BackgroundTransparency = 0.15
watermark_frame.BorderSizePixel = 0
watermark_frame.Parent = screen_gui
local wm_corner = Instance.new("UICorner")
wm_corner.CornerRadius = UDim.new(0, 8)
wm_corner.Parent = watermark_frame
local wm_stroke = Instance.new("UIStroke")
wm_stroke.Color = Color3.fromRGB(0, 200, 255)
wm_stroke.Thickness = 1.2
wm_stroke.Parent = watermark_frame
local wm_label = Instance.new("TextLabel")
wm_label.Size = UDim2.new(1, -16, 1, 0)
wm_label.Position = UDim2.new(0, 8, 0, 0)
wm_label.BackgroundTransparency = 1
wm_label.Text = "MATH MURDER VFX // 60 FPS"
wm_label.TextColor3 = Color3.fromRGB(235, 242, 255)
wm_label.TextSize = 11
wm_label.Font = Enum.Font.GothamBold
wm_label.Parent = watermark_frame
ui_refs.watermark_label = wm_label
local binds_frame = Instance.new("Frame")
binds_frame.Size = UDim2.new(0, 170, 0, 90)
binds_frame.Position = UDim2.new(1, -185, 0, 54)
binds_frame.BackgroundColor3 = Color3.fromRGB(12, 16, 24)
binds_frame.BackgroundTransparency = 0.18
binds_frame.BorderSizePixel = 0
binds_frame.ClipsDescendants = true
binds_frame.Parent = screen_gui
ui_refs.binds_frame = binds_frame
local bf_corner = Instance.new("UICorner")
bf_corner.CornerRadius = UDim.new(0, 8)
bf_corner.Parent = binds_frame
local bf_stroke = Instance.new("UIStroke")
bf_stroke.Color = Color3.fromRGB(95, 110, 255)
bf_stroke.Thickness = 1.2
bf_stroke.Parent = binds_frame
local bf_title = Instance.new("TextLabel")
bf_title.Size = UDim2.new(1, -12, 0, 22)
bf_title.Position = UDim2.new(0, 8, 0, 2)
bf_title.BackgroundTransparency = 1
bf_title.Text = "ACTIVE MODULES"
bf_title.TextColor3 = Color3.fromRGB(255, 255, 255)
bf_title.TextSize = 11
bf_title.Font = Enum.Font.GothamBold
bf_title.TextXAlignment = Enum.TextXAlignment.Left
bf_title.Parent = binds_frame
for idx = 1, 6 do
local item_lbl = Instance.new("TextLabel")
item_lbl.Size = UDim2.new(1, -16, 0, 16)
item_lbl.Position = UDim2.new(0, 8, 0, 24 + (idx - 1) * 18)
item_lbl.BackgroundTransparency = 1
item_lbl.Text = ""
item_lbl.TextSize = 11
item_lbl.Font = Enum.Font.GothamMedium
item_lbl.TextXAlignment = Enum.TextXAlignment.Left
item_lbl.Parent = binds_frame
table.insert(ui_refs.binds_list_labels, item_lbl)
end
local target_hud = Instance.new("Frame")
target_hud.Size = UDim2.new(0, 300, 0, 78)
target_hud.Position = UDim2.new(0.5, -150, 0, 56)
target_hud.BackgroundColor3 = Color3.fromRGB(13, 17, 26)
target_hud.BackgroundTransparency = 0.14
target_hud.BorderSizePixel = 0
target_hud.Parent = screen_gui
ui_refs.target_hud = target_hud
local th_corner = Instance.new("UICorner")
th_corner.CornerRadius = UDim.new(0, 12)
th_corner.Parent = target_hud
local th_stroke = Instance.new("UIStroke")
th_stroke.Color = Color3.fromRGB(0, 210, 255)
th_stroke.Thickness = 1.5
th_stroke.Parent = target_hud
local avatar_img = Instance.new("ImageLabel")
avatar_img.Size = UDim2.new(0, 50, 0, 50)
avatar_img.Position = UDim2.new(0, 12, 0, 10)
avatar_img.BackgroundColor3 = Color3.fromRGB(22, 28, 42)
avatar_img.BorderSizePixel = 0
avatar_img.Parent = target_hud
local av_corner = Instance.new("UICorner")
av_corner.CornerRadius = UDim.new(1, 0)
av_corner.Parent = avatar_img
task.spawn(function()
local ok, thumb = pcall(function()
return players_service:GetUserThumbnailAsync(local_player.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size100x100)
end)
if ok and thumb then
avatar_img.Image = thumb
end
end)
local eq_lbl = Instance.new("TextLabel")
eq_lbl.Size = UDim2.new(1, -80, 0, 18)
eq_lbl.Position = UDim2.new(0, 72, 0, 8)
eq_lbl.BackgroundTransparency = 1
eq_lbl.Text = "Equation: Scanning..."
eq_lbl.TextColor3 = Color3.fromRGB(235, 240, 255)
eq_lbl.TextSize = 12
eq_lbl.Font = Enum.Font.GothamBold
eq_lbl.TextXAlignment = Enum.TextXAlignment.Left
eq_lbl.Parent = target_hud
ui_refs.target_eq_label = eq_lbl
local ans_lbl = Instance.new("TextLabel")
ans_lbl.Size = UDim2.new(1, -80, 0, 18)
ans_lbl.Position = UDim2.new(0, 72, 0, 26)
ans_lbl.BackgroundTransparency = 1
ans_lbl.Text = "Result: ..."
ans_lbl.TextColor3 = Color3.fromRGB(80, 255, 185)
ans_lbl.TextSize = 12
ans_lbl.Font = Enum.Font.GothamBold
ans_lbl.TextXAlignment = Enum.TextXAlignment.Left
ans_lbl.Parent = target_hud
ui_refs.target_ans_label = ans_lbl
local dist_lbl = Instance.new("TextLabel")
dist_lbl.Size = UDim2.new(1, -80, 0, 16)
dist_lbl.Position = UDim2.new(0, 72, 0, 44)
dist_lbl.BackgroundTransparency = 1
dist_lbl.Text = "0 studs | Solved: 0"
dist_lbl.TextColor3 = Color3.fromRGB(150, 170, 210)
dist_lbl.TextSize = 11
dist_lbl.Font = Enum.Font.GothamMedium
dist_lbl.TextXAlignment = Enum.TextXAlignment.Left
dist_lbl.Parent = target_hud
ui_refs.target_dist_label = dist_lbl
local bar_bg = Instance.new("Frame")
bar_bg.Size = UDim2.new(1, -24, 0, 6)
bar_bg.Position = UDim2.new(0, 12, 1, -11)
bar_bg.BackgroundColor3 = Color3.fromRGB(28, 34, 48)
bar_bg.BorderSizePixel = 0
bar_bg.ClipsDescendants = true
bar_bg.Parent = target_hud
local bar_corner = Instance.new("UICorner")
bar_corner.CornerRadius = UDim.new(1, 0)
bar_corner.Parent = bar_bg
local ghost_bar = Instance.new("Frame")
ghost_bar.Size = UDim2.new(1, 0, 1, 0)
ghost_bar.BackgroundColor3 = Color3.fromRGB(255, 90, 125)
ghost_bar.BorderSizePixel = 0
ghost_bar.Parent = bar_bg
ui_refs.target_ghost_bar = ghost_bar
local main_bar = Instance.new("Frame")
main_bar.Size = UDim2.new(1, 0, 1, 0)
main_bar.BackgroundColor3 = Color3.fromRGB(0, 220, 255)
main_bar.BorderSizePixel = 0
main_bar.Parent = bar_bg
ui_refs.target_main_bar = main_bar
local box_2d = Instance.new("Frame")
box_2d.BackgroundTransparency = 1
box_2d.Visible = false
box_2d.Parent = screen_gui
ui_refs.overlay_box_frame = box_2d
local corner_defs = {
{ UDim2.new(0, 0, 0, 0), UDim2.new(0, 18, 0, 2) },
{ UDim2.new(0, 0, 0, 0), UDim2.new(0, 2, 0, 18) },
{ UDim2.new(1, -18, 0, 0), UDim2.new(0, 18, 0, 2) },
{ UDim2.new(1, -2, 0, 0), UDim2.new(0, 2, 0, 18) },
{ UDim2.new(0, 0, 1, -2), UDim2.new(0, 18, 0, 2) },
{ UDim2.new(0, 0, 1, -18), UDim2.new(0, 2, 0, 18) },
{ UDim2.new(1, -18, 1, -2), UDim2.new(0, 18, 0, 2) },
{ UDim2.new(1, -2, 1, -18), UDim2.new(0, 2, 0, 18) }
}
for _, def in ipairs(corner_defs) do
local c_line = Instance.new("Frame")
c_line.Position = def[1]
c_line.Size = def[2]
c_line.BackgroundColor3 = Color3.fromRGB(0, 225, 255)
c_line.BorderSizePixel = 1
c_line.BorderColor3 = Color3.fromRGB(0, 0, 0)
c_line.Parent = box_2d
table.insert(ui_refs.overlay_corners, c_line)
end
local tag_2d = Instance.new("TextLabel")
tag_2d.Size = UDim2.new(1, 60, 0, 20)
tag_2d.Position = UDim2.new(0.5, -30, 0, -24)
tag_2d.AnchorPoint = Vector2.new(0.5, 0)
tag_2d.BackgroundColor3 = Color3.fromRGB(10, 14, 22)
tag_2d.BackgroundTransparency = 0.25
tag_2d.TextColor3 = Color3.fromRGB(255, 255, 255)
tag_2d.TextSize = 11
tag_2d.Font = Enum.Font.GothamBold
tag_2d.Text = "BOARD"
tag_2d.Parent = box_2d
ui_refs.overlay_tag = tag_2d
local tag_corner = Instance.new("UICorner")
tag_corner.CornerRadius = UDim.new(0, 5)
tag_corner.Parent = tag_2d
local side_ghost = Instance.new("Frame")
side_ghost.Size = UDim2.new(0, 3, 1, 0)
side_ghost.Position = UDim2.new(0, -7, 0, 0)
side_ghost.BackgroundColor3 = Color3.fromRGB(255, 80, 110)
side_ghost.BorderSizePixel = 1
side_ghost.BorderColor3 = Color3.fromRGB(0, 0, 0)
side_ghost.Parent = box_2d
ui_refs.overlay_bar_ghost = side_ghost
local side_main = Instance.new("Frame")
side_main.Size = UDim2.new(0, 3, 1, 0)
side_main.Position = UDim2.new(0, -7, 0, 0)
side_main.BackgroundColor3 = Color3.fromRGB(0, 255, 175)
side_main.BorderSizePixel = 0
side_main.Parent = box_2d
ui_refs.overlay_bar_main = side_main
local oof_frame = Instance.new("Frame")
oof_frame.Size = UDim2.new(0, 28, 0, 28)
oof_frame.BackgroundColor3 = Color3.fromRGB(0, 215, 255)
oof_frame.Visible = false
oof_frame.Parent = screen_gui
ui_refs.oof_arrow = oof_frame
local oof_corner = Instance.new("UICorner")
oof_corner.CornerRadius = UDim.new(0, 6)
oof_corner.Parent = oof_frame
local oof_lbl = Instance.new("TextLabel")
oof_lbl.Size = UDim2.new(1, 0, 1, 0)
oof_lbl.BackgroundTransparency = 1
oof_lbl.Text = ">"
oof_lbl.TextColor3 = Color3.fromRGB(255, 255, 255)
oof_lbl.TextSize = 16
oof_lbl.Font = Enum.Font.GothamBold
oof_lbl.Parent = oof_frame
for _ = 1, 4 do
local ch_line = Instance.new("Frame")
ch_line.Size = UDim2.new(0, 9, 0, 2)
ch_line.AnchorPoint = Vector2.new(0.5, 0.5)
ch_line.BackgroundColor3 = Color3.fromRGB(0, 230, 255)
ch_line.BorderSizePixel = 1
ch_line.BorderColor3 = Color3.fromRGB(0, 0, 0)
ch_line.Parent = screen_gui
table.insert(ui_refs.crosshair_lines, ch_line)
end
local toast_holder = Instance.new("Frame")
toast_holder.Size = UDim2.new(1, 0, 1, 0)
toast_holder.BackgroundTransparency = 1
toast_holder.Parent = screen_gui
ui_refs.toast_holder = toast_holder
end
local function create_interface()
cleanup_all()
setup_lighting_vfx()
local screen_gui = Instance.new("ScreenGui")
screen_gui.Name = "math_murder_vfx_suite"
screen_gui.ResetOnSpawn = false
screen_gui.IgnoreGuiInset = true
screen_gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screen_gui.Parent = get_ui_parent()
ui_refs.screen_gui = screen_gui
build_hud_and_overlays(screen_gui)
local shadow_frame = Instance.new("Frame")
shadow_frame.Size = UDim2.new(0, 360, 0, 330)
shadow_frame.Position = UDim2.new(0, 26, 0.5, -165)
shadow_frame.BackgroundColor3 = Color3.fromRGB(6, 8, 14)
shadow_frame.BackgroundTransparency = 0.3
shadow_frame.BorderSizePixel = 0
shadow_frame.Parent = screen_gui
ui_refs.main_container = shadow_frame
local shadow_corner = Instance.new("UICorner")
shadow_corner.CornerRadius = UDim.new(0, 16)
shadow_corner.Parent = shadow_frame
local window_scale = Instance.new("UIScale")
window_scale.Scale = 0.8
window_scale.Parent = shadow_frame
ui_refs.window_scale = window_scale
local main_frame = Instance.new("Frame")
main_frame.Size = UDim2.new(1, -8, 1, -8)
main_frame.Position = UDim2.new(0, 4, 0, 4)
main_frame.BackgroundColor3 = Color3.fromRGB(13, 16, 25)
main_frame.BorderSizePixel = 0
main_frame.ClipsDescendants = true
main_frame.Parent = shadow_frame
local main_corner = Instance.new("UICorner")
main_corner.CornerRadius = UDim.new(0, 14)
main_corner.Parent = main_frame
local border_stroke = Instance.new("UIStroke")
border_stroke.Thickness = 2.2
border_stroke.Color = Color3.fromRGB(255, 255, 255)
border_stroke.Parent = main_frame
local border_gradient = Instance.new("UIGradient")
border_gradient.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 225, 255)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(150, 80, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 255, 175))
})
border_gradient.Parent = border_stroke
local header_frame = Instance.new("Frame")
header_frame.Size = UDim2.new(1, 0, 0, 42)
header_frame.BackgroundColor3 = Color3.fromRGB(18, 22, 34)
header_frame.BorderSizePixel = 0
header_frame.Parent = main_frame
local title_label = Instance.new("TextLabel")
title_label.Size = UDim2.new(1, -90, 1, 0)
title_label.Position = UDim2.new(0, 16, 0, 0)
title_label.BackgroundTransparency = 1
title_label.Text = "MATH MURDER // PROCEDURAL VFX"
title_label.TextColor3 = Color3.fromRGB(240, 245, 255)
title_label.TextSize = 13
title_label.Font = Enum.Font.GothamBold
title_label.TextXAlignment = Enum.TextXAlignment.Left
title_label.Parent = header_frame
local badge_label = Instance.new("TextLabel")
badge_label.Size = UDim2.new(0, 68, 0, 22)
badge_label.Position = UDim2.new(1, -80, 0.5, -11)
badge_label.BackgroundColor3 = Color3.fromRGB(28, 36, 54)
badge_label.Text = "RShift"
badge_label.TextColor3 = Color3.fromRGB(0, 215, 255)
badge_label.TextSize = 11
badge_label.Font = Enum.Font.GothamBold
badge_label.Parent = header_frame
local badge_corner = Instance.new("UICorner")
badge_corner.CornerRadius = UDim.new(0, 6)
badge_corner.Parent = badge_label
enable_smooth_dragging(header_frame, shadow_frame)
local tab_bar = Instance.new("Frame")
tab_bar.Size = UDim2.new(1, -20, 0, 32)
tab_bar.Position = UDim2.new(0, 10, 0, 50)
tab_bar.BackgroundColor3 = Color3.fromRGB(18, 22, 32)
tab_bar.BorderSizePixel = 0
tab_bar.Parent = main_frame
local tab_corner = Instance.new("UICorner")
tab_corner.CornerRadius = UDim.new(0, 8)
tab_corner.Parent = tab_bar
local tab_indicator = Instance.new("Frame")
tab_indicator.Size = UDim2.new(0.25, -4, 1, -4)
tab_indicator.Position = UDim2.new(0, 2, 0, 2)
tab_indicator.BackgroundColor3 = Color3.fromRGB(32, 44, 68)
tab_indicator.BorderSizePixel = 0
tab_indicator.Parent = tab_bar
local indicator_corner = Instance.new("UICorner")
indicator_corner.CornerRadius = UDim.new(0, 6)
indicator_corner.Parent = tab_indicator
local content_holder = Instance.new("Frame")
content_holder.Size = UDim2.new(1, 0, 1, -90)
content_holder.Position = UDim2.new(0, 0, 0, 88)
content_holder.BackgroundTransparency = 1
content_holder.Parent = main_frame
local solver_page = Instance.new("Frame")
solver_page.Size = UDim2.new(1, 0, 1, 0)
solver_page.BackgroundTransparency = 1
solver_page.Visible = true
solver_page.Parent = content_holder
local spatial_page = Instance.new("Frame")
spatial_page.Size = UDim2.new(1, 0, 1, 0)
spatial_page.BackgroundTransparency = 1
spatial_page.Visible = false
spatial_page.Parent = content_holder
local overlay_page = Instance.new("Frame")
overlay_page.Size = UDim2.new(1, 0, 1, 0)
overlay_page.BackgroundTransparency = 1
overlay_page.Visible = false
overlay_page.Parent = content_holder
local world_page = Instance.new("Frame")
world_page.Size = UDim2.new(1, 0, 1, 0)
world_page.BackgroundTransparency = 1
world_page.Visible = false
world_page.Parent = content_holder
local pages = { solver_page, spatial_page, overlay_page, world_page }
local tab_names = { "Solver", "3D Spatial", "2D Overlay", "World VFX" }
for tab_index, tab_title in ipairs(tab_names) do
local tab_btn = Instance.new("TextButton")
tab_btn.Size = UDim2.new(0.25, 0, 1, 0)
tab_btn.Position = UDim2.new((tab_index - 1) * 0.25, 0, 0, 0)
tab_btn.BackgroundTransparency = 1
tab_btn.Text = tab_title
tab_btn.TextColor3 = Color3.fromRGB(220, 230, 255)
tab_btn.TextSize = 11
tab_btn.Font = Enum.Font.GothamBold
tab_btn.Parent = tab_bar
tab_btn.MouseButton1Click:Connect(function()
play_tween(tab_indicator, 0.25, Enum.EasingStyle.Quart, Enum.EasingDirection.Out, {
Position = UDim2.new((tab_index - 1) * 0.25, 2, 0, 2)
})
for page_index, page_frame in ipairs(pages) do
page_frame.Visible = (page_index == tab_index)
end
end)
end
create_toggle_card(solver_page, "Auto Answer + Enter", state.auto_answer, 4, function(enabled)
state.auto_answer = enabled
if enabled and state.last_answer ~= "" then
submit_answer(state.last_answer)
end
end)
create_toggle_card(solver_page, "Humanize Typing Effect", state.humanize_typing, 50, function(enabled)
state.humanize_typing = enabled
end)
create_toggle_card(solver_page, "Auto Click Desk Green Button", state.auto_click_detector, 96, function(enabled)
state.auto_click_detector = enabled
end)
create_action_button(solver_page, "Reaction Delay: 0.05s (Click to Cycle)", 142, function(btn_ref)
state.delay_index = (state.delay_index % #state.delay_presets) + 1
state.reaction_delay = state.delay_presets[state.delay_index]
btn_ref.Text = string.format("Reaction Delay: %.2fs (Click to Cycle)", state.reaction_delay)
end)
create_action_button(solver_page, "Force Submit Current Answer", 186, function()
if state.last_answer ~= "" then
submit_answer(state.last_answer)
end
end)
create_toggle_card(spatial_page, "3D Corner Box + Aura + Chams", state.spatial_3d_enabled, 4, function(enabled)
state.spatial_3d_enabled = enabled
end)
create_toggle_card(spatial_page, "3D Cubic Bezier Spline", state.bezier_spline_enabled, 50, function(enabled)
state.bezier_spline_enabled = enabled
end)
create_toggle_card(spatial_page, "3D Neon Movement Trail", state.player_trail_enabled, 96, function(enabled)
state.player_trail_enabled = enabled
setup_character_trail()
end)
create_action_button(spatial_page, "Trigger Test 3D Shockwave", 142, function()
local character = local_player.Character
local root_part = character and character:FindFirstChild("HumanoidRootPart")
if root_part then
spawn_solve_vfx(root_part.Position, state.last_answer ~= "" and state.last_answer or "VFX")
end
end)
create_toggle_card(overlay_page, "2D Corner Box + Ghost Bar + OOF", state.overlay_2d_enabled, 4, function(enabled)
state.overlay_2d_enabled = enabled
end)
create_toggle_card(overlay_page, "Dynamic Rotating Crosshair", state.crosshair_enabled, 50, function(enabled)
state.crosshair_enabled = enabled
end)
create_toggle_card(overlay_page, "Target HUD Floating Card", true, 96, function(enabled)
if ui_refs.target_hud then
ui_refs.target_hud.Visible = enabled
end
end)
create_toggle_card(world_page, "Bloom + ColorCorrection + DOF", state.world_vfx_enabled, 4, function(enabled)
state.world_vfx_enabled = enabled
if state.bloom_effect then state.bloom_effect.Enabled = enabled end
if state.color_correction then state.color_correction.Enabled = enabled end
if state.dof_effect then state.dof_effect.Enabled = enabled and state.ui_visible end
end)
create_action_button(world_page, "Rescan Workspace & GUI Objects", 50, function()
initialize_scanner()
push_toast("SCANNER", "Workspace & GUI rescanned", 2.2)
end)
refresh_binds_widget()
play_tween(window_scale, 0.38, Enum.EasingStyle.Back, Enum.EasingDirection.Out, { Scale = 1 })
push_toast("VFX SUITE LOADED", "Press RightShift to toggle menu", 3.5)
state.input_connection = user_input_service.InputBegan:Connect(function(input_obj, game_processed)
if game_processed then return end
if input_obj.KeyCode == Enum.KeyCode.RightShift then
state.ui_visible = not state.ui_visible
if state.dof_effect then
state.dof_effect.Enabled = state.world_vfx_enabled and state.ui_visible
end
if state.ui_visible then
shadow_frame.Visible = true
play_tween(window_scale, 0.28, Enum.EasingStyle.Back, Enum.EasingDirection.Out, { Scale = 1 })
else
local hide_tween = play_tween(window_scale, 0.2, Enum.EasingStyle.Quart, Enum.EasingDirection.In, { Scale = 0 })
if hide_tween then
hide_tween.Completed:Connect(function()
if not state.ui_visible then
shadow_frame.Visible = false
end
end)
end
end
end
end)
state.render_connection = run_service.RenderStepped:Connect(function(delta_time)
if not screen_gui.Parent then
if state.render_connection then state.render_connection:Disconnect() end
if state.input_connection then state.input_connection:Disconnect() end
return
end
state.wave_time = state.wave_time + delta_time
border_gradient.Rotation = (border_gradient.Rotation + delta_time * 75) % 360
update_3d_spatial_visuals(delta_time)
update_2d_overlay_and_hud(delta_time)
end)
end
create_interface()
initialize_scanner()Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place