#Script is incrementing more to the Datastore than it should.

191 messages · Page 1 of 1 (latest)

bright star
#

Serverside:

local Datastore = game:GetService("DataStoreService")
local PlayerValues = Datastore:GetDataStore("PlayerInventory")
local PlayerRestarts = Datastore:GetDataStore("Playerinventory", "Rebirths")


local Event = game.ReplicatedStorage.Text
local Event2 = game.ReplicatedStorage.ObsticalDeleter
local Event3 = game.ReplicatedStorage.NoText
local Restarter = game.ReplicatedStorage.RestartAdder

game.Players.PlayerAdded:Connect(function(plr)
    local leaderstats = Instance.new("Folder", plr)
    leaderstats.Name = "leaderstats"
    
    local Points = Instance.new("IntValue", leaderstats)
    Points.Name = "Points"
    Points.Value = 0
    local plrPoints = plr.leaderstats.Points
    
    local Restarts = Instance.new("IntValue", leaderstats)
    Restarts.Name = "Restarts"
    Restarts.Value = 0


    Points.Changed:Connect(function()
        if Points.Value >= 1 then
            Event:FireClient(plr)
        else 
            Event3:FireClient(plr)
        end
    end)

    
    local success, Error = pcall(function()
        PlayerRestarts:SetAsync(plr.UserId, 0)
    end)
    
    
    Restarter.OnServerEvent:Connect(function()
        local success, newRestartVal = pcall(function()
            return PlayerRestarts:IncrementAsync(plr.UserId, 1)
        end)
        if success then
            Restarts.Value += 1
            plrPoints.Value = 0
        end        
    end)

    

Event2.OnServerInvoke = function(plr)
    local fired = false
        if plrPoints.Value >= (5 - Restarts.Value) then
            plr.leaderstats.Points.Value -= (5 - Restarts.Value)
            fired = true
            return fired
        end
    end
end)
#

ClientSide:

local RepStorage = game:GetService("ReplicatedStorage")

local Event = RepStorage.Text
local Event2 = RepStorage.NoText
local Restarter = RepStorage.RestartAdder

local Players = game:GetService("Players")

local Button = script.Parent.TextButton



Event.OnClientEvent:Connect(function(plr)
    Button.Visible = true
    Button.MouseButton1Click:Connect(function()
        Restarter:FireServer()
    end)
    
end)

Event2.OnClientEvent:Connect(function(plr)
    Button.Visible = false
end)
bright star
cedar belfry
#

Yo

#

Here i am to help

#

let me read rq

bright star
#

thx

median crow
#

right

cedar belfry
#

From what i'm getting

#

it may be an event that's not being disconnected, i'm stupid though

median crow
#

the button press is being viewed multiple times

cedar belfry
#

let s2 handle this one

median crow
#

Event.OnClientEvent:Connect(function(plr)
Button.Visible = true
Button.MouseButton1Click:Connect(function()
Restarter:FireServer()
end)

end)

#

here

bright star
#

How can I prevent this?

median crow
#

is the issue

#

remove the onclient event

#

just make it

cedar belfry
#

¯_(ツ)_/¯

bright star
median crow
#
local RepStorage = game:GetService("ReplicatedStorage")

local Event = RepStorage.Text
local Event2 = RepStorage.NoText
local Restarter = RepStorage.RestartAdder

local Players = game:GetService("Players")

local Button = script.Parent.TextButton

Button.MouseButton1Click:Connect(function()
    Restarter:FireServer()
end)

Event.OnClientEvent:Connect(function(plr)
    Button.Visible = true
end)

Event2.OnClientEvent:Connect(function(plr)
    Button.Visible = false
end)
bright star
#

xD

#

Oh

#

But wait

cedar belfry
#

Yes?

median crow
#

yes

#

add

#

a var

median crow
#

i know what u mean

#

ill do it

cedar belfry
#

You could possibly add a RBXScriptConnection variable and disconnect the event listener when it's ran

#

i suppose

median crow
#

what he need

bright star
#

The Button is visible when a certain amount of points is reached

#

And if it is reached, the button will be visable and Then you have the option to press the button

cedar belfry
#
local Signal: RBXScriptSignal

