Initial commit

This commit is contained in:
2025-12-17 16:47:48 +00:00
commit 13813f3363
4964 changed files with 1079753 additions and 0 deletions

62
docs/API.md Normal file
View File

@@ -0,0 +1,62 @@
# Aya Masterserver
- Default port: 53600
- Run command: `./masterserver.py --port 53600 --key <optional_auth_key>`
- Communicates using `application/json`
- Requires an `Authorization ` header if a key is provided
- Missing or invalid key returns `401 Unauthorized`
- Invalid request returns `400 Bad Request`
- Responses are always JSON: `{"status": "success" or "error", ...}` (includes "error" field including message if except. occurs.)
## POST `/broadcast`
- Registers a new server
- Required fields:
- `server_host` (str): Hostname of the server
- `server_name` (str): Display name of the server
- `server_port` (int): Port number
- `server_ip` (str): Public IP address
- `players` (int): Current number of players
- `max_players` (int): Maximum number of players
- Response: `{"status": "success", "server_id": "<unique_id>"}`
- Save the `server_id` for future pings
## POST/GET `/ping`
- Updates or verifies a servers current status
- Checks that the provided IP matches the registered one
- Required fields:
- `server_id` (str): Unique ID from /broadcast
- `server_name` (str): Server name
- `server_port` (int): Server port
- `server_ip` (str): Server IP
- `server_host` (str): Server hostname
- `players` (int): Current players
- `max_players` (int): Maximum players
## GET `/health`
- Returns basic health information
- Example response: `{"timestamp": "<ISO 8601>", "server_count": <int>}`
## GET `/`
- Returns all currently registered servers
- Example response:
```json
{
"servers": [
{
"id": "<string>",
"host": "<string>",
"name": "<string>",
"port": <int>,
"ip": "<string>",
"players": <int>,
"max_players": <int>
}
],
"count": <int>
}
```

22
docs/CHANGELOG.md Normal file
View File

@@ -0,0 +1,22 @@
# Aya Changelog
## Added
+ VirtualVersion support (2012-2016) to provide a near-perfect experience of older clients without their drawbacks.
+ Stencil shadows for improved graphics.
+ Backported numerous features from newer versions.
+ Modern .rbxl place file support.
+ Int64 support for handling large numbers.
+ Chromium frames with CEF (Chromium Embedded Framework) integration.
+ Linux support.
+ Color3 support for advanced color handling.
+ R15 support with clothing.
+ Meshparts for detailed 3D models.
+ Discord Rich Presence integration.
+ Native voice chat support (currently in a buggy state).
## Changed
+ Migrated build system to CMake.
+ Switched from MSVC to Clang for builds.
+ Major cleanup of the source code, reducing compilation time to under 5 minutes (and under 30 seconds for incremental builds).

89
docs/INSTALL.md Normal file
View File

@@ -0,0 +1,89 @@
Aya Installation
================
0. Preface
1. Supported platforms
1.1. Compilers
1.2. Platform-specific notes
1.2.1. Windows
1.2.2. Linux
1.2.3. Xbox, Mac, and iOS
1.3. Adding support for new platforms
2. configure options
3. Internal tools
4. Tests
5. Troubleshooting
0. Preface
----------
Aya was created with the intention of being as easy to set up and use as
possible, using industry-standard tooling commonplace in software
engineering. That said, Aya does not attempt to hold your hand in doing
so and leaves much of the customization up to the end user for maximum
versatility.
This guide was written based upon the assumption that the end-user has a
grasp on how to use tools such as CMake, Clang, Python, as well as posessing
a general knowledge on how to use C++.
1. Supported platforms
----------------------
TODO
1.1. Compilers
TODO
1.2. Platform-specific notes
1.2.1. Windows
TODO
1.2.2. Linux
TODO
1.2.3. Xbox, Mac, and iOS
TODO
1.3. Adding support for new platforms
TODO
2. configure options
--------------------
TODO
3. Internal tools
-----------------
TODO
4. Tests
--------
TODO
5. Troubleshooting
------------------
TODO