player.SetResource() dont work instantly / Shared Storage data!? Pls HELP

Good day,
i make a game, and i use Shared data for my Shop(For the Coin and for what axe are the player is actuall on), but i have the problem that the player.SetResource() Mehod only work at the Money(Scripts down bellow.)
Thanks for any help,
good day.

Scripts:

--Save Money Script
local data = script:GetCustomProperty("Luberjackdata")
function OnPlayerJoined(player)
local storage = Storage.GetPlayerData(player)
local sharedStorage = Storage.GetSharedPlayerData(data, player)
local Coins = sharedStorage["Coins"] or storage["Coins"]
if Coins then
--print("Spieler hat Coins")
player.SetResource(player, "Coins", Coins)
elseif not Coins then
--print("Spieler hat keine Coins!")
player.SetResource(player, "Coins", 0)
end
end
function OnPlayerLeft(player)
local storage = Storage.GetSharedPlayerData(data, player)
storage["Coins"] = player:GetResource("Coins")
Storage.SetSharedPlayerData(data, player, storage)
end
Game.playerJoinedEvent:Connect(OnPlayerJoined)
Game.playerLeftEvent:Connect(OnPlayerLeft)
---SaveAxesScript
local data = script:GetCustomProperty("Luberjackdata")
function OnPlayerJoined(player)
local storage = Storage.GetPlayerData(player)
local sharedStorage = Storage.GetSharedPlayerData(data, player)
local actuallAxe = sharedStorage["actuallAxe"] or storage["actuallAxe"]
if actuallAxe then
--print("Spieler hat Coins")
player.SetResource(player, "actuallAxe", actuallAxe)
elseif not actuallAxe then
--print("Spieler hat keine Coins!")
player.SetResource(player, "actuallAxe", 0)
end
print(actuallAxe)
end
function OnPlayerLeft(player)
local storage = Storage.GetSharedPlayerData(data, player)
storage["actuallAxe"] = player:GetResource("actuallAxe")
Storage.SetSharedPlayerData(data, player, storage)
end
Game.playerJoinedEvent:Connect(OnPlayerJoined)
Game.playerLeftEvent:Connect(OnPlayerLeft)
--BuyAxe (2)
local Weapon = script:GetCustomProperty("Axe_2")
local data = script:GetCustomProperty("Luberjackdata")
local Trigger = script.parent
function BoughtItem(trigger, player)
local storage = Storage.GetPlayerData(player)
local sharedStorage = Storage.GetSharedPlayerData(data, player)

local Coins = sharedStorage["Coins"] or storage["Coins"]
local actuallAxe = sharedStorage["actuallAxe"] or storage["actuallAxe"]
local Minus = nil
Minus = Coins -100
if actuallAxe == 1 then --SharedData
	if Coins >= 100 then
		player.SetResource(player, "Coins", Minus)
		player.SetResource(player, "actuallAxe", 2)
		for _, equipment in ipairs(player:GetEquipment()) do
    		equipment:Unequip()
    	local weapon = World.SpawnAsset(Weapon, {})
		weapon:Equip(player) 
    	end
	end
end

end
Trigger.interactedEvent:Connect(BoughtItem)

Good afternoon. Try to place the current code on one tab, otherwise it is unreadable.

@TPABOKOC I player it all without Spaces,
i hope it work.

Is there a reason the equipment persister server script won't work for this?

Good day,
thanks forr response but i dont understand your question rigth but i explain better what i mean.
I have a axe shop and its all work well the Money usw. dissapears directly, but i have also a shared data Key for the Actuallaxe(for Code see the Tread)so that the player only can buy the axes in an array and dont can buy them doubled. The problem is that the Shared data for actualAxe dont work directly, when i reconnect than the SetResourceMethod worked but otherwaise not but at the Shared key for Coins it work.
I hope this explained all.