DirkScripts Logo

Login With FiveM

Login

🀼 Multicharacter
β€Ί
Features
β€Ί

Backstories

Backstories

Backstories are admin-built character archetypes that players pick on character creation. Each one comes with its own scripted intro scene, starter inventory, and (optionally) Discord-role-gated access. They're the same thing as the Lifestyles referenced in the Lua API β€” internally the schema field is lifestyles, but the player-facing label is "Backstory".


What a Backstory Contains

Each entry has four tabs in the admin editor:

TabPurpose
GeneralName, label, description β€” what the player sees when choosing.
AccessLocked toggle. When on, you can gate the backstory behind Discord role IDs so only specific players can pick it.
ItemsStarter inventory β€” compact SelectItem list with inline expand for picking item + quantity.
ScenesOne or more scripted intro scenes that play after the player confirms their choice.

The Intro (multichar 2.0)

Each backstory can have an intro: a short film a new character plays through the first time they load in. Open it with Edit intro on the backstory's card in Config Studio. The editor works like a video editor:

  • Scenes run along the top of the timeline. A scene is one place, with its own time of day, weather and how busy the streets are. It begins with a fade, a cut or a blend, and it can be marked as not skippable.
  • Tracks underneath hold everything that happens: camera shots, what your character does, what they hold and how they walk, other people in the scene, screen effects, title cards and sounds.
  • The library on the left has ready-made moves, people, props, walk styles, effects, text and transitions. Drag one onto the timeline, or click it to add it at the playhead.
  • Places and shots are set in game. Frame it in game opens a free camera (F keeps the shot), Set to where I stand uses your position, and Walk it in game records a route as you walk it.
  • Play in game runs the intro on your own character, as staged, and brings you back to where you stood. You can also play from any scene.

Changes are staged: Apply puts them on the backstory, and Config Studio's Save changes keeps them. /testbackstory [id] replays a backstory's intro on your character.

Backstories made before 2.0 keep playing their old intro scenes until an intro is built in the editor.


Player Flow

  1. Player clicks Create New Character in the multichar selector.
  2. After clothing customisation, they see the backstory list (filtered by their Discord roles if any backstories are locked).
  3. They pick one β†’ scripted scene plays β†’ character spawns with the starter items granted.

Discord Role Gating

Inside the Access tab, the Locked toggle reveals a Discord role-ID input. Add as many roles as you want β€” the player needs at least one of them to see the backstory. This is also how the dirk_multichar configurator gates admin access elsewhere, so the same role model applies.


Registering a Backstory From Another Resource

External resources can register a backstory at runtime via the registerBackstory export (2.0 β€” before that it is registerLifestyle, which still works) β€” useful when a separate script (e.g. a jobs system) wants to surface its own archetype without admins manually adding it.

lua
exports.dirk_multichar:registerBackstory('mybackstory', {
  label = 'My Backstory',
  description = 'A short description for the player.',
  items = {
    { name = 'phone', amount = 1 },
    { name = 'wallet', amount = 1 },
  },
  -- additional fields mirror what's in the configurator's Backstories tab
})

Registered backstories appear in the player's selector alongside admin-configured ones.


Reacting to a Backstory (multichar 2.0)

When a new character finishes their intro, the client fires two events: one named after the backstory, and one for any backstory.

lua
AddEventHandler('dirk_multichar:onBackstoryLoad:homeless', function()
  -- a new homeless character is in the world
end)

AddEventHandler('dirk_multichar:onBackstoryLoad', function(backstoryId)
  print('new character, backstory:', backstoryId)
end)

Live Editing

Every backstory edit applies live β€” players choosing a backstory immediately after a save will see the new state. The Lua side subscribes to lib.scriptConfig.on('lifestyles', ...) and rebuilds its runtime cache on every save.

Last updated on 30 September 2026

Copyright Β© 2026 DirkScripts.

Not affiliated with or endorsed by Rockstar North, Take-Two Interactive, or any other rights holders. FiveM is a copyright and registered trademark of Take-Two Interactive Software, Inc.
Our checkout system is provided by Tebex Limited, who manage payment processing, product delivery, and billing support. Prices shown in currencies other than GBP are approximate conversions updated daily. All purchases are processed in GBP, so the final amount charged may vary depending on your bank or payment provider’s exchange rate.