Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Is there anything at all wrong with this DataSave script? and how could exploiters exploit this?

Asked by 2 years ago

Alright so this is a data script its a global script in ServerScriptService

local DataStore = game:GetService("DataStoreService"):GetDataStore("HahaisdeadSave32")
local replicatedStorage = game:GetService("ReplicatedStorage")
local saveRemote = replicatedStorage:WaitForChild("Save")
local BloodAuto = replicatedStorage:WaitForChild("BloodAutoSave")


--creating data

game.Players.PlayerAdded:Connect(function(player)

    wait()

    local SpinSystem = player.PlayerGui:WaitForChild("SpinSystem")

    local folder = Instance.new("Folder", player)
    folder.Name = "Data"


    local hasgame = Instance.new("BoolValue", folder)
    hasgame.Name = "HasGame"

    local hair = Instance.new("StringValue", folder)
    hair.Name = "Hair"

    local outfit = Instance.new("StringValue", folder)
    outfit.Name = "Outfit"

    local accessory = Instance.new("StringValue", folder)
    accessory.Name = "Accessory"

    local Gender = Instance.new("StringValue", folder)
    Gender.Name = "Gender"

    local blood = Instance.new("StringValue", folder)
    blood.Name = "Blood"

    local spins = Instance.new("IntValue", folder)
    spins.Name = "Spins"

    local bloodRarity = Instance.new("StringValue", folder)
    bloodRarity.Name = "BloodRarity"

    --------------INCASE PLAYER LEAVES GAME ON THE SPINSYSTEM PART THIS WILL SHOW THE DATA THE PLAYER HAD BEFORE THEY LEFT 
    wait()
    local BloodBackground = player.PlayerGui.SpinSystem.Background

    local BloodValue = player.Data.Blood.Value

    local SpinValue = player.Data.Spins.Value

    local rarityValue = player.Data.BloodRarity.Value

    --visibiliy of spin button variable

    local burgcol = Color3.fromRGB(160, 1, 3)
    local bronzecol = Color3.fromRGB(162, 82, 3)
    local goldcol = Color3.fromRGB(161, 161, 0)
    local mutantcol = Color3.fromRGB(255,0 ,0 )
    local olivecol = Color3.fromRGB(65, 97, 0)
    local jadecol = Color3.fromRGB(7, 132, 70)
    local tealcol = Color3.fromRGB(0, 130, 130)
    local cobaltcol = Color3.fromRGB(0, 65, 130)
    local indigocol = Color3.fromRGB(0, 0, 255)
    local purplecol = Color3.fromRGB(74, 8, 140)
    local violetcol = Color3.fromRGB(106, 0, 106)
    local fuchsiacol = Color3.fromRGB(153, 0, 77)


    ------------------------------------------------------------------------------------------------------------------------SAME HERE


    local getData
        local success, errormsg = pcall(function()
            getData = DataStore:GetAsync(player.UserId)


                BloodBackground.Frame.BloodTitle.Text = BloodValue
                BloodBackground.Frame.Spinsleft.Text = "Spins left: "..SpinValue
                BloodBackground.Frame.Rarity.Text = rarityValue
    end)

    ----------------------------------------------------------------------------------------------

    if success then
        print("Successfully loaded "..player.Name.."'s data!")
    elseif not success then
        -- FIRST TIME JOINING --
        hasgame.Value = false
        print("hasgame has been changed to false")
        hair.Value = "Men Hair"
        print("hair value has been changed to men hair")
        outfit.Value = "Luffy's outfit"
        print("outfit has been changed to luffys outfit")
        accessory.Value = "Shades"
        print("accessory has been changed to shades")
        Gender.Value = "Male"
        print("gender has been changed to none")
        blood.Value = "Burgundy"
        print("blood has been set to burgundy")
        spins.Value = 8 
        rarityValue = "Common"


        error("Something went wrong while loading the data of "..player.Name..": "..errormsg)
    end

end)

saveRemote.OnServerEvent:Connect(function(player, val)
    DataStore:SetAsync(player.UserId, val)
    print("Successfully saved "..player.Name.."'s data!")
end)

anything at all wrong with this?

saveRemote.OnServerEvent:Connect(function(player, val)
    DataStore:SetAsync(player.UserId, val)
    print("Successfully saved "..player.Name.."'s data!")
end)

Answer this question