Custom UE4 Marketplace Frontend (Full Source Available)

Have you ever thought to yourself ‘I bet I can make a better marketplace frontend that works like the launcher but has search?’ If so, I have something for you!

I took this challenge this weekend because I wanted to learn more about how the Marketplace internally works, and I ended up with a neat standalone desktop app that works just like the marketplace does in the Epic Launcher, but with some added features!

I want to stress that I wrote the majority of this on a Sunday night. I’m not skilled in web dev in any sense. Most of the code is super hacky and filled with bad practices. It does seem performant and smooth though. If you want to submit a pull request and tear me a new one, please do. I’m curious what I could have done better, as I don’t really know much about javascript best practices at all.

Update:

Epic put out a massive update to the marketplace launcher. Pretty sweet. I’d recommend it over my version any day. I do wish they include some form of sticky header though, as it does take a considerable amount of effort to scroll using the mouse wheel. Using the scroll bar and “middle click scrolling” is alright though I suppose.

Downloads:

You can download a binary version to try it yourself here: Releases · Allar/custom-ue4-marketplace-frontend · GitHub
You can also get the source code here: GitHub - Allar/custom-ue4-marketplace-frontend: http://allarsblog.com/2015/12/07/Custom-UE4-Marketplac

Linux releases coming soon.

More Information:

For a full detailed list of what this is, check out: http://allarsblog.com/2015/12/07/Custom-UE4-Marketplace-Frontend/
To know how I went about creating this, check out: http://allarsblog.com/2015/12/07/Creating-Custom-Marketplace-Frontend/

What It Doesn’t Do:

Allow you to buy assets. Clicking buy will redirect you to Epic’s asset page. This could be implemented with a lot of effort though.

Allow you to download assets, this is much more secure and probably not feasible.

Serve as an example of good, clean code. The code is terrible.

Features:

[SIZE=2]More information about these features and why I justified them available on above linked blog posts.

Price and Rating Overlays

[/SIZE]

http://allarsblog.com/images/blog/creating-marketplace/AssetThumbnails.png

Asset Sorting

http://allarsblog.com/images/blog/creating-marketplace/sorting.gif

Ownership Filtering

http://allarsblog.com/images/blog/creating-marketplace/ownership.gif

Searching

http://allarsblog.com/images/blog/creating-marketplace/searching.gif

Sticky Header

http://allarsblog.com/images/blog/creating-marketplace/stickyheader.gif

On Sale Category

http://allarsblog.com/images/blog/creating-marketplace/OnSale.png

Seller YouTube Embedding

http://allarsblog.com/images/blog/creating-marketplace/youtube.gif

Instant Seller Searching

http://allarsblog.com/images/blog/creating-marketplace/sellersearch.gif

Asset Ratings In Detailed View

http://allarsblog.com/images/blog/creating-marketplace/RatingInDetails.png

I based these features off of common feedback regarding the launcher marketplace, I hope this illustrates with better clarity what we as a community would like in the launcher. Please leave feedback if you think any of these features should be changed, or if you think Epic should integrate them into the launcher :D. Unfortunately the launcher is off-limits in terms of code and pull requests, so what I made here is something completely from scratch that can’t just be copy-pasted into the launcher, but I hope it gets a few conversations started.

Personal Feedback to Epic regarding Marketplace Backend

[SIZE=2]I go into more boring details that no one cares about on my blog linked above, but doing this, I learned quite a lot. I also learned of some things I wish were changed in the backend…

  1. Asset descriptions have malformed HTML. Closing tags should be <a href="…">Text</a> not <a href="…">Text</>.
  2. The ‘categories’ property of some assets is outdated, for example, check assets in the Characters and Animations category. The official category path is assets/characters-animations but assets themselves have assets/characters as the category path, making reverse category lookups impossible without hardcoded corrections.
  3. Contact and Support not treated as proper data, but instead hacked onto Technical Details. This results in errors made from the marketplace team having to hack this in manually. Check out the bottom of the technical details of Crumbling Ruins [/SIZE]Crumbling Ruins in Environments - UE Marketplace for example. Note how someone accidentally entered it twice. Emails are already listed in the ‘seller’ property of assets as well.
  4. Seller videos as proper data. I’d love to see a proper ‘videos’ property for assets so that one doesn’t have to search asset descriptions for them.

tldr; I spent a Sunday learning far more about the marketplace internals than anyone outside Epic should have. This was a fun project and I hope yall find it interesting.

Needs a sellers tab, where you can see the asset packs your account has for sale, along with relevant info.

i mean… i can dream, right?

so much win Allar!
here, have one of my babies!

This is incredible man, thank you so much for doing this

great work allar

Awesome;
Tell us, u no work for Epic Games, y is dat? Tim bro Sweeney bro, y.

This is awesome. That sticky header!

Love it Allar!

This is a great example of what the official marketplace should be. Makes you wonder what they’re actually doing (benefit of the doubt, I assume backend technical junk takes much more time to manage, especially if you’re responsible for financial transactions)

This is awesome! Thanks Allar!

Thanks everyone! Really appreciate it.

… oh snap! Well, I already got what I wanted from this endeavor, but I’ll savor this post right here and have it for dessert. Thank you for everything.

Also, please don’t look at the source code, I’ll save you the trouble right now. My javascript skills are weak.

That is great. I wonder how easy it is to get working on Linux. Should be possible and may be able to make up for the lack of the launcher in Linux. Might give it a go when I get some time.

Can you actually download the assets with this or do you still need the launcher?

You can’t download or buy. Downloading won’t ever be possible. Buying could be if someone digs into the javascript process a bit more.

This could totally work on Linux right now. When I get my linux box up again tomorrow, I’ll try to do a Linux build. Or you can do one yourself if you feel like venturing into the nw.js docs.

In case I wasn’t clear before though, my code is hella bad. I quickly hacked this together as a fun experiment.

Its funny how you just typed “***” there :smiley: what happens if you search for booty?

http://allarsblog.com/images/blog/creating-marketplace/searching.gif


Hmm, a ‘No search results found’ would probably be nice.

Awesome work Allar, #Allar2016 =)

Incredible work Allar! Exactly the sort of thing I would appreciate to have in the launcher. Very generous of you to spend time on this :slight_smile:

Any chance of a Linux release ?

Sure, will do one tonight/tomorrow. It doesn’t download/buy assets. Downloading won’t ever happen, buying will take some effort to call the right APIs but should be doable, but I don’t think I’ll have time to do it myself.

Hi Allar,
Thank you for your great work. This is definitely awesome stuffs.

I am working on the Marketplace backend, and thought I would respond to your feedbacks.
#1 - We have both native client (Epic Games Launcher) and web marketplace (unrealengine.com) - there’s limitation on the native client that causes us have to configure with malformed HTML. We are in the process of doing major changes to our native client’s marketplace. Hopefully after that, we can remove/fix some of the malformed HTML.
#2 - Great point. We’ll take a look at this and fix it.
#3 - We launched self served portal for marketplace seller a while back. We will comb the data to remove the support/contact information from the technical details.
#4 - Again, great feedbacks. We’ll take a look and add this to our backlog to be fixed.

Please keep your feedbacks coming.
If you like, we can setup a call sometime. Just PM me so that we can exchange contact information.

Cheers,
Jun