Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Character = script.Parent
- local CharManager = require(Character:WaitForChild("CharacterManager"))
- local PlayerDataStore = game:GetService("DataStoreService"):GetDataStore("PlayerDataStore")
- local Player = game.Players:GetPlayerFromCharacter(Character)
- local DataStoreInfo = PlayerDataStore:GetAsync(Player.UserId)
- local Humanoid = Character:WaitForChild("Humanoid")
- local RepStorage = game:GetService("ReplicatedStorage")
- local Remotes = RepStorage:WaitForChild("Assets"):WaitForChild("Remotes")
- local LootHandler = require(RepStorage.Assets.Modules.LootTableHandler)
- local RollAnimation = "rbxassetid://130673348041924"
- local FillFlaskAnimation = "rbxassetid://72763843965912"
- local HealAnimation = "rbxassetid://79998607658051"
- local ParryAnimation = "rbxassetid://110939892397353"
- local ChestAnimation = RepStorage.Assets.PreloadedAnimations.OpenChest
- local ChestAnimationTrack = Humanoid:LoadAnimation(ChestAnimation)
- ChestAnimationTrack:Play()
- local SprintAnimation = RepStorage.Assets.PreloadedAnimations.Sprint
- local SprintAnimationTrack = Humanoid:LoadAnimation(SprintAnimation)
- local Dead = false
- Character:SetAttribute("Sprinting",false)
- local NumberCtags = 0
- local CTags = {
- }
- local ChestsOpened = {}
- local function ExchangeMalks(Value)
- CharManager.GiveMalks(Value)
- local Sound = Instance.new("Sound")
- Sound.SoundId = "rbxassetid://5613553529"
- Sound.Parent = Character.HumanoidRootPart
- Sound:Play()
- game.Debris:AddItem(Sound,1)
- local PlayerData = PlayerDataStore:GetAsync(Player.UserId)
- PlayerData.Malks += Value
- print(PlayerData.Malks)
- PlayerDataStore:UpdateAsync(Player.UserId, function(oldData)
- return PlayerData
- end)
- end
- local function Wipe(Player)
- local WipeAnimation = Character.Humanoid:LoadAnimation(RepStorage.Assets.PreloadedAnimations.Wipe)
- WipeAnimation:Play()
- Character.RagdollTrigger.Value = false
- local Break1 = Instance.new("Sound")
- Break1.SoundId = "rbxassetid://9113546532"
- Break1.Parent = Character.HumanoidRootPart
- local WipeSound = game.ReplicatedStorage.Assets.Sounds.Wipe:Clone()
- WipeSound.Parent = Character.HumanoidRootPart
- WipeSound:Play()
- game.Debris:AddItem(WipeSound,10)
- local Break2 = Instance.new("Sound")
- Break2.SoundId = "rbxassetid://18507374738"
- Break2.Parent = Character.HumanoidRootPart
- for _,Part in pairs(Character:GetDescendants()) do
- if Part:IsA("BasePart") then
- Part.CanCollide = false
- Part.Anchored = false
- end
- end
- local PlayerData = PlayerDataStore:GetAsync(Player.UserId)
- PlayerData = {
- ["Lives"] = 3,
- ["Weapon"] = "Fists",
- ["Malks"] = 0,
- ["AttunementSlots"] = 2,
- ["CurrentArea"] = "Overworld",
- ["Spells"] = {
- }
- }
- PlayerDataStore:SetAsync(Player.UserId,PlayerData)
- Character.RagdollTrigger.Value = false
- Character.HumanoidRootPart.Anchored = true
- task.delay(1.5,function()
- Character.RagdollTrigger.Value = false
- Break1:Play()
- for _,Part in pairs(Character:GetDescendants()) do
- if Part:IsA("BasePart") then
- end
- end
- end)
- task.delay(3,function()
- Character.RagdollTrigger.Value = false
- Break2:Play()
- for _,Part in pairs(Character:GetDescendants()) do
- if Part:IsA("Clothing") then
- Part:Destroy()
- end
- if Part:IsA("Accessory") then
- Part:Destroy()
- end
- if Part:IsA("Decal") then
- Part:Destroy()
- end
- if Part:IsA("ParticleEmitter") then
- Part.Enabled = false
- end
- if Part:IsA("SpecialMesh") then
- Part:Destroy()
- end
- if Part:IsA("BasePart") then
- Part.Material = Enum.Material.Neon
- Part.Color = Color3.fromRGB(253, 234, 141)
- game.TweenService:Create(Part,TweenInfo.new(2), {Transparency = 1,}):Play()
- end
- end
- end)
- end
- local function GiveLives()
- local RaceAppearance = require(RepStorage.Assets.Modules.RaceAppearanceHandler)
- for _,Object in pairs(Character:GetDescendants()) do
- if Object:IsA("Accessory") then
- Object:Destroy()
- end
- if Object:IsA("Decal") then
- Object:Destroy()
- end
- end
- RaceAppearance.SetRaceAppearance(Character,false, "Etherborn")
- local Lives = DataStoreInfo.Lives or 3
- CharManager.SetStat("Lives",Lives)
- Character:SetAttribute("Lives",Lives)
- local Malks = DataStoreInfo.Malks or 25
- CharManager.SetStat("Malks",Malks)
- Character:SetAttribute("Malks",Malks)
- end
- local function Death()
- if Dead == false then
- Dead = true
- Remotes.ShowDeathMessage:FireClient(Player,CTags)
- Player.Character.Humanoid.Health = 0
- if Player.Character:GetAttribute("InCombat") == true and Character:GetAttribute("Protection") == false then
- DataStoreInfo.Lives = DataStoreInfo.Lives - 1
- ExchangeMalks(-math.round(CharManager.GetStat("Malks") / 2.5))
- if DataStoreInfo.Lives == 0 and game.Workspace:GetAttribute("WorldType") ~= "Whirlpool" then
- game["Teleport Service"]:Teleport(89324147654629,Player)
- local PlayerDataStore = game:GetService("DataStoreService"):GetDataStore("PlayerDataStore")
- local DataStoreInfo = PlayerDataStore:GetAsync(Player.UserId)
- DataStoreInfo.CurrentArea = "Whirlpool"
- PlayerDataStore:UpdateAsync(Player.UserId,function(oldData)
- return DataStoreInfo
- end)
- else
- local DataStoreInfo = PlayerDataStore:GetAsync(Player.UserId)
- DataStoreInfo.Lives = DataStoreInfo.Lives - 1
- PlayerDataStore:UpdateAsync(Player.UserId,function(oldData)
- return DataStoreInfo
- end)
- end
- if Player.Character:GetAttribute("Permadeath") == true then
- Wipe(Player)
- end
- end
- end
- end
- local function Roll(Player)
- if Player == game.Players:GetPlayerFromCharacter(Character) then
- CharManager.Dodge()
- end
- end
- local function Parry(Player)
- if Player == game.Players:GetPlayerFromCharacter(Character) then
- CharManager.Parry()
- end
- end
- local function CombatTag(Enemy,Time,IsInfinite)
- if CTags[Enemy] == nil then
- CTags[Enemy] = {
- Name = Enemy.Name,
- Time = Time,
- Applied = tick(),
- LastTimeReduction = tick(),
- Infinite = IsInfinite or false
- }
- NumberCtags += 1
- else
- CTags[Enemy].Time += 15
- if CTags[Enemy].Time > 25 then
- CTags[Enemy].Time = 25
- end
- end
- end
- local function CalculateIntensity()
- local CurrentIntensity = 0
- for Enemy,CombatData in pairs(CTags) do
- CurrentIntensity += 1
- end
- CurrentIntensity += Character:GetAttribute("Adrenaline") / 10
- if CharManager.GetStat("Health") < CharManager.GetStat("MaxHealth") / 2 then
- CurrentIntensity += 1
- end
- Character:SetAttribute("Intensity", CurrentIntensity)
- end
- local function StartSprinting()
- if Character:GetAttribute("Sprinting") == false then
- if CharManager.GetStat("M1sEnabled") == true then
- local WeaponStyle = CharManager.GetStat("AttackType")
- local CombatModule = require(RepStorage:WaitForChild("Assets"):WaitForChild("CombatStyles"):WaitForChild(WeaponStyle))
- CombatModule.PlaySprintAnimation(Character)
- end
- Character:SetAttribute("Sprinting",true)
- local MaxMomentum = CharManager.GetStat("MaxMomentum") or 100
- task.delay(0.15,function()
- SprintAnimationTrack:Play()
- for Momentum = 1, MaxMomentum do
- SprintAnimationTrack:AdjustSpeed(Humanoid.WalkSpeed / 21)
- CharManager.SetStat("Momentum",Momentum)
- Character.Humanoid.WalkSpeed = 17 * (1 + (CharManager.GetStat("Adrenaline") * 0.015)) + (Momentum / 8)
- task.wait(0.01)
- if Character:GetAttribute("Sprinting") == false then
- SprintAnimationTrack:Stop(0.25)
- if Character.Humanoid.WalkSpeed ~= 10 or Character.Humanoid.WalkSpeed ~= 0 then
- Character.Humanoid.WalkSpeed = 16 * (1 + (CharManager.GetStat("Adrenaline") * 0.015))
- end
- return
- end
- end
- end)
- end
- end
- local function EndSprinting()
- if Character:GetAttribute("Sprinting") == true then
- Character:SetAttribute("Sprinting",false)
- SprintAnimationTrack:Stop()
- CharManager.SetStat("Momentum",0)
- Character.Humanoid.WalkSpeed = 16 * (1 + (CharManager.GetStat("Adrenaline") * 0.015))
- local WeaponStyle = CharManager.GetStat("AttackType")
- local CombatModule = require(RepStorage:WaitForChild("Assets"):WaitForChild("CombatStyles"):WaitForChild(WeaponStyle))
- CombatModule.EndSprintAnimation(Character)
- end
- end
- local function UpdateCombatTags()
- if lastIndexedHealth and Character:GetAttribute("Health") < lastIndexedHealth then
- EndSprinting()
- end
- lastIndexedHealth = CharManager.GetStat("Health")
- Character:SetAttribute("Malks",CharManager.GetStat("Malks"))
- Character:SetAttribute("Adrenaline",CharManager.GetStat("Adrenaline"))
- local DefaultSpeed = Character:GetAttribute("CurrentBaseSpeed")
- if Character.Humanoid.WalkSpeed == DefaultSpeed or Character.Humanoid.WalkSpeed >= DefaultSpeed and not Character:GetAttribute("Sprinting") then
- Character.Humanoid.WalkSpeed = DefaultSpeed * (1 + (CharManager.GetStat("Adrenaline") * 0.015))
- end
- if tick() - CharManager.GetStat("LastStaminaConsumption") >= 3 then
- CharManager.SetStat("Stamina",CharManager.GetStat("Stamina") + 0.35)
- if CharManager.GetStat("Stamina") >= CharManager.GetStat("MaxStamina") then
- CharManager.SetStat("Stamina", CharManager.GetStat("MaxStamina"))
- end
- end
- if tick() - CharManager.GetStat("LastM1Landed") >= 4 then
- CharManager.SetStat("Adrenaline",CharManager.GetStat("Adrenaline") - 0.085)
- if CharManager.GetStat("Adrenaline") <= 0 then
- CharManager.SetStat("Adrenaline",0)
- end
- end
- Character:SetAttribute("Stamina",CharManager.GetStat("Stamina"))
- Character:SetAttribute("MaxStamina",CharManager.GetStat("MaxStamina"))
- for Enemy,CombatData in pairs(CTags) do
- if Enemy == nil then
- CTags[Enemy] = nil
- NumberCtags -= 1
- end
- if tick() - CombatData.LastTimeReduction >= 1 and not CombatData.Infinite then
- CombatData.Time -= 1
- CombatData.LastTimeReduction = tick()
- end
- if CombatData.Time <= 0 then
- CTags[Enemy] = nil
- NumberCtags -= 1
- end
- if Enemy.Humanoid.Health <= 0 then
- CTags[Enemy] = nil
- NumberCtags -= 1
- end
- if NumberCtags <= 0 then
- NumberCtags = 0
- CharManager.SetStat("InCombat",false)
- Character:SetAttribute("InCombat", false)
- CharManager.SetStat("Adrenaline", 0)
- elseif NumberCtags > 0 then
- CharManager.SetStat("InCombat",true)
- end
- --print(NumberCtags .. " With time..." .. CombatData.Time)
- end
- end
- local function Heal(Player)
- if Player == game.Players:GetPlayerFromCharacter(Character) and CharManager.GetStat("EtherFlaskUses") > 0 then
- local Connection = nil
- local StartHealth = CharManager.GetStat("Health")
- local Cancelled = false
- Character.Humanoid.WalkSpeed = 0
- local Flask = game.ServerStorage.ServerEssentials.EtherFlask:Clone()
- -- Store original liquid size for calculations
- local originalLiquidSize = Flask.Liquid.Size
- -- Make the liquid of the flask's Y size lower proportional to EtherFlaskUses / MaxEtherFlaskUses
- local fillRatio = CharManager.GetStat("EtherFlaskUses") / CharManager.GetStat("MaxEtherFlaskUses")
- Flask.Liquid.Size = Vector3.new(Flask.Liquid.Size.X, originalLiquidSize.Y * fillRatio, Flask.Liquid.Size.Z)
- -- Position the liquid at the bottom of the bottle
- Flask.Bottle.LiquidWeld2.Enabled = false
- Flask.Label.LiquidWeld.Enabled = false
- -- Calculate the bottom position of the bottle and position liquid there
- local bottleBottom = Flask.Bottle.Position - Vector3.new(0, Flask.Bottle.Size.Y / 2, 0)
- local liquidBottomPosition = bottleBottom + Vector3.new(0, Flask.Liquid.Size.Y / 2, 0)
- Flask.Liquid.Position = liquidBottomPosition
- Flask.Bottle.LiquidWeld2.Enabled = true
- Flask.Label.LiquidWeld.Enabled = true
- local Motor6D = Instance.new("Motor6D")
- Motor6D.Part0 = Character["Right Arm"]
- Motor6D.Part1 = Flask.Bottle
- Motor6D.Parent = Character["Right Arm"]
- Flask.Parent = Character
- Flask.Bottle.CFrame = Character["Right Arm"].CFrame * CFrame.new(0,0,0)
- local Animation = Instance.new("Animation")
- Animation.AnimationId = HealAnimation
- local Animator = Character.Humanoid.Animator
- local AnimationTrack = Animator:LoadAnimation(Animation)
- AnimationTrack:Play()
- Connection = game:GetService("RunService").Heartbeat:Connect(function()
- if StartHealth > CharManager.GetStat("Health") then
- Cancelled = true
- Flask:Destroy()
- Motor6D:Destroy()
- game.Debris:AddItem(AnimationTrack,0.1)
- AnimationTrack:Stop()
- end
- end)
- task.delay(2.1,function()
- if Cancelled == true then return end
- print("Healing")
- CharManager.SetStat("Health",CharManager.GetStat("Health") + 125)
- Character:SetAttribute("Health",CharManager.GetStat("Health"))
- Character.Humanoid.WalkSpeed = 16
- if Character:GetAttribute("InCombat") == false then
- local FilledFlask = false
- for _,InteractionPoints in workspace.InteractionPoints:GetChildren() do
- if InteractionPoints:IsA("BasePart") then
- if (InteractionPoints.Position - Player.Character.HumanoidRootPart.Position).Magnitude < 10 then
- if InteractionPoints:GetAttribute("Type") == "FillFlask" then
- CharManager.SetStat("EtherFlaskUses", CharManager.GetStat("MaxEtherFlaskUses"))
- FilledFlask = true
- end
- end
- end
- end
- if FilledFlask == false then
- CharManager.SetStat("EtherFlaskUses", CharManager.GetStat("EtherFlaskUses") - 1)
- end
- else
- CharManager.SetStat("EtherFlaskUses", CharManager.GetStat("EtherFlaskUses") - 1)
- end
- end)
- AnimationTrack.Stopped:Connect(function()
- Flask:Destroy()
- Motor6D:Destroy()
- game.Debris:AddItem(AnimationTrack,0.1)
- Connection:Disconnect()
- end)
- end
- end
- local function SetCurrentWeapon(Player,Style)
- if Player == game.Players:GetPlayerFromCharacter(Character) then
- local Style = tostring(Style)
- local CombatStyle = game.ReplicatedStorage.Assets.CombatStyles:FindFirstChild(Style)
- print("Querying Equipping")
- if CombatStyle then
- print("Equipping")
- print(Style, CombatStyle.Name)
- local CombatModule = require(RepStorage:WaitForChild("Assets"):WaitForChild("CombatStyles"):WaitForChild(CombatStyle.Name))
- CombatModule.SetAsCurrentWeapon(Character)
- local PlayerData = PlayerDataStore:GetAsync(Player.UserId)
- PlayerData.Weapon = tostring(Style)
- PlayerDataStore:UpdateAsync(Player.UserId, function(oldData)
- return PlayerData
- end)
- print(PlayerData.Weapon)
- end
- end
- end
- local function EquipWeapon(Player)
- if Player == game.Players:GetPlayerFromCharacter(Character) then
- if CharManager.GetStat("M1sEnabled") == false then
- local CombatStyle = CharManager.GetStat("AttackType")
- local CombatModule = require(RepStorage:WaitForChild("Assets"):WaitForChild("CombatStyles"):WaitForChild(CombatStyle))
- CombatModule.Equip(Character)
- print(CombatStyle)
- elseif CharManager.GetStat("M1sEnabled") == true then
- local CombatStyle = CharManager.GetStat("AttackType")
- local CombatModule = require(RepStorage:WaitForChild("Assets"):WaitForChild("CombatStyles"):WaitForChild(CombatStyle))
- CombatModule.Unequip(Character)
- print(CombatStyle)
- end
- end
- end
- local function M1(Player)
- if Player == game.Players:GetPlayerFromCharacter(Character) then
- EndSprinting()
- local CombatStyle = CharManager.GetStat("AttackType")
- local CombatModule = require(RepStorage:WaitForChild("Assets"):WaitForChild("CombatStyles"):WaitForChild(CombatStyle))
- CombatModule.Swing(Character)
- end
- end
- local function CriticalAttack(Player)
- if Player == game.Players:GetPlayerFromCharacter(Character) then
- local CombatStyle = CharManager.GetStat("AttackType")
- local CombatModule = require(RepStorage:WaitForChild("Assets"):WaitForChild("CombatStyles"):WaitForChild("CriticalAttacks"):WaitForChild(CombatStyle))
- CombatModule.CriticalAttack(Character)
- end
- end
- local function ChangeMoveset(Player)
- if Player == game.Players:GetPlayerFromCharacter(Character) then
- CharManager.SetStat("AlternateMoveset",not CharManager.GetStat("AlternateMoveset"))
- local CombatStyle = CharManager.GetStat("AttackType")
- local CombatModule = require(RepStorage:WaitForChild("Assets"):WaitForChild("CombatStyles"):WaitForChild(CombatStyle))
- CombatModule.Unequip(Character)
- CombatModule.Equip(Character)
- end
- end
- local function FillFlask(Player, Part)
- if Player.Character == script.Parent then
- Character.HumanoidRootPart.Anchored = true
- CharManager.SetStat("Invulnerable", true)
- local Flask = game.ServerStorage.ServerEssentials.EtherFlask:Clone()
- local Motor6D = Instance.new("Motor6D")
- Motor6D.Part0 = Character["Right Arm"]
- Motor6D.Part1 = Flask.Bottle
- Motor6D.Parent = Character["Right Arm"]
- -- This is the same as the Heal() function.
- local originalLiquidSize = Flask.Liquid.Size
- Flask.Parent = Character
- Flask.Bottle.CFrame = Character["Right Arm"].CFrame * CFrame.new(0,0,0)
- local fillRatio = CharManager.GetStat("EtherFlaskUses") / CharManager.GetStat("MaxEtherFlaskUses")
- Flask.Liquid.Size = Vector3.new(Flask.Liquid.Size.X, originalLiquidSize.Y * fillRatio, Flask.Liquid.Size.Z)
- local bottleBottom = Flask.Bottle.Position - Vector3.new(0, Flask.Bottle.Size.Y / 2, 0)
- local liquidBottomPosition = bottleBottom + Vector3.new(0, Flask.Liquid.Size.Y / 2, 0)
- Flask.Liquid.Position = liquidBottomPosition
- local Animation = Instance.new("Animation")
- Animation.AnimationId = FillFlaskAnimation
- local Animator = Character.Humanoid.Animator
- local AnimationTrack = Animator:LoadAnimation(Animation)
- AnimationTrack:Play()
- task.delay(1.5,function()
- CharManager.SetStat("EtherFlaskUses", CharManager.GetStat("MaxEtherFlaskUses"))
- local fillRatio = CharManager.GetStat("EtherFlaskUses") / CharManager.GetStat("MaxEtherFlaskUses")
- Flask.Liquid.Size = Vector3.new(Flask.Liquid.Size.X, originalLiquidSize.Y * fillRatio, Flask.Liquid.Size.Z)
- local bottleBottom = Flask.Bottle.Position - Vector3.new(0, Flask.Bottle.Size.Y / 2, 0)
- local liquidBottomPosition = bottleBottom + Vector3.new(0, Flask.Liquid.Size.Y / 2, 0)
- Flask.Liquid.Position = liquidBottomPosition
- end)
- AnimationTrack.Stopped:Connect(function()
- CharManager.SetStat("Invulnerable", false)
- Character.HumanoidRootPart.Anchored = false
- Flask:Destroy()
- Motor6D:Destroy()
- game.Debris:AddItem(AnimationTrack,0.1)
- end)
- end
- end
- local function OpenChest(Player,Chest)
- if not table.find(ChestsOpened,Chest) and Player.Character == script.Parent then
- if Chest:GetAttribute("Static") == true then
- game.Debris:AddItem(Chest, 15)
- end
- table.insert(ChestsOpened, Chest)
- local AnimationController = Chest.AnimationController
- local Animation = Instance.new("Animation")
- Animation.AnimationId = Chest.Animations.open.AnimationId
- local AnimationTrack = AnimationController.Animator:LoadAnimation(Animation)
- ChestAnimationTrack:Play()
- local Sound1 = Chest.Main.Open
- local Sound2 = Chest.Main.Impact
- local Sound3 = Chest.Main.Shine
- local Sound4 = Chest.Main.Coin
- CharManager.SetStat("Invulnerable", true)
- Character.HumanoidRootPart.Anchored = true
- Character.HumanoidRootPart.CFrame = Chest.PositionPart.CFrame
- task.wait(0.55)
- Chest.Lock.Anchored = false
- Chest.Lock.Velocity = Chest.Lock.CFrame.LookVector * 15 + Vector3.new(0,15,0)
- CharManager.SetStat("Invulnerable", false)
- Character.HumanoidRootPart.Anchored = false
- ExchangeMalks(math.random(25,205))
- local Loot = LootHandler.ReturnLoot("DefaultChestLootTable",8)
- for i = 1, #Loot do
- local Item = nil
- if game.ServerStorage.ServerEssentials.PossibleItems:FindFirstChild(tostring(Loot[i])) then
- Item = game.ServerStorage.ServerEssentials.PossibleItems:FindFirstChild(tostring(Loot[i]))
- else
- Item = game.ServerStorage.ServerEssentials.PossibleItems:FindFirstChild("Anomaly")
- end
- local Clone = Item:Clone()
- Clone.Parent = Player.Backpack
- if Item.Name == "Anomaly" then
- Clone.ToolTip = "Error code 56: This item was given to you due to an item drop error, Drop ID: " .. tostring(Loot[i])
- end
- end
- AnimationTrack:Play()
- Sound1:Play()
- Sound2:Play()
- Sound3:Play()
- Sound4:Play()
- end
- end
- local function Forage(Plant)
- local PlantYield = Plant:GetAttribute("Foraging")
- local Item = game.ServerStorage.ServerEssentials.PossibleItems:FindFirstChild(tostring(PlantYield))
- if Item then
- local Animtrack = Character.Humanoid.Animator:LoadAnimation(game.ReplicatedStorage.Assets.PreloadedAnimations.Forage)
- Animtrack:Play()
- Animtrack.Stopped:Connect(function()
- Item:Clone().Parent = Player.Backpack
- end)
- end
- end
- Character:SetAttribute("CurrentBaseSpeed", 16)
- game["Run Service"].Heartbeat:Connect(UpdateCombatTags)
- Remotes.CombatTagEvent.Event:Connect(CombatTag)
- Remotes.Heal.OnServerEvent:Connect(Heal)
- Remotes.EquipWeapon.OnServerEvent:Connect(EquipWeapon)
- Remotes.ChangeMoveset.OnServerEvent:Connect(ChangeMoveset)
- Remotes.Critical.OnServerEvent:Connect(CriticalAttack)
- Remotes.M1.OnServerEvent:Connect(M1)
- Remotes.Roll.OnServerEvent:Connect(Roll)
- Remotes.Parry.OnServerEvent:Connect(Parry)
- Remotes.FillFlask.OnServerEvent:Connect(FillFlask)
- Remotes.SetCurrentWeapon.OnServerEvent:Connect(SetCurrentWeapon)
- Remotes.SetupPlayerWeapon.Event:Connect(SetCurrentWeapon)
- Remotes.ChestOpen.OnServerEvent:Connect(OpenChest)
- Remotes.Forage.OnServerEvent:Connect(Forage)
- Remotes.LocationOrb.OnServerEvent:Connect(function(Player, Location)
- local Module = require(game.ReplicatedStorage.Assets.Modules.LocationOrb)
- Module.SetPlayerLocation(Player,Location)
- end)
- Character.Humanoid.Died:Connect(Death)
- local BlinkDebounce = false
- task.delay(0.15,function()
- game["Run Service"].Heartbeat:Connect(function()
- local PartsImIn = workspace:GetPartsInPart(Character.HumanoidRootPart)
- for i,Part in pairs(PartsImIn) do
- if Part.Parent == workspace.Areas and Part:GetAttribute("Area") then
- if Part:GetAttribute("Area") ~= Character:GetAttribute("CurrentArea") then
- Character:SetAttribute("CurrentArea", Part:GetAttribute("Area"))
- game.ReplicatedStorage.Assets.Remotes.NewArea:FireClient(game.Players:GetPlayerFromCharacter(Character), Part:GetAttribute("Area"))
- end
- end
- end
- if Character.Humanoid.Health <= 0 then
- local Eyes1 = Character.FakeHead.Eyes
- local Eyes2 = Character.FakeHead.BlinkingEyes
- local MiddleFrame = Character.FakeHead.BlinkingMiddleFrame
- Eyes1.Transparency = 1
- MiddleFrame.Transparency = 1
- Eyes2.Transparency = 0
- end
- end)
- end)
- Remotes.Sprint.OnServerEvent:Connect(function(Player, Sprinting)
- if Player.Character == Character then
- print("Sprint")
- if Sprinting == true then
- StartSprinting()
- else
- EndSprinting()
- end
- end
- end)
- GiveLives()
- SetCurrentWeapon(DataStoreInfo.Weapon)
Advertisement
Add Comment
Please, Sign In to add comment