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

[REPOST] Why isn't player not a valid member of datamodel?

Since I didn't want players to be able to spectate while they are in a match I created if statements; however, that isn't the problem. The problem is that in order to create the if statement clearer or easier I created variables.

Here is a script inside of the spectate gui:

gui = script.Parent.Button

local IsInMatch = game.player.IsInMatch.Value -- This is the variable which is recieveing the error message

if IsInMatch == true then
	gui.Visible = false
elseif IsInMatch == false then
	gui.Visible = true
end

Each player has a BoolValue (IsInMatch) and changes from false to true when the player is in a match or dies.

Here is my output window of the problem:

player is not a valid member of DataModel

Inside of every spawn is a function when the player touches the part and then it sets the value of IsInMatch to true or false.

I am confused by what this means. Please help me out! What is the problem? What do I have to change?

BTW I am new to scripting so thanks!

If you think the problem is something else, and let me know.

1 answer

✓ Accepted answer

You forgot to do .LocalPlayer

To correctly reference the player in a LocalScript use game.Players.LocalPlayer. Also don't use .Value in a variable. I've also added .Changed to this so that its called anytime the value changes, otherwise this will only run one time.

local gui = script.Parent.Button

local IsInMatch = game.Players.LocalPlayer.IsInMatch -- This is the variable which is recieveing the error message

IsInMatch.Changed:Connect(function()
	if IsInMatch.Value == true then
		gui.Visible = false
	else
		gui.Visible = true
	end
end)

2 comments

0

use local Varible = ... not Variable = ... (line 01)

0

Good catch, its leftover code from his original script i forgot to fix.

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