Skip to main content
The Fetch component is the primary way to access player and character data in Mythic Framework. It retrieves DataStore objects that provide methods to get and set data for players and characters.
Critical: Do NOT use Characters:GetCharacter() - this method does not exist. Always use Fetch:Source() or Fetch:SID() to access character data.

Understanding the DataStore Pattern

Mythic Framework uses a DataStore pattern for managing player and character state:
DataStore objects provide:
  • GetData(key) - Retrieve data
  • SetData(key, value) - Update data
  • DeleteStore() - Remove DataStore

Player Access Methods

Source

Get player DataStore by server source ID. Parameters: Returns: Example:

PlayerData

Find player by arbitrary data field. Parameters: Returns: Example:

All

Get all online players. Returns: Example:

Count

Get count of online players. Returns: Example:

Character Access Methods

These methods are added by the Characters resource and extend the base Fetch component.

CharacterData

Find player by character data field. Parameters: Returns: Example:

SID

Find player by character State ID. Parameters: Returns: Example:

ID

Find player by character document ID. Parameters: Returns: Example:

Next

Get next player in iteration (for loops). Parameters: Returns: Example:

CountCharacters

Get count of online characters (players with selected character). Returns: Example:

GetOfflineData

Get specific data from offline character (database query). Parameters: Returns: Example:
GetOfflineData is synchronous and blocks the thread. Use sparingly and only when player is offline.

DataStore Object Methods

Once you have a DataStore object (player or character), you can use these methods:

GetData

Retrieve data from the DataStore. Parameters: Returns: Example:

SetData

Update data in the DataStore. Parameters: Example:
Character SetData automatically syncs to client with Characters:Client:SetData event.

Complete Usage Examples

Getting Character in Event Handler


Finding Character by Phone Number


Giving Cash to Online Player


Iterating All Characters for Server-Wide Event


Common Patterns

Safe Character Access

Always check if player and character exist:

Getting Player Source from Character SID


Checking if Character is Online


Important Notes

DataStore: In-memory state for online players/characters (fast) Database: Persistent storage (slower, for offline access)
  • Use Fetch methods for online players (instant)
  • Use Database queries for offline players (requires callback)
Player: Account-level data (AccountID, Identifier, Name) Character: In-game character (SID, First, Last, Cash, Jobs, Phone, DOB)Players can have multiple characters. Always get Character from Player:
SetData updates in-memory DataStore only. Characters auto-save to database every ~10 minutes.For critical data, manually save:
Fetch methods are very fast (in-memory lookup). Use them liberally:

Next Steps

Characters API

Character-specific methods

DataStore Pattern

Deep dive into DataStore architecture

Core - Database

Database queries for offline data

Player State

Understanding player state management
Pro Tip: Bookmark this pattern - you’ll use it constantly: