Two Main Systems
Choose the approach that fits your project's complexity.
{system.title}
{system.tag}{system.description}
{system.link && ( Learn more )} {system.extra && ({system.extra}
)}
### Easiest way to use Epic Online Services in Godot 4.2+ (includes demo project)
Supercharge your Godot 4.2+ workflow with GDAI MCP – the ultimate Godot MCP server that lets AI tools like Claude,
Cursor, Windsurf, VSCode and more automate scene creation, node editing, reading godot errors, creating scripts,
debugging, and more.
Vibe code like never before!
### 🔗 **[https://gdaimcp.com](https://gdaimcp.com?ref=eosg-readme)**
# High Level Epic Online Services
Following are the main classes in High Level Epic Online Services. They also have documentation in the Godot Editor:
- ### HPlatform
- ### HAuth
- ### HAchievements
- ### HFriends
- ### HStats
- ### HLeaderboards
- ### HLobbies
- ### HP2P
- ### HLog
A basic example of using High Level EOS:
```GDScript
# In main script
extends Node
func _ready() -> void:
# Setup HEOS Logs
HLog.log_level = HLog.LogLevel.INFO
var credentials = HCredentials.new()
credentials.product_name = "PRODUCT_NAME_NAME"
credentials.product_version = "PRODUCT_VERSION_HERE"
credentials.product_id = "PRODUCT_ID_HERE"
credentials.sandbox_id = "SANDBOX_ID_HERE"
credentials.deployment_id = "DEPLOYMENT_ID_HERE"
credentials.client_id = "CLIENT_ID_HERE"
credentials.client_secret = "CLIENT_SECRET_HERE"
# optional
#credentials.encryption_key = "ENCRYPTION_KEY_HERE"
var setup_success := await HPlatform.setup_eos_async(credentials)
if not setup_success:
printerr("Failed to setup EOS. See logs for more details")
return
# Setup Logs from EOS
HPlatform.log_msg.connect(_on_eos_log_msg)
var log_res := HPlatform.set_eos_log_level(EOS.Logging.LogCategory.AllCategories, EOS.Logging.LogLevel.Info)
if not EOS.is_success(log_res):
printerr("Failed to set logging level")
return
HAuth.logged_in.connect(_on_logged_in)
# During development use the devauth tool to login
HAuth.login_devtool_async("localhost:4545", "CREDENTIAL_NAME_HERE")
# Or login without any credentials
# await HAuth.login_anonymous_async()
func _on_logged_in():
print("Logged in successfully: product_user_id=%s" % HAuth.product_user_id)
# Example: Get top records for a leaderboard
var records := await HLeaderboards.get_leaderboard_records_async("LEADERBOARD_ID_HERE")
print(records)
func _on_eos_log_msg(msg: EOS.Logging.LogMessage) -> void:
print("SDK %s | %s" % [msg.category, msg.message])
```
# GDextension Epic Online Services
## Features
- Authentication (Epic Games, Steam, Discord, Anonymous etc)
- Social Overlay on Windows
- Achievements
- Stats & Leaderboards
- Lobby, Sessions and Multiplayer
- Voice
- Metrics
- Mods
- Player/Title data storage
- Progression Snapshot
- Reports and Sanctions
- Ecommerce (Ecom Epic Games Store)
- AntiCheat
#### [View Current Project Status](#current-project-status)
## Simple P2P Example
A simple demo showcasing P2P multiplayer using Epic Online
Services: [Click Here](https://github.com/3ddelano/EOSGP2PInterfaceTestGame)
## Support Development
#### Making this project took a lot of time and effort, reading the Epic Online Services documentation countless times and testing each method in Godot. I would really appreciate if you could support the project in any way.
- Android
- iOS
- Cross platform lobbies
- iOS
- macOS
## How does it work
This project uses GDExtension to wrap the `Epic Online Services C SDK` so that it can be easily used in Godot using
GDScript, C#, etc with similar class hierarchy and static type support. It makes use of signals for sending events like
user login, logout, achievement unlock, etc.
## Installation
This is a regular plugin for `Godot 4.2+`. To install the plugin follow the steps below:
#### **Method 1: Install from Asset Library**
1. Asset Library link: [View the plugin on Godot Asset Library](https://godotengine.org/asset-library/asset/2453)
2. In the Godot editor, navigate to the `AssetLib` tab, and in the search bar type `EOSG`.
3. Click on the plugin with name `Epic Online Services Godot (EOSG)` by `3ddelano`
4. In the popup that opens, click the `Download` button.
5. Once the download is done, click the `Install` button.
6. Goto `Project->Project Settings->Plugins` and enable the `Epic Online Services Godot 4.2+ (EOSG)` plugin.
7. Restart the godot editor.
8. You can now use the plugin. Head to the [Documentation](#) for more information on how to use the plugin.
#### **Method 2: Install from GitHub**
1. Goto the Releases section and download
the [latest release](https://github.com/3ddelano/epic-online-services-godot/releases/latest)
2. Extract the zip file and copy the `addons/epic-online-services-godot` folder into the `res://addons/` folder of your
project. If the `res://addons` does not exist, create it.
3. In the Godot editor, goto `Project->Project Settings->Plugins` and enable the
`Epic Online Services Godot 4.2+ (EOSG)` plugin.
4. Restart the godot editor.
5. You can now use the plugin. Head to the [Documentation](#) for more information on how to use the plugin.
## Development Setup
#### Pre-requisites
- Godot Engine 4.2+ (Get it here [Godot Engine Download](https://godotengine.org/download/))
- Epic Online Services C SDK (Download from [Epic Developer Portal](https://dev.epicgames.com/portal/sdk))
- Make sure you have accepted the Terms and Conditions
for [Epic Online Services](https://www.epicgames.com/site/en-US/tos?lang=en-US)
- A product registered with Epic Games Services (Make one for
free [Epic Developer Portal](https://dev.epicgames.com/portal))
To develop this plugin, follow the below steps:
1. Download/clone the repository.
1. Run the command:
```bash
git submodule update --init --recursive
```
1. Extract the `EOS C SDK` zip downloaded from Epic Games, rename it to `eos-sdk` and paste it in the `thirdparty/`
folder. Refer to the below folder structure.
1. Build the GDExtension plugin in debug mode (With debug symbols)
```shell
# In root folder
scons platform=All the EOS features you need, wrapped in a clean GDScript API.
These classes simplify interaction with EOS services. They include built-in documentation accessible directly within the Godot Editor.
{siteConfig.tagline}
Supported Platforms
This project utilizes Godot's{" "} GDExtension system to wrap the official Epic Online Services C SDK. This allows seamless integration and usage within Godot projects using GDScript, C#, or other supported languages. It provides a familiar class hierarchy and leverages Godot's signal system for handling asynchronous events like user login, achievement unlocks, lobby updates, and more.
EOSG
{" "}
or{" "}
Epic Online Services Godot
.
.zip
{" "}
file from GitHub.
addons/epic-online-services-godot
{" "}
folder into your project's{" "}
res://addons/
{" "}
folder (create it if needed).
After installation, you can start using the{" "}
EOS
{" "}
and{" "}
H
{" "}
classes in your scripts.
EOS
{" "}
and{" "}
IEOS
{" "}
classes.
>
),
icon: (
),
color: "purple",
},
];
export function MainSystemsSection() {
return (
Choose the approach that fits your project's complexity.
{system.description}
{system.link && ( Learn more )} {system.extra && ({system.extra}
)}See the plugin running on multiple platforms.
Watch the tutorial playlist on YouTube for a visual guide and examples.
Watch the playlist on YouTube →Creating and maintaining this plugin requires significant time and effort. If you find this project helpful, please consider supporting its development.
Need help, have suggestions, or found a bug?
{SUPPORT_DATA.username}