A framework for modding and instrumenting games.

Related tags

Game development me3
Overview


Discussions Contributors Forks MIT + Apache-2.0 License

me3

A framework for modifying and instrumenting games.
Explore the docs »

Report Bug · Request Feature

About The Project

TODO: write me

(back to top)

Built With

(back to top)

Getting Started

me3 is simply a framework for building a host DLL that performs runtime modifications, however, a sample host is provided that supports Dark Souls 3 and a variety of integrations with the me3 framework. See below for instructions on using it.

Prerequisites

  • Cargo
    • Windows: download and run [rustup‑init.exe][rustup-installer] then follow the onscreen instructions.
    • Linux:
      curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Visual Studio C++ Build Tools
    • Windows: download and run vs_BuildTools.exe then follow the onscreen instructions.
    • Linux: install the mingw64 packages provided by youru distribution. Example (Fedora):
      dnf install mingw64-binutils mingw64-gcc

Usage

  1. Clone the repo
    git clone https://github.com/garyttierney/me3.git
  2. Build the binaries
    cargo build [--release]
  3. Attach the sample host DLL to your game
    cargo run [--release] --package me3_launcher -- DarkSoulsIII.exe

(back to top)

Roadmap

  • Script bindings
    • Interactive console
  • Game overlay
  • Game profiler
  • Virtual filesystem
  • Runtime binary analysis
    • RTTI recovery
    • Function recovery
    • Function analysis
    • Memory access tracing

(back to top)

Contributing

See CONTRIBUTING.md

License

Distributed under either the Apache Software License 2.0 or MIT License. See LICENSE-APACHE and LICENSE-MIT for more information.

(back to top)

Contact

Project Link: https://github.com/garyttierney/me3

Discussions Board: https://github.com/garyttierney/me3/discussions

(back to top)

Acknowledgments

  • Mod Engine - prior art for runtime modification of FROMSOFTWARE games.
  • Mod Organizer 2 - inspiration for the VFS framework.

(back to top)

You might also like...
Cross-platform (including wasm) persistent key value store plugin for rust games/apps

bevy_pkv bevy_pkv is a cross-platform persistent key value store for rust apps. Use it for storing things like settings, save games etc. Currently, it

A sandbox library for making FAST voxel games

voxelize WIP A well-optimized web-based voxel engine. Development Before starting, make sure to install the following: rust node.js cargo-watch # clon

Bevy virtual Joystick for mobile games (Works with mouse on desktop)
Bevy virtual Joystick for mobile games (Works with mouse on desktop)

Bevy Virtual Joystick Create and use a Virtual Joystick in a UI for bevy Game Engine. Versions Aviable and compatible versions bevy VirtualJoystick 0.

Explicitly set sprite layers for sprites in Bevy games.
Explicitly set sprite layers for sprites in Bevy games.

extol_sprite_layer lets you specify the drawing order for sprites in your Bevy game using a separate component rather than via the z-coordinate of you

Highly customizable splash screen library for Bevy games.

bevy_intro_screen This is a versatile Bevy library designed to create engaging and customizable introductory screens for your game. Initially conceive

Hierarchical Task Network Planning deeply integrated with bevy, which I use in my games :P

Note that CI currently tests against a matrix of (windows, mac, linux) * (toolchain stable, nightly) * (cargo build, test, clippy), which ensures vali

Victorem - easy UDP game server and client framework for creating simple 2D and 3D online game prototype in Rust.

Victorem Easy UDP game server and client framework for creating simple 2D and 3D online game prototype in Rust. Example Cargo.toml [dependencies] vict

Engine / framework for creating highly customizable and user modable action RPG's

Rust RPG Toolkit PLEASE NOTE: this in early and very heavy development. API is subject to constant change, as it has newly transitioned from being a g

Heavy - an opinionated, efficient, relatively lightweight, and tightly Lua-integrated game framework for Rust

Heavy - an opinionated, efficient, relatively lightweight, and tightly Lua-integrated game framework for Rust Slow down, upon the teeth of Orange Heav

Owner
Gary Tierney
Software Engineer
Gary Tierney
A framework for building adventure games in Bevy.

Bevy_adventure A framework for building 3d adventure games in Bevy. preview.mp4 Features Interactive trait is the backbone of the framework, allowing

Hank Jordan 9 Jan 5, 2023
A Rust promise for games and immediate mode GUIs

⌛ poll-promise A Rust promise for games and immediate mode GUIs Description poll-promise is a Rust crate for polling the result of a concurrent (e.g.

Embark 82 Dec 17, 2022
An ergonomic physics API for bevy games.

Heron An ergonomic physics API for 2d and 3d bevy games. (powered by rapier) How it looks like fn main() { App::build() .add_plugins(DefaultPlug

Jonathan Cornaz 313 Dec 16, 2022
A frontend to Assets purchased on Epic Games Store

Epic-Asset-Manager A frontend to Assets purchased on Epic Games Store Current Screenshot Install Arch Linux Use the AUR package Build flatpak meson _b

Acheta Games 202 Jan 3, 2023
A single-threaded polling-based Rust async executor suitable for use in games, embedded systems or WASM.

simple async local executor An Enlightware® software. Overview A single-threaded polling-based executor suitable for use in games, embedded systems or

Enlightware GmbH 16 Nov 15, 2022
Synchronize games from other platforms into your Steam library

BoilR Description This little tool will synchronize games from other platforms into your Steam library, using the Steam Shortcuts feature. The goal is

Philip Kristoffersen 823 Jan 9, 2023
A simple camera for properly displaying tile-based low resolution pixel perfect 2D games in bevy.

Bevy Tiled Camera A simple camera for properly displaying low resolution pixel perfect 2D games in bevy. The camera will adjust the viewport to scale

sark 10 Oct 5, 2022
A single-threaded executor for deferred async code for games.

This crate provides a single-threaded, sequential, parameterized async runtime. In other words, this creates coroutines, specifically targeting video game logic, though cosync is suitable for creating any sequences of directions which take time.

Jonathan Spira 49 Dec 9, 2022
Using USBPcap to side-step anticheat in games, in order to reroute rumble packets to sex toys via The Buttplug Sex Toy Control Library

Using USBPcap to side-step anticheat in games, in order to reroute rumble packets to sex toys via The Buttplug Sex Toy Control Library.

qDot 23 Jan 3, 2023
Wein2D.js bindings for creating browser games in Rust using WebAssembly.

Wein2D.js-WASM Wein2D.js bindings for creating browser games in Rust using WebAssembly. Wein2D.js-WASM requires Wein2d.js to be loaded in the same doc

DevTaube 1 Apr 14, 2022