NightZoom LogoNightZoom
BJJ Racing Core/BJJ Racing Core v7/Core Events

Core Events Server

Server-side core events and callbacks for BJJ Racing Core v7

This page covers the essential server-side core events for BJJ Racing Core v7. These events handle player lifecycle and system integration points.

Core Player Events

Player Lifecycle Events

EventParametersDescription
bjj:server:playerLoadedplayerData: tablePlayer has loaded and data is ready
bjj:server:playerUnloadedsource: numberPlayer is being unloaded

Example Usage:

-- Listen for player loaded
AddEventHandler('bjj:server:playerLoaded', function(playerData)
    local source = playerData.source
    print('Player loaded:', playerData.name, 'Source:', source)
    
    -- Initialize your systems for this player
    -- Safe to use Core.getPlayer(source) now
    local Core = exports.bjj_racingcore:getCore()
    local player = Core.getPlayer(source)
    
    if player then
        -- Player object is ready for use
        print('Player MMR:', player.data.mmr)
        print('Player Money:', player.data.money)
        
        -- Initialize custom metadata if needed
        if not player.getMetadata('myresource_initialized') then
            player.setMetadata('myresource_initialized', true, true)
            player.setMetadata('join_date', os.date(), true)
        end
    end
end)

-- Listen for player unloaded  
AddEventHandler('bjj:server:playerUnloaded', function(source)
    print('Player unloaded:', source)
    
    -- Clean up your systems for this player
    -- Remove from any custom tracking tables
    -- Save any temporary data
    
    -- Example cleanup
    if myPlayerData[source] then
        -- Save final data
        savePlayerCustomData(source, myPlayerData[source])
        -- Remove from memory
        myPlayerData[source] = nil
    end
end)

The bjj:server:playerLoaded event is the safest place to initialize player-specific systems. The player object is guaranteed to be available and ready for use.

Always check if a player object exists before using it, as players can disconnect at any time. Use the bjj:server:playerUnloaded event for cleanup.

These core events provide reliable hooks into the player lifecycle. Use them to ensure your systems are properly initialized and cleaned up.