From 095e0ecfb26eb0596a8878847fbc1176bf9252dd Mon Sep 17 00:00:00 2001
From: Striven <sg.striven@cutecat.club>
Date: Fri, 20 Feb 2026 12:06:21 +0000
Subject: [PATCH] Fix links

---
 02_internals_of_hyperscape/01_entrypoint.md     |    2 +-
 02_internals_of_hyperscape/02_uplay_r1.md       |    2 +-
 02_internals_of_hyperscape/03_login_screen.md   |    2 +-
 04_rendezvous/05_rmc_protocol.md                |   10 +++++-----
 04_rendezvous/01_rmc_protocols/loginprotocol.md |    2 +-
 README.md                                       |   18 +++++++++---------
 6 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/02_internals_of_hyperscape/01_entrypoint.md b/02_internals_of_hyperscape/01_entrypoint.md
index bb9dd79..b3ab4f7 100644
--- a/02_internals_of_hyperscape/01_entrypoint.md
+++ b/02_internals_of_hyperscape/01_entrypoint.md
@@ -33,7 +33,7 @@
 ### Launching the Game
 Because the game is normally distributed with [BattlEye](https://www.battleye.com/), the following game flags are required to pass into the executable: `-eac_launcher /belaunch -be` in order to disable the anti-cheat in the game.
 
-The game also handles game license checks through [Ubisoft Connect](https://www.ubisoft.com/en-us/ubisoft-connect) (Formerly known as, and in the game files as, 'UPlay'). Check out the [uplay_r1](02_uplay_r1.md) page for more information on how this works and how to bypass this restriction.
+The game also handles game license checks through [Ubisoft Connect](https://www.ubisoft.com/en-us/ubisoft-connect) (Formerly known as, and in the game files as, 'UPlay'). Check out the [uplay_r1](02_uplay_r1) page for more information on how this works and how to bypass this restriction.
 
 ### Dumping Imports
 The game executable is obfuscated with [VMProtect](https://vmpsoft.com/) v3.20-v3.5.0, but critical game functions are not.
diff --git a/02_internals_of_hyperscape/02_uplay_r1.md b/02_internals_of_hyperscape/02_uplay_r1.md
index 0fdbb36..b43c77c 100644
--- a/02_internals_of_hyperscape/02_uplay_r1.md
+++ b/02_internals_of_hyperscape/02_uplay_r1.md
@@ -7,5 +7,5 @@
 > [!IMPORTANT] For `64-bit` devices, `uplay_r164_loader.dll` is loaded instead, and searches for `uplay_r164.dll`!
 
 ## Bypassing UPlay R1
-- [Spring](../08_scapegoat/04_using_scapegoat.md) - Scapegoat's own UPlay R1 launcher and plugin loader, specifically for Hyperscape.
+- [Spring](../08_scapegoat/04_using_scapegoat) - Scapegoat's own UPlay R1 launcher and plugin loader, specifically for Hyperscape.
 - [LumaPlay](https://cs.rin.ru/forum/viewtopic.php?f=29&t=67197)
diff --git a/02_internals_of_hyperscape/03_login_screen.md b/02_internals_of_hyperscape/03_login_screen.md
index 108a871..ce5e838 100644
--- a/02_internals_of_hyperscape/03_login_screen.md
+++ b/02_internals_of_hyperscape/03_login_screen.md
@@ -5,7 +5,7 @@
 ## Logging In
 When the any key is pressed, the client begins to make several requests in parallel, but there are some that have since been broken or lost relevance, and thus have acted as blockers in effectively getting past this initial screen.
 
-Firstly, the client attempts to create a session with the UbiServices API, see [Ubisoft Services: Creating a Session](../03_ubisoft_services/04_creating_a_session.md).
+Firstly, the client attempts to create a session with the UbiServices API, see [Ubisoft Services: Creating a Session](../03_ubisoft_services/04_creating_a_session).
 
 > [!NOTE]
 > TODO: Finish
\ No newline at end of file
diff --git a/04_rendezvous/01_rmc_protocols/loginprotocol.md b/04_rendezvous/01_rmc_protocols/loginprotocol.md
index 8215209..9872e10 100644
--- a/04_rendezvous/01_rmc_protocols/loginprotocol.md
+++ b/04_rendezvous/01_rmc_protocols/loginprotocol.md
@@ -3,7 +3,7 @@
 The Login Protocol is common among Ubisoft games and is responsible for authenticating users by their [UbiServices ticket](../../03_ubisoft_services/02_accessing_ubiservices.md#getting-a-ticket). Additionally, it provides the server with information about the user's client and game information, and the server can re-direct the client to a more appropriate server.
 
 ## Method: `LoginWithToken`
-Authenticates with the server using a [UbiServices ticket](../../03_ubisoft_services/02_accessing_ubiservices.md#getting-a-ticket). See [Initial Login Flow](../../03_ubisoft_services/04_initial_login_flow.md) for information on how to obtain one.
+Authenticates with the server using a [UbiServices ticket](../../03_ubisoft_services/02_accessing_ubiservices.md#getting-a-ticket). See [Initial Login Flow](../../03_ubisoft_services/04_initial_login_flow) for information on how to obtain one.
 
 ### Request
 
diff --git a/04_rendezvous/05_rmc_protocol.md b/04_rendezvous/05_rmc_protocol.md
index fd17ec6..486f793 100644
--- a/04_rendezvous/05_rmc_protocol.md
+++ b/04_rendezvous/05_rmc_protocol.md
@@ -6,7 +6,7 @@
 
 ## Official Implementation
 
-As seen in HyperScape, this protocol is done over [RendezVous](03_structure.md) data packets.
+As seen in HyperScape, this protocol is done over [RendezVous](03_structure) data packets.
 
 When a request is made, usually in a function going by `<protocol name>Protocol::Call<method name>`, a call context is created and containers in memory for data returned by the server are associated with **return value pointers**, with IDs from `[0, n)`, where n is the number of parameters.
 
@@ -18,10 +18,10 @@
 
 | Protocol                                                                     | Description                                                                                      | HyperScape-specific? |
 |------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|----------------------|
-| [`LoginProtocol`](01_rmc_protocols/loginprotocol.md)                       | Used for authenticating with an RMC server using a Ubisoft token.                                | ✖️                    |
-| [`CloudServersProtocol`](01_rmc_protocols/cloudserversprotocol.md)         | Used for listing datacenters for connecting to game servers.                                     | ✔️                    |
-| [`ApexAntitoxicityProtocol`](01_rmc_protocols/apexantitoxicityprotocol.md) | Currently unknown, possibly for managing bans and mutes.                                         | ✔️                    |
-| [`SessionProtocol`](01_rmc_protocols/sessionprotocol.md)                   | Presumably for creating, joining and leaving game sessions, but it is unknown what that entails. | ✔️                    |
+| [`LoginProtocol`](01_rmc_protocols/loginprotocol)                       | Used for authenticating with an RMC server using a Ubisoft token.                                | ✖️                    |
+| [`CloudServersProtocol`](01_rmc_protocols/cloudserversprotocol)         | Used for listing datacenters for connecting to game servers.                                     | ✔️                    |
+| [`ApexAntitoxicityProtocol`](01_rmc_protocols/apexantitoxicityprotocol) | Currently unknown, possibly for managing bans and mutes.                                         | ✔️                    |
+| [`SessionProtocol`](01_rmc_protocols/sessionprotocol)                   | Presumably for creating, joining and leaving game sessions, but it is unknown what that entails. | ✔️                    |
 | ...                                                                          | ...                                                                                              | ...                  |
 
 > [!NOTE]
diff --git a/README.md b/README.md
index 5c3c1ed..d3dd9f7 100644
--- a/README.md
+++ b/README.md
@@ -10,17 +10,17 @@
 ## Starting Pages
 
 If you're wanting to understand how to install and configure Scapegoat:
-- [Scapegoat: Overview](08_scapegoat/01_overview.md)
-- [Scapegoat: Installing and Using Scapegoat](08_scapegoat/03_install_and_use_scapegoat.md)
+- [Scapegoat: Overview](08_scapegoat/01_overview)
+- [Scapegoat: Installing and Using Scapegoat](08_scapegoat/03_install_and_use_scapegoat)
 
 If you're wanting to understand how the game works internally:
-- [General Information: Game Versions](01_general_information/01_game_versions.md)
-- [Internals of Hyperscape: Entrypoint](02_internals_of_hyperscape/01_entrypoint.md)
+- [General Information: Game Versions](01_general_information/01_game_versions)
+- [Internals of Hyperscape: Entrypoint](02_internals_of_hyperscape/01_entrypoint)
 
 ## Outline
 Hyperscape is made up of several components, each of which have been developed by different studios or licensed for different needs:
-- [Ubisoft Services: Structure](03_ubisoft_services/03_structure.md)
-- [RendezVous: Overview](04_rendezvous/02_overview.md)
-- [Storm: Overview](05_storm/01_overview.md)
-- [Apex: Overview](06_apex/01_overview.md)
-- [AnvilNext: Overview](07_anvilnext/01_overview.md)
\ No newline at end of file
+- [Ubisoft Services: Structure](03_ubisoft_services/03_structure)
+- [RendezVous: Overview](04_rendezvous/02_overview)
+- [Storm: Overview](05_storm/01_overview)
+- [Apex: Overview](06_apex/01_overview)
+- [AnvilNext: Overview](07_anvilnext/01_overview)
\ No newline at end of file

--
Gitblit v1.10.0