#relay-server #pocket #effect #mass #game #logic

pocket-relay-database

Module for isolating the database logic from the Pocket Relay servers

7 unstable releases (3 breaking)

0.4.0 Mar 21, 2023
0.3.2 Mar 19, 2023
0.2.1 Jan 10, 2023
0.1.0 Dec 13, 2022

#6 in #pocket

25 downloads per month
Used in 6 crates (4 directly)

MIT license

31KB
633 lines

Pocket Relay

Mass Effect 3 Server Emulator / Private Server

License Build

Discord Server (discord.gg/yvycWW8RgR) | Website (pocket-relay.pages.dev)

The master branch contains the latest changes and may not be stable for general use, if you would like to compile a stable version from source its recommended you use a specific tag rather than master

Pocket Relay Is a custom implementation of the Mass Effect 3 multiplayer servers all bundled into a easy to use server with a Dashboard for managing accounts and inventories.

With Pocket Relay, you can play Mass Effect 3 multiplayer offline, over LAN, or even over WAN as a public server.

Visit the website for more information.

🌐 EA / BioWare Notice

The Pocket Relay software, in all its forms, is not supported, endorsed, or provided by BioWare or Electronic Arts. Mass Effect is a registered trademark of Bioware/EA International (Studio and Publishing), Ltd in the U.S. and/or other countries. All Mass Effect art, images, and lore are the sole property of Bioware/EA International (Studio and Publishing), Ltd and are reproduced here to assist the Mass Effect player community. All other trademarks are the property of their respective owners.

📖 Starting your own server

For guides check out the Website (pocket-relay.pages.dev) or refer directly to the Server Setup Guide

📦 Direct Downloads

Below is a table of the download links for the different platforms

Platform Download
Windows Download
Linux Download

You can find individual releases on the Releases page

🔧 Configuration

To configure the server, such as changing ports, refer to the Configuration Documentation.

⚙️ Features

  • Origin Support: Connects to official servers to authorize Origin/EA Launcher accounts (configurable).
  • Origin Fetching: Loads player data from official servers for Origin accounts (configurable).
  • Portable & Platform Independent: Low hardware requirements, platform-independent (data stored in a 'data' folder).
  • Unofficial Support: Allows playing with unofficially licensed Mass Effect 3 copies.
  • Docker Support: Includes a Dockerfile for containerized deployment in a small Alpine Linux container.
  • Dashboard: Management dashboard with leaderboards, account management, game monitoring, and more.

🚀 Manual Building

Build instructions can be found here.

Note Building the server can be resource-intensive.

If you are building for a version older than Windows 10 you will need to use Rust v1.75.0 or lower as Rust has dropped support for <10 after that. The server should compile on this version but future breaking changes to the project may cause that to no longer be the case.

Makefile.toml - Mainly used for maintainers

This project also includes a Makefile.toml for cargo make however its more intended for maintainers only in order to do cross compiling, building multiple versions in parallel, signing builds, creating docker releases etc

Requires installing https://github.com/sagiegurari/cargo-make

Building

Build Windows & Linux in parallel

cargo make -t build-all

Building just Windows

cargo make -t build-windows

[!NOTE] When building for Windows on a Windows host you can sign the executable by providing a SIGN_FILE (File path to the .pfx file to use for signing) and SIGN_PASSWORD (The password to the .pdf file) you will also need to obtain a copy of signtool.exe and set the SIGNTOOL_PATH to be the path to that file

After doing that Windows builds will be signed using the provided credentials

Building just Linux

cargo make -t build-linux

Docker images

[!IMPORTANT] The intended release must first be up on GitHub once its up on GitHub make sure to set the GITHUB_RELEASE_VERSION environment variable so the right version will be used make sure you don't include the v prefix just the version number (e.g 0.6.1)

The DOCKER_IMAGE_NAME env variable must be set to the intended docker image name (e.g jacobtread/pocket-relay)

Building the docker image

To build for the specific tag (Uses the version listed in the Cargo.toml):

cargo make -t build-docker-version

To build for the "latest" tag:

cargo make -t build-docker-latest

To build for both tags:

cargo make -t build-docker-all

Publishing docker images

To publish for the specific tag (Uses the version listed in the Cargo.toml):

cargo make -t publish-docker-version

To publish for the "latest" tag:

cargo make -t publish-docker-latest

To publish for both tags:

cargo make -t publish-docker-all

🧾 License

MIT License

Copyright (c) 2022 - 2024 Jacobtread

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Dependencies

~57MB
~1M SLoC