"char is not a valid member of (Player name here)"

Ah you should have said so sooner, I thought the main problem still consisted. Could you resend your code, and are there any errors?

in your code, the line that sets the player’s position isn’t in the mouse clicked function

Edited code:

local Player = game.Players.LocalPlayer
local char = Player.Character
local Camera = workspace.CurrentCamera --The Main Menu camera

local PlayButton = script.Parent.GameInfo.PlayButton --The Play button in the Gui

repeat wait()
	Camera.CameraType = Enum.CameraType.Scriptable --Camera manipulation
until Camera.CameraType == Enum.CameraType.Scriptable
Camera.CFrame = workspace.CameraPart.CFrame

PlayButton.MouseButton1Click:Connect(function()
	Camera.CameraType = Enum.CameraType.Custom
	script.Parent.GameInfo.PlayButton.Visible = false --These are set invisible when play button is clicked
	script.Parent.GameInfo.QuitButton.Visible = false
	script.Parent.GameInfo.GameStuff.Visible = false
	script.Parent.GameInfo.GameTip.Visible = false
	script.Parent.GameInfo.List.Visible = false
	script.Parent.GameInfo.Score.Visible = false
	script.Parent.GameInfo.PauseButton.Visible = true --These are set to visible as they are shop, etc
	script.Parent.GameInfo.ShopButton.Visible = true
	script.Parent.GameInfo.ListOfPlayers.Visible = false
	script.Parent.GameInfo.ListButton.Visible = true
	script.Parent.Parent.Timer.Time.Visible = true
	char.HumanoidRootPart.CFrame = workspace.Spawns.HumanTP.CFrame --Is supposed to teleport the player to the part when the play button is clicked (This is another issue)
	script.Disabled = true
end)

You should try changing CFrame into Position. That should work

EDIT: Change CFrame to position when you teleport the player. Don’t change the camera code!!!

Try this;

local Player = game.Players.LocalPlayer
local char = Player.Character
local Camera = workspace.CurrentCamera --The Main Menu camera

local PlayButton = script.Parent.GameInfo.PlayButton --The Play button in the Gui

repeat wait()
	Camera.CameraType = Enum.CameraType.Scriptable --Camera manipulation
until Camera.CameraType == Enum.CameraType.Scriptable
Camera.CFrame = workspace.CameraPart.CFrame
char.HumanoidRootPart.CFrame = workspace.Spawns.HumanSpawn.CFrame

PlayButton.MouseButton1Click:Connect(function()
	Camera.CameraType = Enum.CameraType.Custom
	script.Parent.GameInfo.PlayButton.Visible = false --These are set invisible when play button is clicked
	script.Parent.GameInfo.QuitButton.Visible = false
	script.Parent.GameInfo.GameStuff.Visible = false
	script.Parent.GameInfo.GameTip.Visible = false
	script.Parent.GameInfo.List.Visible = false
	script.Parent.GameInfo.Score.Visible = false
	script.Parent.GameInfo.PauseButton.Visible = true --These are set to visible as they are shop, etc
	script.Parent.GameInfo.ShopButton.Visible = true
	script.Parent.GameInfo.ListOfPlayers.Visible = false
	script.Parent.GameInfo.ListButton.Visible = true
	script.Parent.Parent.Timer.Time.Visible = true
	char.HumanoidRootPart.CFrame = workspace.Spawns.HumanTP.CFrame --Is supposed to teleport the player to the part when the play button is clicked (This is another issue)
	script.Disabled = true
end)

I tried but still same result. Also, isnt this the same script?

I set the CFrames to Position for the part and HumanoidRootPart, still same result.

Is your script a LocalScript or a server script?

Uh no, you didn’t have this part
char.HumanoidRootPart.CFrame = workspace.Spawns.HumanSpawn.CFrame

It is a localscript inside screengui

it should be local, according to the first line

You cannot teleport players in a LocalScript. Change your script into a server script

I deleted that line because i realize thats where the player should spawn anyway, so that line is useless

am not sure but i think you’re wrong, if someone tries to teleport via a local script, i think it will work, but not sure if it will appear for others

If i change it to a server script, It disables the camera and doesnt spawn on HumanSpawn. Do I need to split the code and put the teleportation stuff into the server script?

You should use remote events to teleport the player from the LocalScript. Since you can modify the camera on LocalScripts only

Im not good with remote events, so thats a bummer

and now my character sinks into the ground and slides around the map

It might be that the part you are teleporting to touches the ground making the legs of the character collide with the ground since you’re teleporting the HumanoidRootPart

This is probably due to you moving the character locally (via LocalScript)