1
0
mirror of https://git.ngram.ca/OpenJam/rc-servers synced 2026-08-23 23:08:52 +00:00
MaxSignal aedec62b8d Implementing upload functionality for ArcAdapter and improving CRF search. (#62)
### Description

This PR implements upload functionality for ArcAdapter and improves CRF search.

adapter.rs

First, regarding the CRF search feature, when there is no search query (i.e., on the default page), there was a bug where sorting by added date and other sort options did not work correctly, so the default query was removed. Also, the added-date sort order was reversed, so that was fixed as well.

Next, about the upload feature.

First, in order to create cube_amounts, which stores in JSON the count of each part of the robot contained at the end of the ROBOT_CUBES table, we count—by type—the number of all byte sequences (part IDs) excluding the first 4 bytes (total part count) and excluding the last 4 bytes (coordinates) out of each following 8 bytes, and then create a JSON string where the keys are the part IDs converted to decimal and the values are the counts.

After that, we insert Base64-encoded data into cube_data and colour_data in ROBOT_CUBES, and insert the above JSON string into cube_amounts.

Next, regarding ROBOT_METADATA, the thumbnail URL is set to the internal CDN, and the actual thumbnail data is saved under data/robocraft/thumbnails.

The added date and expiration date are converted to match the same format as the other data before insertion, and the other data is inserted as-is.

arc.rs

If the requested file is not present in the ZIP file, it was changed to scan the JPG files existing in data/robocraft/thumbnails.

package_release.py

Made it so that data/robocraft/thumbnails is created.

### Game

Robocraft

### Please confirm

- [x] I am the legal owner or represent the owner of all work submitted
- [x] I consent to my submission being added to this FOSS project
- [x] This PR used LLMs to generate some or all of the code changes

Reviewed-on: https://git.ngram.ca/OpenJam/rc-servers/pulls/62
Co-authored-by: MaxSignal <kastera58@gmail.com>
Co-committed-by: MaxSignal <kastera58@gmail.com>
2025-12-13 19:23:07 +00:00
2025-10-31 22:41:33 -04:00
2025-05-21 18:30:21 -04:00
2025-11-16 15:10:47 -05:00
2025-06-05 21:20:53 -04:00
2025-11-30 21:49:01 -05:00
2025-06-05 21:20:53 -04:00
2025-06-05 21:20:53 -04:00
2025-06-05 21:20:53 -04:00
2025-11-30 22:08:40 -05:00
2025-10-03 17:21:51 -04:00

OpenJam Servers

Revolt chat release version indev version

A collection of open source servers for Robocraft

Usage

NOTE: Please refer to the latest release for more detailed instructions for accessing the public OpenJam servers.

To get the Robocraft client to use these servers, place this servenvmulti.config file in the game files. You may need to change the activegroup from dev to ngram (or another group name depending on which servers you want to connect to).

Before you can login the first time, you will need to create an account through the rc_auth (aka authUrl) server: http://<rc_auth server address>:<port (maybe)>/register (unless you've enabled automatic sign ups)

Privacy

The minimum amount of data is (and should be) collected to provide the expected functionality. This means no data is collected or logged except some debug log messages in development versions. Some personal identifiers, such as IP addresses and session tokens, are sent but only exist ephemerally. The Robocraft servers store the minimum account info possible. This includes username, vehicle data, user configuration data, and other non-identifying gameplay data. If email and/or Steam account identifier are provided during registration, those are also stored. This information is all associated with a unique user identifier. The current PC's MAC address is also sent to the server (this is a Robocraft client feature, it is not recorded by any server).

Development

Please refer to the wiki.

Contributing

If you can program or are learning Rust, pull requests are appreciated! If you can't and would prefer not to learn, reporting issues is also welcome.

Note: New users cannot create repositories on this git server and so can't create pull requests. If you're interested in contributing code, please ask NGnius to lift that restriction on your account.

If you'd like to discuss, join the Signal group for the project.

Acknowledgements

A big thanks to the RC15 team for their work on reverse-engineering early Robocraft .NET assemblies. Thanks to KptKosmit91 (a RC15 team member) for giving me a working battle arena team base. Thanks to RandomScientist for hooking me up with a deobfuscated assembly. Without them, progress would have been too slow and frustrating.

Thanks for the moral support from community members who reached out and the few IRL people who I went into unnecessary detail with.

Description
Re-implementations of Robocraft web services https://rc.ngram.ca
Readme GPL-3.0 5.7 MiB
Languages
Rust 96.2%
Handlebars 2.6%
Python 1.1%