I have seen issues where having a math.random call in-line like that had issues, forgot specifics about it however. You should try moving it to a variable and referencing the variable there. If that doesn’t work, you should try invoking either math.floor or math.ceil on the argument passed.
Additionally, consider switching to the new Random.
local hi = (Player.leaderstats.Suscribers.Value * Player.leaderstats['Video Quality'].Value * SongBenefit/6)
print(hi)
local am = math.clamp(math.random(hi),1,300000)
print(am)
am = math.floor(am)
local cash = math.clamp((am/4),120,200000)
The Random class isn’t really new. It existed for quite some time now. And also not so long ago both functionalities have been changed to have the same behaviour, neither is better than the other. I would only go for the Random class if I seriously wanted to have decimals in my number generation (using the :NextNumber() method), which is something the OP doesn’t seem to want in this case, he’s flooring the result anyways.
Ah, I really meant more “newer” than “brand new” when I said that. Also, I didn’t know they had merged the functionality of them. Developer Hub seems outdated then, thanks for letting me know.