Ну вот так точно не следует писать код (это очень дурной почерк, похожий на машинный код):
gold=gold>0 and gold or 0
А вот так должно работать, и при этом читабельно:
TAX_GOLD = 10000
...
local playerGold = GetPlayerResource(PLAYER_1, GOLD)
if (playerGold > TAX_GOLD) then
local newPlayerGold = playerGold - TAX_GOLD
SetPlayerResource(PLAYER_1, GOLD, newPlayerGold)
else
SetPlayerResource(PLAYER_1, GOLD, 0)
end