Admin noli by melon
Key RequiredUniversal

Admin noli by melon

Universal ScriptJwjwJwjw 1.7K views 3.2K executesUpdated Mar 9, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•2221 lines (78810 chars)
-- [[ Admin : Reanimate ]] --

--[[
  Credits:
  // Melon - Created this script
  // Emper - Created the reanimation used
  // ZerX - Movement scripting (last part only, i edited it a bit)
  // Xoaterz - Created the assets used to make this script.

  Note: if there's bugs pls let me know so i can fix them
  the code may be unoptimized at some parts

  Free hats:
  // Voidstar: https://www.roblox.com/catalog/2309346267/Classic-PC-Hat
 
  Free rig:
  // https://www.roblox.com/catalog/3033910400/International-Fedora-Germany
  // https://www.roblox.com/catalog/3409612660/International-Fedora-USA
  // https://www.roblox.com/catalog/3398308134/International-Fedora-Canada
  // https://www.roblox.com/catalog/3033908130/International-Fedora-France
  // https://www.roblox.com/catalog/4819740796/Robox

  Paid hats are found in this game:
  // https://www.roblox.com/games/15541318313/Melons-Baseplate
]] 

local Directories = {
	Main = "FEVerse/",
	RBXMs ="FEVerse/RBXMs/",
	Sounds = "FEVerse/Sounds/",
	Songs = "FEVerse/Songs/",
}

local FEManager = loadstring(game:HttpGet("https://gist.githubusercontent.com/MelonsStuff/a003ea305dd302eab1f8d372daed38b4/raw/9db59962b28555fd699a7c29891efb85d45677ab/gistfile1.txt"))()
for i, v in pairs(Directories) do FEManager.EnsureFolder(v) end
task.spawn(function()
FEManager.DownloadFile(Directories.RBXMs, "Admin.rbxmx", "https://drive.usercontent.google.com/download?id=1sYex5UmZvaFkQrc6P8AW5cWyX1a3RGoQ&export=download")
FEManager.DownloadFile(Directories.Sounds, "Chase.mp3", "https://raw.githubusercontent.com/MelonsStuff/FEVerse/refs/heads/main/Sounds/Admin/Chase.MP3")
FEManager.DownloadFile(Directories.Sounds, "Ambience.mp3", "https://github.com/MelonsStuff/FEVerse/raw/refs/heads/main/Sounds/Admin%20Reworked/Ambience.mp3")
FEManager.DownloadFile(Directories.Sounds, "Execution.mp3", "https://github.com/MelonsStuff/FEVerse/raw/refs/heads/main/Sounds/Admin%20Reworked/Execution.mp3")
FEManager.DownloadFile(Directories.Sounds, "NovaExplode.mp3", "https://github.com/MelonsStuff/FEVerse/raw/refs/heads/main/Sounds/Admin%20Reworked/NovaExplode.mp3")
FEManager.DownloadFile(Directories.Sounds, "NovaThrow.mp3", "https://github.com/MelonsStuff/FEVerse/raw/refs/heads/main/Sounds/Admin%20Reworked/NovaThrow.mp3")
FEManager.DownloadFile(Directories.Sounds, "ObservantStart.mp3", "https://github.com/MelonsStuff/FEVerse/raw/refs/heads/main/Sounds/Admin%20Reworked/ObservantStart.mp3")
FEManager.DownloadFile(Directories.Sounds, "ObservantCancel.mp3", "https://github.com/MelonsStuff/FEVerse/raw/refs/heads/main/Sounds/Admin%20Reworked/ObservantCancel.mp3")
FEManager.DownloadFile(Directories.Sounds, "ObservantTeleport.mp3", "https://github.com/MelonsStuff/FEVerse/raw/refs/heads/main/Sounds/Admin%20Reworked/ObservantTeleport.mp3")
FEManager.DownloadFile(Directories.Sounds, "Stab.mp3", "https://github.com/MelonsStuff/FEVerse/raw/refs/heads/main/Sounds/Admin%20Reworked/Stab.mp3")
FEManager.DownloadFile(Directories.Sounds, "Stun.mp3", "https://github.com/MelonsStuff/FEVerse/raw/refs/heads/main/Sounds/Admin%20Reworked/Stun.mp3")
FEManager.DownloadFile(Directories.Sounds, "VoidRushStart.mp3", "https://github.com/MelonsStuff/FEVerse/raw/refs/heads/main/Sounds/Admin%20Reworked/VoidRushStart.mp3")
FEManager.DownloadFile(Directories.Sounds, "VoidRushCharge.mp3", "https://github.com/MelonsStuff/FEVerse/raw/refs/heads/main/Sounds/Admin%20Reworked/VoidRushCharge.mp3")
FEManager.DownloadFile(Directories.Sounds, "VoidRushSlam.mp3", "https://github.com/MelonsStuff/FEVerse/raw/refs/heads/main/Sounds/Admin%20Reworked/VoidRushSlam.mp3")
end)

local IntroKeyframes = loadstring(game:HttpGet("https://gist.githubusercontent.com/MelonsStuff/d1eab70e7877e0769f42e6c4d89fc6f4/raw/e2c4a9a2af52d8f8426aacfc54435372dd8cc587/AdminIntroKeyframes.lua"))().Keyframes
local OutroKeyframes = loadstring(game:HttpGet("https://gist.githubusercontent.com/MelonsStuff/c4a31886c3099a91fe6a0b33d17045bc/raw/017c725d5cd8c84a5ee404e4b30e8477aae36c05/AdminOutroKeyframes.lua"))().Keyframes

local Reanimate_Settings = {
	Frequency = 6, -- this is basically how fast the oscillation goes
	Amplification = 6, -- this is how far the oscillation goes
	FrontOffset = 2.5, -- this is how much youre in front of the player during prediction
}

local Settings = {
	Fling = true;
	Earrape = false;
	CameraEffects = true;
	InfiniteJump = false;
	Spin = false;
	RigSize = 1;
	Ragdoll = false;
	Music = true;
}

