-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. 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 Rscripts 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()