Yes, two periods were missing (because the concatenation operator consists of two periods).
And about the regular promotion, I checked out the topic “How to level up on the Roblox developer forum” and if I understood correctly, promotions to regular are not being done before the requirements are updated. And I have only posted on scripting support so I wouldn’t fullfill the current postaproval requirement.
In your script you are passing a string instead of number from error so need to change it to number and also add … that is missing as stated above
Below is a better/cleaner way to write the code and also prints for issues it may encounter
once you know the code is running you can comment out the prints or even remove the else and print on each if statement
local SoundId = tonumber(game.Workspace.Song.Sound.SoundId) -- this will nil if its blank or can't turn into number -- turns it into a number also
if SoundId then -- check the nil here
local AssetInfo = game:GetService("MarketplaceService"):GetProductInfo(SoundId) -- now its a int64 number id not a string
if AssetInfo then -- makes sure it got the info
_G.songName = AssetInfo.Name .. " Song ID: " .. SoundId -- set it
else
print('Not Loading Asset Info')
end
else
print('No Song ID or not Number')
end