local repo = 'https://raw.githubusercontent.com/violin-suzutsuki/LinoriaLib/main/' local Library = loadstring(game:HttpGet(repo .. 'Library.lua'))() local ThemeManager = loadstring(game:HttpGet(repo .. 'addons/ThemeManager.lua'))() local SaveManager = loadstring(game:HttpGet(repo .. 'addons/SaveManager.lua'))() local player = game.Players.LocalPlayer local character = game.Players.LocalPlayer.Character or game.Players.LocalPlayer.CharacterAdded:Wait() player.CharacterAdded:Connect(function(char) character = char end) local name = string.format("%sBoat", player.Name) local bodyVelocity local bodyGyro local defaultWalkSpeed local runService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Window = Library:CreateWindow({ Title = "Kintama Hack", Center = false, AutoShow = true, TabPadding = 8, MenuFadeTime = 0.2 }) local Tabs = { Main = Window:AddTab('Main'), ['UI Settings'] = Window:AddTab('UI Settings'), } -- CONNECTIONS local AttackToggleConn local CannonToggleConn local disableFunctions = { AttackToggle = function() if AttackToggleConn then AttackToggleConn:Disconnect() AttackToggleConn = nil end end, CannonToggle = function() if CannonToggleConn then CannonToggleConn:Disconnect() CannonToggleConn = nil end end, SpeedToggle = function() runService:UnbindFromRenderStep("walkspeedToggle") local humanoid = character and character:FindFirstChild("Humanoid") if humanoid and defaultWalkSpeed then humanoid.WalkSpeed = defaultWalkSpeed end end, FlyToggle = function() runService:UnbindFromRenderStep("HackFly") local humanoid = character and character:FindFirstChild("Humanoid") local rootPart = character and character:FindFirstChild("HumanoidRootPart") if bodyVelocity then bodyVelocity:Destroy() bodyVelocity = nil end if bodyGyro then bodyGyro:Destroy() bodyGyro = nil end if humanoid then humanoid.PlatformStand = false end end, NoClipToggle = function() runService:UnbindFromRenderStep("NoClipHack") for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end end, RotationToggle = function() runService:UnbindFromRenderStep("RotationHack") local boat = workspace.Boats:FindFirstChild(name) local center = boat and boat:FindFirstChild("Center") if boat and center then center.AssemblyAngularVelocity = Vector3.new(0, 0, 0) end end, BoatSpeedToggle = function() runService:UnbindFromRenderStep("BoatSpeedHack") local boat = workspace.Boats:FindFirstChild(name) local center = boat and boat:FindFirstChild("Center") if boat and center then center.AssemblyLinearVelocity = Vector3.new(0, 0, 0) end end, } ----- local LeftGroupBox = Tabs.Main:AddLeftGroupbox('Attack Teleports') local MovementBox = Tabs.Main:AddRightGroupbox("Movement") LeftGroupBox:AddInput("TeleportName", { Default = "", Finished = true, Text = "Target by enemey name", Tooltip = "Makes your blasts teleport to target. Write player username if target player. Write nothing if disable" } ) LeftGroupBox:AddToggle('PvpToggle', { Text = 'Toggle tp attack to player', Default = false, Tooltip = 'If enabled then attacks will also tp to players (not you)' }) LeftGroupBox:AddToggle("PveToggle",{ Text = 'Toggle tp attack to npc', Default = true, Tooltip = 'If enabled then attacks will tp to npcs' }) LeftGroupBox:AddToggle("AttackToggle", { Text = "Tp attacks closest enemy", Default = false, Tooltip = "Tp attacks to closest enemy currently only works with magic blasts (magic m1 and the first magic move)", Callback = function(Value) local function getClosestEnemy() if not character then return nil end local hrp = character:FindFirstChild("HumanoidRootPart") if not hrp then return nil end local pve = Toggles.PveToggle.Value local pvp = Toggles.PvpToggle.Value local closestEnemy = nil if #Options.TeleportName.Value > 0 then local name = Options.TeleportName.Value if pvp then if game.Players:FindFirstChild(name) then closestEnemy = game.Players[name].Character end end if not closestEnemy and pve then if workspace.Enemies:FindFirstChild(name) then closestEnemy = workspace.Enemies[name] end end else local plrDist = math.huge local mobDist = math.huge local closestPlayer local closestMob if pvp then for _, plr in ipairs(game.Players:GetPlayers()) do if plr == player then continue end local char = plr.Character if char then local HRP = char:FindFirstChild("HumanoidRootPart") local hum = char:FindFirstChild("Humanoid") if hum then if hum.Health <= 0 then continue end end if HRP then local distance = (HRP.Position - hrp.Position).Magnitude if distance < plrDist then plrDist = distance closestPlayer = char end end end end end if pve then for _, enemy in ipairs(workspace.Enemies:GetChildren()) do if enemy:IsA("Model") then local enemyHRP = enemy:FindFirstChild("HumanoidRootPart") local hum = enemy:FindFirstChildOfClass("Humanoid") if hum then if hum.Health <= 0 then continue end else local atts = enemy:FindFirstChild("Attributes") if atts then local Health = atts:FindFirstChild("Health") if not Health or Health.Value <= 0 then continue end end end if enemyHRP then local distance = (enemyHRP.Position - hrp.Position).Magnitude if distance < mobDist then mobDist = distance closestMob = enemy end end end end end print(plrDist, mobDist, closestEnemy, closestPlayer, closestMob) if plrDist < mobDist then closestEnemy = closestPlayer else closestEnemy = closestMob end end return closestEnemy end local function tpToTarget(effect) if effect.Name == "Blast" then local target = getClosestEnemy() if not target then return end local targetHRP = target:FindFirstChild("HumanoidRootPart") if not targetHRP then return end if effect:IsA("BasePart") then task.spawn(function() while effect.Parent == workspace.Effects do if target and targetHRP then effect.CFrame = targetHRP.CFrame task.wait() else break end end end) end print(target, "done") end end if Value then AttackToggleConn = workspace.Effects.ChildAdded:Connect(function(child) if child:IsA("BasePart") then tpToTarget(child) end end) else disableFunctions["AttackToggle"]() end end }):AddKeyPicker("AttackToggleKey", { Default = "", SyncToggleState = true, Text = "" }) LeftGroupBox:AddDivider() LeftGroupBox:AddToggle('CannonPvpToggle', { Text = 'Tps player ship', Default = false, Tooltip = 'If enabled then cannonballs will also tp to nearest plr ship' }) LeftGroupBox:AddToggle("CannonPveToggle",{ Text = 'Tps bot ship', Default = true, Tooltip = 'If enabled then cannonballs will tp to nearest bot ship' }) LeftGroupBox:AddToggle("CannonFortToggle",{ Text = 'Tps fort (overrides others)', Default = false, Tooltip = 'Tps cannonballs to either fort castrum or fort montu (will auto select)' }) LeftGroupBox:AddToggle("CannonToggle",{ Text = 'Tps cannonballs to ship', Default = false, Tooltip = 'If enabled then cannonballs will tp to nearest ship', Callback = function(Value) local function getClosestBoat() local hrp = character and character:FindFirstChild("HumanoidRootPart") if not hrp then return nil end local closestBoat = nil local closestDistance = math.huge local pvp = Toggles.CannonPvpToggle.Value local pve = Toggles.CannonPveToggle.Value for _, boat in ipairs(workspace.Boats:GetChildren()) do if boat:IsA("Model") and boat.PrimaryPart then local owner = boat:FindFirstChild("Owner") if owner and owner.Value then if not pvp then continue end if owner.Value == player then continue end else if not pve then continue end end local distance = (boat.PrimaryPart.Position - hrp.Position).Magnitude if distance < closestDistance then closestDistance = distance closestBoat = boat end end end return closestBoat end local function tpToTarget(effect) if effect.Name ~= "Cannonball" then return end if not effect:IsA("BasePart") then return end if Toggles.CannonFortToggle.Value then task.spawn(function() local placeId = game.PlaceId local tCF = CFrame.new(0,0,0) if placeId == 12604352060 then tCF = CFrame.new(18922.0723, 481.937286, 12807.6953) elseif placeId == 15449776494 then tCF = CFrame.new(3044.59399, 515.677246, -8690.51758) end while effect.Parent == workspace.Effects do if targetBoat and targetPart then effect.CFrame = tCF task.wait() else break end end end) else local targetBoat = getClosestBoat() if not targetBoat then return end local targetPart = targetBoat.PrimaryPart if not targetPart then return end task.spawn(function() while effect.Parent == workspace.Effects do if targetBoat and targetPart then effect.CFrame = targetPart.CFrame task.wait() else break end end end) end end if Value then CannonToggleConn = workspace.Effects.ChildAdded:Connect(function(child) tpToTarget(child) end) else disableFunctions["CannonToggle"]() end end }):AddKeyPicker("CannonToggleKey", { Default = "", SyncToggleState = true, Text = "" }) MovementBox:AddInput("SpeedBox", { Default = "100", Numeric = true, Finished = true, Text = "Insert movement speed", Tooltip = "" } ) MovementBox:AddToggle("SpeedToggle",{ Text = 'Activate speed hack', Default = false, Tooltip = 'Go fast', Callback = function(Value) if Value then local humanoid = character and character:FindFirstChild("Humanoid") if not humanoid then Toggles.SpeedToggle:SetValue(false) return end defaultWalkSpeed = humanoid.WalkSpeed runService:BindToRenderStep("walkspeedToggle", 0, function() local char = character local humanoid = char:FindFirstChild("Humanoid") if char and humanoid then humanoid.WalkSpeed = Options.SpeedBox.Value end end) else disableFunctions["SpeedToggle"]() end end}):AddKeyPicker("SpeedToggleKey", { Default = "", SyncToggleState = true, Text = "" }) MovementBox:AddInput("FlyBox", { Default = "100", Numeric = true, Finished = true, Text = "Insert fly speed", Tooltip = "" } ) MovementBox:AddToggle("FlyToggle",{ Text = 'Activate fly hack', Default = false, Tooltip = 'Go fly', Callback = function(Value) local function enableFly() local humanoid = character and character:FindFirstChild("Humanoid") local rootPart = character and character:FindFirstChild("HumanoidRootPart") humanoid.PlatformStand = true bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.Velocity = Vector3.new(0, 0, 0) bodyVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge) bodyVelocity.Parent = rootPart bodyGyro = Instance.new("BodyGyro") bodyGyro.MaxTorque = Vector3.new(math.huge, math.huge, math.huge) bodyGyro.P = 10000 bodyGyro.D = 500 bodyGyro.CFrame = rootPart.CFrame bodyGyro.Parent = rootPart runService:BindToRenderStep("HackFly", 0, function() if not rootPart then return end if not bodyVelocity or bodyVelocity.Parent ~= rootPart then if bodyVelocity then bodyVelocity:Destroy() end bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge) bodyVelocity.Parent = rootPart end if not bodyGyro or bodyGyro.Parent ~= rootPart then if bodyGyro then bodyGyro:Destroy() end bodyGyro = Instance.new("BodyGyro") bodyGyro.MaxTorque = Vector3.new(math.huge, math.huge, math.huge) bodyGyro.P = 10000 bodyGyro.D = 500 bodyGyro.CFrame = rootPart.CFrame bodyGyro.Parent = rootPart end local flySpeed = Options.FlyBox.Value local camera = workspace.CurrentCamera local direction = Vector3.new(0, 0, 0) if UserInputService:IsKeyDown(Enum.KeyCode.W) then direction = direction + camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then direction = direction - camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then direction = direction - camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then direction = direction + camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then direction = direction + Vector3.new(0, 1, 0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then direction = direction + Vector3.new(0, -1, 0) end if direction.Magnitude > 0 then direction = direction.Unit * flySpeed end if bodyVelocity then bodyVelocity.Velocity = direction end if bodyGyro then bodyGyro.CFrame = CFrame.new(rootPart.Position, rootPart.Position + camera.CFrame.LookVector) end end) end if Value then enableFly() else disableFunctions["FlyToggle"]() end end}):AddKeyPicker("FlyToggleKey", { Default = "", SyncToggleState = true, Text = "" }) Library:SetWatermarkVisibility(false) Library.KeybindFrame.Visible = true; MovementBox:AddToggle("NoClipToggle",{ Text = 'Activate no clip hack', Default = false, Tooltip = 'Go through walls', Callback = function(Value) local function enableNoClip() runService:BindToRenderStep("NoClipHack", 0, function() if character then for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end end) end if Value then enableNoClip() else disableFunctions["NoClipToggle"]() end end}):AddKeyPicker("NoClipToggleKey", { Default = "", SyncToggleState = true, Text = "" }) MovementBox:AddDivider() MovementBox:AddInput("RotationBox", { Default = "50", Numeric = true, Finished = true, Text = "Insert boat rotation speed", Tooltip = "" } ) MovementBox:AddToggle("RotationToggle",{ Text = 'Fast ship rotation (buggy)', Default = false, Tooltip = 'makes some ships rotate faster. Wont enable if no boat', Callback = function(Value) local rotationSpeed = Options.RotationBox.Value local name = string.format("%sBoat", player.Name) if Value then runService:BindToRenderStep("RotationHack", 0, function() local boat = workspace.Boats:FindFirstChild(name) local center = boat and boat:FindFirstChild("Center") if center then local steer = 0 if UserInputService:IsKeyDown(Enum.KeyCode.A) then steer = -rotationSpeed elseif UserInputService:IsKeyDown(Enum.KeyCode.D) then steer = rotationSpeed end if boat and center then center.AssemblyAngularVelocity = Vector3.new(0, steer, 0) else runService:UnbindFromRenderStep("RotationHack") Toggles.RotationToggle:SetValue(false) end end end) else disableFunctions["RotationToggle"]() end end, }) MovementBox:AddInput("BoatSpeedbox", { Default = "10000", Numeric = true, Finished = true, Text = "Insert boat speed", Tooltip = "" } ) MovementBox:AddToggle("BoatSpeedToggle",{ Text = 'Toggle to increase boat speed', Default = false, Tooltip = 'If enabled then boat will be a lot faster. W/S backwards/forwards. It will be remote controlled also. WOnt enable if no boat', Callback = function(Value) if Value then runService:BindToRenderStep("BoatSpeedHack", 0, function() local boat = workspace.Boats:FindFirstChild(name) local center = boat and boat:FindFirstChild("Center") if center then local throttle = 0 if UserInputService:IsKeyDown(Enum.KeyCode.W) then throttle = 1 elseif UserInputService:IsKeyDown(Enum.KeyCode.S) then throttle = -1 end local cf = center.CFrame center.Anchored = false local desiredLinearVel = cf.LookVector * throttle * Options.BoatSpeedbox.Value center.AssemblyLinearVelocity = center.AssemblyLinearVelocity:Lerp(desiredLinearVel, 0.13) end end) else disableFunctions["BoatSpeedToggle"]() end end, }) ---UNLOAD Library:OnUnload(function() for _, func in pairs(disableFunctions) do func() end print('Unloaded!') Library.Unloaded = true end) ---------- local MenuGroup = Tabs['UI Settings']:AddLeftGroupbox('Menu') MenuGroup:AddToggle('Keybindmenu', { Text = "Toggle keybind menu", Default = true, Callback = function(Value) Library.KeybindFrame.Visible = Value end }):AddKeyPicker('Keybindmenupick', { Default = '', SyncToggleState = true, Text = 'toggleKeybind', NoUI = true, }) MenuGroup:AddButton('Unload', function() Library:Unload() end) MenuGroup:AddLabel('Menu bind'):AddKeyPicker('MenuKeybind', { Default = 'End', NoUI = true, Text = 'Menu keybind' }) Library.ToggleKeybind = Options.MenuKeybind ThemeManager:SetLibrary(Library) SaveManager:SetLibrary(Library) ThemeManager:SetFolder('KintamaHack') SaveManager:SetFolder("KintamaHack") SaveManager:BuildConfigSection(Tabs['UI Settings']) ThemeManager:ApplyToTab(Tabs['UI Settings']) SaveManager:LoadAutoloadConfig()