do
  local ReanimateVoidstar

	local Accessories = {}
	local Aligns = {}
	local Attachments = {}
	local BindableEvent = nil
	local Blacklist = {}
	local CFrame = CFrame
	local CFrameidentity = CFrame.identity
	local CFramelookAt = CFrame.lookAt
	local CFramenew = CFrame.new
	local Character = nil
	local CurrentCamera = nil
	local Enum = Enum
	local Custom = Enum.CameraType.Custom
	local Health = Enum.CoreGuiType.Health
	local HumanoidRigType = Enum.HumanoidRigType
	local R6 = HumanoidRigType.R6
	local Dead = Enum.HumanoidStateType.Dead
	local LockCenter = Enum.MouseBehavior.LockCenter
	local UserInputType = Enum.UserInputType
	local MouseButton1 = UserInputType.MouseButton1
	local Touch = UserInputType.Touch
	local Exceptions = {}
	local game = game
	local Clone = game.Clone
	local Close = game.Close
	local Connect = Close.Connect
	local Disconnect = Connect(Close, function() end).Disconnect
	local Wait = Close.Wait
	local Destroy = game.Destroy
	local FindFirstAncestorOfClass = game.FindFirstAncestorOfClass
	local FindFirstAncestorWhichIsA = game.FindFirstAncestorWhichIsA
	local FindFirstChild = game.FindFirstChild
	local FindFirstChildOfClass = game.FindFirstChildOfClass
	local Players = FindFirstChildOfClass(game, "Players")
	local CreateHumanoidModelFromDescription = Players.CreateHumanoidModelFromDescription
	local GetPlayers = Players.GetPlayers
	local LocalPlayer = Players.LocalPlayer
	local CharacterAdded = LocalPlayer.CharacterAdded
	local Mouse = LocalPlayer:GetMouse()
	local Kill = LocalPlayer.Kill
	local RunService = FindFirstChildOfClass(game, "RunService")
	local PostSimulation = RunService.PostSimulation
	local PreRender = RunService.PreRender
	local PreSimulation = RunService.PreSimulation
	local StarterGui = FindFirstChildOfClass(game, "StarterGui")
	local GetCoreGuiEnabled = StarterGui.GetCoreGuiEnabled
	local SetCore = StarterGui.SetCore
	local SetCoreGuiEnabled = StarterGui.SetCoreGuiEnabled
	local Workspace = FindFirstChildOfClass(game, "Workspace")
	local FallenPartsDestroyHeight = Workspace.FallenPartsDestroyHeight
	local HatDropY = FallenPartsDestroyHeight - 0.7
	local FindFirstChildWhichIsA = game.FindFirstChildWhichIsA
	local UserInputService = FindFirstChildOfClass(game, "UserInputService")
	local InputBegan = UserInputService.InputBegan
	local IsMouseButtonPressed = UserInputService.IsMouseButtonPressed
	local GetChildren = game.GetChildren
	local GetDescendants = game.GetDescendants
	local GetPropertyChangedSignal = game.GetPropertyChangedSignal
	local CurrentCameraChanged = GetPropertyChangedSignal(Workspace, "CurrentCamera")
	local MouseBehaviorChanged = GetPropertyChangedSignal(UserInputService, "MouseBehavior")
	local IsA = game.IsA
	local IsDescendantOf = game.IsDescendantOf

	local Highlights = {}

	local Instancenew = Instance.new
	local R15Animation = Instancenew("Animation")
	local R6Animation = Instancenew("Animation")
	local HumanoidDescription = Instancenew("HumanoidDescription")
	local HumanoidModel = CreateHumanoidModelFromDescription(Players, HumanoidDescription, R6)
	local R15HumanoidModel = CreateHumanoidModelFromDescription(Players, HumanoidDescription, HumanoidRigType.R15)
	local SetAccessories = HumanoidDescription.SetAccessories
	local ModelBreakJoints = HumanoidModel.BreakJoints
	local Head = HumanoidModel.Head
	local BasePartBreakJoints = Head.BreakJoints
	local GetJoints = Head.GetJoints
	local IsGrounded = Head.IsGrounded
	local Humanoid = HumanoidModel.Humanoid
	local ApplyDescription = Humanoid.ApplyDescription
	local ChangeState = Humanoid.ChangeState
	local EquipTool = Humanoid.EquipTool
	local GetAppliedDescription = Humanoid.GetAppliedDescription
	local GetPlayingAnimationTracks = Humanoid.GetPlayingAnimationTracks
	local LoadAnimation = Humanoid.LoadAnimation
	local Move = Humanoid.Move
	local UnequipTools = Humanoid.UnequipTools
	local ScaleTo = HumanoidModel.ScaleTo

	local IsFirst = false
	local IsHealthEnabled = nil
	local IsLockCenter = false
	local IsRegistered = false
	local IsRunning = false

	local LastTime = nil

	local math = math
	local mathrandom = math.random
	local mathsin = math.sin
	local mathpi = math.pi

	local nan = 0 / 0

	local next = next

	local OptionsAccessories = nil
	local OptionsApplyDescription = nil
	local OptionsBreakJointsDelay = nil
	local OptionsClickFling = nil
	local OptionsDisableCharacterCollisions = nil
	local OptionsDisableHealthBar = nil
	local OptionsDisableRigCollisions = nil
	local OptionsDefaultFlingOptions = nil
	local OptionsHatDrop = nil
	local OptionsHideCharacter = nil
	local OptionsParentCharacter = nil
	local OptionsRigTransparency = nil
	local OptionsSetCameraSubject = nil
	local OptionsSetCameraType = nil
	local OptionsSetCharacter = nil
	local OptionsSetCollisionGroup = nil
	local OptionsSimulationRadius = nil
	local OptionsTeleportRadius = nil
	local OptionsUseServerBreakJoints

	local osclock = os.clock

	local PreRenderConnection = nil

	local RBXScriptConnections = {}

	local replicatesignal = replicatesignal

	local Rig = nil
	local RigHumanoid = nil
	local RigHumanoidRootPart = nil

	local sethiddenproperty = sethiddenproperty
	local setscriptable = setscriptable

	local stringfind = string.find

	local table = table
	local tableclear = table.clear
	local tablefind = table.find
	local tableinsert = table.insert
	local tableremove = table.remove

	local Targets = {}

	local task = task
	local taskdefer = task.defer
	local taskspawn = task.spawn
	local taskwait = task.wait

	local Time = nil

	local Tools = {}

	local Vector3 = Vector3
	local Vector3new = Vector3.new
	local FlingVelocity = Vector3new(16384, 16384, 16384)
	local HatDropLinearVelocity = Vector3new(0, 27, 0)
	local HideCharacterOffset = Vector3new(0, - 30, 0)
	local Vector3one = Vector3.one
	local Vector3xzAxis = Vector3new(1, 0, 1)
	local Vector3zero = Vector3.zero
	local AntiSleep = Vector3zero

	local Color3fromRGB = Color3.fromRGB

	R15Animation.AnimationId = "rbxassetid://507767968"
	R6Animation.AnimationId = "rbxassetid://180436148"

	Humanoid = nil

	Destroy(HumanoidDescription)
	HumanoidDescription = nil

	local FindFirstChildOfClassAndName = function(Parent, ClassName, Name)
		for Index, Child in next, GetChildren(Parent) do
			if IsA(Child, ClassName) and Child.Name == Name then
				return Child
			end
		end
	end

	local GetHandleFromTable = function(Table)
		for Index, Child in GetChildren(Character) do
			if IsA(Child, "Accoutrement") then
				local Handle = FindFirstChildOfClassAndName(Child, "BasePart", "Handle")

				if Handle then
					local MeshId = nil
					local TextureId = nil

					if IsA(Handle, "MeshPart") then
						MeshId = Handle.MeshId
						TextureId = Handle.TextureID
					else
						local SpecialMesh = FindFirstChildOfClass(Handle, "SpecialMesh")

						if SpecialMesh then
							MeshId = SpecialMesh.MeshId
							TextureId = SpecialMesh.TextureId
						end
					end

					if MeshId then
						if stringfind(MeshId, Table.MeshId) and stringfind(TextureId, Table.TextureId) then
							return Handle
						end
					end
				end
			end
		end
	end

	local NewIndex = function(self, Index, Value)
		self[Index] = Value
	end

	local DescendantAdded = function(Descendant)
		if IsA(Descendant, "Accoutrement") and OptionsHatDrop then
			if not pcall(NewIndex, Descendant, "BackendAccoutrementState", 0) then
				if sethiddenproperty then
					sethiddenproperty(Descendant, "BackendAccoutrementState", 0)
				elseif setscriptable then
					setscriptable(Descendant, "BackendAccoutrementState", true)
					Descendant.BackendAccoutrementState = 0
				end
			end
		elseif IsA(Descendant, "Attachment") then
			local Attachment = Attachments[Descendant.Name]

			if Attachment then
				local Parent = Descendant.Parent

				if IsA(Parent, "BasePart") then
					local MeshId = nil
					local TextureId = nil

					if IsA(Parent, "MeshPart") then
						MeshId = Parent.MeshId
						TextureId = Parent.TextureID
					else
						local SpecialMesh = FindFirstChildOfClass(Parent, "SpecialMesh")

						if SpecialMesh then
							MeshId = SpecialMesh.MeshId
							TextureId = SpecialMesh.TextureId
						end
					end

					if MeshId then
						for Index, Table in next, Accessories do
							if Table.MeshId == MeshId and Table.TextureId == TextureId then
								local Handle = Table.Handle

								tableinsert(Aligns, {
									LastPosition = Handle.Position,
									Offset = CFrameidentity,
									Part0 = Parent,
									Part1 = Handle
								})

								return
							end
						end

						for Index, Table in next, OptionsAccessories do
							if stringfind(MeshId, Table.MeshId) and stringfind(TextureId, Table.TextureId) then
								local Instance = nil
								local TableName = Table.Name
								local TableNames = Table.Names

								if TableName then
									Instance = FindFirstChildOfClassAndName(Rig, "BasePart", TableName)
								else
									for Index, TableName in next, TableNames do
										local Child = FindFirstChildOfClassAndName(Rig, "BasePart", TableName)

										if not ( TableNames[Index + 1] and Blacklist[Child] ) then
											Instance = Child
											break
										end
									end
								end

								if Instance then
									local Blacklisted = Blacklist[Instance]

									if not ( Blacklisted and Blacklisted.MeshId == MeshId and Blacklisted.TextureId == TextureId ) then
										tableinsert(Aligns, {
											Offset = Table.Offset,
											Part0 = Parent,
											Part1 = Instance
										})

										Blacklist[Instance] = { MeshId = MeshId, TextureId = TextureId }

										return
									end
								end
							end
						end

						local Accoutrement = FindFirstAncestorWhichIsA(Parent, "Accoutrement")

						if Accoutrement and IsA(Accoutrement, "Accoutrement") then
							local AccoutrementClone = Clone(Accoutrement)

							local HandleClone = FindFirstChildOfClassAndName(AccoutrementClone, "BasePart", "Handle")
							HandleClone.Transparency = OptionsRigTransparency

							for Index, Descendant in next, GetDescendants(HandleClone) do
								if IsA(Descendant, "JointInstance") then
									Destroy(Descendant)
								end
							end

							local AccessoryWeld = Instancenew("Weld")
							AccessoryWeld.C0 = Descendant.CFrame
							AccessoryWeld.C1 = Attachment.CFrame
							AccessoryWeld.Name = "AccessoryWeld"
							AccessoryWeld.Part0 = HandleClone
							AccessoryWeld.Part1 = Attachment.Parent
							AccessoryWeld.Parent = HandleClone

							AccoutrementClone.Parent = Rig

							tableinsert(Accessories, {
								Handle = HandleClone,
								MeshId = MeshId,
								TextureId = TextureId
							})
							tableinsert(Aligns, {
								Offset = CFrameidentity,
								Part0 = Parent,
								Part1 = HandleClone
							})
						end
					end
				end
			end
		end
	end

	local SetCameraSubject = function()
		local CameraCFrame = CurrentCamera.CFrame
		local Position = RigHumanoidRootPart.CFrame.Position

		CurrentCamera.CameraSubject = RigHumanoid
		Wait(PreRender)
		CurrentCamera.CFrame = CameraCFrame + RigHumanoidRootPart.CFrame.Position - Position
	end

	local OnCameraSubjectChanged = function()
		if CurrentCamera.CameraSubject ~= RigHumanoid then
			taskdefer(SetCameraSubject)
		end
	end

	local OnCameraTypeChanged = function()
		if CurrentCamera.CameraType ~= Custom then
			CurrentCamera.CameraType = Custom
		end
	end

	local OnCurrentCameraChanged = function()
		local Camera = Workspace.CurrentCamera

		if Camera and OptionsSetCameraSubject then
			CurrentCamera = Workspace.CurrentCamera

			taskspawn(SetCameraSubject)

			OnCameraSubjectChanged()
			tableinsert(RBXScriptConnections, Connect(GetPropertyChangedSignal(CurrentCamera, "CameraSubject"), OnCameraSubjectChanged))

			if OptionsSetCameraType then
				OnCameraTypeChanged()
				tableinsert(RBXScriptConnections, Connect(GetPropertyChangedSignal(CurrentCamera, "CameraType"), OnCameraTypeChanged))
			end
		end
	end

	local SetCharacter = function()
		LocalPlayer.Character = Rig
	end

	local SetSimulationRadius = function()
		LocalPlayer.SimulationRadius = OptionsSimulationRadius
	end

	local WaitForChildOfClass = function(Parent, ClassName)
		local Child = FindFirstChildOfClass(Parent, ClassName)

		while not Child do
			Wait(Parent.ChildAdded)
			Child = FindFirstChildOfClass(Parent, ClassName)
		end

		return Child
	end

	local WaitForChildOfClassAndName = function(Parent, ...)
		local Child = FindFirstChildOfClassAndName(Parent, ...)

		while not Child do
			Wait(Parent.ChildAdded)
			Child = FindFirstChildOfClassAndName(Parent, ...)
		end

		return Child
	end

	local Fling = function(Target, Options)
		if Target then
			local Highlight = Options.Highlight

			if IsA(Target, "Humanoid") then
				Target = Target.Parent
			end
			if IsA(Target, "Model") then
				Target = FindFirstChildOfClassAndName(Target, "BasePart", "HumanoidRootPart") or FindFirstChildWhichIsA(Character, "BasePart")
			end

			if not tablefind(Targets, Target) and IsA(Target, "BasePart") and not Target.Anchored and not IsDescendantOf(Character, Target) and not IsDescendantOf(Rig, Target) then
				local Model = FindFirstAncestorOfClass(Target, "Model")

				if Model and FindFirstChildOfClass(Model, "Humanoid") then
					Target = FindFirstChildOfClassAndName(Model, "BasePart", "HumanoidRootPart") or FindFirstChildWhichIsA(Character, "BasePart") or Target	
				else
					Model = Target
				end

				if Highlight then
					local HighlightObject = type(Highlight) == "boolean" and Highlight and Instancenew("Highlight") or Clone(Highlight)
					HighlightObject.Adornee = Model
					HighlightObject.Parent = Model
					HighlightObject.OutlineColor = Color3fromRGB(255, 0, 0)
					HighlightObject.FillColor = Color3fromRGB(0, 0, 0)

					Options.HighlightObject = HighlightObject
					tableinsert(Highlights, HighlightObject)
				end

				Targets[Target] = Options
			end
		end
	end

	local OnCharacterAdded = function(NewCharacter)
 
		if NewCharacter ~= Rig then
			tableclear(Aligns)
			tableclear(Blacklist)

			Character = NewCharacter

			if OptionsSetCameraSubject then
				taskspawn(SetCameraSubject)
			end

			if OptionsSetCharacter then
				taskdefer(SetCharacter)
			end

			if OptionsParentCharacter then
				Character.Parent = Rig
			end

			for Index, Descendant in next, GetDescendants(Character) do
				taskspawn(DescendantAdded, Descendant)
			end

			tableinsert(RBXScriptConnections, Connect(Character.DescendantAdded, DescendantAdded))

			Humanoid = WaitForChildOfClass(Character, "Humanoid")
			local HumanoidRootPart = WaitForChildOfClassAndName(Character, "BasePart", "HumanoidRootPart")

			if IsFirst then
				if OptionsApplyDescription and Humanoid then
					local AppliedDescription = GetAppliedDescription(Humanoid)
					SetAccessories(AppliedDescription, {}, true)
					taskspawn(ApplyDescription, RigHumanoid, AppliedDescription)
				end

				if HumanoidRootPart then
					RigHumanoidRootPart.CFrame = HumanoidRootPart.CFrame

					if OptionsSetCollisionGroup then
						local CollisionGroup = HumanoidRootPart.CollisionGroup

						for Index, Descendant in next, GetDescendants(Rig) do
							if IsA(Descendant, "BasePart") then
								Descendant.CollisionGroup = CollisionGroup
							end
						end
					end
				end

				IsFirst = false
			end

			local IsAlive = true

			if HumanoidRootPart then
				for Target, Options in next, Targets do
					if IsDescendantOf(Target, Workspace) then
						local FirstPosition = Target.Position
						local PredictionFling = Options.PredictionFling
						local LastPosition = FirstPosition
						local Timeout = osclock() + Options.Timeout or 1

						if HumanoidRootPart then
							while IsDescendantOf(Target, Workspace) and osclock() < Timeout do
								local DeltaTime = taskwait()
								local Position = Target.Position

								if ( Position - FirstPosition ).Magnitude > 100 then
									break
								end

								local Offset = Vector3zero

								if PredictionFling then
									local BaseOffset = (Position - LastPosition) / DeltaTime * 0.13
									local Frequency = Reanimate_Settings.Frequency
									local Amplification = Reanimate_Settings.Amplification
									local Time = tick()
									local TargetFace = Target.CFrame.LookVector
									local Oscillation = mathsin(Time * mathpi * 2 * Frequency) * Amplification
									local OscillatedOffset = TargetFace * Oscillation
									local FrontFaceOffset = TargetFace * Reanimate_Settings.FrontOffset
									Offset = BaseOffset + OscillatedOffset + FrontFaceOffset
								end

								HumanoidRootPart.AssemblyAngularVelocity = FlingVelocity
								HumanoidRootPart.AssemblyLinearVelocity = FlingVelocity

								HumanoidRootPart.CFrame = CFrame.new(Target.Position + Offset) * CFrame.Angles(0, Target.Orientation.Y, 0)
								LastPosition = Position
							end
						end
					end

					local HighlightObject = Options.HighlightObject

					if HighlightObject then
						Destroy(HighlightObject)
					end

					Targets[Target] = nil
				end

				HumanoidRootPart.AssemblyAngularVelocity = Vector3zero
				HumanoidRootPart.AssemblyLinearVelocity = Vector3zero

				if OptionsHatDrop then
					taskspawn(function()
						WaitForChildOfClassAndName(Character, "LocalScript", "Animate").Enabled = false

						for Index, AnimationTrack in next, GetPlayingAnimationTracks(Humanoid) do
							AnimationTrack:Stop()
						end

						LoadAnimation(Humanoid, Humanoid.RigType == R6 and R6Animation or R15Animation):Play(0)

						pcall(NewIndex, Workspace, "FallenPartsDestroyHeight", nan)

						local RootPartCFrame = RigHumanoidRootPart.CFrame
						RootPartCFrame = CFramenew(RootPartCFrame.X, HatDropY, RootPartCFrame.Z)

						while IsAlive do
							HumanoidRootPart.AssemblyAngularVelocity = Vector3zero
							HumanoidRootPart.AssemblyLinearVelocity = HatDropLinearVelocity
							HumanoidRootPart.CFrame = RootPartCFrame

							taskwait()
						end
					end)
				elseif OptionsHideCharacter then
					local HideCharacterOffset = typeof(OptionsHideCharacter) == "Vector3" and OptionsHideCharacter or HideCharacterOffset
					local RootPartCFrame = RigHumanoidRootPart.CFrame + HideCharacterOffset

					taskspawn(function()
						while IsAlive do
							HumanoidRootPart.AssemblyAngularVelocity = Vector3zero
							HumanoidRootPart.AssemblyLinearVelocity = Vector3zero
							HumanoidRootPart.CFrame = RootPartCFrame

							taskwait()
						end
					end)
				elseif OptionsTeleportRadius then
					HumanoidRootPart.CFrame = RigHumanoidRootPart.CFrame + Vector3new(mathrandom(- OptionsTeleportRadius, OptionsTeleportRadius), 0, mathrandom(- OptionsTeleportRadius, OptionsTeleportRadius))
				end
			end

			local ToolFling = OptionsDefaultFlingOptions.ToolFling
			local Tools2 = {}

			if ToolFling then
				local Backpack = FindFirstChildOfClass(LocalPlayer, "Backpack")

				tableclear(Tools)

				if type(ToolFling) == "string" then
					local Tool = FindFirstChildOfClassAndName(Backpack, "Tool", ToolFling)

					if Tool then
						Tool.Parent = Character
						tableinsert(Tools2, Tool)
					end
				else
					for Index, Tool in GetChildren(Backpack) do
						if IsA(Tool, "Tool") then
							Tool.Parent = Character
							tableinsert(Tools2, Tool)
						end
					end
				end

				UnequipTools(Humanoid)
			end
 
      		taskwait(OptionsBreakJointsDelay)

			ModelBreakJoints(Character)

			if replicatesignal and OptionsUseServerBreakJoints then
				replicatesignal(Humanoid.ServerBreakJoints)
			end

			ChangeState(Humanoid, Dead)
			Wait(Humanoid.Died)

			for Index, Tool in Tools2 do
				local Handle = FindFirstChildOfClassAndName(Tool, "BasePart", "Handle")

				if Handle then
					Tool.Parent = Character
				else
					tableremove(Tools2, Index)
				end
			end

			Tools = Tools2
			UnequipTools(Humanoid)

			IsAlive = false

			if OptionsHatDrop then
				pcall(NewIndex, Workspace, "FallenPartsDestroyHeight", FallenPartsDestroyHeight)
			end
		end
	end

	local OnInputBegan = function(InputObject)
		local UserInputType = InputObject.UserInputType

		if UserInputType == MouseButton1 or UserInputType == Touch then
			local Target = Mouse.Target

			local HatFling = OptionsDefaultFlingOptions.HatFling
			local ToolFling = OptionsDefaultFlingOptions.ToolFling

			if HatFling and OptionsHatDrop then
				local Part = type(HatFling) == "table" and GetHandleFromTable(HatFling)

				if not Part then
					for Index, Child in GetChildren(Character) do
						if IsA(Child, "Accoutrement") then
							local Handle = FindFirstChildOfClassAndName(Child, "BasePart", "Handle")

							if Handle then
								Part = Handle
								break
							end
						end
					end
				end

				if Part then
					Exceptions[Part] = true

					while IsMouseButtonPressed(UserInputService, MouseButton1) do
						if Part.ReceiveAge == 0 then
							Part.AssemblyAngularVelocity = FlingVelocity
							Part.AssemblyLinearVelocity = FlingVelocity
							Part.CFrame = Mouse.Hit + AntiSleep
						end

						taskwait()
					end

					Exceptions[Part] = nil
				end
			elseif ToolFling then
				local Backpack = FindFirstChildOfClass(LocalPlayer, "Backpack")
				local Tool = nil

				if type(ToolFling) == "string" then
					Tool = FindFirstChild(Backpack, ToolFling) or FindFirstChild(Character, ToolFling)
				end

				if not Tool then
					Tool = FindFirstChildOfClass(Backpack, "Tool") or FindFirstChildOfClass(Character, "Tool")
				end

				if Tool then
					local Handle = FindFirstChildOfClassAndName(Tool, "BasePart", "Handle") or FindFirstChildWhichIsA(Tool, "BasePart")

					if Handle then
						Tool.Parent = Character

						while IsMouseButtonPressed(UserInputService, MouseButton1) do
							if Handle.ReceiveAge == 0 then
								Handle.AssemblyAngularVelocity = FlingVelocity
								Handle.AssemblyLinearVelocity = FlingVelocity
								Handle.CFrame = Mouse.Hit + AntiSleep
							end

							taskwait()
						end

						UnequipTools(Humanoid)

						Handle.AssemblyAngularVelocity = Vector3zero
						Handle.AssemblyLinearVelocity = Vector3zero
						Handle.CFrame = RigHumanoidRootPart.CFrame
					end
				end
			else
				Fling(Target, OptionsDefaultFlingOptions)
			end
		end
	end

	local OnPostSimulation = function()
		Time = osclock()
		local DeltaTime = Time - LastTime
		LastTime = Time

		if not OptionsSetCharacter and IsLockCenter then
			local Position = RigHumanoidRootPart.Position
			RigHumanoidRootPart.CFrame = CFramelookAt(Position, Position + CurrentCamera.CFrame.LookVector * Vector3xzAxis)
		end

		if OptionsSimulationRadius then
			pcall(SetSimulationRadius)
		end

		AntiSleep = mathsin(Time * 15) * 0.0015 * Vector3one
		local Axis = 27 + mathsin(Time)

		for Index, Table in next, Aligns do
			local Part0 = Table.Part0

			if not Exceptions[Part0] then
				if Part0.ReceiveAge == 0 then
					if IsDescendantOf(Part0, Workspace) and not GetJoints(Part0)[1] and not IsGrounded(Part0) then
						local Part1 = Table.Part1

						Part0.AssemblyAngularVelocity = Vector3zero

						local LinearVelocity = Part1.AssemblyLinearVelocity * Axis
						Part0.AssemblyLinearVelocity = Vector3new(LinearVelocity.X, Axis, LinearVelocity.Z)

						Part0.CFrame = Part1.CFrame * Table.Offset + AntiSleep
					end
				else
					local Frames = Table.Frames or - 1
					Frames = Frames + 1
					Table.Frames = Frames
				end
			end
		end

		if not OptionsSetCharacter and Humanoid then
			Move(RigHumanoid, Humanoid.MoveDirection)
			RigHumanoid.Jump = Humanoid.Jump
		end
	end

	local OnPreRender = function()
		local Position = RigHumanoidRootPart.Position
		RigHumanoidRootPart.CFrame = CFramelookAt(Position, Position + CurrentCamera.CFrame.LookVector * Vector3xzAxis)

		for Index, Table in next, Aligns do
			local Part0 = Table.Part0

			if Part0.ReceiveAge == 0 and IsDescendantOf(Part0, Workspace) and not GetJoints(Part0)[1] and not IsGrounded(Part0) then
				Part0.CFrame = Table.Part1.CFrame * Table.Offset
			end
		end
	end

	local OnMouseBehaviorChanged = function()
		IsLockCenter = UserInputService.MouseBehavior == LockCenter

		if IsLockCenter then
			PreRenderConnection = Connect(PreRender, OnPreRender)
			tableinsert(RBXScriptConnections, PreRenderConnection)
		elseif PreRenderConnection then
			Disconnect(PreRenderConnection)
			tableremove(RBXScriptConnections, tablefind(RBXScriptConnections, PreRenderConnection))
		end
	end

	local OnPreSimulation = function()
		if OptionsDisableCharacterCollisions and Character then
			for Index, Descendant in next, GetDescendants(Character) do
				if IsA(Descendant, "BasePart") then
					Descendant.CanCollide = false
				end
			end
		end
		if not Settings.Ragdoll then
			for Index, Descendant in next, GetChildren(Rig) do
				if IsA(Descendant, "BasePart") then
					Descendant.CanCollide = false
				end
			end
        else
            for Index, Descendant in next, GetChildren(Rig) do
				if IsA(Descendant, "BasePart") and Descendant.Name ~= "HumanoidRootPart" and Descendant.Name ~= "VoidStar" then
					Descendant.CanCollide = true
				end
			end
		end
	end

	local Register = function()
		repeat
			IsRegistered = pcall(SetCore, StarterGui, "ResetButtonCallback", BindableEvent)
			taskwait()
		until IsRegistered
	end

	Start = function(Options)
		if not IsRunning then
			IsFirst = true
			IsRunning = true

			Options = Options or {}
			OptionsAccessories = Options.Accessories or {}
			OptionsApplyDescription = Options.ApplyDescription
			OptionsBreakJointsDelay = Options.BreakJointsDelay or 0
			OptionsClickFling = Options.ClickFling
			OptionsDisableCharacterCollisions = Options.DisableCharacterCollisions
			OptionsDisableHealthBar = Options.DisableHealthBar
			OptionsDisableRigCollisions = Options.DisableRigCollisions
			OptionsDefaultFlingOptions = Options.DefaultFlingOptions or {}
			OptionsHatDrop = Options.HatDrop
			OptionsHideCharacter = Options.HideCharacter
			OptionsParentCharacter = Options.ParentCharacter
			local OptionsRigSize = Options.RigSize
			OptionsRigTransparency = Options.RigTransparency or 1
			OptionsSetCameraSubject = Options.SetCameraSubject
			OptionsSetCameraType = Options.SetCameraType
			OptionsSetCharacter = Options.SetCharacter
			OptionsSetCollisionGroup = Options.SetCollisionGroup
			OptionsSimulationRadius = Options.SimulationRadius
			OptionsTeleportRadius = Options.TeleportRadius
			OptionsUseServerBreakJoints = Options.UseServerBreakJoints

			if OptionsDisableHealthBar then
				IsHealthEnabled = GetCoreGuiEnabled(StarterGui, Health)
				SetCoreGuiEnabled(StarterGui, Health, false)
			end

			BindableEvent = Instancenew("BindableEvent")
			tableinsert(RBXScriptConnections, Connect(BindableEvent.Event, Stop))

			Rig = Options.R15 and Clone(R15HumanoidModel) or Clone(HumanoidModel)
			Rig.Name = "non"
			RigHumanoid = Rig.Humanoid
			RigHumanoidRootPart = Rig.HumanoidRootPart
			Rig.Parent = Workspace

			local CreateObject = function(Name)
				local Part = Instance.new("Part")
				Part.Name = Name
				Part.Massless = true
				Part.CanCollide = true
				Part.Transparency = 1
				Part.Size = Vector3new(0.1, 0.1, 0.1)
				Part.Anchored = true
				Part.Parent = Rig
				return Part
			end

            ReanimateVoidstar = CreateObject("Reanimate_Voidstar")

			for Index, Descendant in next, GetDescendants(Rig) do
				if IsA(Descendant, "Attachment") then
					Attachments[Descendant.Name] = Descendant
				elseif IsA(Descendant, "BasePart") or IsA(Descendant, "Decal") then
					Descendant.Transparency = OptionsRigTransparency
				end
			end

			if OptionsRigSize then
				ScaleTo(Rig, OptionsRigSize)

				RigHumanoid.JumpPower = 50
				RigHumanoid.WalkSpeed = 16
			end

			OnCurrentCameraChanged()
			tableinsert(RBXScriptConnections, Connect(CurrentCameraChanged, OnCurrentCameraChanged))

			if OptionsClickFling then
				tableinsert(RBXScriptConnections, Connect(InputBegan, OnInputBegan))
			end

			local Character = LocalPlayer.Character

			if Character then
				OnCharacterAdded(Character)
                ReanimateVoidstar.Anchored = false
 			end

			tableinsert(RBXScriptConnections, Connect(CharacterAdded, OnCharacterAdded))

			LastTime = osclock()
			tableinsert(RBXScriptConnections, Connect(PostSimulation, OnPostSimulation))

			if not OptionsSetCharacter then
				OnMouseBehaviorChanged()
				tableinsert(RBXScriptConnections, Connect(MouseBehaviorChanged, OnMouseBehaviorChanged))
			end

			if OptionsDisableCharacterCollisions or OptionsDisableRigCollisions then
				OnPreSimulation()
				tableinsert(RBXScriptConnections, Connect(PreSimulation, OnPreSimulation))
			end

			IsRegistered = pcall(SetCore, StarterGui, "ResetButtonCallback", BindableEvent)

			if not IsRegistered then
				taskspawn(Register)
			end

			return {
				BindableEvent = BindableEvent,
				Fling = Fling,
				Rig = Rig
			}
		end
	end

	Stop = function()
		if IsRunning then
			IsFirst = false
			IsRunning = false

			for Index, Highlight in Highlights do
				Destroy(Highlight)
			end

			tableclear(Highlights)

			for Index, RBXScriptConnection in next, RBXScriptConnections do
				Disconnect(RBXScriptConnection)
			end

			tableclear(RBXScriptConnections)

			Destroy(BindableEvent)

			if Character.Parent == Rig then
				Character.Parent = Workspace
			end

			if Humanoid then
				ChangeState(Humanoid, Dead)
			end

			Destroy(Rig)

			if OptionsDisableHealthBar and not GetCoreGuiEnabled(StarterGui, Health) then
				SetCoreGuiEnabled(StarterGui, Health, IsHealthEnabled)
			end

			if IsRegistered then
				pcall(SetCore, StarterGui, "ResetButtonCallback", true)
			else
				IsRegistered = pcall(SetCore, StarterGui, "ResetButtonCallback", true)
			end
		end
	end
