Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

vote value doesnt change when clicked dislike/like button on gui. help?

Here im trying to have it so if a player likes or dislikes there will be for example: "2 votes" or "2 dislikes" but the value stays at zero. also the main parts of tthe code im struggling to repair are the dislike and like buttons and how they dont change value of votes.


local Player = game.Players.LocalPlayer
local Frame = script.Parent.Inner
local VoteBar = Frame:WaitForChild("VoteBar")
local Music = workspace:WaitForChild("Music")
local UIS = game:GetService("UserInputService")
local Storage = game:GetService("ReplicatedStorage")
local vote_allow = true
local MIN_VOTES = 13
function moveBar(val)
	val = math.clamp(tonumber(val) or 1, 0, 1)
	VoteBar.Green:TweenSize(UDim2.new(val, 0, 0, 10), "Out", "Quad", 0.5, true)
end
function vote(like)
	if vote_allow then
		vote_allow = false
		Frame.Like.Selected = like
		Frame.Dislike.Selected = not like
		Storage.Events.RateMusic:FireServer(like)
		wait(1)
		vote_allow = true
	end
end
function resetVote()
	Frame.Like.Count.Text, Frame.Dislike.Count.Text = "0", "0"
	Frame.Like.Selected, Frame.Dislike.Selected = false, false
	VoteBar.SkipLine.Visible = false
	moveBar(1)
end
resetVote()
updateMetadata()
Storage.Events.UpdateVotes.OnClientEvent:connect(function(ratio, reset, data)
	if reset then
		resetVote()
	else
		moveBar(ratio)
		if data then
			Frame.Like.Count.Text = data.Likes
			Frame.Dislike.Count.Text = data.Dislikes
			VoteBar.SkipLine.Visible = data.Likes + data.Dislikes >= MIN_VOTES
		end
	end
end)
Music.Metadata.Artist.Changed:connect(updateMetadata)
Music.Metadata.Artist.RequestedBy.Changed:connect(updateMetadata)
Music.Metadata.Title.Changed:connect(updateMetadata)
Music.DJ.AutoDJ.Changed:connect(updateMetadata)
Frame.Like.MouseButton1Down:connect(function()
	vote(true)
end)
Frame.Dislike.MouseButton1Down:connect(function()
	vote(false)
end)
Frame.Like.MouseEnter:connect(function()
	Frame.Like.ImageTransparency = 0
end)
Frame.Like.MouseLeave:connect(function()
	Frame.Like.ImageTransparency = 0.5
end)
Frame.Dislike.MouseEnter:connect(function()
	Frame.Dislike.ImageTransparency = 0
end)
Frame.Dislike.MouseLeave:connect(function()
	Frame.Dislike.ImageTransparency = 0.5
end)
Frame.Like.Changed:connect(function(prop)
	if prop == "Selected" then
		Frame.Like.Image = Frame.Like.Selected and "decal" or "like decal here"
		
	end
end)
Frame.Dislike.Changed:connect(function(prop)
	if prop == "Selected" then
		Frame.Dislike.Image = Frame.Dislike.Selected and "decal here" or "dislike decal here"
	end
end)

1 answer

As you were saying in the chat. You have no server side script. Write one and then it should work.

Also, to make your life simpler, don't use strings as debounces, use bools.

Let me know if you need any help with your server code!

Cheers, Zander. (Aka Cynical)

This discussion is preserved as it was. New answers, comments, and votes are closed.