My guess is that local servers don’t load any universe (or game) data into them, so the GetDeveloperProductsAsync method doesn’t know where to look for the developer products. That’s why I suggested that you have a separate test place in the universe, so you can join it in a real server instead of a local server.
In a local server, purchases won’t work anyway, because the local players are technically seen as guests, since their UserId is negative.
Roblox’s API shouldn’t really have any surprise differences between offline and online, so don’t be afraid to just use Play Solo.