end

local Rad = math.rad

Empyrean = Start({
    Accessories = {
        -- 2x Rig
        { Name = "Head", MeshId = "92572400594624",  TextureId = "117484156735788", Offset = CFrame.new(0, 2.15, 0) * CFrame.Angles(0, Rad(180), 0) },
        { Name = "Torso", MeshId = "111946216585470",  TextureId = "85260593368362", Offset = CFrame.new(0, 1.5, 0.25) },
        { Name = "Right Arm", MeshId = "93749227415046", TextureId = "103757531289975", Offset = CFrame.new(1, 0.85, 0) },
        { Name = "Left Arm", MeshId = "117649985156221", TextureId = "103757531289975", Offset = CFrame.new(-1, 0.85, 0) },
        { Name = "Right Leg",MeshId = "76010149115685",  TextureId = "103160995675216", Offset = CFrame.new(-0.55, 1, 0) },
        { Name = "Left Leg", MeshId = "137156465227879", TextureId = "103160995675216", Offset = CFrame.new(0.55, 1, 0) },
        -- Tords Rig
	 	{ Name = "Torso", MeshId = "97772676424430",  TextureId = "96282018871478", Offset = CFrame.identity },
 	    { Name = "Right Arm", MeshId = "128839203893104",  TextureId = "100542973447024", Offset = CFrame.identity },
 	    { Name = "Left Arm", MeshId = "113944263422349",  TextureId = "79061753792604", Offset = CFrame.identity },
		-- Hammer Head Rig
	 	{ Name = "Torso", MeshId = "139792224823925",  TextureId = "89183204903931", Offset = CFrame.Angles(0, 0, Rad(90)) },
 	    { Name = "Right Arm", MeshId = "105263225400272",  TextureId = "111402858657243", Offset = CFrame.Angles(0, 0, Rad(90)) },
 	    { Name = "Left Arm", MeshId = "105263225400272",  TextureId = "111402858657243", Offset = CFrame.Angles(0, 0, Rad(90)) },
    	-- Glitchy Limbs (Monochrome)
		{ Name = "Torso", MeshId = "94838871645327",  TextureId = "108681181592495", Offset = CFrame.identity },
		{ Name = "Right Arm", MeshId = "18885728798", TextureId = "18885728798", Offset = CFrame.identity },
		{ Name = "Left Arm", MeshId = "18885728798", TextureId = "18885728798", Offset = CFrame.identity },
		{ Name = "Right Leg",MeshId = "100080236046620",  TextureId = "78703116520529", Offset = CFrame.identity },
		{ Name = "Left Leg", MeshId = "91790195871679", TextureId = "108681181592495", Offset = CFrame.identity },
		-- Gojo Rig
		{ Name = "Torso", MeshId = "113465334594272",  TextureId = "94020114074172", Offset = CFrame.identity },
		{ Name = "Right Arm",MeshId = "82030652840870",  TextureId = "137595219926625", Offset = CFrame.identity },
		{ Name = "Left Arm", MeshId = "91244322746029", TextureId = "137595219926625", Offset = CFrame.identity },
		{ Name = "Right Leg", MeshId = "132187752780278", TextureId = "97394845862368", Offset = CFrame.Angles(3.15, 0, 0) },
		{ Name = "Left Leg", MeshId = "131967977780088", TextureId = "97394845862368", Offset =  CFrame.Angles(3.15, 0, 0) },
		-- New Free Hair Limbs
		{ MeshId = "319354652", Name = "Left Arm", Offset = CFrame.new(0.15, 0, 0) *  CFrame.Angles(0, -1.57, 0), TextureId = "376186990" },
		{ MeshId = "319354652", Name = "Right Arm", Offset = CFrame.new(-0.15, 0, 0) * CFrame.Angles(0, 1.57, 0), TextureId = "304117018" },
		{ MeshId = "81642452", Name = "Left Leg", Offset = CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, Rad(180)), TextureId = "6858317942" },
		{ MeshId = "81642452", Name = "Right Leg", Offset = CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, Rad(180)), TextureId = "6858318826" },
		-- New Free Rig
		{ MeshId = "4819720316", Name = "Torso", Offset = CFrame.Angles(0, 0, -0.25), TextureId = "4819722776" },
		{ MeshId = "3030546036", Name = "Left Arm", Offset = CFrame.new(0.15, 0, 0) *  CFrame.Angles(-1.57, 0, 1.57), TextureId = "3033903209" },
		{ MeshId = "3030546036", Name = "Right Arm", Offset = CFrame.new(-0.15, 0, 0) * CFrame.Angles(-1.57, 0, -1.57), TextureId = "3360978739" },
		{ MeshId = "3030546036", Name = "Left Leg", Offset = CFrame.new(0.15, 0, 0) * CFrame.Angles(-1.57, 0, 1.57), TextureId = "3033898741" },
		{ MeshId = "3030546036", Name = "Right Leg", Offset = CFrame.new(0.15, 0, 0) *  CFrame.Angles(-1.57, 0, -1.57), TextureId = "3409604993" },
		-- Snake Banisher Rig
		{ MeshId = "125443585075666", Name = "Torso", Offset = CFrame.Angles(0, 3.15, 0), TextureId = "121023324229475" },
		{ MeshId = "121342985816617", Name = "Left Arm", Offset = CFrame.Angles(0, 0, 1.57), TextureId = "129264637819824" },
		{ MeshId = "121342985816617", Name = "Right Arm", Offset = CFrame.Angles(0, 3.15, 1.57), TextureId = "129264637819824" },
		{ MeshId = "83395427313429", Names = { "Left Leg", "Right Leg" }, Offset = CFrame.Angles(0, 0, 1.57), TextureId = "97148121718581" },--18641142410
		-- Prosthetics (Furnace Rig)
		{ MeshId = "117554824897780", Name = "Right Leg", Offset = CFrame.Angles(0, -1.57, 0), TextureId = "99077561039115" },
		{ MeshId = "123388937940630", Name = "Left Leg", Offset = CFrame.Angles(0, 1.57, 0), TextureId = "99077561039115" },
		{ MeshId = "117554824897780", Name = "Right Leg", Offset = CFrame.Angles(0, -1.57, 0), TextureId = "84429400539007" },
		{ MeshId = "123388937940630", Name = "Left Leg", Offset = CFrame.Angles(0, 1.57, 0), TextureId = "84429400539007" },
		-- Classic Cheap Rig
		{ MeshId = "12344206657", Name = "Left Arm", Offset = CFrame.new(0.05, 0.05, -0.075) * CFrame.Angles(-2, 0, 0), TextureId = "12344206675" },
		{ MeshId = "12344207333", Name = "Right Arm", Offset = CFrame.new(-0.05, 0.05, -0.075) * CFrame.Angles(-1.95, 0, 0), TextureId = "12344207341" },
		{ MeshId = "11159370334", Name = "Left Leg", Offset = CFrame.Angles(1.57, 1.57, 0), TextureId = "11159284657" },
		{ MeshId = "11263221350", Name = "Right Leg", Offset = CFrame.Angles(1.57, -1.57, 0), TextureId = "11263219250" },
		-- Grey Mesh Rig 
		{ MeshId = "127552124837034", Names = {"Torso"}, Offset = CFrame.Angles(0, 0, 0), TextureId = "131014325980101" },--14255556501
		{ MeshId = "117287001096396", Names = { "Left Arm", "Right Arm"}, Offset = CFrame.Angles(0, 0, 0), TextureId = "120169691545791" },--14255556501
		{ MeshId = "121304376791439", Names = { "Left Leg", "Right Leg" }, Offset = CFrame.Angles(0, 0, 0), TextureId = "131014325980101" },--18641142410
		-- Classical Products rig (white/black arms)
		{ MeshId = "14241018198", Names = {"Torso"}, Offset = CFrame.Angles(0, 0, 1.57), TextureId = "14251599953" },
		{ MeshId = "17374767929", Names = { "Left Arm", "Right Arm"}, Offset = CFrame.Angles(0, 0, 1.57), TextureId = "17374768001" },
		{ MeshId = "17387586286", Names = { "Left Leg", "Right Leg" }, Offset = CFrame.Angles(0, 0, 1.57), TextureId = "17387586304" },
		{ MeshId = "14255522247", Names = { "Left Arm", "Right Arm"}, Offset = CFrame.Angles(0, 0, 1.57), TextureId = "14255543546" },
		-- Noob Rig
		{ MeshId = "18640899369", Name = "Torso", Offset = CFrame.Angles(0, 0, 0), TextureId = "18640899481" },
		{ MeshId = "18640914129", Names = { "Left Arm", "Right Arm"}, Offset = CFrame.Angles(0, 0, 0), TextureId = "18640914168" },
		{ MeshId = "18640901641", Names = { "Left Leg", "Right Leg"}, Offset = CFrame.Angles(0, 0, 0), TextureId = "18640901676" },
		-- Genesis Black Rig
		{ MeshId = "110684113028749", Name = "Torso", Offset = CFrame.identity, TextureId = "70661572547971" },
		{ MeshId = "125405780718494", Name = "Left Arm", Offset = CFrame.Angles(0, 0,  Rad(90)), TextureId = "136752500636691" },
		{ MeshId = "125405780718494", Name = "Right Arm", Offset = CFrame.Angles(0, 0,  Rad(90)), TextureId = "136752500636691" },
		{ MeshId = "125405780718494", Name = "Left Leg", Offset = CFrame.Angles(0, 0, Rad(90)), TextureId = "136752500636691" },
		{ MeshId = "125405780718494", Name = "Right Leg", Offset = CFrame.Angles(0, 0,  Rad(90)), TextureId = "136752500636691" },
		-- Genesis White Rig
		{ MeshId = "126825022897778", Name = "Torso", Offset = CFrame.identity, TextureId = "130689541138804" },
		{ MeshId = "99608462237958", Name = "Left Arm", Offset = CFrame.Angles(0, 0,  Rad(90)), TextureId = "130809869695496" },
		{ MeshId = "139733645770094", Name = "Right Arm", Offset = CFrame.Angles(0, 0,  Rad(90)), TextureId = "130809869695496" },
		{ MeshId = "105141400603933", Name = "Left Leg", Offset = CFrame.Angles(0, 0, Rad(90)), TextureId = "71060417496309" },
		{ MeshId = "90736849096372", Name = "Right Leg", Offset = CFrame.Angles(0, 0,  Rad(90)), TextureId = "79186624401216" },
		-- request
		{ MeshId = "14768666349", Name = "Torso", Offset = CFrame.Angles(0, 0, 0), TextureId = "14768664565" },
		{ MeshId = "14768684979", Names = { "Left Arm", "Right Arm"}, Offset = CFrame.Angles(0, 0, 1.57), TextureId = "14768683674" },
	    -- Blocks
        -- 138094177071382 / Admin's Command Block
 		{ Name = "Reanimate_Voidstar", MeshId = "124450938319006", TextureId = "116140049379017", Offset =  CFrame.Angles(0, 0, 0) },
        -- 126174506610997 / Tesseract Void
 		{ Name = "Reanimate_Voidstar", MeshId = "114491662662773", TextureId = "116639272672519", Offset =  CFrame.Angles(0, 0, 0) },
        -- 79778797065018 / YAAI Noli Tab
 		{ Name = "Reanimate_Voidstar", MeshId = "75226925425816", TextureId = "114653511721119", Offset =  CFrame.Angles(0, 0, 0) },
        -- 107375989698675 / Noli's Nova
 		{ Name = "Reanimate_Voidstar", MeshId = "111761423287127", TextureId = "104436009988593", Offset =  CFrame.Angles(0, 0, 0) },
        -- 18427767574 / Bloxy Cola
 		{ Name = "Reanimate_Voidstar", MeshId = "18427706530", TextureId = "18427706831", Offset =  CFrame.Angles(Rad(-90), 0, 0) },
        -- 89392828628286 / Devesto F3X
 		{ Name = "Reanimate_Voidstar", MeshId = "93839976189892", TextureId = "87530318962700", Offset =  CFrame.Angles(0, 0, 0) },
        -- 81135739703341 / Red Room Cursor
 		{ Name = "Reanimate_Voidstar", MeshId = "133225911736441", TextureId = "93962139150200", Offset =  CFrame.Angles(0, 0, 0) },
        -- 75152516777442 / Umbra Eye
 		{ Name = "Reanimate_Voidstar", MeshId = "118568444522464", TextureId = "79834113476615", Offset =  CFrame.Angles(0, 0, 0) },
        -- 75152516777442 / R6 Noli Holdable
 		{ Name = "Reanimate_Voidstar", MeshId = "105852387370635", TextureId = "77723769921327", Offset =  CFrame.Angles(0, 0, 0) },
        -- 138094177071382 / PC Head (Free)
 		{ Name = "Reanimate_Voidstar", MeshId = "2309330801", TextureId = "2309333814", Offset = CFrame.Angles(0, 0, 0) },
    },
	ApplyDescription = true,
	BreakJointsDelay = 0.255,
	ClickFling = false,
	DefaultFlingOptions = {
		HatFling = false,
		Highlight = false,
		PredictionFling = true,
		Timeout = 0.1,
		ToolFling = false,
	},
	DisableCharacterCollisions = true,
	DisableHealthBar = true,
	DisableRigCollisions = true,
	HatDrop = false,
	HideCharacter = Vector3.new(0, -30, 0),
	ParentCharacter = true,
	RigSize = 1,
	RigTransparency = 1,
	R15 = false,
	SetCameraSubject = true,
	SetCameraType = true,
	SetCharacter = false,
	SetCollisionGroup = true,
	SimulationRadius = 2147483647,
	TeleportRadius = 12,
	UseServerBreakJoints = true,
})

