Introduction
Understand the purpose, vision, and structure of the Ambitions Framework — a modern foundation designed to build scalable, modular, and high-quality FiveM servers.
What is a framework ?
In software development, a framework is a reusable and structured foundation that provides essential tools, patterns, and logic to help build applications faster and more reliably. Whether in web development (e.g. Laravel, React) or game engines (e.g. Unity, Unreal), a framework exists to handle the boilerplate — so developers can focus on building features.
A good framework:
Provides reusable tools
Encourages consistent patterns
Handles complex behavior behind the scenes
Promotes scalability and modularity
What is a framework in FiveM ?
In the context of FiveM, a framework manages core gameplay systems like:
Player data (accounts, jobs, inventories, etc.)
Database communication
Server-client synchronization
Permissions, callbacks, events, etc.
Frameworks like ESX, QBCore, or vRP introduced structure to FiveM roleplay servers — but many of them grew too complex, too rigid, or too legacy-bound over time.
Most public frameworks today sacrifice performance, readability, or flexibility in favor of compatibility or plug-and-play features. That’s where Ambitions steps in.
Why Ambitions Framework ?
Ambitions was created with one goal in mind:
Provide a lightweight, scalable, and modern development framework for FiveM — made for serious projects.
Unlike traditional frameworks, Ambitions does not force you into a predefined ecosystem. It gives you complete freedom to structure your server as you wish, while still providing clean and battle-tested tools for the most common use cases.
Ambitions provides its own branded solutions (such as inventory, banking, etc.) that are deeply optimized for native compatibility with the framework, ensuring smoother and tighter integration. However, you are never locked in.
⚠️ In its current development phase, Ambitions assumes that you have basic knowledge of Lua and FiveM development. This is not a plug-and-play solution.
Eventually, the goal is for anyone to be able to install the framework with two or three strongly recommended scripts, and then freely build out the rest of their server as they see fit.
Our Vision
Developer-first → minimal, documented, and predictable
Modular → plug in only what you need, discard the rest
Scalable → built to grow with your server’s needs
Performant → strict control of resource usage and SQL communication
Ambitions is not a one-size-fits-all solution — it's a clean, extensible base you can shape into any roleplay ecosystem.
Key Features & Design Principles
Class-based architecture
Every system (player, job, society, accounts, etc.) is designed as a class with scoped data. That means clean code, predictable behavior, and less runtime memory pollution.
Data caching and session-limited SQL
Ambitions fetches only once per session what is needed and stores it in cache:
When a player connects: data is loaded and cached
During session: no redundant SQL unless explicitly required
On disconnect: changes are flushed back to the database
This results in fewer queries, better server performance, and easier debugging.
However, some additional queries may still occur during the session when justified:
⚠️ Only essential or safety-enhancing queries (e.g. preventing data rollback, forced updates, or transactional writes) are allowed mid-session. These remain strictly minimal.
Modular & extensible structure
You can:
Add custom systems (e.g. crafting, housing, gangs)
Replace or override existing logic
Keep concerns separated and maintainable
Each module is isolated and can rely on base classes or shared logic exposed through the Ambitions library.
Built-in Function Library
Ambitions includes a powerful built-in utility library — a central piece of the framework that helps you develop faster, cleaner, and more robust Lua code. This includes:
General-purpose tools (e.g. string formatting, table manipulation, math helpers)
Vector utilities
Logging, color formatting, and error handling
Custom callback & request system
Wrapper methods for FiveM-native operations
These functions promote clean and reusable logic across all modules.
The library helps you write faster, cleaner, and more secure Lua code — and ensures consistency across all your modules.
Accessing the Library
Unlike other frameworks like ESX (ESX.ShowNotification) or QBCore (QBCore.Functions.TriggerCallback), Ambitions does not expose a global namespace.
Instead, it uses an explicit importation system — giving you full control over what you load, and avoiding global scope pollution.
You can browse all available functions, categories, and usage examples in the Function Library Reference section of the documentation.
No forced ecosystem
Ambitions does not require a specific inventory, UI framework, admin menu, or job system. Choose what fits your project — and integrate it cleanly.
It does however offer a growing suite of first-party scripts fully branded and optimized for Ambitions. These scripts are guaranteed to integrate seamlessly and offer a polished experience out-of-the-box.
⚠️ Ambitions assumes you know how to manage a server environment and basic Lua. It’s not made for plug-and-play communities.
✅ In the future, the goal is to provide clear documentation and recommended resources so even beginner developers can easily set up and customize their server.
What’s next ?
This section of the documentation will walk you through:
Installing the framework
Understanding the core architecture
Writing your first module
Leveraging the built-in library functions
Whether you're migrating from another system or starting fresh, this is the base you need to build something clean, custom, and modern.
Reminder: Ambitions is under active development. Refer to the roadmap and GitHub releases for new features and stability updates.
Last updated