Creating an asset for the Unity asset store can be an intimidating process. There’s a lot to get done, you’re exposing your code to the judgement of others, and one misstep can make all the difference. Avoid some of my mistakes so you can end up in high selling asset glory and avoid the 1-star asset dust bin.
Price Right, Price High
It’s often tempting to throw a quick script that saved you a bit of time up on the asset store for sale. However, that’s a disservice to you and your customers. Unity takes 30% of the sale price. Taxes may take another large percent out of the remainder. If you put an asset on sale for $1, you’ll get $0.50 or less per sale. It really won’t be worth your time to maintain it or respond to your customers, so either you’re selling an out of date script with no support or you’re cutting in to your own time for pennies.
I’d recommend pricing any asset at at least $15. That’s $10.50 after Unity’s cut and before taxes. If you gave each customer an hour of support, that’s a bit under minimum wage in California. Now, ideally, you want to avoid that much support with good UI, easy to use documentation, a FAQ, and a solid community, however, it’s worth keeping in mind if your asset doesn’t take off right away.
Don’t try to compete with free. There are definitely users unwilling to pay for anything. They are not your customers. You’re seeking users that value their time more than the price of your asset. Those customers will jump at the chance to pay $50, $100, or more to shave days or weeks off their development time. They understand the difference in your product is the quality, the maintenance, and the service. They realize that debugging a broken free asset largely defeats the purpose of downloading it at all.
(That’s not to say you shouldn’t try to nurture the community. Be generous when you can. Many of us (myself included) don’t have a lot of money when we’re starting out, but may turn into ideal customers once we move along our game dev journey.)
It’s also important to recognize that your price is seen as an indication of quality. If your asset is less expensive then a similar competitor, customers might think it’s not as good. Similarly, anything really cheap has an impression of being poor in quality. (Would you trust code from a $1 or $5 asset?) Unity points out in its Submission Guidelines “Interestingly, the top-selling packages, in terms of quantity sold, are all over $50!”.
Your asset is still likely a steal at whatever price point you end up picking. That’s weeks or months of effort that another user gets for a tiny fraction of what your time would normally be worth. Don’t forget that.
Approval Takes Time, Updates Don’t
At the time of writing, the approval process for new Unity assets takes several weeks. To my knowledge, changing even the images or metadata resets this clock, so you’ll be sitting on your hands during this time. Keep that in mind when prioritizing your projects.
On the other hand, updates can be approved within 24 hours. Obviously, don’t rely on this behavior, but it can push you to get that fix done sooner rather than later. Technically, you could polish a simple asset, submit it, and update it when it releases. However, you’d still have to have a quality product at release, so the use cases for that are pretty minimal.
Test On All Platforms
Unity does have some minor differences across platforms. Perhaps the most frequently encountered, is the difference in path separators. Use abstraction whenever possible to avoid this issue (such as System.IO.Path.DirectorySeparatorChar or System.IO.Path.Combine).
Test Different Unity Versions
The Unity API does change across build versions and some methods may not be available in all versions. My advice is to test your code in the oldest and the newest versions of Unity you can. If need be, you can switch functionality across different versions with precompile directives like #if UNITY_2018_2_OR_NEWER.
A fun trick I recently figured out was that you can get a rough guess on when a feature was added to Unity from the online documentation of the method in question. Click the Other Versions button in the top right and scroll down to the oldest version listed.
Test, Test, Test, and Test Some More
Be sure you’re handling those corner cases. Your users may toggle all your options, press all your buttons, and call all your methods at just the wrong time. When possible, handle bad inputs, invalid settings, and methods called with improper timing, so that the issue is clear. Invalid inputs can throw errors and buttons can be disabled or hidden if the conditions aren’t right. Method timing/use and invalid states are trickier, but do your best and keep on top of it with solid documentation. The last thing you want is to cost your user more time than you’re saving them.
Get Some Outside Perspective
Your users won’t have the experience with your tool that you do and it’s hard to understand what’s comes off as confusing to fresh eyes. Like anything else, test your asset with other users. See what’s confusing and iterate. If possible, your local game dev community is a great place to do so. They get a good tool and you get valuable feedback. It’s a win-win.
Have Good Documentation
As the prior two points have reinforced, documentation is important. Write it up and keep it updated. Documentation is an important feature to some users, so share it online with your asset listing. It’ll show potential customers how seriously you take it.
Have Contact Information Ready
Despite your best efforts, it’s possible you’ll miss something. Give users a way to contact you with problems, feedbacks, or even feature requests. Unity threads and discords are popular ways for keeping up with customers that each have their own advantages.
Respond to Your Customers
Service is a big part of a successful asset. Respond to your customers so they feel heard and do what you can to make them happy. Many users might not contact you at all, but how you handle those that do reflects strongly on you. That said, there may be those that try to ask too much of you. Here’s a reddit thread with many more asset creators that has a diverse set of advise on the topic.
Quick tip: The review reply button is tiny, light gray, and in bottom right of the review. It’s easy to miss. Oh and don’t forget to check that spam folder! I missed a customer email that way and only found out about it a few days later when they contacted me on Twitter (a good reason to have multiple methods of contact).
Be Your Own Affiliate
Unity has recently opened up an affiliate program for which you can join here and read about here. Affiliate links are a way to give a commission to the user that drove the traffic to an online store. The customer doesn’t pay any extra. Instead, the store gives up part of its fee.
To my knowledge, they don’t publish the percentage. However, in the screenshot on the announcement page the commission is 5%.
This is a great way to up your sale value from 70% to 75% for users that you’re already sending to your assets if you’re approved.
Well, that’s all I’ve got for now. I hope this helps you and that we can grow the asset store community together. If you have your own tips you’d like to share, please leave a comment. I’m sure there’s much more for me to learn.
I learned these lessons while launching my Ultimate Screenshot Tool and a few more assets that are currently waiting for approval. I hope you’ll check them out!