Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Subscribe to SxS Scripting For More!
- local DataSaving = game:GetService("DataStoreService"):GetDataStore("Saving1")
- game.Players.PlayerAdded:Connect(function(Player)
- local Character = Player.Character or Player.CharacterAdded:Wait()
- local Humanoid = Character:WaitForChild("Humanoid")
- local PlayerGui = Player:WaitForChild("PlayerGui")
- local Races = {
- Human = 60,
- Demon = 5,
- Elf = 20,
- Giant = 40;
- }
- local sum = 0
- for _,Values in pairs(Races) do
- sum = sum + Values
- end
- local function getRandomItem()
- local RaceValue = Random.new():NextNumber(0, sum)
- for item, value in pairs(Races) do
- RaceValue = RaceValue - value
- if RaceValue < 0 then
- return item
- end
- end
- end
- local function ChangeBody()
- local RaceNames = Player.DataFolder.Race.Value
- local Parts = Character:GetChildren()
- local BodySizeParts = {
- Humanoid.HeadScale,
- Humanoid.BodyDepthScale,
- Humanoid.BodyWidthScale,
- Humanoid.BodyHeightScale,
- }
- if RaceNames == "Giant" then
- for _,v in pairs(BodySizeParts) do
- v.Value = v.Value * 2
- end
- elseif RaceNames == "Elf" then
- for _,v in pairs(BodySizeParts) do
- v.Value = v.Value / 2
- end
- elseif RaceNames == "Demon" then
- for _,v in ipairs(Parts) do
- if v:IsA("BasePart") then
- v.BrickColor = BrickColor.new("Really black")
- end
- end
- end
- end
- local DataFolder = Instance.new('Folder',Player)
- DataFolder.Name = "DataFolder"
- local Race = Instance.new("StringValue", DataFolder)
- Race.Name = "Race"
- local function Change()
- PlayerGui.RaceDisplay.TextButton.Text = "Race: "..Race.Value
- end
- local Success, Value = pcall(function()
- return DataSaving:GetAsync(Player.UserId)
- end)
- if Success then
- if Value then
- Race.Value = Value[1]
- else
- Race.Value = tostring(getRandomItem())
- end
- else
- Race.Value = tostring(getRandomItem())
- end
- ChangeBody()
- Change()
- end)
- game.Players.PlayerRemoving:Connect(function(Player)
- local Success, Err = pcall(function()
- DataSaving:SetAsync(Player.UserId, {Player.DataFolder:WaitForChild('Race').Value})
- end)
- end)
- game:BindToClose(function()
- for i, player in pairs(game.Players:GetPlayers()) do
- local Success, Err = pcall(function()
- DataSaving:SetAsync(player.UserId, {player.DataFolder:WaitForChild('Race').Value})
- end)
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement