Spawn Location Module

‘’'lua
local Spawn = {
DataStore = game:GetService(“DataStoreService”)
}

local Players = game:GetService(“Players”)

Spawn.SaveLastLocation = function(Player)
local SpawnLocation = Spawn.DataStore:GetDataStore(“LocationInfo”)
local HRP

if game.Workspace:WaitForChild(Player.Name) and game.Workspace[Player.Name]:FindFirstChild("HumanoidRootPart") then
	HRP = game.Workspace[Player.Name].HumanoidRootPart

	local Data = {
		LastLocation = HRP.Position
	}

	print("Saving location: ", Data.LastLocation)

	local Success, ErrorM = pcall(function()
		SpawnLocation:SetAsync(Player.UserId, Data)
	end)

	if not Success then
		warn(ErrorM .. " | Failed to save location.")
	end
else
	warn("No character or HumanoidRootPart found for " .. Player.Name)
end

end

Spawn.LoadLastLocation = function(Player)
local SpawnLocation = Spawn.DataStore:GetDataStore(“LocationInfo”)
local LastPosition
local Char

if game.Workspace:WaitForChild(Player.Name) then
	Char = game.Workspace[Player.Name]

	local success, errorm = pcall(function()
		LastPosition = SpawnLocation:GetAsync(Player.UserId)
	end)

	if success and LastPosition then
		if LastPosition.LastLocation then
			print("Loading location: ", LastPosition.LastLocation)
			Char.HumanoidRootPart.Position = LastPosition.LastLocation
		else
			warn("LastLocation data not found for " .. Player.Name)
		end
	else
		warn((errorm or "Unknown error") .. " | Failed to load location.")
	end
else
	warn("No character found for " .. Player.Name)
end

end

return Spawn
‘’’

My script doesn’t do anything and just returns a unknown error.

1 Like

You cant save Vector3 in Datastore, turn vector3 into table then save it.