code:
local DataStore = game:GetService("DataStoreService")
local SaveTools = DataStore:GetDataStore('Save_Tools')
----
game.Players.PlayerAdded:Connect(function(player)
local tools = player:WaitForChild('Backpack')
for i,v in pairs(tools:GetChildren()) do
local data = v
local success, errormessage = pcall(function()
SaveTools:GetAsync(player.UserId..'-Tools')
end)
if success then
print('Loading tools')
local Curr_Tools = data:Clone()
Curr_Tools.Parent = player.Backpack
if not success then
print('Oh no, A error occured!')
warn(errormessage)
end
end
end
end)

4 comments
This doesn't make sense. You're getting tools from the players backpack and upon a successful return of loaded data, you're re-parenting those same tool to their Backpack.
But why isn't it printing though?
When it succseded
You have not success in the success scope, so it's not going to print.