> For the complete documentation index, see [llms.txt](https://docs.cdev.shop/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cdev.shop/fivem/soccer/api/server.md).

# Server

```lua
-- types
---@alias SoccerPlayer { serverId: number, playMode: GameplayMode, role: SoccerFieldPosition, team: number, goaleeMode: number, lastPickupInsideGoal?: boolean, inArea?: boolean }

-- API (server-side analytics/hooks)

--- @param gameKey string
--- @param players table  -- array<SoccerPlayer>
AddEventHandler("cdev_soccer:server:api:onMatchStart", function(gameKey, players) end)

--- @param gameKey string
--- @param sourcePlayerServerId number
--- @param scoringTeamId number
AddEventHandler("cdev_soccer:server:api:onGoal", function(gameKey, sourcePlayerServerId, scoringTeamId) end)

--- @param gameKey string
--- @param sourcePlayerServerId number
AddEventHandler("cdev_soccer:server:api:onShot", function(gameKey, sourcePlayerServerId) end)

--- @param sourcePlayerServerId number
--- @param gameKey string
--- @param targetPlayerServerId number
AddEventHandler("cdev_soccer:server:api:onTackle", function(sourcePlayerServerId, gameKey, targetPlayerServerId) end)

--- @param gameKey string
--- @param winningTeamId number
--- @param losingTeamId number
AddEventHandler("cdev_soccer:server:api:onGameEnd", function(gameKey, winningTeamId, losingTeamId) end)

--- @param gameKey string
--- @param playerServerId number
AddEventHandler("cdev_soccer:server:api:onSave", function(gameKey, playerServerId) end)

--- @param gameKey string
--- @param sourcePlayerServerId number
--- @param targetPlayerServerId number
AddEventHandler("cdev_soccer:server:api:onPass", function(gameKey, sourcePlayerServerId, targetPlayerServerId) end)

```
