I don't quite understand it
local DataStore = game:GetService("DataStoreService"):GetDataStore("Weapon1")
game.Players.PlayerAdded:connect(function(player)
local key = "Weapon1" .. player.userId
DataStore:GetAsync(key, function(oldValue)
if oldValue == new then
--code to give weaoon
else
print("weapon not owned")
end)
end)
Would that work to check if somebody owned a weapon before?

2 comments
You need to save the weapon to data store.
I know that, but if I had it saved, would that work to check it?