Signal = Something.Changed:Connect(function()
    
    -- Logic here --
    
    Signal:Disconnect()
    
end)
#

I think that would work here

bright star
#

The info

cedar belfry
#

then put le remote event where it says 'Logic here'

#

or smth

#

uhh

bright star
#

xD

median crow
#

game.Players.LocalPlayer.leaderstats.Points.Value

#

you can put that in the local

#

and everytime you do it

#

it will give the vallue

bright star
median crow
#

yes

bright star
#

Ok nice

median crow
#

it will give the value of points or resets wahytcever

bright star
#

Imma try that

hard moss
#

@median crow brotha do u mind helping me rq it's a quick problem but i js cant find out whats causing it

#

sorry for the disturbance

median crow
#

eyuah

hard moss
humble saddleBOT
#

studio** You are now Level 4! **studio

median crow
#

eyah

#

yeah

hard moss
#

#📜︱scripting-help-classic

bright star
#

xD, I am gonna try doin it, I´ll update you

bright star
# median crow yeah
local RepStorage = game:GetService("ReplicatedStorage")

local Event = RepStorage.Text
local Event2 = RepStorage.NoText
local Restarter = RepStorage.RestartAdder

local Players = game:GetService("Players")

local Button = script.Parent.TextButton


local Signal: RBXScriptSignal

Signal = game.Players.LocalPlayer.leaderstats.Points.Value.Changed:Connect(function()
    if game.Players.LocalPlayer.leaderstats.Points.Value >= 25 then
        Button.MouseButton1Click:Connect(function()
            Restarter:FireServer()
        end)
    end
    Signal:Disconnect()

end)


Event2.OnClientEvent:Connect(function(plr)
    Button.Visible = false
end)


#

I am not familiar with the Signal value or whatever that is xD, I need to search it up yet.

#

Players.ChickenMacFrise.PlayerGui.ScreenGui.Textscript:21: attempt to index number with 'Changed' - Client - Textscript:21

median crow
#

put

else
Signal:Disconnect()
#

instead of

#

i think

bright star
#


local Signal: RBXScriptSignal

Signal = game.Players.LocalPlayer.leaderstats.Points.Value.Changed:Connect(function()
    if game.Players.LocalPlayer.leaderstats.Points.Value >= 25 then
        Button.MouseButton1Click:Connect(function()
            Restarter:FireServer()
        end)
    else
        Signal:Disconnect()
    end
    

end)
median crow
#

yeah

median crow
#

you changing thingy

#

do

#

where is that

#

