# Blacklist V Scripts RentBike - Bike Rental Script
A modern bike rental script for ESX Legacy with ox_lib integration, multilanguage support and many configurable features.
## 🚴 Features
- **Bike Rental System** with multiple locations
- **ox_lib Integration** for modern menus and notifications
- **Multilanguage Support** (German/English)
- **Timer System** with visual display of remaining rental time
- **Marker System** with configurable properties
- **Money System** with automatic billing
- **Refund System** for early returns
- **Automatic Return** when rental time expires
- **Admin Commands** for management
## 📋 Requirements
- **ESX Legacy** (es_extended)
- **ox_lib** (ox_lib)
- **FiveM Server**
## 🚀 Installation
1. **Download script** and copy to `resources` folder
2. **Ensure dependencies** (ESX Legacy + ox_lib)
3. **Start resource**:
```
ensure blv_rentbike
```
4. **Restart server** (optional)
## ⚙️ Configuration
### Change Language
```lua
-- In config.lua
Config.Locale = 'de' -- German
Config.Locale = 'en' -- English
```
### Adjust Prices
```lua
Config.RentPrice = 50 -- Rental price per bike
Config.RentDuration = 30 -- Rental duration in minutes
Config.Deposit = 100 -- Deposit
```
### Add Locations
```lua
Config.RentLocations = {
{
nameKey = "location_center",
coords = vector3(215.5, -810.1, 31.7),
heading = 160.0,
blip = {
sprite = 376,
color = 2,
scale = 0.8,
nameKey = "blip_name"
}
}
-- More locations...
}
```
### Configure Markers
```lua
Config.Marker = {
type = 38, -- Marker type
size = vector3(2.0, 2.0, 1.0), -- Size (x, y, z)
color = {r = 0, g = 255, b = 0, a = 100}, -- Color (RGBA)
bobUpAndDown = false, -- Up/down movement
faceCamera = false, -- Face camera
rotate = true -- Rotation
}
```
### Adjust Timer
```lua
Config.Timer = {
enabled = true, -- Timer enabled
position = vector2(0.015, 0.85), -- Position (x, y)
scale = 0.5, -- Text size
color = {r = 255, g = 255, b = 255, a = 255}, -- Text color
outline = true, -- Text outline
warningTime = 300, -- Warning (seconds)
warningColor = {r = 255, g = 0, b = 0, a = 255} -- Warning color
}
```
## 🎮 Usage
### For Players
1. **Go to a rental location** (blue markers on map)
2. **Press E key** to open menu
3. **Select bike** and confirm
4. **Use bike** - timer shows remaining time
5. **Press E key** to return the bike
### For Admins
```
/rentbike list - Shows all rented bikes
/rentbike clear - Returns all bikes
```
## 🌍 Multilanguage
The script supports German and English. All texts are defined in `config.lua`:
### Change Language
```lua
Config.Locale = 'de' -- German
Config.Locale = 'en' -- English
```
### Add Custom Translations
```lua
Config.Languages = {
['de'] = {
['custom_message'] = 'Your message in German'
},
['en'] = {
['custom_message'] = 'Your message in English'
}
}
```
## 📍 Locations
### Default Locations
- **Center**: `vector3(215.5, -810.1, 31.7)`
- **Beach**: `vector3(-1200.0, -1568.0, 5.6)`
- **Airport**: `vector3(-1037.0, -2737.0, 21.2)`
### Add New Location
```lua
{
nameKey = "location_custom", -- Language key for name
coords = vector3(x, y, z), -- Coordinates
heading = 0.0, -- Direction
blip = {
sprite = 376, -- Blip sprite
color = 2, -- Blip color
scale = 0.8, -- Blip size
nameKey = "blip_name" -- Language key for blip
}
}
```
## 🚲 Available Bikes
```lua
Config.AvailableBikes = {
'bmx', -- BMX
'cruiser', -- Cruiser
'fixter', -- Fixie
'scorcher', -- Scorcher
'tribike', -- Tri-Bike
'tribike2', -- Tri-Bike 2
'tribike3' -- Tri-Bike 3
}
```
## ⏰ Timer System
- **Display**: Top left of screen
- **Format**: `Bike Rental Time: MM:SS`
- **Warning**: Text turns red with less than 5 minutes
- **Update**: Every second
## 💰 Money System
- **Automatic deduction** when renting
- **Refund** for early returns
- **Calculation**: Proportional refund based on remaining time
## 🎨 Marker System
- **Type 38**: Downward arrow
- **Visibility**: 10 meter radius
- **Interaction**: 3 meter radius
- **Configurable**: Size, color, animation
## 🔧 Admin Functions
### Commands
- `/rentbike list` - Shows all rented bikes
- `/rentbike clear` - Returns all bikes
### Permissions
- Requires `admin` permission for commands
## 📝 Events
### Client Events
- `blv_rentbike:spawnBike` - Spawn bike
- `blv_rentbike:removeBike` - Remove bike
- `blv_rentbike:rentExpired` - Rental time expired
- `blv_rentbike:receiveBikeData` - Receive bike data
### Server Events
- `blv_rentbike:rentBike` - Rent bike
- `blv_rentbike:returnBike` - Return bike
- `blv_rentbike:getBikeData` - Get bike data
## 🐛 Troubleshooting
### Common Issues
**Bike not spawning:**
- Check if ESX and ox_lib are properly installed
- Check server console for errors
- Make sure player has enough money
**Timer not displaying:**
- Check `Config.Timer.enabled = true`
- Check if a bike is rented
**Markers not showing:**
- Check marker configuration
- Make sure you're near a location
**Language not working:**
- Check `Config.Locale` in config.lua
- Restart the resource
## 📞 Support
For problems or questions:
1. Check the troubleshooting section
2. Check server console for errors
3. Make sure all dependencies are installed
https://discord.gg/FDEkGqHjy5
---
**Enjoy the bike rental system! 🚴♂️**