Private server for Dragalia Lost, that runs entirely on device and offline.
Find a file
webmsgr 0933004cfe
Some checks failed
/ build (push) Failing after 9m56s
switch back
2025-08-05 16:12:29 -07:00
.forgejo/workflows switch back 2025-08-05 16:12:29 -07:00
.idea stuff 2025-06-25 21:46:39 -07:00
.vscode spellcheck + remove vscode settings 2025-07-30 01:06:51 -07:00
baker cargo fmt 2025-07-28 21:17:45 -07:00
data dont curse nintendo 2025-07-27 13:14:36 -07:00
omnicite use ubuntu and remove mypage stuff 2025-08-05 13:46:41 -07:00
omnicite_android_app replace makefile with taskfile 2025-07-28 16:39:11 -07:00
omnicite_baked cargo fmt 2025-07-28 21:17:45 -07:00
omnicite_embed cargo fmt 2025-07-28 21:17:45 -07:00
omnicite_gui_server updates 2025-07-25 16:00:07 -07:00
omnicite_headless only a fmt 2025-06-27 13:12:54 -07:00
omnicite_http cargo fmt 2025-07-28 21:17:45 -07:00
omnicite_msgpack dragon leveling 2025-07-25 18:17:27 -07:00
omnicite_msgpack_derive dragon leveling 2025-07-25 18:17:27 -07:00
omnicite_patch cargo fmt 2025-07-28 21:17:45 -07:00
omnicite_rotating cargo fmt 2025-07-28 21:17:45 -07:00
omnicite_types cargo fmt 2025-07-28 21:17:45 -07:00
omnicite_uniffi cargo fmt 2025-07-28 21:17:45 -07:00
router update to 1.88 2025-06-27 12:13:45 -07:00
router_macros update to 1.88 2025-06-27 12:13:45 -07:00
uniffi-bindgen license under zlib license 2025-07-25 21:06:35 -07:00
.dockerignore try fix 2025-07-28 17:19:33 -07:00
.gitignore replace makefile with taskfile 2025-07-28 16:39:11 -07:00
about.hbs update license template to be less storage 2025-07-26 13:18:47 -07:00
about.toml license under zlib license 2025-07-25 21:06:35 -07:00
baker.watch pain, maybe even some suffering 2025-06-12 21:56:11 -07:00
Cargo.lock update 2025-08-01 22:46:25 -07:00
Cargo.toml license under zlib license 2025-07-25 21:06:35 -07:00
deny.toml no 2025-07-25 21:35:59 -07:00
gui-server.watch who even uses this 2025-06-28 16:02:56 -07:00
LICENSE license under zlib license 2025-07-25 21:06:35 -07:00
logo.png yyay 2025-06-30 14:59:55 -07:00
logo.svg yyay 2025-06-30 14:59:55 -07:00
README.md spellcheck + remove vscode settings 2025-07-30 01:06:51 -07:00
Taskfile.yml update 2025-08-01 22:46:25 -07:00

Omnicite2

Omnicite2 (or just Omnicite) is a private server for the EOS gacha game Dragalia Lost. It is designed to run on device, either as a standalone app, or embedded within the main game.

Acknowledgements

This project would not be possible without the great work of everyone involved with Dragalia Lost Revived. This project is based on both Orchis and Dawnshard.

Supported platforms:

  • Android (arm64-v8a, armeabi-v7a, x86_64)
  • Windows/Linux/macOS (For development)

Features

  • Runs entirely offline and on-device: No internet connection is required to play. All implemented features are available offline. (Except the 3 comics.)
  • Rotating banners: A new rate up banner every week! (Not that it matters, since the static banners allow you to obtain every character)
  • Can be embedded directly within the DL app: The server can be embedded within the app, making the experience seamless. (And you don't have to patch!)

Downsides

  • No online features: Omnicite2 does not support any online features, such as co-op, guilds, or friends.

TODOS:

  • Make the code less garbage
  • Custom assetbundles + CDN
  • Finish implementing routes

Installation (Separate App)

Requirements

  • Android SDK 35+
  • Android NDK 29+
  • Latest Rust stable
  • Rust targets aarch64-linux-android armv7-linux-androideabi x86_64-linux-android
  • cargo-ndk (install with cargo install cargo-ndk)
  • Task
  • Java 17+ (OpenJDK is recommended)

Steps

Installing the android app

  1. Run task android to build the project. The unsigned apk will be located in omnicite_android_app/app/build/outputs/apk/release/app-release-unsigned.apk.
  2. Sign the apk with whatever method you prefer.
  3. Install the apk on your device.

Patching the original game

  1. Start Omnicite2 in the app. (The server must be running during the patching process.)
  2. Follow the instructions here to setup DragaliaPatch correctly. (DON'T PATCH YET!)
  3. Patch with the URL http://localhost:3030
  4. Wait for the patch to complete.
  5. Install, and enjoy!

Installation (Embedded Server) (Beta)

Requirements

Same as above

Steps

  1. Running task patch will generate two patched apks out/omnicite-32.apk and out/omnicite-64.apk. These are the patched apks that contain the server embedded within it. There is no need to patch, and the app will not conflict with the patched game. (It doesn't have the same package name).
  2. Sign and install the apk for your device. (32 bit for armeabi-v7a, 64 bit for arm64-v8a)

Development

When developing in an android emulator, patch with the url http://10.0.2.2:3030 instead of http://localhost:3030, then use task run or task run-headless to run the server on the host machine (for easier development).

Crate explanations:

  • baker: Used to generate the source files in the omnicite_baked crate. Run with task bake
  • omnicite: The main library, contains all server logic.
  • omnicite_baked: Contains all the baked data, such as characters, dragons, etc.
  • omnicite_embed: Embedded server.
  • omnicite_gui_server: A gui server, for dev and debugging
  • omnicite_headless: A headless server, for dev and debugging
  • omnicite_http: Contains http types and logic.
  • omnicite_msgpack: Contains messagepack serialization and deserialization logic.
  • onnicite_msgpack_derive: Contains derive macros for messagepack serialization and deserialization.
  • omnicite_rotating: Contains rotating logic, for things such as banners (and maybe events in the future).
  • omnicite_patch: Patcher program to patch the original game with the embedded server.
  • omnicite_types: Contains types shared by all of the crates.
  • omnicite_uniffi: Contains the uniffi bindings for the omnicite crate.
  • router: Contains an implementation of a http router.
  • router_macros: Proc macro for creating routers.