DefaultFlingOptions = {
	HatFling = false,
	Highlight = false,
	PredictionFling = true,
	Timeout = 0.25,
	ToolFling = false,
}

-- services
local script = game:GetObjects(getcustomasset(Directories.RBXMs.."Admin.rbxmx"))[1]

local FPS = setfpscap(60)
local Blend = 0.35 -- this is for animation smoothing.

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local Debris = game:GetService("Debris")
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")

local AnimatorModule = {}
local TrashBin = {}
local StoredMotors = {}

local GetAnimDefaults = function()
	return {
		["Voidstar"] = CFrame.new(0, Settings.RigSize-1, -Settings.RigSize+0.5),
		["Neck"] = CFrame.new(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),
		["RootJoint"] = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),
		["Right Shoulder"] = CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0),
		["Left Shoulder"] = CFrame.new(-1, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0),
		["Right Hip"] = CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0),
		["Left Hip"] = CFrame.new(-1, -1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0),
		["Head"] = CFrame.new(0, Settings.RigSize, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),
		["Torso"] = CFrame.new(0, Settings.RigSize-1, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),
		["Right Arm"] = CFrame.new(Settings.RigSize, Settings.RigSize-0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0),
		["Left Arm"] = CFrame.new(-Settings.RigSize, Settings.RigSize-0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0),
		["Right Leg"] = CFrame.new(Settings.RigSize, -Settings.RigSize, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0),
		["Left Leg"] = CFrame.new(-Settings.RigSize, -Settings.RigSize, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
	}
