Key Features:
- Developed with Tauri.js for optimal performance and reduced memory footprint
- Multilingual(EUR,FRA,RUS,GER) user interface with integrated translation system
- Efficient and secure inter-process communication between launcher and game
- Optimized memory management, ensuring non-interference with game performance
- Advanced update system with access control (currently reserved for servers)
- Modern design with responsive user interface and smooth animations(Bye bye bluehole launcher ^^)
- Secure authentication and user privilege management
- Intelligent game file verification with cache system for rapid updates
- Game launch and monitoring with event handling (startup, crash, exit)
This one in zip file is only for Tera Starscape server.
To use the Launcher on Your Server or locally, you must download the source code
//// SOURCE CODE IS HERE
To view the content, you need to sign in or register
////
Read the following carefully pls
Table of Contents
- Prerequisites
- Installation
- Configuration
- Usage
- Development
- Troubleshooting
Prerequisites
Before you begin, ensure you have the following installed:
-
To view the content, you need to sign in or register(latest stable version)
-
To view the content, you need to sign in or register(v14 or later)
- A C++ compiler (e.g.,
To view the content, you need to sign in or registerwith C++ workload on Windows, or GCC on Linux)
Installation
1. Install npm dependencies:
Code:
npm install
2. Install Rust dependencies:
Code:
cargo build
Configuration
1. Locate the config.json file in the teralib\src\config\config.json . It should contain the following variables:
Code:
{
"LOGIN_ACTION_URL": "http://SERVERIP-URI/tera/LauncherLoginAction",
"HASH_FILE_URL": "http://SERVERIP-URI/tera/launcher/hash-file.json",
"FILE_SERVER_URL": "http://SERVERIP-URI/public",
"SERVER_LIST_URL": "http://SERVERIP-URI/tera/ServerList.json?lang=en&sort=3"
}
Fill in the values for each variable:
LOGIN_ACTION_URL: Set this to the URL for the launcher login action (e.g.,To view the content, you need to sign in or register)
HASH_FILE_URL: Set this to the URL that provides the hash file for integrity checks that was generated with the launcher. (e.g.,To view the content, you need to sign in or register). (You have to be an admin with Privilege set to 3 to be able to see the generation button in the launcher)
FILE_SERVER_URL: Set this to the URL of your file server (e.g.,To view the content, you need to sign in or registerfor local development), you absolutely must create a “files” folder and put all your game client files to be updated there for it to work.
SERVER_LIST_URL: Set this to the URL that provides the list of available servers. check the code below
Save the .env file after making your changes.
Note: The actual values for these URLs will depend on your specific TERA server configuration. Make sure to use the correct URLs provided by your server administrator.
SERVER LIST JSON :
JSON:
{
"servers": [
{
"id": 2800,
"name": "Servername",
"category": "<b><font color=\"#FFA500\">PvE</font></b>",
"title": "Servername",
"queue": "No",
"population": "<font color=\"#00ff00\">High</font>",
"address": "ServerIP",
"port": 7801,
"available": 1,
"unavailable_message": "Unable to access the server at this time",
"host": null
}
],
"sort_criterion": 2
}
Important Notes:
You can add as many servers as needed in the "servers" array.
Make sure to replace values like "ServerIP", "Servername", etc., with your own information.
The "sort_criterion" field determines the sorting order of servers. Adjust its value according to your needs.
Usage
To run the application:
1. In development mode:
Code:
npm run tauri dev
2. To build for production:
Code:
npm run tauri build
3. The built application will be in the `src-tauri/target/release` folder.
Features
- Custom login system for TERA
- File integrity checking
- Server list retrieval
- Multi-language support
- Automatic game updates
Development
- The frontend code is located in the src directory.
- The Rust backend code is in the src-tauri directory.
- The teralib directory contains Rust libraries specific to this project.
The teralib folder contains:
A custom Rust library for TERA-specific functionality in the launcher. It typically includes:
- Rust source code for TERA-specific features
- Modules for game management
- Functions for server interaction
- Game-related data structures
Important: The teralib folder contains critical components for the proper functioning of the launcher and the game. Do not modify its contents unless you are an experienced developer with in-depth knowledge of the system. Incorrect modifications can lead to launcher malfunctions or game compatibility issues.
To add new features:
1. Modify the appropriate files in the frontend or backend.
2. Use Tauri’s API for frontend-backend communication.
3. Update the `config.json` file if new variables are needed.
Good to Know
This section provides insights into some key features of the launcher:
1. Hash File Generation System
When you click the “Generate Hash File” button:
- The launcher scans all game files in the specified directory
- It calculates a unique hash (e.g., SHA-256) for each file
- These hashes are stored in a file, typically named “hash-file.json”
- This file is used to verify game file integrity and identify which files need updating
2. Update System
The update process works as follows:
- The launcher compares local file hashes with those from the server
- Only files with different hashes are downloaded, saving bandwidth
- A caching system is used to optimize the update process:
- Information about processed files (hashes, timestamps) is stored locally
- This cache helps avoid unnecessary checks and downloads for unchanged files
- The cache is typically stored in a file named “file_cache.json”
- The launcher uses a custom login system specific to your TERA server
- Login credentials are securely transmitted to the server specified in the config.json file
- Upon successful login, the launcher receives authentication information needed to start the game
4. Server List
- The launcher fetches the list of available game servers from a URL specified in the config.json file
- This allows for dynamic server lists that can be updated without modifying the launcher itself
Understanding these systems can help you better utilize the launcher and troubleshoot any issues that may arise. Remember, the internal workings of these systems (especially in the `teralib` folder) should not be modified unless you have expert knowledge of the launcher’s architecture.
Troubleshooting
- If you encounter issues with Rust dependencies, try running `cargo clean` followed by `cargo build`.
- For Node.js related issues, delete the `node_modules` folder and run `npm install` again.
- Ensure your firewall isn’t blocking the application’s network access.
- Check the application logs for detailed error messages.
- Verify that all URLs in the `config.json` file are correct and accessible.
Attachments
Last edited: