poseidon

Run Settings
LanguageLua
Language Version
Run Command
--[[ #### #####* ###### ######## ######## ########## *########## ############ *############# ################################################ ################################################## ################################################## ############################################## ######################################### #################################### ###############################* ########################## ######################## ######################### ########################## ###########################+ ############################ ############## ############## ########### ########### ########## ########## ####### ####### ##### ##### | <========V=============================^=======> | | ---------<-------POSEIDON-------------->-------- | | <========V=============================^=======> | ]] --[[ (\ written by wreyking /) ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣌ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣮⣙⠿ ⠀⠙⢿⣿⣿⣿⣿⣿⣯⡛⣛⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄ ⣧⣼⡷⠮⢍⣛⠿⣿⣿⣿⣮⣙⢿⣶⡎⢩⣭⡛⠻⢿⣿⣿⣿⣿⣿ ⡟⢡⣶⣶⣶⣦⡉⠲⣬⣙⠻⠿⣷⣝⠧⠈⢿⡷⠹⣷⣶⣭⣽⣿⣿ ⠀⣿⣿⣿⡟⠁⠀⠀⠈⢻⣿⣷⣶⣬⣥⣄⢘⣷⡀⣿⣿⣿⣿⣿⡀ ⠀⣿⣿⣿⡽⣿⣷⡔⢷⡀⢻⣿⣿⠿⢿⠿⣧⣹⣿⣽⣿⣿⣿⣿⡇ ⠚⣿⣿⣿⣷⣴⣿⣦⠘⣷⢸⡿⢥⣶⣿⣇⣼⢿⣿⣿⣿⣿⣿⣿⠀ ⢷⡌⢿⣿⣿⣿⣿⣿⣷⣿⣿⣷⣤⣼⣿⣿⡟⡈⣿⣿⣿⣿⣿⡏⠀ ⡊⢻⣄⠹⣿⣿⣿⣿⣿⣿⣿⣷⡈⠉⡛⠋⠀⠃⢹⣿⣿⣿⡿⢁⣾ ⢟⠮⡻⣦⡈⢿⣿⣿⣿⣿⣿⣿⣿⣦⡈⠀⣴⡖⣸⣿⣿⡿⠀⢾⣿ ⡈⢿⣦⣌⣳⣦⡈⠿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣴⣿⣿⣿⣷⣦⡀⠻ (\ written by wreyking /) --]] --==[ CLIENT SCRIPT ]==-- --[ Services ]-- local ContextActionService = game:GetService("ContextActionService") local Players = game:GetService("Players") local RS = game:GetService("ReplicatedStorage") local RuS = game:GetService("RunService") local CAS = game:GetService("ContextActionService") --[ SB ]-- local scriptArgs = table.pack(...) local debug = scriptArgs[1] print(debug, scriptArgs, ...) if not debug then print = function() end warn = function() end end --[ Variables ]-- local owner = Players.LocalPlayer local storeInScript = (game.PlaceId == 15589112741) local scriptName = "poseidon" local serverScript = workspace:WaitForChild(scriptName.."/"..owner.Name) local scriptRemote = ((storeInScript and serverScript) or RS):WaitForChild("ScriptRemote".."/"..owner.Name) local scriptRemoteF = ((storeInScript and serverScript) or RS):WaitForChild("ScriptRemoteFunction".."/"..owner.Name) local VFXFolder = ((storeInScript and serverScript) or workspace):WaitForChild("VFXFolder".."/"..owner.Name) local ObjectsFolder = ((storeInScript and serverScript) or workspace):WaitForChild("ObjectsFolder".."/"..owner.Name) local abilityData = { Aegis = { Keybind = Enum.KeyCode.Q, CD = 0.5, }, Empyrean = { Keybind = Enum.KeyCode.E, CD = 0.1, }, Jupiter = { Keybind = Enum.KeyCode.R, CD = 1, MaxHoldTime = 5, }, Zephyr = { Keybind = Enum.KeyCode.F, CD = 1, RagdollTime = 5 } } local toolName = "Poseidon_Tool" local abilityVariables = {} abilityVariables.OnCooldown = {} abilityVariables.UsedMoves = {} abilityVariables.MagicColor = Color3.new(0, 0, 0) local usingMove = false local moveBeingUsed = nil --[ Functions ]-- local abilities abilities = { Aegis = function(actionName, inputState, inputObject) if abilityVariables.OnCooldown[actionName] then warn(tostring(actionName).." is currently on cooldown") return end local char = owner.Character local root = char:FindFirstChild("HumanoidRootPart") local hum = char:FindFirstChildOfClass("Humanoid") local mouse = owner:GetMouse() mouse.TargetFilter = VFXFolder if inputState == Enum.UserInputState.Begin then if usingMove then return end if abilityVariables.UsedMoves[actionName] then return end if not char:FindFirstChild(toolName) then return end usingMove = true moveBeingUsed = actionName abilityVariables.UsedMoves[actionName] = tick() print(actionName.." on client") local rootAttachment = root:FindFirstChild("RootAttachment") -- Freeze character in place using AlignPosition local alignPosition = Instance.new("AlignPosition") alignPosition.Name = "FreezePosition" alignPosition.Attachment0 = rootAttachment alignPosition.Mode = Enum.PositionAlignmentMode.OneAttachment alignPosition.Position = root.Position alignPosition.MaxForce = 50000000000 -- Adjust force limits to match needs alignPosition.MaxVelocity = math.huge alignPosition.Responsiveness = 50 alignPosition.ApplyAtCenterOfMass = true alignPosition.RigidityEnabled = false alignPosition.Parent = root -- Create AlignOrientation for smooth turning local alignOrientation = Instance.new("AlignOrientation") alignOrientation.Name = "TrackMouseOrientation" alignOrientation.Attachment0 = rootAttachment alignOrientation.Mode = Enum.OrientationAlignmentMode.OneAttachment alignOrientation.MaxTorque = 500000 alignOrientation.Responsiveness = 50 alignOrientation.Parent = root -- Switch humanoid to PlatformStand to disable default movement hum:ChangeState(Enum.HumanoidStateType.PlatformStanding) -- Loop to update facing direction task.spawn(function() while usingMove do local targetPosition = mouse.Hit.Position alignOrientation.CFrame = CFrame.lookAt(root.Position, targetPosition) task.wait(0.01) end end) scriptRemote:FireServer(scriptName, actionName, "Begin") print("fired server: ", actionName) elseif inputState == Enum.UserInputState.End then if not abilityVariables.UsedMoves[actionName] then return end local alignPosition = root:FindFirstChild("FreezePosition") local alignOrientation = root:FindFirstChild("TrackMouseOrientation") task.delay(0.35, function() if alignPosition then alignPosition:Destroy() end if alignOrientation then alignOrientation:Destroy() end scriptRemote:FireServer(scriptName, actionName, "End") end) task.delay(0.35, function() usingMove = false moveBeingUsed = nil abilityVariables.UsedMoves[actionName] = nil end) abilityVariables.OnCooldown[actionName] = true task.delay(abilityData[actionName].CD, function() abilityVariables.OnCooldown[actionName] = nil end) end end, Empyrean = function(actionName, inputState, inputObject) if abilityVariables.OnCooldown[actionName] then warn(tostring(actionName).." is currently on cooldown") return end local char = owner.Character local root = char:FindFirstChild("HumanoidRootPart") local hum = char:FindFirstChildOfClass("Humanoid") if inputState == Enum.UserInputState.Begin then if usingMove then return end if abilityVariables.UsedMoves[actionName] then return end if not char:FindFirstChild(toolName) then return end usingMove = true moveBeingUsed = actionName abilityVariables.UsedMoves[actionName] = tick() print(actionName.." on client") local walkPartConnection walkPartConnection = RuS.Heartbeat:Connect(function() if not usingMove or not abilityVariables.UsedMoves[actionName] then walkPartConnection:Disconnect() walkPartConnection = nil end local walkPart = Instance.new("Part") walkPart.Name = "PoseidonWalkPart" walkPart.Anchored = true walkPart.CanCollide = true walkPart.Transparency = 1 walkPart.Size = Vector3.new(5, 0.01, 5) walkPart.CFrame = CFrame.new(root.Position + Vector3.new(0, -3.025, 0)) walkPart.Parent = VFXFolder task.wait(0.1) if walkPart then walkPart:Destroy() end end) scriptRemote:FireServer(scriptName, actionName, "Begin") print("fired server: ", actionName) elseif inputState == Enum.UserInputState.End then if not abilityVariables.UsedMoves[actionName] then return end task.delay(0.35, function() scriptRemote:FireServer(scriptName, actionName, "End") end) task.delay(0, function() usingMove = false moveBeingUsed = nil abilityVariables.UsedMoves[actionName] = nil end) abilityVariables.OnCooldown[actionName] = true task.delay(abilityData[actionName].CD, function() abilityVariables.OnCooldown[actionName] = nil end) end end, Jupiter = function(actionName, inputState, inputObject) if abilityVariables.OnCooldown[actionName] then warn(tostring(actionName).." is currently on cooldown") return end local char = owner.Character local root = char:FindFirstChild("HumanoidRootPart") local hum = char:FindFirstChildOfClass("Humanoid") local minJumpVelocity = 150 local maxJumpVelocity = 500 if inputState == Enum.UserInputState.Begin then if usingMove then return end if abilityVariables.UsedMoves[actionName] then return end if not char:FindFirstChild(toolName) then return end usingMove = true moveBeingUsed = actionName abilityVariables.UsedMoves[actionName] = tick() local usedTime = abilityVariables.UsedMoves[actionName] print(actionName.." on client") abilityVariables.LastWS = hum.WalkSpeed hum.WalkSpeed = 8 scriptRemote:FireServer(scriptName, actionName, "Begin") task.spawn(function() repeat task.wait() until not usedTime or ((tick() - usedTime) >= abilityData[actionName].MaxHoldTime) if not usedTime then return end abilities.Jupiter(actionName, Enum.UserInputState.End, inputObject) end) elseif inputState == Enum.UserInputState.End then if not abilityVariables.UsedMoves[actionName] then return end local usedTime = abilityVariables.UsedMoves[actionName] local holdDuration = math.clamp(tick() - usedTime, 0, abilityData[actionName].MaxHoldTime) -- Calculate jump velocity based on hold duration local lerpFactor = holdDuration / abilityData[actionName].MaxHoldTime scriptRemote:FireServer(scriptName, actionName, "End", lerpFactor) local jumpVelocity = minJumpVelocity + (maxJumpVelocity - minJumpVelocity) * lerpFactor -- Set up the LinearVelocity constraint local linearVelocity = Instance.new("LinearVelocity") local rootAttachment = root:FindFirstChild("RootAttachment") or Instance.new("Attachment") rootAttachment.Parent = root linearVelocity.Attachment0 = rootAttachment linearVelocity.VectorVelocity = Vector3.new(0,jumpVelocity*2,0) linearVelocity.RelativeTo = Enum.ActuatorRelativeTo.World linearVelocity.MaxForce = 10000*50 -- Ensure it’s strong enough to counter gravity linearVelocity.Parent = root hum.WalkSpeed = abilityVariables.LastWS or 16 task.delay(0.2, function() linearVelocity.VectorVelocity = Vector3.new(0,jumpVelocity,0) --TS:Create(linearVelocity, TweenInfo.new(0.3, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {VectorVelocity = Vector3.new(0, jumpVelocity, 0)}):Play() end) task.delay(0.35, function() usingMove = false moveBeingUsed = nil abilityVariables.UsedMoves[actionName] = nil end) task.delay(0.2, function() if linearVelocity then linearVelocity:Destroy() end end) abilityVariables.OnCooldown[actionName] = true task.delay(abilityData[actionName].CD, function() abilityVariables.OnCooldown[actionName] = nil end) end end, Zephyr = function(actionName, inputState, inputObject) if abilityVariables.OnCooldown[actionName] then warn(tostring(actionName).." is currently on cooldown") return end local char = owner.Character local root = char:FindFirstChild("HumanoidRootPart") local hum = char:FindFirstChildOfClass("Humanoid") if inputState ~= Enum.UserInputState.Begin then return end --[[if usingMove then return end if abilityVariables.UsedMoves[actionName] then return end]] if not char:FindFirstChild(toolName) then return end hum:ChangeState(Enum.HumanoidStateType.Ragdoll) task.delay(abilityData[actionName].RagdollTime, function() if hum:GetState() == Enum.HumanoidStateType.Ragdoll then hum:ChangeState(Enum.HumanoidStateType.GettingUp) end end) end, } local function load_abilities() for name, data in pairs(abilityData) do CAS:BindAction(name, abilities[name], false, data.Keybind) end end --[ Script ]-- print(scriptName.." client script loaded on "..Players.LocalPlayer.Name) repeat task.wait() until owner.Character or owner.CharacterAdded:Wait() print("Owner character: "..owner.Character.Name.." gotten") --[ Setup load_abilities() --[ Event Connections owner.Backpack.ChildAdded:Connect(function(child) if child.Name == toolName and moveBeingUsed then abilities[moveBeingUsed](moveBeingUsed, Enum.UserInputState.End) end end)
--[[ #### #####* ###### ######## ######## ########## *########## ############ *############# ################################################ ################################################## ################################################## ############################################## ######################################### #################################### ###############################* ########################## ######################## ######################### ########################## ###########################+ ############################ ############## ############## ########### ########### ########## ########## ####### ####### ##### ##### | <========V=============================^=======> | | ---------<-------POSEIDON-------------->-------- | | <========V=============================^=======> | ]] --[[ (\ written by wreyking /) ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣌ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣮⣙⠿ ⠀⠙⢿⣿⣿⣿⣿⣿⣯⡛⣛⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄ ⣧⣼⡷⠮⢍⣛⠿⣿⣿⣿⣮⣙⢿⣶⡎⢩⣭⡛⠻⢿⣿⣿⣿⣿⣿ ⡟⢡⣶⣶⣶⣦⡉⠲⣬⣙⠻⠿⣷⣝⠧⠈⢿⡷⠹⣷⣶⣭⣽⣿⣿ ⠀⣿⣿⣿⡟⠁⠀⠀⠈⢻⣿⣷⣶⣬⣥⣄⢘⣷⡀⣿⣿⣿⣿⣿⡀ ⠀⣿⣿⣿⡽⣿⣷⡔⢷⡀⢻⣿⣿⠿⢿⠿⣧⣹⣿⣽⣿⣿⣿⣿⡇ ⠚⣿⣿⣿⣷⣴⣿⣦⠘⣷⢸⡿⢥⣶⣿⣇⣼⢿⣿⣿⣿⣿⣿⣿⠀ ⢷⡌⢿⣿⣿⣿⣿⣿⣷⣿⣿⣷⣤⣼⣿⣿⡟⡈⣿⣿⣿⣿⣿⡏⠀ ⡊⢻⣄⠹⣿⣿⣿⣿⣿⣿⣿⣷⡈⠉⡛⠋⠀⠃⢹⣿⣿⣿⡿⢁⣾ ⢟⠮⡻⣦⡈⢿⣿⣿⣿⣿⣿⣿⣿⣦⡈⠀⣴⡖⣸⣿⣿⡿⠀⢾⣿ ⡈⢿⣦⣌⣳⣦⡈⠿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣴⣿⣿⣿⣷⣦⡀⠻ (\ written by wreyking /) --]] --==[ SERVER SCRIPT ]==-- --[ Services ]-- local Players = game:GetService("Players") local RS = game:GetService("ReplicatedStorage") local RuS = game:GetService("RunService") local TS = game:GetService("TweenService") local HTTP = game:GetService("HttpService") local Chat = game:GetService("Chat") --[ SB ]-- if not owner then owner = Players:WaitForChild(script:GetAttribute("owner")) end local sandboxed = (game.PlaceId == 11510416200 or game.PlaceId == 15589112741 or game.PlaceId == 126783576555525 or game.PlaceId == 79868761121850) local storeInScript = (game.PlaceId == 15589112741) local scriptArgs = table.pack(...) local debug = scriptArgs[1] if not debug then print = function() end warn = function() end end --[ Assets ]-- local poseidonImageID = "rbxassetid://93092843927249" local meshes = { Shockwave = "rbxassetid://643098245", HalfSphere = "rbxassetid://5479931928" } local textures = { Shockwave = "rbxassetid://643064975" } local defaultSounds = { Shining = "http://www.roblox.com/asset/?id=374289727", Pulse = "http://www.roblox.com/asset/?id=431105970" } local gameSounds = {} local sounds = gameSounds[game.PlaceId] or defaultSounds if not gameSounds[game.PlaceId] then warn("No sounds for this place ID, falling back to default IDs") end --[ Variables ]-- local scriptName = "poseidon" local url = "http://coolaf.com/run/snippets/h9fdb674tu/raw/" local clientScriptLink = game.HttpService:GetAsync(url.."client.lua") local animations = loadstring(game.HttpService:GetAsync(url.."animations.lua")) local animationTrack = loadstring(HTTP:GetAsync("https://raw.githubusercontent.com/MechaXYZ/Modules/main/Anitracker.lua"))() local loadedAnimations = {} local connectionsTable = {} local scriptsTable = {} local instancesTable = {} -- Determine parents local remoteParent = (storeInScript and script) or RS local folderParent = (storeInScript and script) or workspace -- ScriptRemote (RemoteEvent) local scriptRemoteName = "ScriptRemote" .. "/" .. owner.Name local scriptRemote = remoteParent:FindFirstChild(scriptRemoteName) if not scriptRemote then scriptRemote = Instance.new("RemoteEvent") scriptRemote.Name = scriptRemoteName scriptRemote.Parent = remoteParent table.insert(instancesTable, scriptRemote) end -- ScriptRemoteFunction (RemoteFunction) local scriptRemoteFName = "ScriptRemoteFunction" .. "/" .. owner.Name local scriptRemoteF = remoteParent:FindFirstChild(scriptRemoteFName) if not scriptRemoteF then scriptRemoteF = Instance.new("RemoteFunction") scriptRemoteF.Name = scriptRemoteFName scriptRemoteF.Parent = remoteParent table.insert(instancesTable, scriptRemoteF) end -- VFXFolder (Folder) local VFXFolderName = "VFXFolder" .. "/" .. owner.Name local VFXFolder = folderParent:FindFirstChild(VFXFolderName) if not VFXFolder then VFXFolder = Instance.new("Folder") VFXFolder.Name = VFXFolderName VFXFolder.Parent = folderParent table.insert(instancesTable, VFXFolder) end -- ObjectsFolder (Folder) local ObjectsFolderName = "ObjectsFolder" .. "/" .. owner.Name local ObjectsFolder = folderParent:FindFirstChild(ObjectsFolderName) if not ObjectsFolder then ObjectsFolder = Instance.new("Folder") ObjectsFolder.Name = ObjectsFolderName ObjectsFolder.Parent = folderParent table.insert(instancesTable, ObjectsFolder) end local userColors = { wreyking = Color3.new(0,0,0) } local abilityVariables = {} abilityVariables.OnCooldown = {} abilityVariables.UsedMoves = {} abilityVariables.MagicColor = userColors[owner.Name] or Color3.new(0, 1, 0.8) local usingMove = false --[ Functions ]-- local function self_destruct() --destroying = true -- Disconnect all connections in the connectionsTable for i = 1, #connectionsTable do local connection = connectionsTable[i] if connection then print("Disconnecting " .. tostring(connection)) connection:Disconnect() end end -- Destroy all scripts in the scriptsTable for i = 1, #scriptsTable do local thatScript = scriptsTable[i] if thatScript then print("Destroying " .. thatScript.Name) thatScript:Destroy() end end -- Destroy all instances in the instancesTable for i = 1, #instancesTable do local instance = instancesTable[i] if instance then print("Destroying " .. instance.Name) instance:Destroy() end end -- Final cleanup print("Cleaned up connections, scripts, and instances. Now deleting main script...") script:Destroy() end local function load_animations(animationData) local animations = animationData() for i = 1, #animations do local animData = animations[i] local animation = animData.Data local newTrack = animationTrack.new() newTrack.lerpFactor = 0.15 newTrack.Name = animData.Name if animData.Looped then newTrack.Looped = true end if animData.Weight then newTrack:AdjustWeight(animData.Weight) end newTrack:setAnimation(animation) newTrack:setRig(owner.Character) loadedAnimations[animData.Name] = newTrack end end local function new_sound(id, vol, pitch, pitchFX) if not id then warn("No ID, update gameSounds.") return end local s = Instance.new("Sound") s.SoundId = id s.Volume = vol or 1 s.PlaybackSpeed = pitch or 1 if pitchFX then local pitcher = Instance.new("PitchShiftSoundEffect") pitcher.Name = "Shift" pitcher.Octave = pitchFX pitcher.Parent = s end return s end local function debris(instance, delay) task.delay(delay, function() if instance then instance:Destroy() end end) end local function get_markers(animTrack) local markers = animTrack.KeyframeMarkers local markerTable = {} for i = 1, #markers do local marker = markers[i] markerTable[marker.Name] = { Name = marker.Name, Value = marker.Value, Time = marker.Time } end return markerTable end local VFXFunctions VFXFunctions = { Shockwave = function(shockwaveData) local shockwave = Instance.new("Part") shockwave.Name = "Shockwave" shockwave.Anchored = true shockwave.Transparency = 0.015 shockwave.Size = Vector3.new(1,1,1) shockwave.CanCollide = false shockwave.CanTouch = false shockwave.CanQuery = false shockwave.Transparency = shockwaveData.StartTransparency or 0.015 shockwave.CFrame = shockwaveData.CFrame local mesh = Instance.new("SpecialMesh") mesh.MeshType = Enum.MeshType.FileMesh mesh.MeshId = meshes.Shockwave mesh.TextureId = textures.Shockwave mesh.Parent = shockwave mesh.Scale = shockwaveData.StartSize or Vector3.zero mesh.VertexColor = shockwaveData.Color or Vector3.zero shockwave.Parent = VFXFolder if not shockwaveData.TransparencyTweenTime then TS:Create(shockwave, TweenInfo.new(shockwaveData.Time or 2, shockwaveData.TransparencyEasingStyle or Enum.EasingStyle.Linear, shockwaveData.TransparencyEasingDirection or Enum.EasingDirection.Out), {Transparency = shockwaveData.EndTransparency or 1}):Play() else task.delay(shockwaveData.TransparencyTweenTime, function() if shockwave then TS:Create(shockwave, TweenInfo.new((shockwaveData.Time or 2)-shockwaveData.TransparencyTweenTime, shockwaveData.TransparencyEasingStyle or Enum.EasingStyle.Linear, shockwaveData.TransparencyEasingDirection or Enum.EasingDirection.Out), {Transparency = shockwaveData.EndTransparency or 1}):Play() end end) end TS:Create(mesh, TweenInfo.new(shockwaveData.Time or 2, shockwaveData.EasingStyle or Enum.EasingStyle.Circular, shockwaveData.EasingDirection or Enum.EasingDirection.Out), {Scale = shockwaveData.EndSize or Vector3.new(1,0.1,1)}):Play() if shockwaveData.SpinAngles then task.spawn(function() while shockwave do shockwave.CFrame = shockwave.CFrame * CFrame.Angles(shockwaveData.SpinAngles) task.wait(0.1) end end) end task.delay(shockwaveData.Time or 2, function() if shockwave then shockwave:Destroy() end end) end, } local abilities abilities = { Aegis = function(playerData, state) local char = playerData[1] local root = playerData[2] local hum = playerData[3] local actionName = "Aegis" local magicColor = abilityVariables.MagicColor if state == "Begin" then usingMove = true abilityVariables.UsedMoves[actionName] = tick() print(actionName.." on server") Chat:Chat(char.Head, actionName, Enum.ChatColor.Blue) local abilitySFX = new_sound(sounds.Shining, 1) abilitySFX.Parent = char:FindFirstChild("Right Arm") abilitySFX:Play() debris(abilitySFX, 2) local ff = Instance.new("ForceField") ff.Name = "Poseidon_ForceField" ff.Visible = false ff.Parent = char local shieldPart = Instance.new("Part") --shieldPart.Shape = Enum.PartType.Cylinder shieldPart.Name = "PoseidonShieldPart" shieldPart.Anchored = true shieldPart.CanCollide = true shieldPart.Transparency = 1 shieldPart.Size = Vector3.new(50, 50, 5) shieldPart.Parent = VFXFolder local heldConnection heldConnection = RuS.Heartbeat:Connect(function() if not usingMove and not abilityVariables.UsedMoves[actionName] then print(usingMove, abilityVariables.UsedMoves[actionName]) heldConnection:Disconnect() heldConnection = nil task.wait(0.4) shieldPart:Destroy() end shieldPart.CFrame = root.CFrame * CFrame.new(0, 0, -10) end) task.spawn(function() while heldConnection do task.wait(0.05) local shockwaveData = { StartSize = Vector3.zero, EndSize = Vector3.new(0.35, 0.35, 0.35), StartTransparency = 0.1, EndTransparency = 1, Color = Vector3.new(magicColor.R, magicColor.G, magicColor.B), CFrame = root.CFrame * CFrame.new(0, 0, -3.5) * CFrame.Angles(math.rad(90), 0, 0), EasingStyle = Enum.EasingStyle.Quad, EasingDirection = Enum.EasingDirection.Out, Time = 0.35, TransparencyTweenTime = 0.15, } VFXFunctions.Shockwave(shockwaveData) end end) local anim = loadedAnimations.Aegis if anim then anim:GetMarkerReachedSignal("Freeze"):Connect(function() anim:AdjustSpeed(0) end) anim:Play() end elseif state == "End" then local ff = char:FindFirstChild("Poseidon_ForceField") if ff then ff:Destroy() end local anim = loadedAnimations.Aegis if anim then anim:AdjustSpeed(1) end usingMove = false abilityVariables.UsedMoves[actionName] = nil end end, Empyrean = function(playerData, state) local char = playerData[1] local root = playerData[2] local hum = playerData[3] local actionName = "Empyrean" local magicColor = abilityVariables.MagicColor if state == "Begin" then usingMove = true abilityVariables.UsedMoves[actionName] = tick() print(actionName.." on server") Chat:Chat(char.Head, actionName, Enum.ChatColor.Blue) local abilitySFX = new_sound(sounds.Shining, 1) abilitySFX.Parent = root abilitySFX:Play() debris(abilitySFX, 2) task.spawn(function() while usingMove or abilityVariables.UsedMoves[actionName] do task.wait(0.1) local shockwaveData = { StartSize = Vector3.zero, EndSize = Vector3.new(0.1, 0.1, 0.1), StartTransparency = 0.1, EndTransparency = 1, Color = Vector3.new(magicColor.R, magicColor.G, magicColor.B), CFrame = CFrame.new(root.Position + Vector3.new(0, -3.025, 0)), EasingStyle = Enum.EasingStyle.Quad, EasingDirection = Enum.EasingDirection.Out, Time = 0.35, TransparencyTweenTime = 0.15, } VFXFunctions.Shockwave(shockwaveData) end end) elseif state == "End" then usingMove = false abilityVariables.UsedMoves[actionName] = nil print("stopped empyrean") end end, Jupiter = function(playerData, state, args) local char = playerData[1] local root = playerData[2] local hum = playerData[3] local lerpFactor = args[2] local actionName = "Jupiter" local magicColor = abilityVariables.MagicColor if state == "Begin" then usingMove = true abilityVariables.UsedMoves[actionName] = tick() print(actionName.." on server") local anim = loadedAnimations.Jupiter if anim then local connection connection = anim:GetMarkerReachedSignal("Freeze"):Connect(function() if usingMove and abilityVariables.UsedMoves[actionName] then anim:AdjustSpeed(0) end connection:Disconnect() connection = nil end) anim:Play() end elseif state == "End" then Chat:Chat(char.Head, actionName, Enum.ChatColor.Blue) local anim = loadedAnimations.Jupiter if anim then local markers = get_markers(anim) anim.TimePosition = markers.Freeze.Time anim:AdjustSpeed(1) end local shockwaveTime = 1+(3*lerpFactor) local shockwaveData = { StartSize = Vector3.zero, EndSize = Vector3.new(1, 1, 1) + Vector3.new(1*lerpFactor, 1*lerpFactor, 1*lerpFactor), StartTransparency = 0.1, EndTransparency = 1, Color = Vector3.new(magicColor.R, magicColor.G, magicColor.B), CFrame = CFrame.new(root.Position + Vector3.new(0, -3.025, 0)), EasingStyle = Enum.EasingStyle.Quad, EasingDirection = Enum.EasingDirection.Out, Time = shockwaveTime, TransparencyTweenTime = shockwaveTime/2, } VFXFunctions.Shockwave(shockwaveData) local abilitySFX = new_sound(sounds.Pulse, 1) abilitySFX.Parent = root abilitySFX:Play() debris(abilitySFX, 2) usingMove = false abilityVariables.UsedMoves[actionName] = nil end end, } --[ Script ]-- --[ Setup script.Name = scriptName.."/"..owner.Name local clientScript if sandboxed then clientScript = NLS(clientScriptLink, owner.PlayerGui, ...) elseif not sandboxed then clientScript = script.Parent:WaitForChild("client") clientScript.Name = scriptName.."/client" clientScript:SetAttribute("owner", owner.Name) clientScript.Parent = owner.PlayerGui clientScript.Enabled = true end table.insert(scriptsTable, clientScript) if not sandboxed then script.Parent = workspace end load_animations(animations) --[ Main print(scriptName.." server script loaded on "..owner.Name) repeat task.wait() until owner repeat task.wait() until owner.Character or owner.CharacterAdded:Wait() print("Owner character: "..owner.Character.Name.." gotten") local char = owner.Character local hum = char:FindFirstChildOfClass("Humanoid") local root = char:FindFirstChild("HumanoidRootPart") local rightArm = char:FindFirstChild("Right Arm") if not hum.UseJumpPower then hum.UseJumpPower = true end local tool = Instance.new("Tool") table.insert(instancesTable, tool) tool.Name = "Poseidon_Tool" tool.ToolTip = "Legendary magic from a bygone age..." tool.TextureId = poseidonImageID tool.Parent = owner.Backpack --[ Event Connections local playerRemoteConnection = scriptRemote.OnServerEvent:Connect(function(firedOwner, header, action, ...) print("remote got fired") if firedOwner ~= owner then print(firedOwner.Name.." tried to fire remote, returning end") return end local args = table.pack(...) if header == scriptName then local state = args[1] if state ~= "End" and tool.Parent ~= char then print("tool not equipped") return end abilities[action]({char, root, hum}, state, args) end end) local disconnectOnReset = owner.CharacterRemoving:Connect(self_destruct) local disconnectOnLeave = owner:GetPropertyChangedSignal("Parent"):Connect(self_destruct) table.insert(connectionsTable, playerRemoteConnection) table.insert(connectionsTable, disconnectOnReset) table.insert(connectionsTable, disconnectOnLeave)
-- // converted using mech's animoduler, modified by king local cfr = CFrame.new return { { Name = "Aegis", Looped = false, Weight = 100, Data = {{tm=0;["Torso"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Head"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Left Leg"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Right Arm"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Right Leg"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Left Arm"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};};{tm=.15;["Torso"]={cf=cfr(0,0,0,.866,.492,.087,-.5,.853,.15,0,-.174,.985);es="Linear";ed="In";};["Head"]={cf=cfr(0,0,0,.985,-.171,.03,.174,.97,-.171,0,.174,.985);es="Linear";ed="In";};["Left Leg"]={cf=cfr(.2,-.04,-.069,.929,.153,.337,-.183,.981,.059,-.321,-.117,.94);es="Linear";ed="In";};["Right Arm"]={cf=cfr(.213,.037,.036,.174,.171,-.97,.985,-.03,.171,0,-.985,-.174);es="Linear";ed="In";};["Right Leg"]={cf=cfr(0,0,0,.94,.342,0,-.342,.94,0,0,0,1);es="Linear";ed="In";};["Left Arm"]={cf=cfr(0,0,0,.643,.766,0,-.766,.643,0,0,0,1);es="Linear";ed="In";};};{tm=.317;["Freeze"]="1";["Freeze"]="0";["Torso"]={cf=cfr(0,0,0,.985,-.171,.03,.174,.97,-.171,0,.174,.985);es="Linear";ed="In";};["Head"]={cf=cfr(0,0,0,.985,.171,.03,-.174,.97,.171,0,-.174,.985);es="Linear";ed="In";};["Left Leg"]={cf=cfr(0,0,0,.985,-.174,0,.174,.985,0,0,0,1);es="Linear";ed="In";};["Right Arm"]={cf=cfr(.139,-.006,-.025,-.112,-.985,-.133,.633,-.174,.754,-.766,0,.643);es="Linear";ed="In";};["Right Leg"]={cf=cfr(0,0,0,.94,-.342,0,.342,.94,0,0,0,1);es="Linear";ed="In";};["Left Arm"]={cf=cfr(0,0,0,.766,-.643,0,.643,.766,0,0,0,1);es="Linear";ed="In";};};{tm=.5;["Torso"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Head"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Left Leg"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Right Arm"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Right Leg"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Left Arm"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};};} }, { Name = "Jupiter", Looped = false, Weight = 100, Data = {{tm=0;["Torso"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Head"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Left Leg"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Right Arm"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Right Leg"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Left Arm"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};};{tm=.15;["Torso"]={cf=cfr(0,-.734,-.906,1,0,0,0,.94,-.342,0,.342,.94);es="Linear";ed="In";};["Head"]={cf=cfr(0,0,0,1,0,0,0,.766,.643,0,-.643,.766);es="Linear";ed="In";};["Left Leg"]={cf=cfr(-.4,1,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Right Arm"]={cf=cfr(0,0,0,.866,-.5,0,.492,.853,.174,-.087,-.15,.985);es="Linear";ed="In";};["Right Leg"]={cf=cfr(0,0,0,.643,.766,0,-.766,.643,0,0,0,1);es="Linear";ed="In";};["Left Arm"]={cf=cfr(0,0,0,.866,.5,0,-.492,.853,.174,.087,-.15,.985);es="Linear";ed="In";};};{tm=.217;["Freeze"]="1";["Freeze"]="0";};{tm=.3;["Torso"]={cf=cfr(0,-.734,-.906,1,0,0,0,.94,-.342,0,.342,.94);es="Linear";ed="In";};["Head"]={cf=cfr(0,0,0,1,0,0,0,.766,.643,0,-.643,.766);es="Linear";ed="In";};["Left Leg"]={cf=cfr(-.4,1,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Right Arm"]={cf=cfr(0,0,0,.866,-.5,0,.492,.853,.174,-.087,-.15,.985);es="Linear";ed="In";};["Right Leg"]={cf=cfr(0,0,0,.643,.766,0,-.766,.643,0,0,0,1);es="Linear";ed="In";};["Left Arm"]={cf=cfr(0,0,0,.866,.5,0,-.492,.853,.174,.087,-.15,.985);es="Linear";ed="In";};};{tm=.45;["Torso"]={cf=cfr(0,0,0,1,0,0,0,.985,.174,0,-.174,.985);es="Linear";ed="In";};["Head"]={cf=cfr(0,0,0,1,0,0,0,.5,.866,0,-.866,.5);es="Linear";ed="In";};["Left Leg"]={cf=cfr(0,0,0,.985,-.171,-.03,.174,.97,.171,0,-.174,.985);es="Linear";ed="In";};["Right Arm"]={cf=cfr(0,0,0,.94,.342,0,-.337,.925,.174,.059,-.163,.985);es="Linear";ed="In";};["Right Leg"]={cf=cfr(0,0,0,.985,.171,.03,-.174,.97,.171,0,-.174,.985);es="Linear";ed="In";};["Left Arm"]={cf=cfr(0,0,0,.94,-.342,0,.337,.925,.174,-.059,-.163,.985);es="Linear";ed="In";};};{tm=.6;["Head"]={cf=cfr(0,0,0,1,0,0,0,.766,.643,0,-.643,.766);es="Linear";ed="In";};};{tm=.8;["Torso"]={cf=cfr(0,0,0,1,0,0,0,.985,.174,0,-.174,.985);es="Linear";ed="In";};["Head"]={cf=cfr(0,0,0,1,0,0,0,.94,.342,0,-.342,.94);es="Linear";ed="In";};["Right Arm"]={cf=cfr(0,0,0,.94,.342,0,-.337,.925,.174,.059,-.163,.985);es="Linear";ed="In";};["Left Arm"]={cf=cfr(0,0,0,.94,-.342,0,.337,.925,.174,-.059,-.163,.985);es="Linear";ed="In";};};{tm=.95;["Torso"]={cf=cfr(0,0,0,1,0,0,0,1,0,0,0,1);es="Linear";ed="In";};["Head"]={cf=cfr(0,0,0,1,0,0,0,.985,-.174,0,.174,.985);es="Linear";ed="In";};["Right Arm"]={cf=cfr(0,0,0,1,0,0,0,.985,.174,0,-.174,.985);es="Linear";ed="In";};["Left Arm"]={cf=cfr(0,0,0,1,0,0,0,.985,.174,0,-.174,.985);es="Linear";ed="In";};};} } }
Editor Settings
Theme
Key bindings
Full width
Lines