Home
Softono
Sanctuary

Sanctuary

Open source C#
21
Stars
16
Forks
2
Issues
7
Watchers
2 weeks
Last Commit

About Sanctuary

Sanctuary is an open source server emulator for the online game Free Realms, built from scratch in C using the .NET Framework. It allows players to connect and play using a Free Realms client paired with the OSFR Launcher. The project consists of core server components including a login server and gateway server, with support for SQLite databases configured via a database.json file. To use Sanctuary, users clone the repository, build the Sanctuary.Core solution in Release mode using Visual Studio 2022 with the .NET Framework development workload installed, configure their database connection path, and launch the Login and Gateway services before connecting through the game client. The project is licensed under the MIT License and welcomes community contributions through bug reports, feature requests, and code contributions.

Platforms

Web Self-hosted Windows

Languages

C#

Links

Contributors Forks Stargazers Issues MIT License


Logo

Sanctuary

Sanctuary is an open source server emulator for Free Realms built from scratch written in C#.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Product Name Screen Shot

(back to top)

Built With

  • CSharp

(back to top)

Getting Started

This repository only contains the server emulator for Free Realms. To play the game, you must also have a Free Realms client. You can download the client using the OSFR Launcher available here: OSFR Launcher.

Prerequisites

Before you can use this software, ensure you have the following installed:

  • Visual Studio 2022
    Make sure to include the .NET Framework development workload during installation.

Release

  1. Clone the repo
    git clone https://github.com/Open-Source-Free-Realms/Sanctuary.git
  2. Build the solution for Sanctuary.Core for Release
  3. Create a file named database.json in the Release folder located within the new bin folder
  4. Paste the following
     {
     "Database": {
         "Provider": "Sqlite",
         "ConnectionString": "Data Source=D:\\Games\\Free Realms\\sanctuary.db;"
     }
  5. Launch Sanctuary.Login, Sanctuary.Gateway
  6. Connect to the client

IMPORTANT: Update the Data Source file path (D:\Games\Free Realms\sanctuary.db) to match the location where your database files are stored.

NOTE: The following user should already exist, but if not then implement one with the following credentials:

1   admin   admin   EXmdPd5dbAcs58vZ0iCcPRtJkGdMePL2    10  0   1   1   2024-06-22 13:51:13.2736902+01:00   2024-07-14 01:57:45.8765645+00:00

(back to top)

Debug

  1. Clone the repo

    git clone https://github.com/Open-Source-Free-Realms/Sanctuary.git
  2. Build the solution for Sanctuary.Core for Debug

  3. Right-Click 'Manage User Secrets' for the following projects:

    • Sanctuary.Gateway
    • Sanctuary.Login
    • Sanctuary.Database
  4. Copy and paste the following configuration for SQLite into the secrets editor:

    
    {
      "Database": {
        "Provider": "Sqlite",
        "ConnectionString": "Data Source=D:\\Games\\Free Realms\\sanctuary.db;"
      }
    }
  5. Launch Sanctuary.Login, Sanctuary.Gateway

  6. Connect to the client

IMPORTANT: Update the Data Source file path (D:\Games\Free Realms\sanctuary.db) to match the location where your database files are stored.

(back to top)

Docker Compose

  1. Clone the repo
    git clone https://github.com/Open-Source-Free-Realms/Sanctuary.git
  2. Launch Docker Compose
  3. Connect to the client

(back to top)

Usage

To spawn an npc /npc spawn <NameId> <ModelId> [TextureAlias] TextureAlias is optional

For more examples, please refer to the Documentation

(back to top)

Roadmap

  • [ ] Feature 1
  • [ ] Feature 2
  • [ ] Feature 3
    • [ ] Nested Feature

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Top contributors:

contrib.rocks image

Acknowledgments

  • []()
  • []()
  • []()

(back to top)