Proper Players position appears correctly server sided BUT NOT CLIENTS?

i have an idea why does that happen and it’s the fact that I’m using Module Script. But I’m such a noobie in Module Scripts that I don’t even approximately know what’s the issue.

I have 3 scripts, Local Script (this script controls player’s camera) that sends an Event to a server script:

LoadData:FireServer(LocalPlayer)

Server sided script where I require data from the module script:

...
local DayofAct = require(game.ReplicatedStorage:WaitForChild("Acts"))

LoadData.OnServerEvent:Connect(function(LocalPlayer)
	local Act = LocalPlayer.stats.Acts.Value

	DayofAct.WhatAct(Act, LocalPlayer)

end)

And a Module Script itself that controls the position


...

	local character = player.Character
	local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
	
	if WhatVal == 0 then
		print("Act 0, The Intro (New Game)")
		game:GetService("Lighting").TimeOfDay = "14:00:00"
		humanoidRootPart.Position = Vector3.new(game.Workspace.Start.Position)

So the issue is the fact that as you can see, im “teleoprting” a player to a needed position using Module Script, but it doesn’t update their CLIENT SIDED position which is very weird, so, my question is:

How can I fix that? Maybe some sort of Event I can fire, maybe change the way im doing that, or maybe pass some value from Module Script back to Server Script?

1 Like
humanoidRootPart.Parent:PivotTo(CFrame.new(game.Workspace.Start.Position))
1 Like

Hey, try replacing

humanoidRootPart.Position = Vector3.new(game.Workspace.Start.Position)

with

character:MoveTo(game.Workspace.Start.Position)

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.