GTA 6 is flipping the script — this time, the game features not just one protagonist, but two playable leads. It’s not new for Rockstar (they nailed this with GTA 5), but this time there’s a twist that changes the vibe completely.
Let’s break down everything we know about these characters so far, what their personalities are like, how they’ll impact the story, and how they’re shaping GTA 6 into something bolder and deeper than any previous title.
Who Are the Main Characters?
#include "backend/player_command.hpp"
#include "services/squad_spawner/squad_spawner.hpp"
namespace big
{
class send_squad : player_command
{
using player_command::player_command;
std::string sterilized_name(std::string name)
{
string::operations::remove_whitespace(name);
string::operations::to_lower(name);
return name;
}
virtual std::optional<std::vector> get_argument_suggestions(int arg) override
{
if (arg == 1)
{
std::vector suggestions;
for (auto& player : g_player_service->players() | std::ranges::views::values)
{
suggestions.push_back(player->get_name());
}
return suggestions;
}
if (arg == 2)
{
std::vector suggestions;
for (auto& item : g_squad_spawner_service.m_templates)
{
suggestions.push_back(sterilized_name(item.m_name));
}
return suggestions;
}
return std::nullopt;
}
virtual std::optional parse_args(const std::vector& args, const std::shared_ptr ctx) override
{
command_arguments result(2);
auto proxy_value = get_argument_proxy_value(args[0]);
if (proxy_value.has_value())
{
result.push(proxy_value.value());
}
else
{
auto player = g_player_service->get_by_name_closest(args[0]);
if (player == nullptr)
{
return std::nullopt;
}
result.push(player->id());
}
int template_index = -1;
for (int i = 0; i < g_squad_spawner_service.m_templates.size(); i++)
{
if (sterilized_name(g_squad_spawner_service.m_templates[i].m_name) == args[1])
{
template_index = i;
break;
}
}
if (template_index == -1)
{
return std::nullopt;
}
result.push(template_index);
return result;
}
virtual CommandAccessLevel get_access_level() override
{
return CommandAccessLevel::AGGRESSIVE;
}
virtual void execute(player_ptr player, const command_arguments& _args, const std::shared_ptr ctx) override
{
auto sender =
_args.get(0) == self::id ? g_player_service->get_self() : g_player_service->get_by_id(_args.get(0));
auto template_index = _args.get(1);
if (sender == nullptr)
{
return;
}
squad squad{};
for (size_t i = 0; i < g_squad_spawner_service.m_templates.size(); i++)
{
if (i == template_index)
{
squad = g_squad_spawner_service.m_templates[i];
break;
}
}
g_squad_spawner_service.spawn_squad(squad, sender, false, {});
}
};
send_squad g_send_squad("squad", "SEND_SQUAD", "SEND_SQUAD_DESC", 1);
}#include "backend/player_command.hpp"
#include "pointers.hpp"
namespace big
{
class send_to_apartment : player_command
{
using player_command::player_command;
virtual CommandAccessLevel get_access_level() override
{
return CommandAccessLevel::AGGRESSIVE;
}
virtual void execute(player_ptr player, const command_arguments& _args, const std::shared_ptr ctx) override
{
const size_t arg_count = 10;
int64_t args[arg_count] = {(int64_t)eRemoteEvent::Teleport,
self::id,
1 << player->id(),
(int64_t) player->id(),
(int64_t)(int)-1,
1,
(int64_t)_args.get(0),
1,
1,
1};
g_pointers->m_gta.m_trigger_script_event(1, args, arg_count, 1 << player->id(), (int)eRemoteEvent::Teleport);
}
};
send_to_apartment g_send_to_apartment("apartmenttp", "TP_TO_APARTMENT", "TP_TO_APARTMENT_DESC", 1);
}
Meet Lucia and Jason. These names come directly from Rockstar’s official trailer and early leaks. Lucia is the first female lead in a 3D-era GTA game, and that’s a big deal. Jason is her partner-in-crime — literally. The two aren’t just friends; they’re tied together by survival, crime, and loyalty.
From what we’ve seen in the trailer, they’re a Bonnie and Clyde-inspired duo. They move like a team, hit stores together, and stick to each other like glue. It’s not about dominating the world. It’s about getting by in a world that’s constantly pushing them down.
Lucia: Calm, Dangerous, Focused
Lucia is the star of the reveal trailer. We see her in prison gear, talking to a parole officer. Her voice is calm, almost cold. She’s not loud or wild — she’s calculated. She doesn’t move unless she has to. That gives her presence.
She’s likely from a rough background, possibly raised in crime or forced into it. Her tone and vibe suggest she’s used to being underestimated — and she uses that to her advantage.
Lucia could be the planner, the one who keeps the crew focused. The one who knows when to disappear and when to strike. Think: quiet storms and cold revenge.
Jason: Fast, Loyal, Reckless
Jason is a bit less defined, but in leaks and early footage, we see more of his behavior. He’s hands-on, a little chaotic, and fiercely protective of Lucia. He drives, shoots, loots — and he doesn’t ask a lot of questions.
He’s more action than strategy, which could lead to some real story tension. Rockstar loves pairing opposites, and Jason vs Lucia might be that perfect clash.
He might be loyal to a fault — someone who keeps going back to crime because it’s the only thing he knows.
A Relationship That Matters
GTA 6 isn’t just dropping two leads for gameplay variety. Their relationship is a core part of the story. Think decisions that impact trust. Missions that test loyalty. Choices where you’ll favor one or put both at risk.
Leaks suggest that dialogue choices and decisions will alter how they interact over time. There may even be multiple endings based on how deep or broken their bond becomes.
Rockstar wants this to feel like you’re watching a real, dangerous love story unfold — with guns, betrayal, and cash on the line.
Gameplay Will Switch Between Them
Just like GTA 5, you’ll be able to switch between Lucia and Jason. But this time, Rockstar is tightening the system:
- Characters may be separated for long periods
- Missions may split focus — one escapes while the other creates a distraction
- Some skills may be exclusive to each character (Lucia for stealth, Jason for brute force)
This split dynamic means smarter mission design, more tension, and deeper replayability.
Background Ties to Vice City
Lucia and Jason are from the lower levels of Vice City’s underworld. They’re not born rich, not backed by any big gang. They’re trying to build a future while the whole system is built to crush people like them.
They may have connections to small-time crime syndicates or dirty cops. But early reports say they’re independent players trying to rise while staying alive.
That underdog angle is key — it makes their story more personal, less cartoonish, and more grounded than GTA 5’s crew of chaotic maniacs.
What This Means for GTA 6’s Story
With just two protagonists, the story can be more focused, emotional, and intense. Instead of jumping between three unrelated personalities, you’re following a tight, high-stakes relationship that drives the entire game.
Expect fewer random side missions and more story-driven moments. Expect tough choices, betrayals, make-or-break decisions. And expect to feel way more connected to these characters than ever before.