[Home]

Ring of Elysium Game Preservation

By: Shy - [10/31/2023]

HELP PRESERVE GAME HISTORY !

A VERY historically important and FUN game, Ring of Elysium aka Europa aka 无限法则 is scheduled to shut down on December 1st 2023. This page will host all of the info I have in regards to preserving the game in various ways. I was considering making this page a living article since I hope to continually update this page as more stuff becomes available, however I figure this is a good resource even if it never gets updated beyond the current state (April 4th 2024). A LOT of the info here will also be applicable to Moonlight Blade (天涯明月刀). I began working on extracting Ring’s files with the goal of getting the soundtrack in early 2023, which I was able to achieve. The info here will be separated into 3 main sections: Guides, Goals, and Releases.

Feel free to contact me if you want to help improve this page or have any extra info to add.



Guides:

[How to Extract VFS Files]

VFS files are located in the root game directory. These can be easily extracted using a tool made by lokireborn on the ZenHax Forums. The program is self explanatory but I recommend extracting everything into the same directory since it will build up the game’s file structure. It should create a data folder with folders like: AVATARS, BIN, CAMERACURVES, CONFIG, etc etc. Here is a Mirror of the VFS Extractor and its source.



[How to Extract SFC Files]

There are various places in the ring game folder that contain SFC files, mostly the SFC folder. They also exist in the Cache folder and the WORLD folder. Sadly as of writing the sfc extractor does NOT support filenames and I don’t know if the format contains that info at all, thought I assume it does since the files contain a lot of references to other, NAMED files.

Extraction is simple first you need QuickBMS which you can get from its official site. The next thing you need is Zaramot’s SFC bms script which is used with quickBMS. Just drag the script onto QuickBMS, select the SFC file you wish to extract, and then select the destination. Again the script does not support filenames or paths it will just give each file a non unique name so you are gonna wanna make a directory for every single sfc file you extract as to not overwrite anything and to have some form of structure going on.



[Convert QSG, DFONT, or DAT MODELS into Standard Formats]

Currently two methods exist. PeterZ's noesis script and Zaramot’s 3dsmax script.For the noesis script, simply place the py files inside the plugins/python folder. The 010editor folder that comes with this script is for the 010 hex editor and can be used to help understand the model formats but is unrelated to converting these files. You need to edit the fmt_ROE_QSG.py file so the sfc_Actors_folder path is pointing to the location that you extracted the actors sfc file into. This allows certain models to load bones from the actors folder, though there are a LOT of other QSS file types in various folders which probably contain bone info that this script isn’t getting.

This script also has some issues with certain models, most commonly the highest quality LOD level of Vehicles, Hair, and Buildings. These models will load in noesis but will appear like this:

Broken Noesis script example

The 3dsmax script does NOT have this issue. Place the maxscript into your 3dsmax scripts folder, then in max click on the scripting drop down menu and select run script, select the script, and then the model you wish to import. You will see the same model that was broken with the noesis script works perfectly fine:

Maxscript just werkz

BOTH methods currently fail for certain models, mostly models contained in the Scene_* folders. Here are samples of working and non working models if you would like to help figure out how to improve the import scripts. This does NOT include samples of models that exhibit the above behavior since that is a problem exclusive to the one script.



[Convert Ring’s Audio Files to Standard OGG]

The game’s audio is contained in the WWISEAUDIO.sfc file, this file when extracted contains some bnk files and some wav files, both are in non standard formats. You can use this script to help automate the conversion.

HOWEVER I would recommend deleting the exe files out of this script’s Tools folder and replacing them with the latest versions. These are QuickBMS, Bnkextr, Ffmpeg, Revorb, and Ww2ogg. Once you have done this, place the .wav files into the tools/decoding folder and the .bnk files into the Game Files folder. Now just run the script, Ideally you should use the OGG conversion since it SHOULD give higher quality than mp3.

(Replace those exe’s because when I ran each through virus total some came back a lil strange so it is better safe than sorry.)



[Convert Ring’s Video Format to mp4]

Ring’s in-game video uses USM formatted files which can be converted using UsmToolkit. This tool has an option to automatically download its dependencies but I would avoid that because it is kinda sketchy, just do it yourself manually. Just place a copy of ffmpeg into the program’s folder then make a folder called “vgmstream” and put a copy of vgmstream in there, however you need to name it test.exe or it will not work.

(or you could modify the source code of usmtoolkit)

Then you can just run the command usmtoolkit.exe convert folderpath This should convert all of the ingame video files to mp4, some of these do NOT have audio as they are just the little preview videos that play when you hover over the equipment selection before the game begins.



[Rename .DAT Skeleton Files to .QSS]

A LOT of the .dat files from each sfc are actually .qss files, and luckily the qss file format can be detected. This will SIGNIFICANTLY reduce confusion when dealing with the unnamed sfc extracted files. I will be using the linux subsystem for windows to do this, but you can probably use cygwin to get the same results. You are going to need my qss magic file aka a definition file that the unix “file” command can use to detect a filetype. You can also generate this magic file yourself by creating a file named qss with the following contents:

6	bequad 0x6F6F74FFFFFFFF00 QuickSilverSkeleton for ROE or Moonlight Blade
!:mime model/QSS

