Important
This documentation, much like the resource, is currently in a beta state and is not final. The data types, events, and triggers described in this documentation may change in future versions as the project evolves.
Native Emotes is a RedM resource that provides a fully native implementation of the emotes UI for Red Dead Redemption 2 multiplayer servers. This resource allows developers to create custom emotes systems using the game's original emotes interface, complete with all the visual elements players expect from the authentic Red Dead experience.
Unlike traditional web-based or custom UI implementations, Native Emotes leverages the game's built-in interface systems to provide seamless integration with the player's existing UI experience.
If you're missing functionality or have ideas for new features that would improve Native Emotes, please don't hesitate to open an issue. Feature requests from the community are always welcome, and feedback about use cases and requirements helps shape the direction of this project!
This resource is provided free of charge and represents countless hours of development work. Like most RedM resources, it builds upon the game's existing functionality rather than being created from scratch - the underlying native functionality belongs to Rockstar Games.
While the RedM community is fantastic and there's certainly a space for paid resources, there's unfortunately a trend of knowledge being gatekept behind paywalls, making important development knowledge harder to access for the community.
For Server Owners: You're absolutely welcome to use Native Emotes on your servers without any restrictions beyond the license terms.
For Resource Developers: If you want to use this as a base for your own projects or distribute modified versions, please pay close attention to the license requirements. As stated in the GNU GPL v3 license, any distributed modifications must be shared under the same open source license. This ensures that improvements benefit the entire community rather than being locked behind paywalls.
The goal is to foster collaboration and shared knowledge, not to enable profiteering from freely contributed work. This is simply a request for license compliance - since the code is open source and properly licensed, you are free to do with it what the license permits. Ultimately, everyone should strive to make the whole of RedM a better place for all players and developers.
Native Emotes is licensed under the GNU GPL v3.
Native Emotes is built using a clean modular architecture that promotes maintainability and extensibility. The system is organized into focused modules with clear responsibilities:
emotes.lua- Main entry point, UI event processing, and external integration
dataview.lua- Low-level memory operations and data structures
The architecture uses dependency injection to manage module relationships, ensuring clean separation of concerns while maintaining high cohesion within each module. This design enables easy testing, maintenance, and future enhancements while providing a comprehensive event system for server integration.
This project builds upon the hard work and research of many talented individuals in the RedM community. Their contributions made this native emotes implementation possible:
- alloc8or's Native DB
- femga's RDR3 Discoveries
- gottfriedleibniz's Data View implementation
- MagnarRDC's Support
Thank you for considering contributing to Native Emotes! Please note that this project is released with a Contributor Covenant Code of Conduct. By participating in any way in this project, you agree to abide by its terms.
Before contributing, please take a moment to read the Contribution Guide to understand the development process and how to contribute.