end

local Edit = function(Joint, TargetCFrame, Duration, Style, Direction, Blend)
	if not Style or typeof(Style) ~= "EnumItem" or Style.EnumType ~= Enum.EasingStyle then
		Style = Enum.EasingStyle.Cubic
	end
	if not Direction or typeof(Direction) ~= "EnumItem" or Direction.EnumType ~= Enum.EasingDirection then
		Direction = Enum.EasingDirection.InOut
	end
	local StartCFrame = Joint.C0
	local Tween = TweenService:Create(Joint, TweenInfo.new(Duration, Style, Direction), {
		C0 = StartCFrame:Lerp(TargetCFrame, Blend)
	})
	Tween:Play()
	return Tween
end

function AnimatorModule:LoadAnimation(Rig, KeyframeSequence)
	local Sequence = KeyframeSequence
	local RigHumanoid = Rig:FindFirstChildOfClass("Humanoid")
	if RigHumanoid.RigType ~= Enum.HumanoidRigType.R6 then
		return error("Rig Humanoid is not R6!")
	end
	local Joints = {
		["Voidstar"] = Rig.HumanoidRootPart:FindFirstChild("Voidstar"),
		["Head"] = Rig.Torso["Neck"],
		["Torso"] = Rig.HumanoidRootPart:FindFirstChild("RootJoint") or Rig.HumanoidRootPart:FindFirstChild("Root Joint"),
		["Left Arm"] = Rig.Torso["Left Shoulder"],
		["Right Arm"] = Rig.Torso["Right Shoulder"],
		["Left Leg"] = Rig.Torso["Left Hip"],
		["Right Leg"] = Rig.Torso["Right Hip"],
	}
	local Class = {}
	Class.Speed = 1
	Class.KeepLast = 0
	local Keyframes = Sequence:GetKeyframes()
	table.sort(Keyframes, function(a, b) return a.Time < b.Time end)
	Class.Length = Keyframes[#Keyframes].Time
	local function Yield(Seconds)
		RunService.Heartbeat:Wait(Seconds / Class.Speed)
	end
	for _, v in ipairs(Sequence:GetDescendants()) do
		if v:IsA("IntValue") or v:IsA("StringValue") or v:IsA("Folder") then
			v:Destroy()
		elseif v:IsA("Pose") and not Rig:FindFirstChild(v.Name, true) then
			v:Destroy()
		end
	end
	Class.Stopped = true
	Class.IsPlaying = false
	Class.TimePosition = 0
	Class.Looped = Sequence.Loop
	local Completion = Instance.new("BindableEvent")
	local Reached = Instance.new("BindableEvent")
	Class.Completed = Completion.Event
	Class.KeyframeReached = Reached.Event
	function Class:Play(Speed)
		if Speed and Speed < 0 then
			Speed = math.abs(Speed)
		end
		Class.Speed = math.clamp(Speed or 180, 1, 180)
		Class.Stopped = false
		Class.IsPlaying = true
		task.spawn(function()
			Class.Completed:Connect(function()
				if Class.Looped then
					Class.TimePosition = 0
				end
			end)
			local Connection
			Connection = RunService.Heartbeat:Connect(function(dt)
				if Class.IsPlaying and not Class.Stopped and RigHumanoid.Health > 0 then
					Class.TimePosition += math.min(dt * Class.Speed, 1)
				else
					Connection:Disconnect()
				end
			end)
		end)
		task.spawn(function()
			repeat
				for K = 1, #Keyframes do
					local K0, K1, K2 = Keyframes[K-1], Keyframes[K], Keyframes[K+1]
					if not Class.Stopped and RigHumanoid.Health > 0 then
						if K0 then
							Yield(K1.Time - K0.Time)
						end
						task.spawn(function()
							for _, Pose in ipairs(K1:GetDescendants()) do
								if Joints[Pose.Name] then
									local AnimDefaults = GetAnimDefaults()
									local Duration = K2 and (K2.Time - K1.Time) / Class.Speed or 0.5
									Edit(Joints[Pose.Name], AnimDefaults[Pose.Name] * Pose.CFrame, Duration, Pose.EasingStyle, Pose.EasingDirection, Blend)
								end
							end
						end)
						if K == #Keyframes and Class.KeepLast > 0 then
							Yield(Class.KeepLast)
						end
						Reached:Fire(K1.Name)
					else
						break
					end
				end
				Completion:Fire()
			until not Class.Looped or Class.Stopped or RigHumanoid.Health == 0
			Class.IsPlaying = false
		end)
	end
	function Class:Stop()
		Class.Stopped = true
	end
	function Class:AdjustSpeed(Speed)
		if Speed < 0 then
			Speed = math.abs(Speed)
		end
		Class.Speed = math.clamp(Speed or Class.Speed, 1, 180)
	end
	return Class
end

-- booleans + table
local Idle, Walking, Running, Enraged = false, false, false, false
local Debounce, Shift, CanHitbox = false, false, false
local MeleeHit = false
local HitboxConnection
local LastRagdoll = Settings.Ragdoll

-- character setup
local Player = Players.LocalPlayer
local Character = Empyrean.Rig
local Head = Character:WaitForChild("Head")
local Torso = Character:WaitForChild("Torso")
local LeftArm, RightArm = Character:WaitForChild("Left Arm"), Character:WaitForChild("Right Arm")
local LeftLeg, RightLeg = Character:WaitForChild("Left Leg"), Character:WaitForChild("Right Leg")
local RootPart = Character:WaitForChild("HumanoidRootPart")
local Humanoid = Character:WaitForChild("Humanoid")
pcall(function()
	Character:FindFirstChild("Animate"):Destroy()
	Humanoid:FindFirstChild("Animator"):Destroy()
end)

-- player functions
local Mouse = Player:GetMouse()
local SetWalkSpeed = function(Speed) Humanoid.WalkSpeed = Speed end
local SetRootPartAnchor = function(Bool) RootPart.Anchored = Bool end

task.spawn(function()
    local ShitlockController = Player.PlayerScripts:WaitForChild("PlayerModule"):WaitForChild("CameraModule"):WaitForChild("MouseLockController")
    ShitlockController:FindFirstChild("BoundKeys").Value = "LeftControl, RightControl"
end)

-- effects setup
local Animations = script:WaitForChild("Animations")
local Objects = script:WaitForChild("Objects")

local Camera = workspace.CurrentCamera

local PlaySound = function(Audio)
	local Sound = Instance.new("Sound", RootPart)
	Sound.SoundId = "rbxassetid://" .. Audio
	Sound.Volume = 1
	if Settings.Earrape then
		Sound.Volume = 10
		Instance.new("DistortionSoundEffect", Sound)
	end
	Sound.PlayOnRemove = true
	Sound:Destroy()
end

local PlaySoundFromDisk = function(Audio)
	local Sound = Instance.new("Sound", RootPart)
	Sound.SoundId = getcustomasset(Directories.Sounds..Audio)
	Sound.Volume = 1
	if Settings.Earrape then
		Sound.Volume = 10
		Instance.new("DistortionSoundEffect", Sound)
	end
	Sound.PlayOnRemove = true
	Sound:Destroy()
end

local Theme = Instance.new("Sound", RootPart)
Theme.SoundId = getcustomasset(Directories.Sounds.."Chase.mp3")
Theme.Volume = 1
Theme.Looped = true
Theme:Play()

local Ambience = Instance.new("Sound", RootPart)
Ambience.SoundId = getcustomasset(Directories.Sounds.."Ambience.mp3")
Ambience.Volume = 0.5
Ambience.Looped = true
Ambience:Play()

local Voidstar = Objects:WaitForChild("Voidstar"):Clone()
Voidstar.Transparency = 1
Voidstar.Parent = Character
local VoidstarWeld = Instance.new("Weld")
VoidstarWeld.Name = "Voidstar"
VoidstarWeld.Parent = RootPart
VoidstarWeld.Part0 = RootPart
VoidstarWeld.Part1 = Voidstar
VoidstarWeld.C0 = CFrame.new(0, -0.1, 0)
VoidstarWeld.C1 = CFrame.new(0, -0.1, 0)

local ReanimateVS = Character:FindFirstChild("Reanimate_Voidstar") -- lazy, dont u think?
local ReanimateVSW = Instance.new("Weld")
ReanimateVSW.Name = "VSW"
ReanimateVSW.Parent = ReanimateVS
ReanimateVSW.Part0 = ReanimateVS
ReanimateVSW.Part1 = Voidstar

local TeleportingPart, WarningPart
local TeleportingPartTemplate = Objects:FindFirstChild("GeneratorIncoming"):Clone()
local WarningPartTemplate = Objects:FindFirstChild("GeneratorWarning"):Clone()
WarningPartTemplate.Anchored = true
WarningPartTemplate.CanCollide = false
TeleportingPartTemplate.Anchored = true
TeleportingPartTemplate.CanCollide = false

local FlashHitHighlight = function(Target)
	if not Target or not Target:IsA("Model") then return end
	if Target:FindFirstChild("HitHighlight") then return end 
	local Highlight = Instance.new("Highlight")
	Highlight.Name = "HitHighlight"
	Highlight.Adornee = Target
	Highlight.FillColor = Color3.fromRGB(255, 60, 60)
	Highlight.OutlineColor = Color3.fromRGB(145, 0, 0)
	Highlight.FillTransparency = 1
	Highlight.OutlineTransparency = 1
	Highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
	Highlight.Parent = Target
	local FlashIn = TweenService:Create(Highlight, TweenInfo.new(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {FillTransparency = 0.3, OutlineTransparency = 0})
	local FadeOut = TweenService:Create(Highlight,TweenInfo.new(0.35, Enum.EasingStyle.Quad, Enum.EasingDirection.In),{FillTransparency = 1,OutlineTransparency = 1})
	FlashIn:Play()
	FlashIn.Completed:Once(function() FadeOut:Play() end)
	FadeOut.Completed:Once(function() Highlight:Destroy() end)
end

local EnableHitbox = function()
	if HitboxConnection then
		HitboxConnection:Disconnect()
		HitboxConnection = nil
	end
	HitboxConnection = Voidstar.Touched:Connect(function(Hit)
		if not CanHitbox then return end
		if Hit:IsDescendantOf(Character) then return end
		local Target = Hit:FindFirstAncestorOfClass("Model")
		local TargetHumanoid = Target and Target:FindFirstChildOfClass("Humanoid")
		if TargetHumanoid then
			PlaySound(3417831369)
			if Settings.Fling then
            Empyrean.Fling(Target, DefaultFlingOptions)
			end
			FlashHitHighlight(Target)
			HitboxConnection:Disconnect()
			HitboxConnection = nil
		end
	end)
end

local IntroCameraAnimation = function()
    if not Settings.CameraEffects then return end
	local StartTime = tick()
	Camera.CameraType = Enum.CameraType.Scriptable
	local Index = 1
	local Connection
	Connection = RunService.RenderStepped:Connect(function()
		if Index >= #IntroKeyframes then Connection:Disconnect() Camera.CameraType = Enum.CameraType.Custom return end
		local CurrentTime = tick() - StartTime
		local KF1 = IntroKeyframes[Index]
		local KF2 = IntroKeyframes[Index + 1]
		local DeltaTime = KF2.Time - KF1.Time
		local Alpha = DeltaTime == 0 and 1 or math.clamp((CurrentTime - KF1.Time) / DeltaTime, 0, 1)
		local CF1 = KF1.CFrames.MainCFrame
		local CF2 = KF2.CFrames.MainCFrame
		local OffsetCFrame = CF1:Lerp(CF2, Alpha)
		Camera.CFrame = RootPart.CFrame * CFrame.new (0, -3, 0) * CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0) ) * OffsetCFrame
		if CurrentTime >= KF2.Time then
			Index += 1
		end
	end)
