Shooting Stuff Src
Key Required

Shooting Stuff Src

πŸ”¨ MM2 Aim Trainer1kzuya1kzuya 23.9K views 75.7K executesUpdated Dec 1, 2025
3.8/ 5(4 votes)
3175% Positive
Lua Scriptβ€’199 lines (5895 chars)
local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))()

local UserInputService = game:GetService("UserInputService")
local CoreGui = game:GetService("CoreGui")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")

local LocalPlayer = Players.LocalPlayer
local CurrentGun = nil

-- Detect platform
local IsMobile = table.find({Enum.Platform.IOS, Enum.Platform.Android}, UserInputService:GetPlatform()) ~= nil

-- Defaults
getgenv().shootkey = getgenv().shootkey or Enum.KeyCode.Q
getgenv().shootoffset = getgenv().shootoffset or 1


local function DetectGunLoop()
    while task.wait() do
        local equipped = LocalPlayer:FindFirstChild("EquippedGun")

        if equipped and equipped.Value ~= CurrentGun then
            CurrentGun = equipped.Value
            Fluent:Notify({
                Title = "Gun Detected",
                Content = "Your gun: " .. CurrentGun,
                Duration = 2.5
            })
        elseif (not equipped or equipped.Value == nil) and CurrentGun ~= nil then
            CurrentGun = nil
            Fluent:Notify({
                Title = "Error",
                Content = "Unable to detect gun.",
                Duration = 2.5
            })
        end
    end
end


local function GetClosestTarget()
    local character = LocalPlayer.Character
    if not character or not character:FindFirstChild("HumanoidRootPart") then return nil end

    local root = character.HumanoidRootPart
    local closest = nil
    local closestDist = math.huge

    for _, player in ipairs(Players:GetPlayers()) do
        if player ~= LocalPlayer and (player.Team == nil or player.Team ~= LocalPlayer.Team) then
            local enemyChar = player.Character
            if enemyChar and enemyChar:FindFirstChild("HumanoidRootPart") then
                local dist = (root.Position - enemyChar.HumanoidRootPart.Position).Magnitude
                if dist < closestDist then
                    closestDist = dist
                    closest = enemyChar
                end
            end
        end
    end

    -- fallback checks (Rigs, all HRPs)
    if not closest then
        local rigsFolder = workspace:FindFirstChild("Rigs")
        if rigsFolder then
            for _, obj in ipairs(rigsFolder:GetDescendants()) do
                if obj:IsA("BasePart") and obj.Name == "HumanoidRootPart" then
                    local dist = (root.Position - obj.Position).Magnitude
                    if dist < closestDist then
                        closestDist = dist
                        closest = obj.Parent
                    end
                end
            end
        end
    end

    if not closest then
        for _, obj in ipairs(workspace:GetDescendants()) do
            if obj:IsA("BasePart") and obj.Name == "HumanoidRootPart" then
                local dist = (root.Position - obj.Position).Magnitude
                if dist < closestDist then
                    closestDist = dist
                    closest = obj.Parent
                end
            end
        end
    end

    return closest
end


local function PredictPosition(target, offset)
    if not target or not target:FindFirstChild("HumanoidRootPart") then
        return Vector3.zero
    end

    local hrp = target.HumanoidRootPart
    local velocity = hrp.AssemblyLinearVelocity

    local ping = LocalPlayer:GetNetworkPing() or 0
    local pingAdjust = velocity * math.max(0, ping)

    return hrp.Position + velocity * (offset / 15) + pingAdjust
end


local function EquipGun()
    if not CurrentGun then return end
    local gun = LocalPlayer.Backpack:FindFirstChild(CurrentGun)
    if gun then gun.Parent = LocalPlayer.Character end
end

local function UnequipGun()
    if not CurrentGun then return end
    local gun = LocalPlayer.Character:FindFirstChild(CurrentGun)
    if gun then gun.Parent = LocalPlayer.Backpack end
end


local function Shoot()
    if not CurrentGun then
        Fluent:Notify({
            Title = "Error",
            Content = "No gun equipped.",
            Duration = 2.5
        })
        return
    end

    local target = GetClosestTarget()
    if not target then
        Fluent:Notify({
            Title = "Error",
            Content = "No target found.",
            Duration = 2
        })
        return
    end

    local char = LocalPlayer.Character
    if not char or not char:FindFirstChild("HumanoidRootPart") then
        Fluent:Notify({
            Title = "Error",
            Content = "Local character missing.",
            Duration = 2
        })
        return
    end

    EquipGun()
    local predicted = PredictPosition(target, getgenv().shootoffset)

    local gun = char:FindFirstChild(CurrentGun)
    if gun and gun:FindFirstChild("GunServer") and gun.GunServer:FindFirstChild("ShootStart") then
        gun.GunServer.ShootStart:FireServer(1, predicted)
        task.wait(0.14)
    end

    UnequipGun()
end


if IsMobile then
    local old = CoreGui:FindFirstChild(":33")
    if old then old:Destroy() end

    local gui = Instance.new("ScreenGui")
    gui.Name = ":33"
    gui.Parent = CoreGui
    gui.ResetOnSpawn = false

    local button = Instance.new("ImageButton")
    button.Size = UDim2.new(0, 60, 0, 60)
    button.Position = UDim2.new(1, -145, 1, -140)
    button.Image = "rbxassetid://16688482749"
    button.BackgroundTransparency = 1
    button.Parent = gui

    button.MouseButton1Click:Connect(Shoot)
else
    UserInputService.InputBegan:Connect(function(input, typing)
        if typing then return end
        if input.KeyCode == getgenv().shootkey then
            Shoot()
        end
    end)
end

task.spawn(DetectGunLoop)

Fluent:Notify({
    Title = "Loaded",
    Content = "FUCK THIS SHIT IS TRASH",
    SubContent = "made by fork (was taken down by 1kzuya)",
    Duration = 10
})

Features & Information

Just that lame silent aim for the gun πŸ”« β€’ why would anyone use this kind of stuff for an aim training game, I wonder πŸ˜„ Would appreciate if you join the discord, has free deobfuscator https://discord.gg/U3XGVCPPj
#murdermystry#aimtrainer#hello

Community Comments (12)

Mm2XDeathHubMm2XDeathHubDec 1, 2025

* Nice Script

Replying to @Mm2XDeathHub
1kzuya1kzuyaDec 1, 2025

@Mm2XDeathHub Thank You :)

forkforkJan 4, 2026

ty for leaking ts gpt * i made for fun 9 month agoπŸ™‚

Replying to @fork
1kzuya1kzuyaJan 4, 2026

@fork I wonder why you deleted your previous post? If you want I can remove this post permanently!

Replying to @1kzuya
forkforkJan 5, 2026

@1kzuya the script is discontinued so you could keep it if u want :D

Replying to @1kzuya
VerygoodzhuVerygoodzhuApr 9, 2026

@1kzuya yo can you make it mm2 aim trainer 2 support

2sourced2sourcedJan 18, 2026(edited)

ts still working?

luckxxtyluckxxtyFeb 27, 2026

works on xeno executor?

Replying to @luckxxty
1kzuya1kzuyaFeb 28, 2026

@luckxxty I guess it does.

Replying to @luckxxty
ProgamerYTProgamerYTJul 14, 2026

@luckxxty no

user000011user000011Apr 14, 2026

how does it work on pc

caelusnogodcaelusnogodSep 21, 2026

Make one for the new mm2 aim trainer