HandyHook
A Rust/Oxide plugin that adds grappling hook functionality through special Hook Arrows. Shoot Hook Arrows with your bow to create grappling hooks that pull you to impact points or stick to surfaces.
## Features
- **Grappling Hook System**: Shoot Hook Arrows with a bow to create hooks
- **Two Modes**: Pull mode (auto-pull to hook point) or Stick mode (stick to surface)
- **Smart Collision Detection**: Prevents getting stuck in walls/tight spaces
- **Arrow Refunds**: Auto-refunds arrows when detached due to collisions
- **Visual Effects**: Wire/rope effects showing hook path
- **Loot System**: Configurable spawn chances in loot containers
- **Permission-Based**: Full permission control
## Installation
1. Download `HandyHook.cs` and place it in `oxide/plugins`
2. Restart server or run `oxide.reload HandyHook`
3. Config file auto-generates in `oxide/config`
## Permissions
**Default Permission**: `handyhook.use`
**Granting**:
```
oxide.grant user <name> handyhook.use
oxide.grant group default handyhook.use // All players
```
## Commands
| Command | Description |
|---------|-------------|
| `/hook` | Show help and hook status |
| `/hook arrows` | Get 50 Hook Arrows |
| `/hkd` | Release/detach active hook |
## Usage
1. **Get Hook Arrows**: Use `/hook arrows` or find in loot containers
2. **Equip Bow**: Load Hook Arrows into Hunting Bow or Crossbow
3. **Shoot**: Fire at target surface (must hit within max distance)
4. **Hook Activates**: Pulls you to hook point (Pull mode) or sticks you to surface (Stick mode)
5. **Detach**: Use `/hkd`, hold JUMP (stick mode), or wait for auto-detach (pull mode)
**Safety**: Hooks auto-detach if path is blocked or player becomes trapped (arrow refunded).
## Configuration
Config file: `oxide/config/HandyHook.json`
### Key Settings
```json
"HookSettings": {
"MaxDistance": 100.0, // Max hook distance (meters)
"PullSpeed": 15.0, // Pull speed
"StickMode": false, // true = stick, false = pull
"CooldownSeconds": 5.0 // Cooldown between uses
},
"ArrowSettings": {
"HookArrowShortname": "arrow.hv",
"HookArrowSkinId": 4040101 // Any number works (doesn't need valid Workshop skin)
},
"LootSettings": {
"Enabled": true, // Enable loot spawning
"ContainerSettings": [...] // Per-container spawn configs
}
```
Reload after changes: `oxide.reload HandyHook`
## Requirements
- Rust Dedicated Server with Oxide/uMod installed
## Troubleshooting
- Check config file settings
- Verify permission is granted: `oxide.grant user <name> handyhook.use`
- Check server console for errors