end

local OutroCameraAnimation = function()
    if not Settings.CameraEffects then return end
	local StartTime = tick()
	Camera.CameraType = Enum.CameraType.Scriptable
	local Index = 1
	local Connection
	Connection = RunService.RenderStepped:Connect(function()
		if Index >= #OutroKeyframes then	Connection:Disconnect() Camera.CameraType = Enum.CameraType.Custom return end
		local CurrentTime = tick() - StartTime
		local KF1 = OutroKeyframes[Index]
		local KF2 = OutroKeyframes[Index + 1]
		local DeltaTime = KF2.Time - KF1.Time
		local Alpha = DeltaTime == 0 and 1 or math.clamp((CurrentTime - KF1.Time) / DeltaTime, 0, 1)
		local CF1 = KF1.CFrames.MainCFrame
		local CF2 = KF2.CFrames.MainCFrame
		local OffsetCFrame = CF1:Lerp(CF2, Alpha)
		Camera.CFrame = RootPart.CFrame * CFrame.new (0, -3, 0) * CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0) ) * OffsetCFrame
		if CurrentTime >= KF2.Time then
			Index += 1
		end
	end)
end

-- animator functions
local PlayAnim = function(Rig, Animation, AnimSpeed)
	if not AnimatorModule[Rig] then
		AnimatorModule[Rig] = {}
	end
	if not AnimatorModule[Rig][Animation.Name] then
		AnimatorModule[Rig][Animation.Name] = AnimatorModule:LoadAnimation(Rig, Animation)
	end
	for Name, Track in pairs(AnimatorModule[Rig]) do
		if Name ~= Animation.Name then
			Track:Stop()
		end
	end
	local AnimInstance = AnimatorModule[Rig][Animation.Name]
	if not AnimInstance.IsPlaying then
		AnimInstance:Play(AnimSpeed or 1)
	end
	return AnimInstance
end

local StopAnim = function(Rig, Anim)
	if not AnimatorModule[Rig] then
		AnimatorModule[Rig] = {}
	end
	if not AnimatorModule[Rig][Anim.Name] then
		AnimatorModule[Rig][Anim.Name] = AnimatorModule:LoadAnimation(Rig, Anim)
	end
	AnimatorModule[Rig][Anim.Name]:Stop()
end

local RestoreMovement = function()
	if RootPart.Velocity.Magnitude < 1 and workspace:FindPartOnRay(Ray.new(RootPart.Position, (CFrame.new(RootPart.Position, RootPart.Position + Vector3.new(0, -1, 0))).LookVector * 4), Character) then
		Idle = true
		Walking = false
		Running = false
		PlayAnim(Character, Animations.Idle, 1)
	elseif RootPart.Velocity.Magnitude > 1 and workspace:FindPartOnRay(Ray.new(RootPart.Position, (CFrame.new(RootPart.Position, RootPart.Position + Vector3.new(0, -1, 0))).LookVector * 4), Character) then
		Idle = false
		Walking = true
		Running = false
 		PlayAnim(Character, Animations.Walk, 1)
	end
end

-- attacks
-- slightly aged code so it might be a bit unoptimized (i reused the void rush from my old mafioso script)
local Intro = function()
	if Debounce then return end
    if ObservantActive then return end
	Debounce = true
	SetRootPartAnchor(true)
	local IntroAnimation = PlayAnim(Character, Animations.Introduction_KillerRig, 1)
    IntroCameraAnimation()
	PlaySound(124667791992796)
	IntroAnimation.Completed:Wait()
	Debounce = false
	SetRootPartAnchor(false)
	Camera.CameraType = Enum.CameraType.Custom
	RestoreMovement()
end

