Nostale Clientless WebController: A .NET Core 8 Solution
Nostale Clientless WebController
Nostale Clientless WebController is an application built with .NET Core 8. The main objective is to offer a flexible and scalable way to interact with Nostale game servers without needing a traditional game client, leveraging modern backend technologies and container orchestration.
Solution Structure
The solution consists of several projects:
NosCore.Worker:
A background service implementing a clientless Nostale interaction logic.NosCore.ClientApi:
Allows sending actions to the Worker using MassTransit via RabbitMQ.NosCore.GameAuthenticationApi:
Handles authentication with GameForge and retrieves the necessary authentication token to access Nostale servers.NosCore.Contracts:
Contains communication contracts between the Worker and ClientApi.NosCore.Tcp:
A TCP client with socks5 proxy support.NosCore.Packet:
Houses all game packets for Nostale.NosCore.Sdk:
Contains shared elements used by the Worker.NosCore.AppHost:
Deploys the whole solution with initial setup. RabbitMQ is started and managed via Docker.
Internal Project Workflow
- The project relies on .NET Aspire and Docker for orchestration.
- Aspire automatically deploys all projects and spins up a RabbitMQ Docker machine for inter-service communication.
How to Run the Project
To get Nostale Clientless WebController running:
- Update Your Client Information
- In
NosCore.Worker.Services.Client.ClientSession.SendLoginCredentials()
, update:versionNostaleClientX
with the current Nostale client version.hashNostaleClients
with the latest client hash.- Note: GameForge occasionally changes some fields, such as adding extra spaces, so keep an eye on those!
- In
- Get Your GameForge Authentication Token
- Use a packet logger to intercept the authentication packet sent when switching servers.
- Extract the token from this packet.
- Login with the Token
- Use the token with the
ClientApi
(Web API) using the/LOGIN
endpoint.
- Use the token with the
Technologies Used
Conclusion
Nostale Clientless WebController offers a robust, scalable way to automate Nostale interactions, API-driven and container-ready for modern development workflows. Perfect for developers looking to build bots, automation, or backend services for Nostale.
Feel free to contribute or ask questions on the GitHub repository!