API implementation for the TERA Online retail server (patch 92/100) on Node.js.

Overview

tera-api

API implementation for the TERA Online retail server (patch 92/100) on Node.js. The API consists of two independent servers running on different ports (for the needs of the portal/launcher, and separately for the needs of the Arbiter server).

Requirements

  • Node.js v18.1.0
  • MySQL Server v5.7.38

Installation

  1. Install latest node.js from https://nodejs.org/.
  2. Copy the all tera-api files to any directory (e.g. c:\tera-api).
  3. Open windows console and go to directory (type cd c:\tera-api).
  4. Run the npm install for install required node modules.
  5. Copy or rename the .env.example file to .env.
  6. Configure the parameters in the .env file.
  7. Import the database structure to your MySQL server.
  8. Execute the node src/app command, or run the file tera-api.bat to start API servers.

Important!

The account database structure used differs from that used in the leaked retail version of the server. The supported database structure is located in the share folder.

Arbiter API

It is intended for processing internal requests from the Arbiter Server, such as checking a token, receiving events about the character's behavior, etc. This API must be binded only on a local IP address and must not be accessed by external users!

Portal API

This API is a web server intended for the Launcher (portal). This API must be available from the outside (proxied by Nginx or binded on external IP) for use by server users: registration, authorization, login, update routines etc. Also, this API allows to process static elements (directory public).

API Endpoints

Arbiter Server API

Method Endpoint Description
GET /systemApi/RequestAPIServerStatusAvailable API status request.
POST /authApi/GameAuthenticationLogin Authorization request via Arbiter server.
GET /api/ServiceTest API and database status request.
POST /api/GetUserInfo User information event.
POST /api/EnterGame Game enter event.
POST /api/LeaveGame Game leave event.
POST /api/CreateChar Character creation event.
POST /api/ModifyChar Character modify event.
POST /api/DeleteChar Character delete event.
POST /api/UseChronoScroll VIP item usage event.
POST /api/report_cheater The event of sending a cheater report.

Portal/Launcher API

Method Endpoint Description
GET /tera/ServerList?lang=%lang Server List request.
GET /tera/LauncherMaintenanceStatus Request server maintenance Status.
GET /tera/LauncherMain Get Launcher main HTML page.
GET /tera/LauncherLoginForm Get Launcher login HTML page (login form).
GET /tera/LauncherSignupForm Get Launcher registration HTML page (registration form).
POST /tera/LauncherLoginAction Authorization request via Launcher.
POST /tera/LauncherSignupAction Registration request via Launcher.
POST /tera/GetAccountInfoByUserNo User data request.
You might also like...

🏄‍♂️ Proxy POST/PUT/PATCH requests through a GET request

🏄‍♂️ to-GET Proxy POST/PUT/PATCH requests through a GET request Usage Base URL: https://toget.mihir.ch Endpoint: /:method Supported methods (case ins

Oct 2, 2022

🦜️🔗 This is a very simple re-implementation of LangChain, in ~100 lines of code

🦜️ 🔗 LangChain-mini This is a very simple re-implementation of LangChain, in ~100 lines of code. In essence, it is an LLM (GPT-3.5) powered chat app

Aug 14, 2023

A chat logs online saver for discord bots to save messages history & cleared messages online

A chat logs online saver for discord bots to save messages history & cleared messages online

Chat Logs NPM package that saves messages online to view it later Useful for bots where users can save messages history & cleared messages online Supp

Dec 28, 2022

Monolithic repo for api server, image server, web server

Onsecondary Market Deployed at https://market.onsecondary.com Monolithic repo for api server, image server, web server TODO -use a script to cull expi

Jan 11, 2022

100% type-safe query builder for node-postgres :: Generated types, call any function, tree-shakable, implicit type casts, and more

⚠️ This library is currently in alpha. Contributors wanted! tusken Postgres client from a galaxy far, far away. your database is the source-of-truth f

Dec 29, 2022

O objetivo dessa aplicação era criar um frontend feito totalmente em Javascript, sem nenhum arquivo HTML ou CSS pré-criado. Além disso, esse projeto também é o frontend da minha API 100% NodeJS.

O objetivo dessa aplicação era criar um frontend feito totalmente em Javascript, sem nenhum arquivo HTML ou CSS pré-criado. Além disso, esse projeto também é o frontend da minha API 100% NodeJS.

Projeto HTML 100% Javascript Front-end feito "sem HTML" Conteúdos ➜ Sobre o projeto ➜ O que aprendi ➜ Como usar 🔎 Sobre o projeto Voltar ao topo O ob

Aug 3, 2021

Шаблон для ботів discord.js v14.8.0 із 100% охопленням Discord API, обробником команд, тощо на основі https://discordjs.guide/

Ласкаво просимо до шаблону дискорд бота Шаблон бота з відкритим вихідним кодом discord.js, який базується на офіційному посібнику з discord.js, щоб ро

Mar 18, 2023

WPPConnect/WA-JS API SERVER is a small api server to provide url preview for @wppconnect/wa-js library

WPPConnect/WA-JS API SERVER WPPConnect/WA-JS API SERVER is a small api server to provide url preview for @wppconnect/wa-js library Our online channels

Aug 11, 2022

A Node.js client & server implementation of the WAMP-like RPC-over-websocket system defined in the OCPP-J protcols.

A Node.js client & server implementation of the WAMP-like RPC-over-websocket system defined in the OCPP-J protcols.

OCPP-RPC A client & server implementation of the WAMP-like RPC-over-websocket system defined in the OCPP-J protcols (e.g. OCPP1.6J and OCPP2.0.1J). Re

Dec 30, 2022
Owner
JKQ
Discord: JKQ#5649
JKQ
Patch to add .server extension to folder in Remix

?? remix-server-folders This patch updates the Remix compiler to treat all files in any folder named with .server extension as server only files. In o

Kiliman 11 Dec 9, 2022
100 Days of Code is a self improvement tool, where you make a commitment to solve 1 coding problem everyday for the next 100 days.

100 Days of Code is a self-improvement tool, where you make a commitment to solve 1 coding problem everyday for the next 100 days. This repository includes a range of tasks, lessons, resources, and challenges on various programming languages to help improve programming skills.

Tarleton Computer Society 7 Dec 14, 2022
A free and open-source point-of-sale (POS) system for retail and wholesale businesses with support for multiple branches, stockkeeping locations, POS profiles and price lists.

Note: This is a beta version of the software. You are advised to proceed with caution! Overview A free and open-source point-of-sale (POS) system for

Mwai G 2 Jan 27, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
A modern and fashion-forward retail portal.

Atelier Atelier is an ecommerce product detail page built for a fictional clothing company as an exercise in front-end development. It contains three

null 1 Aug 30, 2022
Automaticly parses known pocket ips patch resources, scans folders or zip files for matching roms and applies the patches.

Pocket Automaton Automaticly parses known pocket ips patch resources, scans folders or zip files for matching roms and applies the patches. Usage pock

null 3 Nov 27, 2022
A simple CLI to patch the Fitbit OS Simulator with the new SSL certificate - March 2022

patch-fitbit-simulator Only for Mac OS currently A simple CLI to patch the Fitbit OS Simulator certificate with the new SSL certificate for the Device

Brandon Him 2 Mar 28, 2022
Simple patch that adds a 'progress' callback to jquery Ajax calls

Jquery Ajax Progresss A simple patch to jQuery that will call a 'progress' callback, using the XHR.onProgress event Usage Simply include the script on

Chad Engler 118 Sep 8, 2022