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

script does not change text in a text label if specific gamepass is owned out of similar passes?

local passIdg = 9215890
local MarketplaceService = game:GetService("MarketplaceService")

game.Players.PlayerAdded:Connect(function(player)
	player:WaitForDataReady()
	if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdg or passIdh or passIdi or passIdj or passIdk) then
			player.PlayerGui.GiveDie.Who.Visible = true
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdg) then
					player.StarterGui.GiveDie.Who.Text = "Who will you give the extra standard die to?"
				else
					print(player.Name .. " does not own the give an extra die pass.")
		end
	end	
end)

pass id h through k are other "give a die" passes

what i wanted this script to do is when pass id g was owned it would change the text in a text label to "Who will you give the extra standard die to?" but it does not.

3 answers

✓ Accepted answer

First of all, please do not use WaitForDataReady() as it is deprecated.

What you're doing wrong inside your script while changing the text is that you're doing

player.StarterGui.GiveDie.Who.Text = "Who will you give the extra standard die to?"

this is wrong because a player does not have a child name StarterGui. you're mistaking it for PlayerGui.

player.PlayerGui.GiveDie.Who.Text = "Who will you give the extra standard die to?"

Also, it's better not to change PlayerGui from the server.

1 comment

0

yay this works

What you should do:

create a remote event in ReplicatedStorage called (whatever you want but in my example) "ReturnDieMsg"

Server:

local mps = game:GetService("MarketplaceService")
local plrs = game:GetService("Players")
local rep = game:GetService("ReplicatedStorage")
local rem = rep:FindFirstChild("ReturnDieMsg")

plrs.PlayerAdded:Connect(function(plr)
	if mps:UserOwnsGamePassAsync(plr.UserId, 9215890 or int or int or int) then --int should be replcaed with your ids
		local sendMsg = false
		if mps:UserOwnsGamePassAsync(plr.UserId, 9215890) then
			sendMsg = true
		end
		rem:FireClient(plr, sendMsg)
	end
end)

Client:

local plr = game:GetService("Players").LocalPlayer
local pgui = plr.PlayerGui
local rep = game:GetService("ReplicatedStorage")
local rem = rep:FindFirstChild("ReturnDieMsg")

rem.OnClientEvent:Connect(function(sendMsg)
	player.PlayerGui.GiveDie.Who.Visible = true
	if sendMsg then
		pgui:FindFirstChild("GiveDie"):FindFirstChild("Who").Text = "Who will you give the extra standard die to?"
	end
end)

1 comment

0

subsz already answerd this lol

with Subsz's answer i could do all of this!

game.Players.PlayerAdded:Connect(function(player)
	player:WaitForDataReady()
	if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdg or passIdh or passIdi or passIdj or passIdk) then
			player.PlayerGui.GiveDie.Who.Visible = true
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdg) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give the extra standard die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdh) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give the extra multiplier die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdi) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give the 20 sided die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdj) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give the 20 sided multiplier die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdk) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give a personal die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdg and passIdh) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give a standard and multiplier die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdg and passIdi) then
					player.PlayerGui.GiveDie.Text = "Who will you give the standard and standard 20 sided die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdg and passIdj) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give a standard die and a 20 sided multiplier to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdg and passIdk) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give a standard die and a personal die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdh and passIdi) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give a multiplier and 20 sided die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdh and passIdj) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give a multiplier and 20 sided multiplier die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdh and passIdk) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give a multiplier and personal die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdi and passIdj) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give a 20 sided and 20 sided multiplier die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdi and passIdk) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give a 20 sided and personal die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdj and passIdk) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give a 20 sided multiplier and personal die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdg and passIdh and passIdi) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give the standard, multiplier and 20 sided die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdg and passIdh and passIdj) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give the standard, multiplier and 20 sided multiplier die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdg and passIdh and passIdk) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give the standard, multiplier and personal die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdh and passIdi and passIdj) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give the multiplier, 20 sided and 20 sided multiplier die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdh and passIdj and passIdk) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give the multiplier, 20 sided and personal die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdi and passIdj and passIdk) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give the 20 sided, 20 sided multiplier and personal die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdg and passIdh and passIdi and passIdj) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give the standard, multiplier, 20 sided and 20 sided multiplier die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdg and passIdh and passIdj and passIdk) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give the standard, multiplier, 20 sided multiplier and personal die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdh and passIdi and passIdj and passIdk) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give the multiplier, 20 sided, 20 sided multiplier and personal die to?"
				if MarketplaceService:UserOwnsGamePassAsync(player.UserId, passIdg and passIdh and passIdi and passIdj and passIdk) then
					player.PlayerGui.GiveDie.Who.Text = "Who will you give all the dice to?"
                else		
					print(player.Name .. " does not own a give a die pass.")
																										end
																									end
																								end
																							end
																						end
																					end
																				end
																			end
																		end
																	end
																end
															end
														end
													end
												end
											end
										end
									end
								end
							end
						end
					end
				end	
			end		
		end
	end	
end)

2 comments

0

since i own all the gamepasses in my game, it should show the textlabel as "Who will you give all the dice to?" but it just does "Who will you give the standard and multiplier die to?"

0

the text label is showing all the saying really fast but only stops on the standard and multiplier saying

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