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

I don't know why I keep getting this error while firing a server remoteevent?

I'm trying to make a RemoteEvent to lock doors in a player's house. Player's house are named like House: be_come. When I try to lock the doors, I get an error.

ServerScriptService.RequestsMain:50: attempt to call a userdata value

-- Server-side script
lockHouse.OnServerEvent:Connect(function(player)
		if game.Workspace("House: "..player.Name).FDoor.CanCollide == false or game.Workspace("House: "..player.Name).BDoor.CanCollide == false then
			game.Workspace("House: "..player.Name).FDoor.CanCollide = true
			print("3")
			game.Workspace("House: "..player.Name).BDoor.CanCollide = true
			game.Workspace("House: "..player.Name).FDoor.Transparency = .5
			game.Workspace("House: "..player.Name).BDoor.Transparency = .5
		else
			game.Workspace("House: "..player.Name).FDoor.CanCollide = false
			game.Workspace("House: "..player.Name).BDoor.CanCollide = false
			game.Workspace("House: "..player.Name).FDoor.Transparency = 1
			game.Workspace("House: "..player.Name).BDoor.Transparency = 1
	end
end)
-- Client-side script
lockHouse:FireServer()

1 answer

Problem: Error while firing a RemoteEvent; ServerScriptService.RequestsMain:50: attempt to call a userdata value.

Solution: Use square brackets instead of normal brackets.

Explanation: You do not use normal brackets for finding children as the script will think you're trying to call workspace.

Fixed Code:

-- Server-side script
lockHouse.OnServerEvent:Connect(function(player)
        if game.Workspace["House: "..player.Name].FDoor.CanCollide == false or game.Workspace["House: "..player.Name].BDoor.CanCollide == false then
            game.Workspace["House: "..player.Name].FDoor.CanCollide = true
            print("3")
            game.Workspace["House: "..player.Name].BDoor.CanCollide = true
            game.Workspace["House: "..player.Name].FDoor.Transparency = .5
            game.Workspace["House: "..player.Name].BDoor.Transparency = .5
        else
            game.Workspace["House: "..player.Name].FDoor.CanCollide = false
            game.Workspace["House: "..player.Name].BDoor.CanCollide = false
            game.Workspace["House: "..player.Name].FDoor.Transparency = 1
            game.Workspace["House: "..player.Name].BDoor.Transparency = 1
    end
end)

Please upvote and accept this answer if it helped

2 comments

0

Thanks! It works! I can't upvote because I need at least 25 reputation.

0

Okay. Accept my answer though.

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