I’m starting this thread to document and discuss my exploration into building a new core framework for FiveM roleplaying servers.
Having worked with FiveM about four years ago and spent the intervening time as a Senior/Tech Lead Software Developer, I’m now returning to FiveM development in my spare time purely for enjoyment. This project is about applying some structured development principles to create something potentially useful and hopefully, eventually, open source.
Why Not Just Use ESX or QBCore?
A fair question is ‘Why not just use ESX or QBCore?’. Both are incredibly feature-rich frameworks with massive communities, and they’ve powered countless servers. However, for this personal project, my motivations for building something new are:
-
Clean Slate: I wanted the challenge and learning experience of starting fresh, without inheriting legacy code or design decisions that might exist in frameworks that have evolved over many years.
-
Architectural Exploration: To experiment with specific architectural choices, particularly a strict backend/frontend separation and potentially different approaches to state management and modularity.
-
Performance Focus: To see if building with certain performance considerations paramount from the beginning can yield tangible benefits.
Potential Advantages of This Approach:
The aim here isn’t necessarily to replace existing frameworks for everyone, but to explore an alternative that prioritizes a few key areas:
-
Performance: Building with optimization in mind from day one.
-
Modern Practices & Clean Slate: Starting fresh allows adhering strictly to current Lua best practices and avoiding architectural complexities or potential ‘bloat’ that might accumulate in very large, long-lived projects.
-
Developer Experience: Aiming for a clear, consistent, and well-documented API.
Current Focus:
Development right now is centered on establishing those essential pillars. This involves creating robust handling for player data, authentication, and state persistance. It also includes building out the core logic for inventory and character management. Alongside that, work focuses on fundamental gameplay systems like player needs, permissions management, basic death/respawn handling, integrated localization support, and providing necessary utilities like a core notification system API.
Open Source & Future Plans:
The goal remains to eventually release this foundation as an open-source resource. I also intend to use this core myself to build specific RP gameplay scripts on top of it, further testing and demonstrating its use case, also they will be available open-source.
Feel free to share any thoughts or suggestions - I’m open to hearing them!
Let me know what you think! Cheers.