Textscrot[

bright star
#

Bro what

#

xD

median crow
#

cuz you tloookiogn fopr a change in the script

#

but you cant do that

#

what r u tryna find change

bright star
#

One sec

#

I am checking the points value of the player and if the value is >=25

median crow
#

show both scripts

#

newly refurbished

bright star
#
local Datastore = game:GetService("DataStoreService")
local PlayerValues = Datastore:GetDataStore("PlayerInventory")
local PlayerRestarts = Datastore:GetDataStore("Playerinventory", "Restarts")


local Event = game.ReplicatedStorage.Text
local Event2 = game.ReplicatedStorage.ObsticalDeleter
local Event3 = game.ReplicatedStorage.NoText
local Restarter = game.ReplicatedStorage.RestartAdder

game.Players.PlayerAdded:Connect(function(plr)
    local leaderstats = Instance.new("Folder", plr)
    leaderstats.Name = "leaderstats"
    
    local Points = Instance.new("IntValue", leaderstats)
    Points.Name = "Points"
    Points.Value = 0
    local plrPoints = plr.leaderstats.Points
    
    local Restarts = Instance.new("IntValue", leaderstats)
    Restarts.Name = "Restarts"
    Restarts.Value = 0


    Points.Changed:Connect(function()
        if Points.Value >= 1 then
            Event:FireClient(plr)
        else 
            Event3:FireClient(plr)
        end
    end)

    
    local success, Error = pcall(function()
        PlayerRestarts:SetAsync(plr.UserId, 0)
    end)
    
    
    Restarter.OnServerEvent:Connect(function()
        local success, newRestartVal = pcall(function()
            return PlayerRestarts:IncrementAsync(plr.UserId, 1)
        end)
        if success then
            Restarts.Value += 1
            plrPoints.Value = 0
        end        
    end)

    

Event2.OnServerInvoke = function(plr)
    local fired = false
        if plrPoints.Value >= (5 - Restarts.Value) then
            plr.leaderstats.Points.Value -= (5 - Restarts.Value)
            fired = true
            return fired
        end
    end
end)
#

local RepStorage = game:GetService("ReplicatedStorage")

local Event = RepStorage.Text
local Event2 = RepStorage.NoText
local Restarter = RepStorage.RestartAdder

local Players = game:GetService("Players")

local Button = script.Parent.TextButton


local Signal: RBXScriptSignal

Signal = game.Players.LocalPlayer.leaderstats.Points.Value.Changed:Connect(function()
    if game.Players.LocalPlayer.leaderstats.Points.Value >= 25 then
        Button.MouseButton1Click:Connect(function()
            Restarter:FireServer()
        end)
    else
        Signal:Disconnect()
    end
    

end)


Event2.OnClientEvent:Connect(function(plr)
    Button.Visible = false
end)

#

First is server, second is client

median crow
#

thats my bad i read the error wrong

bright star
#

no problem

median crow
#

Signal = game.Players.LocalPlayer.leaderstats.Points.Value.Changed:Connect(function()

remove .Value here

bright star
#

remove .Value?

median crow
#

so its Points.Changed

#

thats how detect change

bright star
#

Wait wait

#

I am sorry, what am I removing here?

median crow
#

Signal = game.Players.LocalPlayer.leaderstats.Points.Changed:Connect(function()

#

replace it with that

#

copy paste

bright star
#

Ok, Imma remove the game.Players... in the if statement with if remove game.Players....Value

#

?

median crow
#

n

#

no

#

keep everything else the same

#

only change that one line

bright star
#

That one with the "Signal = ..." ?

median crow
#

yeah

#

remove .Value

#

in only that line

bright star
#

remove game.Players.LocalPlayer.leaderstats.Points.Value

median crow
#

no

#

only

#

the 6 character

#

.Value

bright star
#

Man just type it pls

#

xD

#

My Monke brain cant handle that

median crow
#

Signal = game.Players.LocalPlayer.leaderstats.Points.Changed:Connect(function()

bright star
#

WHAT

#

THATS LITERALLY WHAT I WROTE

median crow
#

run the script

bright star
#

Players.ChickenMacFrise.PlayerGui.ScreenGui.Textscript:21: attempt to index number with 'Changed' - Client - Textscript:21

median crow
#

show ur script

bright star
#

local Signal: RBXScriptSignal

Signal = game.Players.LocalPlayer.leaderstats.Points.Value.Changed:Connect(function()
if game.Players.LocalPlayer.leaderstats.Points.Value >= 25 then
Button.MouseButton1Click:Connect(function()
Restarter:FireServer()
end)
else
Signal:Disconnect()
end

end)

median crow
bright star
#

OH

#

So game.Players.LocalPlayer.leaderstats.Points.remove.Value?

median crow
#

local Signal: RBXScriptSignal

Signal = game.Players.LocalPlayer.leaderstats.Points.Changed:Connect(function()
if game.Players.LocalPlayer.leaderstats.Points.Value >= 25 then
Button.MouseButton1Click:Connect(function()
Restarter:FireServer()
end)
else
Signal:Disconnect()
end

end)

#

copy and paste that

bright star
#

I dont get the error anymore

median crow
#

🙂

bright star
#

but now there is no more GUI

#

💀

#

OH wait I am dumb

#

I need to add that

#

The GUI doesnt pop up anymore, if The points value does get changed to 0 and it goes over the value of 25

#

I think I need to add a Event for that

median crow
#

no

humble saddleBOT
#

studio** You are now Level 12! **studio

bright star
#

no?

median crow
#

gimme 3 min

bright star
#

np

median crow
#

okay

#

si

#

so

bright star
#

I did not got any further btw

#

I just noticed, that I got to many events

#

I dont even use all of them

median crow
#

yeah

#

i rewrote some

bright star
#

Thank you, I appreciate it really much. If the Code works, I am gonna be able to understand the concepts of Datastore too

bright star
median crow
#

just testing it

bright star
#

ok

median crow
#
local Datastore = game:GetService("DataStoreService")
local PlayerValues = Datastore:GetDataStore("PlayerInventory")
local PlayerRestarts = Datastore:GetDataStore("Playerinventory", "Restarts")

local Event = game.ReplicatedStorage.Text
local Event2 = game.ReplicatedStorage.ObsticalDeleter
local Restarter = game.ReplicatedStorage.RestartAdder

game.Players.PlayerAdded:Connect(function(plr)
    local leaderstats = Instance.new("Folder", plr)
    leaderstats.Name = "leaderstats"

    local Points = Instance.new("IntValue", leaderstats)
    Points.Name = "Points"
    Points.Value = 0
    local plrPoints = plr.leaderstats.Points

    local Restarts = Instance.new("IntValue", leaderstats)
    Restarts.Name = "Restarts"
    Restarts.Value = 0


    Points.Changed:Connect(function()
        if Points.Value >= 1 then
            Event:FireClient(plr, true)
        else 
            Event:FireClient(plr, false)
        end
    end)


    local success, Error = pcall(function()
        PlayerRestarts:SetAsync(plr.UserId, 0)
    end)


    Restarter.OnServerEvent:Connect(function()
        local success, newRestartVal = pcall(function()
            return PlayerRestarts:IncrementAsync(plr.UserId, 1)
        end)
        if success then
            Restarts.Value += 1
            plrPoints.Value = 0
        end
    end)



    Event2.OnServerInvoke = function(plr)
        local fired = false
        if plrPoints.Value >= (5 - Restarts.Value) then
            plr.leaderstats.Points.Value -= (5 - Restarts.Value)
            fired = true
            return fired
        end
    end
end)
#
local RepStorage = game:GetService("ReplicatedStorage")

local Event = RepStorage.Text
local Restarter = RepStorage.RestartAdder

local Players = game:GetService("Players")

local Button = script.Parent.TextButton


local Signal: RBXScriptSignal

Signal = game.Players.LocalPlayer.leaderstats.Points.Changed:Connect(function()
    if game.Players.LocalPlayer.leaderstats.Points.Value >= 25 then
        Button.MouseButton1Click:Connect(function()
            Restarter:FireServer()
        end)
    else
        Signal:Disconnect()
    end
end)

Event.OnClientEvent:Connect(function(value)
    Button.Visible = value
end)
#

try these

bright star
#

ok

#

I copy pasted it

#

button does not fire

#

nothing happens

median crow
#

change your points

#

if its above 25 then try

bright star
#

OH

#

bruh one sec

median crow
#

i can fix that

bright star
#

I made it in my code, if I get over 1 point, the gui pops up, just for test xD

#

The Button comes up, but I get 2 Restarts everytime

#

Instead of one. The event is fired 2 times I dont know why tho

median crow
#

i know why i think

#
local RepStorage = game:GetService("ReplicatedStorage")
local Event = RepStorage.Text
local Restarter = RepStorage.RestartAdder

local Players = game:GetService("Players")
local Button = script.Parent.TextButton

local restartDb = false

Button.MouseButton1Click:Connect(function()
    if game.Players.LocalPlayer.leaderstats.Points.Value >= 25 and not restartDb then
        restartDb = true
        Restarter:FireServer()
        task.delay(1, function()
            restartDb = false
        end)
    end
end)

Event.OnClientEvent:Connect(function(value)
    Button.Visible = value
end)

there

#

change ur local script to thaty

bright star
#

ok

#

YES IT WORKES

#

THANK YOU SO MUCH

median crow
#

👍 ur welcome

bright star
#

I am gonna look now, why it workes xD

#

But then I am gonna know how it workes

median crow
#

i added a debounce

#

and instead of detecting when the points change

#

it just checks how many points the player has when they click it

bright star
#

Oh cool

median crow
#

and restartDb is to just stop people from autoclicking it and getting more than 1 reset

median crow
#

yeah

bright star
#

Ok, thank you man

#

I am gonna close this helping section