AI prompts
base on A framework for modding and instrumenting games. <!-- markdownlint-disable no-inline-html first-line-h1 -->
<a name="readme-top"></a>
<br />
<div align="center">
<p align="center">
<img src="distribution/assets/me3.png" alt="me3 icon />
</p>
<h2 align="center">me<sup>3</sup></h2>
<p align="center">
<strong>
A framework for modifying and instrumenting games.
<br />
<a href="https://me3.readthedocs.io/"><strong>Explore the docs »</strong></a>
<br />
<br />
<a href="https://github.com/garyttierney/me3/discussions/categories/bug-reports">Report Bug</a>
·
<a href="https://github.com/garyttierney/me3/discussions/categories/ideas">Request Feature</a>
</strong>
</p>
[![Discussions][discussions-shield]][discussions-url]
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![MIT + Apache-2.0 License][license-shield]][license-url]
</div>
- [About The Project](#about-the-project)
- [Installation](#installation)
- [Developer Quickstart](#developer-quickstart)
- [Prerequisites](#prerequisites)
- [Usage](#usage)
- [Contributing](#contributing)
- [License](#license)
- [Contact](#contact)
- [Acknowledgments](#acknowledgments)
<!-- ABOUT THE PROJECT -->
## About The Project
me3 is a tool that extends the functionality of FROMSOTWARE games running on Windows and Linux via Proton.
Currently it supports the following titles:
- ELDEN RING
- ELDEN RING: NIGHTREIGN
- Armored Core VI: Fires of Rubicon
## Installation
> [!IMPORTANT]
> Follow the [user guide](https://me3.readthedocs.io/en/latest/#quickstart)
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- GETTING STARTED -->
## Developer Quickstart
### Prerequisites
- Cargo
- Windows: download and run [rustup‑init.exe][rustup-installer] then follow the onscreen instructions.
- Linux:
```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
- Visual Studio C++ Build Tools
- Windows: download and run [vs_BuildTools.exe][buildtools-installer] then follow the onscreen instructions.
- Linux: Acquire the Windows SDK using `xwin`
```bash
cargo install xwin && xwin --accept-license splat --output ~/.xwin
```
And configure Cargo to link with lld-link and use the binaries from xwin in `~/.cargo/config.toml`
```toml
[target.x86_64-pc-windows-msvc]
linker = "lld-link"
runner = "wine"
rustflags = [
"-Lnative=/home/gtierney/.xwin/crt/lib/x86_64",
"-Lnative=/home/gtierney/.xwin/sdk/lib/um/x86_64",
"-Lnative=/home/gtierney/.xwin/sdk/lib/ucrt/x86_64"
]
```
### Usage
1. Clone the repo
```sh
git clone https://github.com/garyttierney/me3.git
```
2. Build the binaries
```sh
cargo build [--release]
```
3. Attach the sample host DLL to your game
```sh
cargo run -p me3-cli -- launch -g elden-ring
```
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- CONTRIBUTING -->
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md)
<!-- LICENSE -->
## License
With the exception of the [me3 logo](distribution/assets/me3.ico), this project is distributed under the terms of both the Apache Software License 2.0 and MIT License. See [LICENSE-APACHE] and [LICENSE-MIT] for more information.
The me3 logo is not available under any license - all rights are reserved.
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- CONTACT -->
## Contact
Project Link: [https://github.com/garyttierney/me3](https://github.com/garyttierney/me3)
Discussions Board: [https://github.com/garyttierney/me3/discussions](https://github.com/garyttierney/me3/discussions)
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- ACKNOWLEDGMENTS -->
## Acknowledgments
<!-- markdown-link-check-disable -->
- [Mod Engine](https://github.com/katalash/ModEngine/tree/master/DS3ModEngine) - prior art for runtime modification of FROMSOFTWARE games.
- [Mod Organizer 2](https://github.com/ModOrganizer2/modorganizer/) - inspiration for the VFS framework.
- [Elden Ring Reforged](https://www.nexusmods.com/eldenring/mods/541) - provided invaluable feedback on the end-user perspective
- [Dassav](https://github.com/dasaav-dsv) - work on compatibility across a variety of FROMSOFTWARE titles.
- [Skadi](https://twitter.com/Skadi_sbw) - [me3 icon](./distribution/assets/me3.png) artwork
<!-- markdown-link-check-enable -->
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- MARKDOWN LINKS & IMAGES -->
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
[rustup-installer]: https://static.rust-lang.org/dist/rust-1.87.0-x86_64-pc-windows-msvc.msi
[buildtools-installer]: https://aka.ms/vs/17/release/vs_BuildTools.exe
[discussions-shield]: https://img.shields.io/github/discussions/garyttierney/me3
[discussions-url]: https://github.com/garyttierney/me3/discussions
[contributors-shield]: https://img.shields.io/github/contributors/garyttierney/me3.svg?style=flat
[contributors-url]: https://github.com/garyttierney/me3/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/garyttierney/me3.svg?style=flat
[forks-url]: https://github.com/garyttierney/me3/network/members
[license-shield]: https://img.shields.io/badge/license-MIT%2FApache--2.0-green?style=flat
[license-url]: https://github.com/garyttierney/me3/blob/main/LICENSE-APACHE
", Assign "at most 3 tags" to the expected json: {"id":"14019","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"