I just had an asset I spent 4+ months working on rejected for this…
My only thought is that a big piece of it uses some restructured/modified code from ECS and Unity Physics (moved into local namespaces). I made modifications to the codebase; it’s not the same code (it’s basically a modified subset of functionality), however the original is licensed under the Unity Companion License. I’m assuming it somehow runs afoul of this part (since the rejection letter has no other communications besides a canned copy-paste, I can only make guesses…):
I can maybe find workarounds or rewrite the code, but I feel like if the UCL is incompatible with the asset store EULA, there should be a massive flashing red banner above it.
(Note I’m not attempting to redistribute Unity code; the modified piece is like 5% of my package; some of my package needed access to algorithms that were not public in the official ECS or Unity Physics.)
I take the combination of 1 and 3.2 to mean “You can compile your derivative work into an executable and distribute that, but you can’t sell a derivative work as source code on the marketplace since that would mean there’s two owners.”
Just to be sure: do a text search across ALL files under /Assets for keywords like “GPL”, “CC-BY”, “Mozilla” and any other licenses you know are either copyleft or require attribution. It may just be one little icon that you forgot about. Or that stackoverflow code snippet that you attributed with a link but didn’t consider that, yes, unfortunately so, is CC-BY licensed.
But for sure, the UCL means you cannot resell Unity’s own code.
Anyhow, you won’t find massive red banners across any license. That’s what the license texts are for. Though personally I would say if one license deserves that red banner, it would be GPL. Followed by stackoverflow or any CC-BY license (but only if you’re an asset dev).
I am not attempting to do so. I thought it would be rude/invasive to add a dependency on an experimental preview package in the Asset Store package when I am only using a tiny fraction of the functionality. Just installing ECS adds runtime overhead per frame (and a ton of extra menu options). The only piece I needed were BlobAssets and MeshColliders, so I took those out and made it internal.
The alternative I guess is to switch to requiring 2022+ and adding a dependency on ECS. Although those packages are still hidden from the package manager UI, even on 2022+, so Unity clearly does not consider them API stable.
I understand; but if this is the case, it should be made clear they are not compatible in one or the other license. “UCL” could be added to the Asset store requirement right next to “GPL” as a no-n0 license. Or else, the UCL could specify that modified versions of it cannot be sold on the Asset Store.
Unity maintains both the UCL and the Asset Store requirements. This is not a third-party license; there does not need to be any ambiguity.