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

Why does this UI Script error? (1 doesn't work and doesn't have error, the other does)

Asked by
NGC4637 602 Moderation Voter
3 years ago

I am making a game that parodies how simulators are like. currently i am making a gui that shows everytime a stat increases (e.g coins)

this is my UIScript:

local plr = game.Players.LocalPlayer
local lstats = plr:WaitForChild("leaderstats")
local RpS = game:GetService("ReplicatedStorage")
local maths = require(RpS:WaitForChild("GameModules"):WaitForChild("ShortenNumber"))
local TS = game:GetService("TweenService")

for i,v in ipairs(script.Parent:GetDescendants()) do
    if v.Name == "Fat" then
        v.Text = "Fat: "..maths:Abb(lstats:WaitForChild("Fat").Value) -- yes this is a eating sim xd
        lstats:WaitForChild("Fat"):GetPropertyChangedSignal("Value"):Connect(function()
            v.Text = "Fat: "..maths:Abb(lstats:WaitForChild("Fat").Value)
        end)
    elseif v.Name == "Coins" then
        v.Text = "Coins: "..maths:Abb(lstats:WaitForChild("Coins").Value)
        lstats:WaitForChild("Coins"):GetPropertyChangedSignal("Value"):Connect(function()
            v.Text = "Coins: "..maths:Abb(lstats:WaitForChild("Coins").Value)
        end)
    elseif v.Name == "Rebirths" then
        v.Text = "Rebirths: "..maths:Abb(lstats:WaitForChild("Rebirths").Value)
        lstats:WaitForChild("Rebirths"):GetPropertyChangedSignal("Value"):Connect(function()
            v.Text = "Rebirths: "..maths:Abb(lstats:WaitForChild("Rebirths").Value)
        end)
    end
end

RpS:WaitForChild("GameRemotes"):WaitForChild("Client"):WaitForChild("StatAdd").OnClientEvent:Connect(function(p1, p2) -- this is the function that errored
    local StatAddUI = RpS:WaitForChild("GameUIs"):WaitForChild("StatAdd"):Clone()
    StatAddUI.Parent = plr:WaitForChild("PlayerGui"):WaitForChild("PlayerMain")
    local stat_to_change = StatAddUI:WaitForChild("Stat")
    local amount = StatAddUI:WaitForChild("Amount")
    StatAddUI.Position = UDim2.new(math.random(0.125, 0.875), 0, math.random(0.125, 0.875), 0) -- didn't work but no error
    stat_to_change = p1 -- didn't work but no error
    amount = tostring(p2) -- didn't work but no error
    local TweenInf = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut)
    local Goal = {TextTransparency = 1}
    local Tween1 = TS:Create(stat_to_change, TweenInf, Goal)
    local Tween2 = TS:Create(amount, TweenInf, Goal)
    Tween1:Play() -- errored
    Tween2:Play() -- errored
    delay(1, function()
        StatAddUI:Destroy()
    end)
end)

RpS:WaitForChild("GameRemotes"):WaitForChild("Client"):WaitForChild("Buy").OnClientEvent:Connect(function()
    local ShopUI = script.Parent:WaitForChild("Shop") -- self explanatory
    local TweenInf = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
    local Goal = {Position = UDim2.new(0.5, 0, 0.5, 0)}
    local Tween = TS:Create(ShopUI, TweenInf, Goal)
    ShopUI:SetAttribute("Open", true)
    Tween:Play()
end)

Problems:

  1. it doesn't show the stat that changed, nor does it show how much the stat changed (didn't give an error)

  2. it doesn't fade away like i intended to (gave an error: Unable to cast value to object)

What I have tried:

  1. changing
    local TweenInf = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut)
    local Goal = {TextTransparency = 1}
    local Tween1 = TS:Create(stat_to_change, TweenInf, Goal)
    local Tween2 = TS:Create(amount, TweenInf, Goal)
    Tween1:Play()
    Tween2:Play()

to

    while stat_to_change.TextTransparency < 1 do
        stat_to_change.TextTransparency += 0.1
        amount.TextTransparency += 0.1
        game:GetService("RunService").Heartbeat:Wait() --basically wait() but more consistent ig
    end

Extra info: 1. yes this is done in a local script after all it is a UI script :v 2. Picture of explorer window: here

0
i just realized the UI Script doesn't show completely, and you'll need to view source to see it >.> NGC4637 602 — 3y

Answer this question