# nova\_interactions

NOVA Framework player and vehicle interaction system. Provides contextual actions for player-to-player and player-to-vehicle interactions.

## Features

* **Rob Player** — Hold up and rob another player (timed action)
* **Loot Inventory** — Loot a downed player's inventory
* **Give ID** — Show your ID card to another player
* **Give Keys** — Hand over vehicle keys to another player
* **Vehicle Lock** — Lock/unlock your vehicle
* **Open Trunk** — Access vehicle trunk inventory

## Configuration

Edit `config.lua`:

```lua
Config.PlayerDistance = 2.0      -- Max distance for player interactions
Config.VehicleDistance = 3.0     -- Max distance for vehicle interactions
Config.RobTime = 10000          -- Rob duration (ms)
Config.LootTime = 5000          -- Loot duration (ms)
Config.PushForce = 50.0         -- Vehicle push force
```

### Configuration Options

| Option            | Type   | Default | Description                        |
| ----------------- | ------ | ------- | ---------------------------------- |
| `PlayerDistance`  | number | `2.0`   | Max range for player interactions  |
| `VehicleDistance` | number | `3.0`   | Max range for vehicle interactions |
| `RobTime`         | number | `10000` | Duration of rob action (ms)        |
| `LootTime`        | number | `5000`  | Duration of loot action (ms)       |
| `PushForce`       | number | `50.0`  | Force applied when pushing vehicle |

## Player Interactions

### Rob Player

* Target a player using `nova_target`
* Progress bar runs for `RobTime` duration
* On success, opens the target's inventory for item selection
* Victim receives a notification

### Loot Inventory

* Target a downed player
* Progress bar runs for `LootTime`
* Opens the victim's inventory

### Give ID / Give Keys

* Quick actions via target menu
* Transfers ID card display or vehicle keys to the target player

## Vehicle Interactions

### Lock/Unlock

* Target your own vehicle
* Toggles lock state with key animation
* Uses `nova_core` vehicle keys system

### Open Trunk

* Target vehicle trunk area
* Opens a separate inventory for the trunk

## Dependencies

* **nova\_core** — Player data, vehicle keys
* **nova\_target** — Targeting system for interaction menus
* **nova\_inventory** — Item transfer, trunk system

## Notes

* Rob action requires the victim to have their hands up or be restrained
* Vehicle key transfers are validated server-side
* Trunk inventory is separate from player inventory
* All interactions use `nova_target` for the context menu

## Security

* All actions are validated server-side with permission checks
* Event names and internal implementation details are not disclosed in this documentation for security purposes
* Unauthorized access attempts are logged
