/NeosAccountDownloader

Downloads your Neos account to your local computer.

Primary LanguageC#MIT LicenseMIT

Neos Account Downloader

A small tool/utility to download your Neos Account contents to your local computer.

Disclaimer

While every effort is made to download everything from your account, this utility may miss or lose some data. As such we're unable to offer any guarantee or warranty on this application's ability. This is in line with the License but this additional disclaimer is here in the hopes of transparency.

Please refer to the License file for additional commentary.

Scope

This repository/software/project aims to do only a limited number of things:

  1. Download the contents of a Neos Account and any groups it is part of to a Local Hard Drive.
  2. Store the contents in a way that other software or projects can interact with.
  3. Preserve that contents in a way that allows peace of mind.

We do not intend to process the contents in a way that makes it compatible with other engines such as Unity, Unreal etc.

Download Instructions

  1. Click this link
  2. Scroll to the section of the page that says "Assets".
  3. Click on the Asset(Zip File) that matches your operating system (Windows or Linux) (You DO NOT need the source code zips)
  4. It will download
  5. UnZip the downloaded Zip file
  6. Enter the folder from the Zip file
  7. Run the Exe (Neos Account Downloader.exe) by double clicking it.

Contributing

Thanks for your interest in contributing, there are several ways you can contribute!

  1. Localization
  2. Bug Reporting
  3. Feature Requests
  4. Engineering / Programming

We appreciate any contributions, you'll get added to our Contributor list for pretty much any activity.

Localization

We'd love help with localization.

You have two options when localizing.

Weblate

We're trying out Weblate for online localization, it will enable you to localize Neos Account Downloader without downloading anything from right in your browser, it is really cool. You can click the image below to go to our location on Weblate.

Translation status

There's also a guide for using weblate available. If you're struggling you can always do the manual method as listed below.

Weblate Usernames

It is recommended to use the same username and email as the one you have here on GitHub when registering/using Weblate. This will ensure that your changes are accredited to your regular GitHub user when they come across from Weblate.

Manual

  1. Duplicate: https://github.com/GuVAnj8Gv3RJ/NeosAccountDownloader/blob/main/AccountDownloader/Properties/Resources.resx
  2. Save it as Resources.<your language code>.resx
  3. Translate
  4. PR it

Bug Reporting

All software has bugs, this software included. Whenever a bug is encountered, please open an issue the format doesn't really matter provided you clearly explain your problem. Please provide a log file if you can though. We'll get to the bugs as soon as we can.

Where do I find the log files?

In the top bar menu for the tool click Help -> Open Log Folder. It'll take you right there.

Can I submit a log file privately?

Sure, email one to: guvanj8gv3rj.undertook642@passinbox.com . This email goes straight to the authors.

Feature Requests

Feature requests are welcome, please open an issue where we can discuss the feature request. Do keep in mind our scope though.

Engineering / Programming

We're happy to accept contributions in the form of PRs, but please open an issue to discuss your changes before making them. We can talk about suitability, method, approach etc.

FAQ

How do I download this?

Follow the download instructions.

Why does this exist?

Backing up Neos content given the current circumstances seemed wise.

Can I restore this download into my Neos Account?

No.

What can I do with the downloaded files?

The files are mostly machine readable collections of entities from your account, feel free to poke around.

You could however, write additional tools that do stuff with them.

Can I import downloaded content into Unity?

This is not a supported use case of this utility. No effort will be made to support this. You could make your own tooling to do that though.

Should I use a new folder for each user/group I download?

Ideally no, the local store that this app builds will in some cases handle duplicate assets in a way that will reduce total file size if you use the same folder for multiple accounts. The download location can handle as many accounts as needed.

Can I run this app for multiple users at the same time?

Yes, but if you do this, you'll need to use two separate folders which we do not recommend. You may also breach some rate limits Neos has in place on its cloud infrastructure.

Do subsequent downloads, re-download assets?

For assets, we skip downloading them if an existing asset is found. This makes many downloads incremental rather than starting from scratch.

Why is assets showing as 0/XYZ?

For assets, we skip downloading them if an existing asset is found. If your progress statistics or report etc. show 0/xyz etc then it means that no new assets were found.

What's the difference between Assets and Records/Items/Worlds/Avatars?