local Outro = function()
	if Debounce then return end
    if ObservantActive then return end
	Debounce = true
	SetRootPartAnchor(true)
	local OutroAnimation = PlayAnim(Character, Animations.Victory_KillerRig, 1)
    OutroCameraAnimation()
	PlaySound(125557917165272)	
	OutroAnimation.Completed:Wait()
	Debounce = false
	SetRootPartAnchor(false)
	Camera.CameraType = Enum.CameraType.Custom
	RestoreMovement()
end

local Stun = function()
	if Debounce then return end
    if ObservantActive then return end
	Debounce = true
	SetRootPartAnchor(true)
    PlaySoundFromDisk("Stun.mp3")
	PlaySound(92316384695634)
	PlaySound(17837549788)
	local StunStart = PlayAnim(Character, Animations.Stunned_Start, 1)
	StunStart.Completed:Wait()
	local StunnedLoop = PlayAnim(Character, Animations.Stunned_Loop, 1)
	StunnedLoop.Completed:Wait(5)
	local StunnedEnd = PlayAnim(Character, Animations.Stunned_End, 1)
	StunnedEnd.Completed:Wait()
	Debounce = false
	SetRootPartAnchor(false)
	RestoreMovement()
end

local Execute = function()
	if Debounce then return end
    if ObservantActive then return end
	Debounce = true
	SetRootPartAnchor(true)
    PlaySound(104206188941961) -- i told you
    PlaySoundFromDisk("Execution.mp3")
	local KillerAnimation = PlayAnim(Character, Animations.Execution_KillerRig, 0, 1.2)
	KillerAnimation.Completed:Wait()
	Debounce = false
	SetRootPartAnchor(false)
	RestoreMovement()
end

local Stab = function()
	if Debounce then return end
    if ObservantActive then return end
	Debounce = true
	CanHitbox = true
	EnableHitbox()
	local StabAnimation = PlayAnim(Character, Animations.Stab, 1)
    PlaySoundFromDisk("Stab.mp3")
	StabAnimation.Completed:Wait()
	Debounce = false
	CanHitbox = false
 	RestoreMovement()
end

local Void_Rush = function() -- ts so buns gng 🗣️
	if Debounce then return end
    if ObservantActive then return end
	Debounce = true
	local Damaged = false
	SetRootPartAnchor(false)
	local StartAnim = PlayAnim(Character, Animations.VoidRush_StartDashInit, 0, 1)
    PlaySoundFromDisk("VoidRushStart.mp3")
	StartAnim.Completed:Wait()
	SetRootPartAnchor(false)
	local LoopAnim = PlayAnim(Character, Animations.VoidRush_LoopDashInit, 0, 1)
	local RushVelocity = Instance.new("BodyVelocity")
	RushVelocity.MaxForce = Vector3.new(1e6, 1e6, 1e6)
	RushVelocity.Parent = RootPart
	local VelocityUpdate
	VelocityUpdate = RunService.Heartbeat:Connect(function()
		RushVelocity.Velocity = RootPart.CFrame.LookVector * 45
	end)
	local TouchedConnection
	TouchedConnection = RootPart.Touched:Connect(function(Hit)
		if Hit:IsDescendantOf(Character) then return end
		local Hum = Hit.Parent:FindFirstChildOfClass("Humanoid")
		if Hum and not Damaged then
			Damaged = true
			RushVelocity:Destroy()
			VelocityUpdate:Disconnect()
			TouchedConnection:Disconnect()
			SetRootPartAnchor(true)
			PlaySound(117069245824496)
			local FirstHitAnimation = PlayAnim(Character, Animations.VoidRush_WeakHit, 0, 1)
			FirstHitAnimation.Completed:Wait()
			SetRootPartAnchor(false)
			local LoopAnimation = PlayAnim(Character, Animations.VoidRush_LoopDashInit, 0, 1)
			local SecondRushVelocity = Instance.new("BodyVelocity")
			SecondRushVelocity.MaxForce = Vector3.new(1e6, 1e6, 1e6)
			SecondRushVelocity.Parent = RootPart
			local SecondVelocityUpdate
			SecondVelocityUpdate = RunService.Heartbeat:Connect(function()
				SecondRushVelocity.Velocity = RootPart.CFrame.LookVector * 45 * 1.2
			end)
			local SecondHit = false
			local SecondTouched
			local VoidRush2Sound = Instance.new("Sound", RootPart)
			VoidRush2Sound.SoundId = "rbxassetid://110418348779758"
			VoidRush2Sound:Play()
			SecondTouched = RootPart.Touched:Connect(function(Hit2)
				if Hit2:IsDescendantOf(Character) then return end
                local Target = Hit2:FindFirstAncestorOfClass("Model")
				local Hum2 = Target:FindFirstChildOfClass("Humanoid")
				if Hum2 and not SecondHit then
					SecondHit = true
					VoidRush2Sound:Stop()
					VoidRush2Sound:Destroy()
					SecondTouched:Disconnect()
					SecondVelocityUpdate:Disconnect()
					SecondRushVelocity:Destroy()
					SetRootPartAnchor(true)
                    PlaySoundFromDisk("VoidRushSlam.mp3")
                    FlashHitHighlight(Target)
 					local SlamAnimation = PlayAnim(Character, Animations.VoidRush_KillerRig, 0, 1.2)
					SlamAnimation.Completed:Wait()
					if Settings.Fling then
                    Empyrean.Fling(Target, DefaultFlingOptions)
		           	end
					Debounce = false
					SetRootPartAnchor(false)
					RestoreMovement()
				end
			end)
			task.delay(1, function()
				if not SecondHit then
					if SecondTouched.Connected then SecondTouched:Disconnect() end
					SecondVelocityUpdate:Disconnect()
					SecondRushVelocity:Destroy()
					SetRootPartAnchor(true)
					PlaySound(85216662975005)
					VoidRush2Sound:Stop()
					VoidRush2Sound:Destroy()
					local MissAnimation = PlayAnim(Character, Animations.VoidRush_EndDash, 0, 1)
					MissAnimation.Completed:Wait()
					Debounce = false
					SetRootPartAnchor(false)
					RestoreMovement()
				end
			end)
		end
	end)
	task.delay(0.35 + 1, function()
		if Damaged then return end
		if TouchedConnection.Connected then TouchedConnection:Disconnect() end
		VelocityUpdate:Disconnect()
		RushVelocity:Destroy()
		SetRootPartAnchor(true)
		PlaySound(71208557852255)
		local MissAnimation = PlayAnim(Character, Animations.VoidRush_EndDash, 0, 1)
		MissAnimation.Completed:Wait()
		Debounce = false
		SetRootPartAnchor(false)
		RestoreMovement()
	end)
end

local Observant = function()
	if Debounce then return end
	if ObservantActive then
		if WarningConnection then
			WarningConnection:Disconnect()
			WarningConnection = nil
		end
		if WarningPart then
			WarningPart:Destroy()
			WarningPart = nil
		end
        PlaySoundFromDisk("ObservantCancel.mp3")
		SetRootPartAnchor(false)
		ObservantActive = false
		Debounce = false
		RestoreMovement()
        return
	end
	Debounce = true
	ObservantActive = true
	PlaySoundFromDisk("ObservantStart.mp3")
	local ObservantStart = PlayAnim(Character, Animations.ObservantStart, 1)
    SetRootPartAnchor(true)
	local StartConn
	StartConn = ObservantStart.Completed:Connect(function()
		if not ObservantActive then
			StartConn:Disconnect()
			Debounce = false
			return
		end
		local ObservantLoop = PlayAnim(Character, Animations.ObservantLoop, 1)
		SetRootPartAnchor(true)
		WarningPart = WarningPartTemplate:Clone()
		WarningPart.Parent = workspace
		WarningConnection = RunService.RenderStepped:Connect(function()
			if ObservantActive and Mouse.Hit then
				WarningPart.CFrame = CFrame.new(Mouse.Hit.Position + Vector3.new(0, 1.745, 0))
			end
		end)
		Debounce = false
		StartConn:Disconnect()
	end)
end

local ObservantTeleport = function()
	if not ObservantActive then return end
    if Debounce then return end
    Debounce = true
 	if WarningConnection then
		WarningConnection:Disconnect()
		WarningConnection = nil
	end
	if WarningPart then
		WarningPart:Destroy()
		WarningPart = nil
	end
	local ObservantTeleport = PlayAnim(Character, Animations.ObservantTeleport, 1)
    PlaySoundFromDisk("ObservantTeleport.mp3")
 	local ObservantEvent
	local MousePosition = Mouse.Hit.Position
	TeleportingPart = TeleportingPartTemplate:Clone()
	TeleportingPart.CFrame = CFrame.new(MousePosition + Vector3.new(0, 1.745, 0))
	TeleportingPart.Parent = workspace
	PlaySound(99944767357389)
	ObservantEvent = ObservantTeleport.KeyframeReached:Connect(function(Keyframe)
		if Keyframe == "Teleport" then
			if Mouse.Hit then
				RootPart.CFrame = CFrame.new(MousePosition + Vector3.new(0, 3, 0))
			end
			ObservantEvent:Disconnect()
		end
	end)
	ObservantTeleport.Completed:Wait()
	if TeleportingPart then
		TeleportingPart:Destroy()
		TeleportingPart = nil
	end
    ObservantActive = false
    Debounce = false
 	SetRootPartAnchor(false)
	RestoreMovement()	
end

local NovaShoot = function()
	if Debounce then return end
    if ObservantActive then return end
	Debounce = true
	local Damaged, Thrown  = false, false
	local Projectile, ProjectileVelocity, Touched
	local ThrowConnection
	local NovaShootAnimation = PlayAnim(Character, Animations.NovaThrow, 1)
    PlaySoundFromDisk("NovaThrow.mp3")
	ThrowConnection = NovaShootAnimation.KeyframeReached:Connect(function(Keyframe)
		if Keyframe == "Thrown" and not Thrown then
			Thrown = true
			Projectile = Voidstar:Clone()
			Projectile.Anchored = false
			Projectile.CanCollide = false
			Projectile.CFrame = CFrame.new(RootPart.Position + RootPart.CFrame.LookVector * 5, Mouse.Hit.Position)
			Projectile.Parent = workspace
			ProjectileVelocity = Instance.new("BodyVelocity")
			ProjectileVelocity.Velocity = (Mouse.Hit.Position - Projectile.Position).Unit * 100
			ProjectileVelocity.MaxForce = Vector3.new(1e6, 1e6, 1e6)
			ProjectileVelocity.Parent = Projectile
			game:GetService("Debris"):AddItem(Projectile, 3)
			game:GetService("Debris"):AddItem(ProjectileVelocity, 3)
			Touched = Projectile.Touched:Connect(function(Hit)
				if Damaged then return end
				if Hit:IsDescendantOf(Character) then return end
                local Target = Hit:FindFirstAncestorOfClass("Model")
				if Hit == Projectile then return end
 				local HitHumanoid = Hit.Parent:FindFirstChildOfClass("Humanoid")
				if not HitHumanoid then return end
				Damaged = true
                FlashHitHighlight(Target)
				if Settings.Fling then
                Empyrean.Fling(Target, DefaultFlingOptions)
		        end
				if ProjectileVelocity then ProjectileVelocity:Destroy() end
				if Projectile then Projectile:Destroy() end
				if Touched then Touched:Disconnect() end
                PlaySoundFromDisk("NovaExplode.mp3")
			end)
		end
	end)
	NovaShootAnimation.Completed:Wait()
	if ThrowConnection and ThrowConnection.Connected then
		ThrowConnection:Disconnect()
	end
	if Touched and Touched.Connected then
		Touched:Disconnect()
	end
	local NovaStart = PlayAnim(Character, Animations.NovaStart, 1)
	NovaStart.Completed:Wait()
	Debounce = false
	RestoreMovement()
end

