Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 1 addition & 117 deletions docs/core-concepts/events.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,123 +61,7 @@ public void OnPlayerText(Player player, string message, IWorldService worldServi

## Built-in Game Events

SampSharp provides many built-in events for common game world interactions. Here's a comprehensive reference organized by category. Events that return a value are noted with their return type.

### Server & Initialization
- `OnGameModeInit()` : void — Called when the server starts.
- `OnGameModeExit()` : void — Called when the server exits/shuts down.

### Player Connection
- `OnIncomingConnection(Player, string ipAddress, int port)` : void — Called before a player connects (can reject connection).
- `OnPlayerConnect(Player)` : void — Called when a player connects.
- `OnPlayerDisconnect(Player, DisconnectReason reason)` : void — Called when a player disconnects.
- `OnPlayerClientInit(Player)` : void — Called after a player's client has fully initialized.

### Player Classes & Spawning
- `OnPlayerRequestClass(Player, Class)` : void — Called when a player selects a class at class selection.
- `OnPlayerRequestSpawn(Player)` : bool (default: `true`) — Called when a player attempts to spawn (return false to reject).
- `OnPlayerSpawn(Player)` : void — Called when a player spawns.

### Player Movement & Updates
- `OnPlayerStreamIn(Player, Player forPlayer)` : void — Called when a player streams in for another player.
- `OnPlayerStreamOut(Player, Player forPlayer)` : void — Called when a player streams out for another player.
- `OnPlayerUpdate(Player, DateTime)` : bool (default: `true`) — Called every player update (return false to reject).

### Player Text & Commands
- `OnPlayerText(Player, string message)` : bool (default: `true`) — Called when a player sends chat (return false to suppress message).
- `OnPlayerCommandText(Player, string text)` : bool (default: `false`) — Called for unhandled chat starting with `/` (return true to handle).

### Player Interactions
- `OnPlayerClickMap(Player, Vector3 position)` : void — Called when a player clicks the map.
- `OnPlayerClickPlayer(Player, Player clicked, ClickSource source)` : void — Called when a player clicks another player.

### Checkpoints
- `OnPlayerEnterCheckpoint(Player)` : void — Called when a player enters a checkpoint.
- `OnPlayerLeaveCheckpoint(Player)` : void — Called when a player leaves a checkpoint.
- `OnPlayerEnterRaceCheckpoint(Player)` : void — Called when a player enters a race checkpoint.
- `OnPlayerLeaveRaceCheckpoint(Player)` : void — Called when a player leaves a race checkpoint.

### Dialogs
- `OnDialogResponse(Player, int dialogId, DialogResponse response, int listItem, string inputText)` : void — Called when a player responds to a dialog.

### Health & Damage
- `OnPlayerDeath(Player, Player killer, Weapon reason)` : void — Called when a player dies.
- `OnPlayerTakeDamage(Player, Player from, float amount, Weapon weapon, BodyPart part)` : void — Called when a player takes damage.
- `OnPlayerGiveDamage(Player, Player to, float amount, Weapon weapon, BodyPart part)` : void — Called when a player deals damage.

### Vehicles
- `OnVehicleStreamIn(Vehicle, Player forPlayer)` : void — Called when a vehicle streams in.
- `OnVehicleStreamOut(Vehicle, Player forPlayer)` : void — Called when a vehicle streams out.
- `OnVehicleSpawn(Vehicle)` : void — Called when a vehicle spawns.
- `OnVehicleDeath(Vehicle)` : void — Called when a vehicle is destroyed.
- `OnVehicleDamageStatusUpdate(Vehicle)` : void — Called when vehicle damage updates.
- `OnPlayerEnterVehicle(Player, Vehicle, bool asPassenger)` : void — Called when a player enters a vehicle.
- `OnPlayerExitVehicle(Player, Vehicle)` : void — Called when a player exits a vehicle.
- `OnUnoccupiedVehicleUpdate(Vehicle)` : bool (default: `true`) — Called for unoccupied vehicle updates (return false to reject).
- `OnTrailerUpdate(Vehicle trailer)` : bool (default: `true`) — Called for trailer updates (return false to reject).
- `OnVehicleSirenStateChange(Vehicle)` : bool (default: `true`) — Called when vehicle siren state changes (return false to reject).
- `OnVehiclePaintJob(Player, Vehicle, int paintJob)` : bool (default: `true`) — Called when a player modifies paintjob (return false to reject).
- `OnVehicleMod(Player, Vehicle, int componentId)` : bool (default: `true`) — Called when a player adds a mod (return false to reject).
- `OnVehicleRespray(Player, Vehicle, int color1, int color2)` : bool (default: `true`) — Called when a player resprays (return false to reject).
- `OnEnterExitModShop(Player, bool enter, ModShop modShop)` : void — Called when entering/exiting mod shop.

### Objects
- `OnObjectMoved(Object)` : void — Called when an object finishes moving.
- `OnPlayerObjectMoved(Player, PlayerObject)` : void — Called when a player object finishes moving.
- `OnObjectSelected(Player, Object, int model, Vector3 position)` : void — Called when a player selects an object.
- `OnPlayerObjectSelected(Player, PlayerObject, int model, Vector3 position)` : void — Called when a player selects their object.
- `OnObjectEdited(Player, Object, int response, Vector3 offset, Vector3 rotation)` : void — Called when an object is edited.
- `OnPlayerObjectEdited(Player, PlayerObject, int response, Vector3 offset, Vector3 rotation)` : void — Called when a player object is edited.
- `OnPlayerAttachedObjectEdited(Player, int index, bool saved, AttachedObjectEditData data)` : void — Called when attached object is edited.

### Text Draws
- `OnPlayerClickTextDraw(Player, TextDraw)` : void — Called when a player clicks a text draw.
- `OnPlayerClickPlayerTextDraw(Player, PlayerTextDraw)` : void — Called when a player clicks their text draw.
- `OnPlayerCancelTextDrawSelection(Player)` : bool (default: `true`) — Called when canceling text draw selection (return false to reject).
- `OnPlayerCancelPlayerTextDrawSelection(Player)` : bool (default: `true`) — Called when canceling player text draw selection (return false to reject).

### Menus
- `OnPlayerSelectedMenuRow(Player, Menu, int row)` : void — Called when a player selects a menu row.
- `OnPlayerExitedMenu(Player)` : void — Called when a player closes a menu.

### Actors
- `OnActorStreamIn(Actor, Player forPlayer)` : void — Called when an actor streams in.
- `OnActorStreamOut(Actor, Player forPlayer)` : void — Called when an actor streams out.
- `OnPlayerGiveDamageActor(Player, Actor, float amount, Weapon weapon, BodyPart part)` : void — Called when a player damages an actor.

### NPCs
- `OnNPCCreate(NPC)` : void — Called when an NPC is created.
- `OnNPCDestroy(NPC)` : void — Called when an NPC is destroyed.
- `OnNPCSpawn(NPC)` : void — Called when an NPC spawns.
- `OnNPCRespawn(NPC)` : void — Called when an NPC respawns.
- `OnNPCFinishMove(NPC)` : void — Called when an NPC finishes moving.
- `OnNPCDeath(NPC, Player killer, Weapon reason)` : void — Called when an NPC dies.
- `OnNPCWeaponStateChange(NPC, Weapon oldWeapon, Weapon newWeapon)` : void — Called when NPC weapon changes.
- `OnNPCPlaybackStart(NPC, Playback playback)` : void — Called when NPC playback starts.
- `OnNPCPlaybackEnd(NPC, Playback playback)` : void — Called when NPC playback ends.
- `OnNPCFinishNodePoint(NPC, int nodePoint)` : void — Called when NPC reaches a node point.
- `OnNPCFinishNode(NPC, int node)` : void — Called when NPC finishes a node.
- `OnNPCFinishMovePathPoint(NPC, int pathPoint)` : void — Called when NPC reaches a move path point.
- `OnNPCFinishMovePath(NPC, MovePath path)` : void — Called when NPC finishes a move path.
- `OnNPCTakeDamage(NPC, Player from, float amount, Weapon weapon, BodyPart part)` : bool (default: `true`) — Called when NPC takes damage (return false to reject).
- `OnNPCGiveDamage(NPC, Player to, float amount, Weapon weapon, BodyPart part)` : bool (default: `true`) — Called when NPC deals damage (return false to reject).
- `OnNPCShotMissed(NPC, Weapon weapon, Vector3 position)` : bool (default: `true`) — Called when NPC misses a shot (return false to reject).
- `OnNPCShotPlayer(NPC, Player target, Weapon weapon, BodyPart part)` : bool (default: `true`) — Called when NPC shoots a player (return false to reject).

### Weapon & Shooting
- `OnPlayerShotMissed(Player, Weapon weapon, BulletData bulletData)` : bool (default: `true`) — Called when a player misses a shot (return false to reject).
- `OnPlayerShotPlayer(Player, Player target, Weapon weapon, BulletData bulletData)` : bool (default: `true`) — Called when a player shoots another player (return false to reject).
- `OnPlayerShotVehicle(Player, Vehicle target, Weapon weapon, BulletData bulletData)` : bool (default: `true`) — Called when a player shoots a vehicle (return false to reject).
- `OnPlayerShotObject(Player, Object target, Weapon weapon, BulletData bulletData)` : bool (default: `true`) — Called when a player shoots an object (return false to reject).
- `OnPlayerShotPlayerObject(Player, PlayerObject target, Weapon weapon, BulletData bulletData)` : bool (default: `true`) — Called when a player shoots a player object (return false to reject).

### Custom Models & Downloads
- `OnPlayerRequestDownload(Player, CustomModelType type, int modelId)` : bool (default: `true`) — Called when a player downloads a custom model (return false to reject).
- `OnPlayerFinishedDownloading(Player)` : void — Called when a player finishes downloading custom models.

### Console & Admin
- `OnRconLoginAttempt(Player, string password, bool success)` : void — Called when attempting RCON login.
- `OnConsoleCommandListRequest(ConsoleCommandCollection commands)` : void — Called when console command list is requested.
SampSharp dispatches a wide range of built-in events covering player connections, spawning, vehicles, objects, text draws, NPCs, weapons, and more. For the full categorized list with signatures and return types, see <xref:built-in-events>.

## Event Return Values

Expand Down
2 changes: 1 addition & 1 deletion docs/features/objects.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public void OnObjectMoved(GlobalObject obj)
}
```

See <xref:events> for a full list of available object events.
See <xref:built-in-events> for a full list of available object events.

## Manipulating Objects

Expand Down
3 changes: 2 additions & 1 deletion docs/features/toc.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
items:
- href: commands.md
- href: command-system.md
- href: dialog-menus.md
- href: objects.md
- href: players.md
- href: timers.md
- href: vehicles.md
40 changes: 19 additions & 21 deletions docs/features/vehicles.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,27 +35,27 @@ You can respond to vehicle-related events such as when a vehicle spawns, a playe
```csharp
public class VehicleEventSystem : ISystem
{
[EventHandler]
public void OnVehicleSpawn(Vehicle vehicle)
{
Console.WriteLine($"Vehicle spawned: {vehicle.Model}");
}

[EventHandler]
public void OnPlayerEnterVehicle(Player player, Vehicle vehicle, bool isPassenger)
{
Console.WriteLine($"{player} entered vehicle {vehicle.Model}");
}

[EventHandler]
public void OnPlayerExitVehicle(Player player, Vehicle vehicle)
{
Console.WriteLine($"{player} exited vehicle {vehicle.Model}");
}
[Event]
public void OnVehicleSpawn(Vehicle vehicle)
{
Console.WriteLine($"Vehicle spawned: {vehicle.Model}");
}

[Event]
public void OnPlayerEnterVehicle(Player player, Vehicle vehicle, bool isPassenger)
{
Console.WriteLine($"{player} entered vehicle {vehicle.Model}");
}

[Event]
public void OnPlayerExitVehicle(Player player, Vehicle vehicle)
{
Console.WriteLine($"{player} exited vehicle {vehicle.Model}");
}
}
```

For a full list of available vehicle events, see <xref:events>.
For a full list of available vehicle events, see <xref:built-in-events>.

## Manipulating Vehicles

Expand All @@ -77,10 +77,8 @@ vehicle.Engine = true;
// Check if the vehicle has a trailer
if (vehicle.HasTrailer)
{
Console.WriteLine("This vehicle has a trailer attached.");
Console.WriteLine("This vehicle has a trailer attached.");
}
```

See <xref:SampSharp.Entities.SAMP.Vehicle> for all available properties and methods.


Loading
Loading