This diagram might help:

  • Assets: Anything that makes up an element in Neos that is not the structure of it within the inspector. So Image,Sounds,Videos,Model Files. These are downloaded incrementally
  • Records: Records contain a manifest of all assets that are required to represent an item or world. These are downloaded each time.
  • Everything Else: JSON Soup. Just JSON Files of various types. Contacts, Messages etc. These are downloaded each time.

What are Asset/Record failures?

At the end of your download you might see asset or record failures.

  • A record failure usually means that an entire item/world/avatar failed to download, you won't have any assets from that record because the tool could not download the Record to find them
  • An asset failure means a part of a downloaded record could not be downloaded.

In both cases, make sure you take a look at the UI scrolling left and right etc. Better UI for this area might be a focus if we continue to see errors. In both events the details are logged to your log files too.

Why are you anonymous?

We understand that some of you have felt a degree of apprehension due to us remaining anonymous, citing concerns that we're not an active member of the Neos community.

This is not the case. We feel the situation surrounding Neos has created some anxiety concerning the future of the projects we've made on this platform, and this downloader is to help mitigate that by providing an opportunity to back up work should the worst come to pass.

Similarly, other efforts to restore content, such as the Neos wiki edits, have led to account locks for users, denying them the ability to access their assets entirely. This makes it difficult to provide back up options without risking access to the very content it aims to preserve.

Our anonymity is simply intended to provide a basic level of protection. We hope you can find it a not unreasonable one, and we welcome anyone to investigate the Github to verify the contents of the downloader.

You can also read Verifying Checksums to double check that what you see on GitHub is what you get.

How can we trust this?

If you'd like to build your trust in this software you can do so in a number of ways:

  1. Read the source code of the repository, there is no hidden code or components
  2. Read Verifying Checksums which verifies that the builds you obtain are built on GitHub using code on GitHub without outside interference.
  3. Discuss the software with the community, several members of the Neos community including Neos Team members have reviewed this code and confirmed it to be ok.

If you have further doubts feel free to open an issue or a discussion.

Can we contact the author privately?

Sure you can email: guvanj8gv3rj.undertook642@passinbox.com to conduct a private conversation. Our preference is that conversations are kept public in issues or discussions.

What about Discord?

We do not respond on Discord and use the account purely to post new versions.

Verifying Checksums/Integrity

If you'd like to double check the checksums/integrity of the built Binaries of this project. You can follow these steps:

  1. Download the latest release(1.10.7 onwards) for your operating system
  2. Also download the Checksum for that operating system. It is a text file.
  3. Check the Actions log for this repository, for the version you downloaded
  4. Locate the "Print Checksum" step
  5. Copy the printed checksum somewhere safe
  6. Now you can check the checksum of the downloaded files.
    1. On windows you can run: certutil -hashfile <file> SHA256
    2. On Linux you can run: sha256sum <file>
  7. Compare the output of the command to the downloaded checksum file.
  8. Compare the output of the command to the checksum found in the GitHub Actions Log
  9. If all 3 match, then you know that this build that you've downloaded was generated purely from GH actions and not manipulated.

This should help to increase trust, that the builds of this tool are not manipulated by the author. What you see on GH is what gets built and served to you via the releases tab.

If you'd like to read more about this concept, you can read this Wikipedia article.

Contributors

Below is a list of all of the awesome people who have helped to contribute to this software. If you feel you're missed, or that your contribution types aren't correct. Please feel free to open an issue.

TheJebForge
TheJebForge

🌍
orange3134
orange3134

🌍
Stiefel Jackal
Stiefel Jackal

💻 🐛 🔬 🤔
Sharkmare
Sharkmare

🌍
GuVAnj8Gv3RJ
GuVAnj8Gv3RJ

💻 🚧
Cyro
Cyro

💻
Psychpsyo
Psychpsyo

💻 🌍
xLinka
xLinka

🔬
Rucio
Rucio

🐛
Samuel-Sann Laurin
Samuel-Sann Laurin

🐛 🌍
rampa3
rampa3

🌍
ThomFox
ThomFox

🔬
5H4D0W-X
5H4D0W-X

🐛
ProbablePrime
ProbablePrime

🐛
epicEaston197
epicEaston197

🐛
EIA485
EIA485

📖
ClimberJ
ClimberJ

🌍
DaichiOkano
DaichiOkano

🌍
EuphieEuphoria
EuphieEuphoria

🐛
Alex-2Pi
Alex-2Pi

🌍

Weblate Contributors

We're still figuring out how to link in Weblate contributors for now, we'll manually add you here :)

  • Spanish
    • gallegonovato (6)