-- Keybinds
local KeyDown = UserInputService.InputBegan:Connect(function(Key, GPE)
	if GPE then return end
 	if Key.KeyCode == Enum.KeyCode.One then
		Stun()
	end
	if Key.KeyCode == Enum.KeyCode.Two then
		Intro()
	end
	if Key.KeyCode == Enum.KeyCode.Three then
		Outro()
	end
 	if Key.KeyCode == Enum.KeyCode.Q then
		Void_Rush()
	end
	if Key.KeyCode == Enum.KeyCode.E then
		NovaShoot()
	end
	if Key.KeyCode == Enum.KeyCode.R then
		Observant()
	end
	if Key.KeyCode == Enum.KeyCode.Z then
		Execute()
	end
	if Key.UserInputType == Enum.UserInputType.MouseButton1 then
		if ObservantActive then
			ObservantTeleport()
		elseif not Debounce then
			Stab()
		end
	end
	if Key.UserInputType == Enum.UserInputType.Touch then
 		if ObservantActive then
			ObservantTeleport()
		end
	end
	if Key.KeyCode == Enum.KeyCode.LeftShift or Key.KeyCode == Enum.KeyCode.RightShift then
		if Debounce then return end
		Shift = true
		local Tween = TweenService:Create(Camera, TweenInfo.new(1, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out), {FieldOfView = 90})	
		Tween:Play()
	end
end)

local KeyUp = UserInputService.InputEnded:Connect(function(Key)
	if Key.KeyCode == Enum.KeyCode.LeftShift or Key.KeyCode == Enum.KeyCode.RightShift then
		Shift = false
		local Tween = TweenService:Create(Camera, TweenInfo.new(1, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out), {FieldOfView = 80})
		Tween:Play()
	end
end)
  
-- ragdoll setup
local CreateConstraint = function(Motor)
	local Part0 = Motor.Part0
	local Part1 = Motor.Part1
	if not Part0 or not Part1 then return end
	local Attach0 = Instance.new("Attachment")
	local Attach1 = Instance.new("Attachment")
	Attach0.CFrame = Motor.C0
	Attach1.CFrame = Motor.C1
	Attach0.Parent = Part0
	Attach1.Parent = Part1
	local BallSocketConstraint = Instance.new("BallSocketConstraint")
	BallSocketConstraint.Attachment0 = Attach0
	BallSocketConstraint.Attachment1 = Attach1
	BallSocketConstraint.LimitsEnabled = true
	BallSocketConstraint.TwistLimitsEnabled = true
	BallSocketConstraint.Parent = Part0
	return {Motor = Motor, Attachment0 = Attach0, attachment1 = Attach1, Socket = BallSocketConstraint}
end

local EnableRagdoll = function()
	if #StoredMotors > 0 then return end
	Settings.Ragdoll = true
	Humanoid:ChangeState(Enum.HumanoidStateType.Physics)
	Humanoid.AutoRotate = false
	for i, v in pairs(Character:GetDescendants()) do
		if v:IsA("Motor6D") then
			local Data = CreateConstraint(v)
			if Data then
				table.insert(StoredMotors, Data)
				v.Enabled = false
			end
        elseif v:IsA("BasePart") and v.Name ~= "HumanoidRootPart" then
            v.CanCollide = true
		end
	end
end

local DisableRagdoll = function()
	if #StoredMotors == 0 then return end
	Settings.Ragdoll = false
	Humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
    RootPart.CFrame = RootPart.CFrame + Vector3.new(0, 5, 0)
	Humanoid.AutoRotate = true
    for i, v in pairs(Character:GetDescendants()) do
         if v:IsA("BasePart") and v.Name ~= "HumanoidRootPart" then
            v.CanCollide = false
		end
	end
	for i, v in pairs(StoredMotors) do
		if v.Motor then
			v.Motor.Enabled = true
		end
		if v.BallSocketConstraint then
			v.BallSocketConstraint:Destroy()
		end
		if v.Attachment0 then
			v.Attachment0:Destroy()
		end
		if v.Attachment1 then
			v.Attachment1:Destroy()
		end
	end
	table.clear(StoredMotors)
end

-- mobile ui
local GUI = script:WaitForChild("UIs").MobileUI
GUI.Parent = game:GetService("CoreGui")

local UpdateUI = function()
	local LastInput = UserInputService:GetLastInputType()
	if LastInput == Enum.UserInputType.Touch
	then GUI.Enabled = true
	else GUI.Enabled = false
	end
end

UpdateUI()

GUI.AbilitiesUI["Stab"].MouseButton1Down:connect(function() Stab() end)
GUI.AbilitiesUI["Nova"].MouseButton1Down:connect(function() NovaShoot() end)
GUI.AbilitiesUI["Observant"].MouseButton1Down:connect(function() Observant() end)
GUI.AbilitiesUI["Void Rush"].MouseButton1Down:connect(function() Void_Rush() end)
GUI.AbilitiesUI["Sprint"].MouseButton1Down:connect(function() Shift = not Shift end)
GUI.AbilitiesUI["Intro"].MouseButton1Down:connect(function() Intro() end)
GUI.AbilitiesUI["Outro"].MouseButton1Down:connect(function() Outro() end)
GUI.AbilitiesUI["Execute"].MouseButton1Down:connect(function() Execute() end)
GUI.AbilitiesUI["Stun"].MouseButton1Down:connect(function() Stun() end)

UserInputService.LastInputTypeChanged:Connect(UpdateUI)

-- settings ui
local MainGUI = script.UIs:WaitForChild("MainGUI")
MainGUI.Parent = game:GetService("CoreGui")

local SettingsFrame = MainGUI:WaitForChild("SettingsFrame")
local SettingsHolder = SettingsFrame:WaitForChild("SettingsHolder")

local SetupToggle = function(Setting)
	local Object = SettingsHolder:FindFirstChild(Setting)
	if not Object then return end
	local Button = Object:FindFirstChildWhichIsA("TextButton")
	if not Button then return end
	Button.BackgroundColor3 = Settings[Setting] and Color3.fromRGB(0,255,0) or Color3.fromRGB(255,0,0)
	Button.MouseButton1Click:Connect(function()
		Settings[Setting] = not Settings[Setting]
		Button.BackgroundColor3 = Settings[Setting] and Color3.fromRGB(0,255,0) or Color3.fromRGB(255,0,0)
	end)
end

local SetupTextBox = function(Setting) -- currently only used in the rigsize (no other textboxes will exist i think)
	local Object = SettingsHolder:FindFirstChild(Setting)
	if not Object then return end
	local TextBox = Object:FindFirstChildWhichIsA("TextBox")
	if not TextBox then return end
	TextBox.Text = tostring(Settings[Setting])
	TextBox.FocusLost:Connect(function()
		local Value = tonumber(TextBox.Text)
		if Value then
			Settings[Setting] = math.clamp(Value, 0.5, 5)
		else
			TextBox.Text = tonumber(Settings[Setting])
		end
	end)
end

for i, v in pairs(Settings) do
	local Object = SettingsHolder:FindFirstChild(i)
	if Object then
		if Object:FindFirstChild("Button") then
			SetupToggle(i)
		elseif Object:FindFirstChild("Value") then
			SetupTextBox(i)
		end
	end
end

local FloatingButton = MainGUI:WaitForChild("FloatingButton")
FloatingButton.Draggable = true
FloatingButton.MouseButton1Click:Connect(function()
	SettingsFrame.Visible = not SettingsFrame.Visible
end)

UserInputService.JumpRequest:Connect(function()
	if Settings.InfiniteJump and Humanoid then
		Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
	end
end)

SettingsHolder.TPToNearestSpawn.Button.MouseButton1Click:Connect(function()
 		local RootPart = Character:FindFirstChild("HumanoidRootPart")
		local GetClosestSpawn = function()
			local ClosestSpawn, ClosestDistance = nil, math.huge
			for i, v in pairs(workspace:GetDescendants()) do
				if v:IsA("SpawnLocation") then
					local Distance = (RootPart.Position - v.Position).Magnitude
					if Distance < ClosestDistance then
						ClosestSpawn = v
						ClosestDistance = Distance
					end
				end
			end
			return ClosestSpawn
		end
		local Spawn = GetClosestSpawn()
		if Spawn then
		RootPart.CFrame = Spawn.CFrame + Vector3.new(0, 5, 0)
		else
		print("No spawn or a spawn is somehow (??? how tf) too far")
     	end
 end)

-- runservice connection
local RunServiceConnection = RunService.Heartbeat:Connect(function(dt)
	Humanoid.CameraOffset = Humanoid.CameraOffset:Lerp((RootPart.CFrame * CFrame.new(0, 1.5, 0)):PointToObjectSpace(Head.Position), math.clamp(8 * 60 * 60, 0, 1))
 	if Settings.Music then
		Theme.Playing = true
	else
		Theme.Playing = false
	end
	if Settings.Ragdoll ~= LastRagdoll then
		LastRagdoll = Settings.Ragdoll
		if Settings.Ragdoll then
			EnableRagdoll()
		else
			DisableRagdoll()
		end
	end
	if Settings.Spin and Character.PrimaryPart then
		Character:SetPrimaryPartCFrame(Character.PrimaryPart.CFrame * CFrame.Angles(0, math.rad(5), 0))
	end
	if Settings.Ragdoll then return end
	if Debounce then
		StopAnim(Character,Animations.Idle)
		StopAnim(Character,Animations.Walk)
		StopAnim(Character,Animations.Sprint)
	end
	if not Debounce then
		if Shift then
			SetWalkSpeed(24)
		else
			SetWalkSpeed(15)
		end
	end
	local HitFloor, HitPosition = workspace:FindPartOnRay(Ray.new(RootPart.Position, (CFrame.new(RootPart.Position, RootPart.Position + Vector3.new(0, -1, 0))).LookVector * 4), Character)
	local TorsoVelocity = (RootPart.Velocity).Magnitude
	local TorsoVerticalVelocity = RootPart.Velocity.Y
	if TorsoVelocity < 1 and HitFloor ~= nil and Debounce == false then
		if Idle == false then
			Idle = true
			PlayAnim(Character,Animations.Idle, 1)
		end
		Walking = false
		Running = false
		StopAnim(Character,Animations.Sprint)
		StopAnim(Character,Animations.Walk)
	elseif TorsoVelocity > 1 and HitFloor ~= nil and Debounce == false and Shift == true then
		if Running == false then
			Running = true
			PlayAnim(Character,Animations.Sprint, 1)
		end
		Idle = false
		Walking = false
		StopAnim(Character,Animations.Walk)
		StopAnim(Character,Animations.Idle)
	elseif TorsoVelocity > 1 and HitFloor ~= nil and Debounce == false then
		if Walking == false then
			Walking = true
			PlayAnim(Character, Animations.Walk, 1)
		end
		Idle = false
		Running = false
		StopAnim(Character,Animations.Sprint)
		StopAnim(Character,Animations.Idle)
	end
end)

Empyrean.BindableEvent.Event:Once(function()
    print("Resetting.")
    for i, v in TrashBin do
        v:Destroy()
    end
	GUI:Destroy()
	MainGUI:Destroy()
	RunServiceConnection:Disconnect()
	KeyDown:Disconnect()
	KeyUp:Disconnect()
end)

local LoaderUI = loadstring(game:HttpGet("https://gist.githubusercontent.com/MelonsStuff/adc8fbb119234b04744907ff26a407f8/raw/6d501829e2d6f376f57ed3777b4915ad609981cf/IntroAndDetector.luau"))()

Features & Information

Admin

Community Comments (2)

N00b_v2N00b_v2Sep 21, 2026

mm..ima try it.

N00b_v2N00b_v2Sep 21, 2026

*

More Scripts for Universal Scripts