Run “file -C -m qss” to compile that file into "qss.mgc". Place this file into the top directory containing all of your folders which contain the extracted sfc files. Then cd into a directory, for example Avatars_Skin_RemainingFiles and run this huge command:

file -m ../qss.mgc * | sed -n '/QuickSilverSkeleton/p' | sed 's/:.*//' | while IFS= read -r line; do mv "${line}" "${line%.*}.QSS" ; done

I’ll try to explain what this does, first it uses the “file” command with the compiled magic qss file in the directory above your current one this will list every single file, the next command “sed” will then select only the lines that contain “QuickSilverSkeleton”. The next sed removes all characters in each line after the “:”. Finally a while loop reads each line (which is now each filename) and runs a mv command to change the file extension from whatever it currently is to .QSS. This command MIGHT break in some situations as the unix * command to get all files can only get so many files before it breaks. If that is the case maybe split up the folder into a few folders then process them and recombine. You can likely automate this further to just automatically convert all files in all folders but I am at my limit with this right now.

I ran this command on all of my extracted sfc folders and it seems only the following folders contained QSS files: Actors, All Avatars_* folders except for Avatars_skin_Materials (obviously it is just textures), Scene_RemainingFiles, and sfx.



[Game client launch options]

You can create a batch file, or just launch the game using the following parameters to specify the address of a server that the game will connect to. It is currently unknown if this is only related to auth or if it is specifying the actual game server.

PATH TO Ring of Elysium\XVersion\Europa_Client.exe" -garena -uid=2835389 -server=127.0.0.1:8001

You can also use the dx12 client executable.

By default these are the servers that the steam version of the game will contact if you do not manually specify a server:

steamdir1.ringofelysium.com
steamdir10.ringofelysium.com

Here are the servers apparently used during the 2018 RoE beta testing:

-steam -server=steamdir.gun.qq.com:8001
-server=login1101.game.roe.garena.in.th:8001

You can also specify language, directx level, and “token”.

-language=en
-force-d3d9

The game is set up to use multiple different launchers such as steam and garena, you can specify which one with the options below. There are regional restrictions of which type of launcher you can use, possibly linked to the language option as well.

-noLauncher
-steam
-steamtest
-garena
-dmm


[How to Download RoE]

If you ever had ring on your steam account, you can download the latest version of the client using steamcmd:

steamcmd.exe +login LOGIN PASSWORD +app_update 755790

Here is a script that will automatically do this for you. You still need to specify your steam username and password in the script. Alternatively you can download the latest version of the game via the mega link in the releases section below (for now).





For Programmers:

I was recently contacted by a group working to bring back ring. They are looking for more programmers and people in general to help reverse engineer ring and build a custom server. Myself / ShyStudios is not associated with this group and I do not know who they are, however I will provide all future releases and info from them on this page. You can currently contact them directly via email at community.roe@gmail.com Remember you can ALSO always contact me (Shy) directly if you would like to contribute to this page in some way.

Here is some more info from the community roe group: This group plans on remaining anonymous, so have that in mind before contacting them. I believe their intention is to create an open source server emulator so the game can once again be enjoyed. They are looking for people who can help reverse engineer the client, please contact them if you can help! The client is written in C++ and the game logic is heavilly lua based.

They are working under the assumption that because ring is a modified version of the mmo moonlight blade, an mmo base game server might be a good place to start for example: https://github.com/hujunlong/TrinityCore and https://github.com/hujunlong/C-C-lua-for-game-server





Goals:

The following are goals arranged by priority / ability to be completed, completing these goals are key to help the preservation efforts.

My Proposed asset organization hierarchy




Releases:

[Ring of Elysium OST + EXTRAS]

This file contains ALL of the game’s music that I could find and the album artwork. Most files maintain their auto generated filenames but I did re-name the main soundtrack to fit the season and track numbers as well as somewhat categorizing the other music. A few of the tracks such as season 1 track 3 are royalty free songs (which sucks because it gets content matched on yt), but most of the main soundtrack are songs made specifically for ring by multiple well known musicians who have made music for many other games. There are also vocal-based tracks and I have only been able to identify one album that some are from, the rest are unknown as of now. If someone wants to clean this up and put it on khinsider or something you probably want to remove these royalty free tracks. Also some tracks might be slightly offset since most are made to loop.



[Ring of Elysium Latest Steam Version]

38.5GB. Provided by the community roe project. This is a copy of the latest version of the game from steam for those of you who do not have the game on your account.



[Europa 2018 Beta Version]

Provided by the community roe project. This is a copy of the original 2018 beta version of ring back when it was known as Europa.





Extra Links:

Steam DB page for Ring

Baidu Encyclopedia page about Aurora Studios [CN]

Baidu Encyclopedia page about Ring of Elysium [CN]

Baidu Encyclopedia page about Moonlight Blade [CN]

Some info about modifying scaleform GFX files

Moonlight Blade OST, fan compiled, non extracted, Don't know if it is complete so not putting it in releases.

Xentax threads and posts I was able to screenshot before the site went down.

page I found that may in some way be related to ring's terrain system idk tho

AS server 3rd person solo and squad leaderboards as of sept 9th 2023, compiled by me manually so there might be some mistakes

Article talking a bit about ring's sound design