How could i use a remote function to return inventory data when the player first joins?

local Player = game.Players.LocalPlayer

--Services
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local HttpService = game:GetService("HttpService")

--Locals
local InventoryGui = script.Parent
local Container = InventoryGui:WaitForChild("Container")
local Template = Container:WaitForChild("Template")

local DataFolder = ReplicatedStorage.ReplicatedData:WaitForChild(Player.UserId)

--Bind to StringValue.Changed
DataFolder.Changed:Connect(function(encodedData)
	--Decode JSONArray
	local dataTable = HttpService:JSONDecode(encodedData)
	
	--Iterate through all entires
	for itemName, amount in pairs(dataTable) do
		--Find label in container
		local label = Container:FindFirstChild(itemName)
		
		--If label doesn't exist, clone
		if (not label) then
			label = Template:Clone()
			label.Name = itemName
			label.Parent = Container
			label.Visible = true
		end
		
		--Update text
		label.Title.Text = itemName .. ": x" .. amount
	end

end)

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerStorage = game:GetService("ServerStorage")
local HttpService = game:GetService("HttpService")
local Players = game:GetService("Players")

--Modules
local DataStore2 = require(ServerStorage:WaitForChild("DataStore2"))

--Connections
Players.PlayerAdded:Connect(function(player)
	local InventoryStore = DataStore2("Inventory2", player)
	
	--Create replicatedDataFolder
	local replicatedDataFolder = Instance.new("Folder")
	replicatedDataFolder.Parent = ReplicatedStorage.ReplicatedData
	replicatedDataFolder.Name = player.UserId
	
	--Create inventory string
	local inventoryString = Instance.new("StringValue")
	inventoryString.Parent = replicatedDataFolder
	inventoryString.Name = "Inventory"
	
	--Get inventoryData from InventoryStore
	local inventoryData = InventoryStore:Get({})
	inventoryString.Value = HttpService:JSONEncode(inventoryData)

	--Replicate changes to client when InventoryStore updates
	InventoryStore:OnUpdate(function(decodedData)
		inventoryString.Value = HttpService:JSONEncode(decodedData)
	end)
end)

Players.PlayerRemoving:Connect(function(player)
	--Locate replicatedDataFolder
	local replicatedData = ReplicatedStorage.ReplicatedData:FindFirstChild(player.UserId)
	
	--If folder exists, destroy folder
	if (replicatedData) then
		replicatedData:Destroy()
	end
end)

i want the player to be able to see their data when they join instead of waiting for the value to change but, i cant figure it out.