mirror of
https://github.com/jimathy/jim_bridge.git
synced 2026-08-16 21:46:03 +01:00
better documentation layout
- seperated the 2000+ lines in ReadMe.md into seperate files. - useful if things expand - better readability for users - more organised layout
This commit is contained in:
38
documentation/main_functions/callbacks.md
Normal file
38
documentation/main_functions/callbacks.md
Normal file
@@ -0,0 +1,38 @@
|
||||
### callback.lua
|
||||
|
||||
These functions wrap the native callback handling of the selected framework (e.g., OX, QBCore, ESX) instead of implementing a standalone callback system, ensuring full compatibility.
|
||||
|
||||
- **createCallback(callbackName, funct)**
|
||||
|
||||
- Registers a callback function with the appropriate framework.
|
||||
- This function checks which framework is started (e.g., OX, QB, ESX) and registers the callback accordingly.
|
||||
- It adapts the callback function to match the expected signature for the framework.
|
||||
- **Example:**
|
||||
```lua
|
||||
local table = { ["info"] = "HI" }
|
||||
createCallback('myCallback', function(source, ...)
|
||||
return table
|
||||
end)
|
||||
|
||||
createCallback("callback:checkVehicleOwned", function(source, plate)
|
||||
local result = isVehicleOwned(plate)
|
||||
if result then
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end)
|
||||
```
|
||||
|
||||
- **triggerCallback(callbackName, ...)**
|
||||
|
||||
- Triggers a server callback and returns the result.
|
||||
- This function uses the appropriate framework's method to call the server-side callback and awaits the result.
|
||||
- **Example:**
|
||||
```lua
|
||||
local result = triggerCallback('myCallback')
|
||||
jsonPrint(result)
|
||||
|
||||
local result = triggerCallback("callback:checkVehicleOwned", plate)
|
||||
print(result)
|
||||
```
|
||||
28
documentation/main_functions/cameras.md
Normal file
28
documentation/main_functions/cameras.md
Normal file
@@ -0,0 +1,28 @@
|
||||
### cameras.lua
|
||||
This module provides utilities for managing temporary in-game cameras, useful for cutscenes, cinematic views, or scripted perspectives.
|
||||
|
||||
- **createTempCam(ent, coords)**
|
||||
|
||||
- Creates a temporary camera at the specified coordinates or relative to an entity.
|
||||
- If `ent` is an entity, the camera position is calculated as an offset from the entity's position using `GetOffsetFromEntityInWorldCoords`.
|
||||
- If `ent` is a `vector3`, it is used directly as the camera's position.
|
||||
- **Example:**
|
||||
```lua
|
||||
local cam = createTempCam(PlayerPedId(), GetEntityCoords(PlayerPedId()) + vector3(0, 2.0, 1.0))
|
||||
```
|
||||
|
||||
- **startTempCam(cam)**
|
||||
|
||||
- Activates and renders the temporary camera.
|
||||
- **Example:**
|
||||
```lua
|
||||
startTempCam(cam)
|
||||
```
|
||||
|
||||
- **stopTempCam()**
|
||||
|
||||
- Deactivates and deletes all currently running custom camera, restoring normal view.
|
||||
- **Example:**
|
||||
```lua
|
||||
stopTempCam()
|
||||
```
|
||||
45
documentation/main_functions/contextmenus.md
Normal file
45
documentation/main_functions/contextmenus.md
Normal file
@@ -0,0 +1,45 @@
|
||||
### contextmenus.lua
|
||||
|
||||
These functions provide a unified way to interact with different context menu systems, such as OX and WarMenu, depending on what's available on the server.
|
||||
|
||||
- **openMenu(Menu, data)**
|
||||
|
||||
- Opens a context menu using the preferred menu system.
|
||||
- Automatically selects between supported systems like OX or WarMenu based on availability.
|
||||
- The `Menu` parameter should be a list of menu entries, and the `data` parameter can be used to set headers, subtexts, and actions like `onBack`, `onExit`, and `canClose`.
|
||||
- **Example:**
|
||||
```lua
|
||||
openMenu({
|
||||
{ header = "Option 1", txt = "Description 1", onSelect = function() print("Option 1 selected") end },
|
||||
{ header = "Option 2", txt = "Description 2", onSelect = function() print("Option 2 selected") end },
|
||||
}, {
|
||||
header = "Main Menu",
|
||||
headertxt = "Select an option",
|
||||
onBack = function() print("Return selected") end,
|
||||
onExit = function() print("Menu closed") end,
|
||||
canClose = true,
|
||||
})
|
||||
```
|
||||
|
||||
- **isOx()**
|
||||
|
||||
- Checks whether the OX context menu system is available on the server.
|
||||
- Allows to do specific things if ox_lib menu is in use
|
||||
- **Example:**
|
||||
```lua
|
||||
if isOx() then
|
||||
print("OX Context Menu is available")
|
||||
end
|
||||
```
|
||||
|
||||
- **isWarMenuOpen()**
|
||||
|
||||
- Returns whether WarMenu is currently open.
|
||||
- Useful to prevent opening a new menu if one is already active.
|
||||
- **Example:**
|
||||
```lua
|
||||
if not isWarMenuOpen() then
|
||||
openMenu("main_menu", menuData)
|
||||
end
|
||||
```
|
||||
- Returns whether the WarMenu is currently open.
|
||||
39
documentation/main_functions/crafting.md
Normal file
39
documentation/main_functions/crafting.md
Normal file
@@ -0,0 +1,39 @@
|
||||
### crafting.lua
|
||||
|
||||
These functions support crafting logic, such as opening crafting menus, handling multi-craft operations, and creating item data from recipes.
|
||||
|
||||
- **craftingMenu(data)**
|
||||
|
||||
- Opens a menu for selecting the quantity to craft.
|
||||
- Presents the player with multiple crafting quantities based on `Config.Crafting.MultiCraftAmounts`.
|
||||
- **Parameters:**
|
||||
- `item` (`string`): The item to craft.
|
||||
- `craft` (`table`): The crafting recipe.
|
||||
- `craftable` (`table`): Crafting options.
|
||||
- `coords` (`vector3`): Where crafting occurs.
|
||||
- `stashName` (`string`): The stash name(s) for item availability.
|
||||
- `onBack` (`function`): Callback when returning.
|
||||
- `metadata` (`table`, optional): Metadata for the crafted item.
|
||||
- **Example:**
|
||||
```lua
|
||||
craftingMenu({
|
||||
craftable = {
|
||||
Header = "Weapon Crafting",
|
||||
Recipes = {
|
||||
[1] = {
|
||||
["weapon_pistol"] = { ["steel"] = 5, ["plastic"] = 2 },
|
||||
amount = 1,
|
||||
},
|
||||
-- More recipes...
|
||||
},
|
||||
Anims = {
|
||||
animDict = "amb@prop_human_parking_meter@male@idle_a",
|
||||
anim = "idle_a",
|
||||
},
|
||||
},
|
||||
coords = vector3(100.0, 200.0, 300.0),
|
||||
stashTable = "crafting_stash",
|
||||
job = "mechanic",
|
||||
onBack = function() print("Returning to previous menu") end,
|
||||
})
|
||||
```
|
||||
25
documentation/main_functions/drawtext.md
Normal file
25
documentation/main_functions/drawtext.md
Normal file
@@ -0,0 +1,25 @@
|
||||
### drawText.lua
|
||||
|
||||
These functions handle drawing and hiding styled on-screen prompts or UI overlays, compatible with different styling frameworks such as OX Lib.
|
||||
|
||||
- **drawText(image, input, style, oxStyleTable)**
|
||||
|
||||
- Displays styled text or prompts on screen.
|
||||
- Designed to adapt styling depending on which UI system (e.g., OX) is in use.
|
||||
- **Parameters:**
|
||||
- `image` (`string`): Optional icon or image path.
|
||||
- `input` (`string`): The main text to display.
|
||||
- `style` (`string|table`): Preset or custom styling.
|
||||
- `oxStyleTable` (`table`, optional): Extended style options if using OX UI.
|
||||
- **Example:**
|
||||
```lua
|
||||
drawText("img_link", { "Test line 1", "Test Line 2" }, "~g~")
|
||||
```
|
||||
|
||||
- **hideText()**
|
||||
|
||||
- Hides any active text or UI element previously drawn with `drawText()`.
|
||||
- **Example:**
|
||||
```lua
|
||||
hideText()
|
||||
```
|
||||
31
documentation/main_functions/duifunctions.md
Normal file
31
documentation/main_functions/duifunctions.md
Normal file
@@ -0,0 +1,31 @@
|
||||
### duifunctions.lua
|
||||
|
||||
These functions support dynamic UI image rendering in 3D environments using runtime texture dictionaries. Ideal for integrating `nui://` or external `http://` image URLs into MLOs or world props.
|
||||
|
||||
- **createDui(name, http, size, txd))**
|
||||
|
||||
- Sets up a runtime texture dictionary and links an image from a `nui://` or `http://` URL.
|
||||
- This function should be used once to create the texture dictionary needed for rendering Dui images.
|
||||
- **Example:**
|
||||
```lua
|
||||
createDui("logo", "https://example.com/logo.png", { x = 512, y = 256 }, scriptTxd)
|
||||
```
|
||||
|
||||
- **DuiSelect(data)**
|
||||
|
||||
- Updates the URL on an existing texture dictionary to change the rendered image.
|
||||
- Can be used at runtime to swap out visuals in MLOs or props.
|
||||
- **Parameters:**
|
||||
- `textureDict` (`string`): The texture dictionary to target.
|
||||
- `texture` (`string`): The specific texture name to override.
|
||||
- `url` (`string`): The new image URL.
|
||||
- `width`, `height` (`number`): The texture resolution.
|
||||
- **Example:**
|
||||
```lua
|
||||
DuiSelect({
|
||||
name = "logo",
|
||||
texn = "logoTex",
|
||||
texd = "someTxd",
|
||||
size = { x = 512, y = 256 }
|
||||
})
|
||||
```
|
||||
25
documentation/main_functions/input.md
Normal file
25
documentation/main_functions/input.md
Normal file
@@ -0,0 +1,25 @@
|
||||
### input.lua
|
||||
|
||||
This function displays a customizable input dialog for user text or number entry. It supports both simple and complex input structures.
|
||||
|
||||
- **createInput(title, opts)**
|
||||
- Opens a styled input dialog with configurable fields, labels, input types, and validation.
|
||||
- Supports multiple field types including `text`, `number`, `password`, `checkbox`, `color`, `slider`, and more.
|
||||
- **Parameters:**
|
||||
- `title` (`string`): Title displayed at the top of the input box.
|
||||
- `opts` (`table`): A table of fields with attributes like `label`, `name`, `type`, `value`, and more.
|
||||
- **Example:**
|
||||
```lua
|
||||
local userInput = createInput("Enter Details", {
|
||||
{ type = "text", text = "Name", name = "playerName", isRequired = true },
|
||||
{ type = "number", text = "Age", name = "playerAge", min = 18, max = 99 },
|
||||
{ type = "radio", label = "Gender", name = "playerGender", options = {
|
||||
{ text = "Male", value = "male" },
|
||||
{ text = "Female", value = "female" },
|
||||
{ text = "Other", value = "other" },
|
||||
}},
|
||||
})
|
||||
if userInput then
|
||||
print(json.encode(userInput))
|
||||
end
|
||||
```
|
||||
144
documentation/main_functions/inventories.md
Normal file
144
documentation/main_functions/inventories.md
Normal file
@@ -0,0 +1,144 @@
|
||||
### inventories.lua
|
||||
|
||||
These functions manage inventory locking, item checking, and player inventory retrieval.
|
||||
|
||||
- **lockInv(toggle)**
|
||||
|
||||
- Locks or unlocks the player's inventory.
|
||||
- Freezes/unfreezes movement and toggles hotbar state.
|
||||
- **Example:**
|
||||
```lua
|
||||
lockInv(true) -- Lock inventory
|
||||
lockInv(false) -- Unlock inventory
|
||||
```
|
||||
|
||||
- **hasItem(items, amount, src)**
|
||||
|
||||
- Checks if a player has the specified item(s) in sufficient quantity.
|
||||
- **Returns:**
|
||||
- `boolean`: Whether the player has the item(s).
|
||||
- `table`: Details of available item counts.
|
||||
- **Example:**
|
||||
```lua
|
||||
local hasAll, details = hasItem({"health_potion", "mana_potion"}, 2, playerId)
|
||||
if hasAll then
|
||||
-- Proceed with action
|
||||
else
|
||||
-- Inform the player about missing items
|
||||
end
|
||||
```
|
||||
|
||||
- **getPlayerInv(src)**
|
||||
|
||||
- Retrieves the player’s current inventory.
|
||||
- May be used for inventory UI, logging, or crafting systems.
|
||||
- **Example:**
|
||||
```lua
|
||||
local inventory = getPlayerInv(playerId)
|
||||
for k, item in pairs(inventory) do
|
||||
print(item.name, item.amount)
|
||||
end
|
||||
```
|
||||
|
||||
### itemcontrol.lua
|
||||
|
||||
This module includes a variety of utility functions for managing items in player inventories, including giving, removing, durability, and use logic.
|
||||
|
||||
- **createUseableItem(item, funct)**
|
||||
|
||||
⚠️ This doesn't work for `ox_inv`, you will need to add the event info to it's `items.lua`
|
||||
- Registers a useable item and binds it to a callback function.
|
||||
- **Example:**
|
||||
```lua
|
||||
createUseableItem("bandage", function(source)
|
||||
-- Heal logic here
|
||||
end)
|
||||
```
|
||||
|
||||
- **invImg(item)**
|
||||
|
||||
- Returns the inventory image path for an item.
|
||||
- Automatically grabs the inventory image link based on inventory script
|
||||
- **Example:**
|
||||
```lua
|
||||
local imagePath = invImg("water_bottle")
|
||||
print(imagePath)
|
||||
```
|
||||
|
||||
- **addItem(item, amount, info, src)**
|
||||
|
||||
⚠️ Requires Auth callback if called from client side
|
||||
- Adds a specific amount of an item to a player's inventory.
|
||||
- Automatically attempts to add items using detected inventory script
|
||||
- **Example:**
|
||||
```lua
|
||||
-- Client Side
|
||||
addItem("lockpick", 3, {})
|
||||
|
||||
-- Server Side
|
||||
addItem("lockpick", 3, {}, source)
|
||||
```
|
||||
|
||||
- **removeItem(item, amount, src, slot)**
|
||||
|
||||
- Removes a specific amount of an item from a player’s inventory.
|
||||
- Automatically attempts to remove item using detected inventory script
|
||||
- **Example:**
|
||||
```lua
|
||||
-- Client Side
|
||||
removeItem(
|
||||
"ammo_pistol",
|
||||
30,
|
||||
nil,
|
||||
slot --[[optional]]--
|
||||
)
|
||||
|
||||
-- Server Side
|
||||
removeItem(
|
||||
"ammo_pistol",
|
||||
30,
|
||||
source,
|
||||
slot --[[optional]]--
|
||||
)
|
||||
```
|
||||
|
||||
- **dupeWarn(src, item, amount)**
|
||||
|
||||
- Logs or handles a potential duplication exploit involving an item.
|
||||
- This is called automatically if a player has been triggered exploit detection
|
||||
- Disabled if debugMode is enabled
|
||||
|
||||
- **breakTool(data)**
|
||||
|
||||
- Breaks a tool or item, often due to exceeding durability.
|
||||
- **Example:**
|
||||
```lua
|
||||
breakTool({ item = "drill", damage = 10 })
|
||||
```
|
||||
|
||||
- **getDurability(item)**
|
||||
|
||||
- Returns the current durability value of a given item.
|
||||
- Searched for the lowest slot number (eg. slot 1) and retreives that items durability
|
||||
- **Example:**
|
||||
```lua
|
||||
local durability, slot = getDurability("drill")
|
||||
if durability then
|
||||
print("Durability:", durability)
|
||||
print("Slot:", slot)
|
||||
end
|
||||
```
|
||||
|
||||
- **canCarry(itemTable, src)**
|
||||
|
||||
⚠️ Currently server side only
|
||||
- Checks if a player can carry the item(s) specified in `itemTable`.
|
||||
- **Example:**
|
||||
```lua
|
||||
local carryCheck = canCarry({ ["health_potion"] = 2, ["mana_potion"] = 3 }, playerId)
|
||||
if carryCheck["health_potion"] and carryCheck["mana_potion"] then
|
||||
-- Player can carry items.
|
||||
else
|
||||
-- Notify player.
|
||||
end
|
||||
```
|
||||
64
documentation/main_functions/jobfunctions.md
Normal file
64
documentation/main_functions/jobfunctions.md
Normal file
@@ -0,0 +1,64 @@
|
||||
### jobfunctions.lua
|
||||
|
||||
This module provides functions for managing job-based logic, such as checking player roles, toggling duty status, and simulating job-related interactions.
|
||||
|
||||
- **makeBossRoles(role)**
|
||||
|
||||
- Sets up boss-level permissions or access for the specified job role.
|
||||
- Often used to determine if a player can access job menus or perform administrative actions.
|
||||
- Used mainly for creating boss locked target tables
|
||||
- **Example:**
|
||||
```lua
|
||||
makeBossRoles("police")
|
||||
```
|
||||
|
||||
- **jobCheck(job)**
|
||||
|
||||
- Simple check if the player has the specified job.
|
||||
- **Example:**
|
||||
```lua
|
||||
if jobCheck("mechanic") then
|
||||
-- Allow mechanic features.
|
||||
else
|
||||
-- Deny access.
|
||||
end
|
||||
```
|
||||
|
||||
- **toggleDuty()**
|
||||
|
||||
- Toggles the player’s on/off duty status, typically used for jobs like police, EMS, etc.
|
||||
- **Example:**
|
||||
```lua
|
||||
toggleDuty()
|
||||
```
|
||||
|
||||
- **washHands(data)**
|
||||
|
||||
- Simulates the action of washing hands, used in job scripts or medical job logic.
|
||||
- Currently only animation and a notfication
|
||||
- **Example:**
|
||||
```lua
|
||||
washHands({ coords = vector3(200.0, 300.0, 40.0) })
|
||||
```
|
||||
|
||||
- **useToilet(data)**
|
||||
|
||||
- Triggers toilet-use interaction, likely includes animation or sound.
|
||||
- Currently only animation and a notfication
|
||||
- **Example:**
|
||||
```lua
|
||||
useToilet({ urinal = true })
|
||||
-- Player uses a urinal with corresponding animations and notifications
|
||||
|
||||
useToilet({ urinal = false, sitcoords = vector4(215.76, -810.12, 29.73, 90.0) })
|
||||
-- Player sits down to use a toilet with corresponding animations and notifications
|
||||
```
|
||||
|
||||
- **useDoor(data)**
|
||||
|
||||
- Handles interactions with doors that aren't openable and teleports the player
|
||||
- eg. Recycle Center, it's used to teleport the player from outside a building to the IPL
|
||||
- **Example:**
|
||||
```lua
|
||||
useDoor({ telecoords = vector4(215.76, -810.12, 29.73, 90.0) })
|
||||
```
|
||||
156
documentation/main_functions/makefunctions.md
Normal file
156
documentation/main_functions/makefunctions.md
Normal file
@@ -0,0 +1,156 @@
|
||||
### makeBlip.lua
|
||||
|
||||
This module provides simple utilities for adding static or entity-based blips to the minimap.
|
||||
|
||||
❔ This has basic support for RedM too
|
||||
- **makeBlip(data)**
|
||||
|
||||
- This function adds a map blip at the provided coordinates and sets various display properties such as sprite, color, scale, and more.
|
||||
- It also handles attaching a preview image to the blip if certain resources are running and a preview is provided.
|
||||
- **Example:**
|
||||
```lua
|
||||
local blipData = {
|
||||
coords = vector3(123.4, 567.8, 90.1),
|
||||
sprite = 1,
|
||||
col = 2,
|
||||
scale = 0.8,
|
||||
disp = 4,
|
||||
category = 7,
|
||||
name = "My Blip",
|
||||
preview = "http://example.com/preview.png"
|
||||
}
|
||||
local blip = makeBlip(blipData)
|
||||
```
|
||||
|
||||
- **makeEntityBlip(data)**
|
||||
|
||||
- This function adds a map blip attached to the provided entity and sets various display properties such as sprite, color, scale, and more.
|
||||
- It also handles attaching a preview image to the blip if certain resources are running and a preview is provided.
|
||||
- **Example:**
|
||||
```lua
|
||||
local blipData = {
|
||||
entity = myEntity,
|
||||
sprite = 1,
|
||||
col = 2,
|
||||
scale = 0.8,
|
||||
disp = 4,
|
||||
category = 7,
|
||||
name = "Entity Blip",
|
||||
preview = "http://example.com/preview.png"
|
||||
}
|
||||
local blip = makeEntityBlip(blipData)
|
||||
```
|
||||
|
||||
### makePed.lua
|
||||
This module provides tools to create persistent or distance-based NPCs with optional animations, scenarios, and config randomization.
|
||||
|
||||
- **makeDistPed(data, coords, freeze, collision, scenario, anim, synced)**
|
||||
|
||||
- Creates a ped that only spawns when nearby (performance optimization).
|
||||
- **Example:**
|
||||
```lua
|
||||
makeDistPed({model = "a_m_y_business_03" }, -- model data
|
||||
vector4(450.0, -980.0, 30.0, 100.0), -- coords
|
||||
true, -- freeze entity
|
||||
false, -- collision
|
||||
'WORLD_HUMAN_STAND_IMPATIENT', -- Scenario Animation
|
||||
{ dict = "amb@world_human_clipboard@male@idle_a", anim = "idle_c" }, -- Anim Table
|
||||
true -- Network Synced
|
||||
)
|
||||
```
|
||||
|
||||
- **makePed(data, coords, freeze, collision, scenario, anim, synced)**
|
||||
|
||||
- Spawns a ped with more persistent behavior at the given location.
|
||||
- Supports animation playback and freezing.
|
||||
- **Example:**
|
||||
```lua
|
||||
makePed({model = "a_m_y_business_03" }, -- model data
|
||||
vector4(450.0, -980.0, 30.0, 100.0), -- coords
|
||||
true, -- freeze entity
|
||||
false, -- collision
|
||||
'WORLD_HUMAN_STAND_IMPATIENT', -- Scenario Animation
|
||||
{ dict = "amb@world_human_clipboard@male@idle_a", anim = "idle_c" }, -- Anim Table
|
||||
true -- Network Synced
|
||||
)
|
||||
```
|
||||
|
||||
- **GenerateRandomPedData(data)**
|
||||
|
||||
- Returns randomized ped model/configuration based on input table.
|
||||
- Useful for dynamic NPC generation.
|
||||
- **Example:**
|
||||
```lua
|
||||
local pedData = GenerateRandomPedData({ model = `MP_M_Freemode_01`, custom = {} })
|
||||
```
|
||||
|
||||
### makeProp.lua
|
||||
This module allows you to spawn static or distance-loaded props in the world.
|
||||
|
||||
- **makeProp(data, freeze, synced)**
|
||||
|
||||
- This function loads the model, creates the object, sets its heading, and freezes it if specified.
|
||||
- **Example:**
|
||||
```lua
|
||||
local propData = {
|
||||
prop = 'prop_chair_01a',
|
||||
coords = vector4(123.4, 567.8, 90.1, 180.0)
|
||||
}
|
||||
local prop = makeProp(propData, true, false)
|
||||
```
|
||||
|
||||
- **makeDistProp(data, freeze, synced, range)**
|
||||
- Same as `makeProp`, but only spawns if the player is within the specified range.
|
||||
- **Example:**
|
||||
```lua
|
||||
local propData = {
|
||||
prop = 'prop_chair_01a',
|
||||
coords = vector4(123.4, 567.8, 90.1, 180.0)
|
||||
}
|
||||
makeDistProp(propData, true, false)
|
||||
```
|
||||
|
||||
- **destroyProp(entity)**
|
||||
- Removes a previously created or targeted prop from the world.
|
||||
- **Example:**
|
||||
```lua
|
||||
destroyProp(barrel)
|
||||
```
|
||||
|
||||
### makeVeh.lua
|
||||
This module provides functionality for spawning vehicles, including distance-based optimization and entity management.
|
||||
|
||||
- **makeVeh(model, coords)**
|
||||
|
||||
- This function loads the vehicle model, creates the vehicle in the world at the given coordinates, sets initial properties, and returns the vehicle handle.
|
||||
- **Example:**
|
||||
```lua
|
||||
local vehicle = makeVeh("adder", vector3(250.0, -1000.0, 30.0))
|
||||
```
|
||||
|
||||
- **makeDistVehicle(data, radius, onEnter, onExit)**
|
||||
|
||||
- Creates a vehicle that spawns when the player enters a designated polyzone area.
|
||||
- This is used for `jim-parking` to create a static vehicle that can't move
|
||||
- **Example:**
|
||||
```lua
|
||||
makeDistVehicle({
|
||||
model = "blista",
|
||||
coords = vector3(400.0, -800.0, 30.0),
|
||||
heading = 180.0
|
||||
}, 50.0)
|
||||
```
|
||||
|
||||
- **removeDistVehicleZone(zoneId)**
|
||||
- Removes a previously created distance-based vehicle zone.
|
||||
- **Example:**
|
||||
```lua
|
||||
removeDistVehicleZone("garage_zone_1")
|
||||
```
|
||||
|
||||
- **deleteVehicle(vehicle)**
|
||||
- Deletes a specified vehicle entity.
|
||||
- **Example:**
|
||||
```lua
|
||||
deleteVehicle(vehicle)
|
||||
```
|
||||
32
documentation/main_functions/metahandlers.md
Normal file
32
documentation/main_functions/metahandlers.md
Normal file
@@ -0,0 +1,32 @@
|
||||
### metaHandlers.lua
|
||||
|
||||
This module provides access and control over player metadata, which is useful for storing temporary or persistent player-specific values like stats, states, or tags.
|
||||
|
||||
- **GetPlayer(source)**
|
||||
|
||||
⚠️ Server side only
|
||||
- Retrieves the player object (as defined by the framework in use) from the given `source` ID.
|
||||
- **Example:**
|
||||
```lua
|
||||
local player = GetPlayer(playerId)
|
||||
```
|
||||
|
||||
- **GetMetadata(player, key)**
|
||||
|
||||
- Retrieves the value of a metadata field from the given player.
|
||||
- If called client-side (player is nil), it triggers a server callback to retrieve metadata.
|
||||
- **Example:**
|
||||
```lua
|
||||
local stress = GetMetadata(player, "stress")
|
||||
print("Player stress level:", stress)
|
||||
```
|
||||
|
||||
- **SetMetadata(player, key, value)**
|
||||
|
||||
⚠️ Server side only
|
||||
- Updates or assigns a value to a specific metadata key for a player.
|
||||
- The function updates the player's metadata using the active core export.
|
||||
- **Example:**
|
||||
```lua
|
||||
SetMetadata(player, "stress", 0)
|
||||
```
|
||||
21
documentation/main_functions/notify.md
Normal file
21
documentation/main_functions/notify.md
Normal file
@@ -0,0 +1,21 @@
|
||||
### notify.lua
|
||||
|
||||
This module provides a unified interface to trigger styled notifications across supported frameworks.
|
||||
|
||||
- **triggerNotify(title, message, type, src)**
|
||||
|
||||
- Sends a notification to a player (or to the entire client if `src` is `nil`).
|
||||
- The notification style is determined by `type` (e.g., `success`, `error`, `info`).
|
||||
- **Parameters:**
|
||||
- `title` (`string`): The title or header of the notification.
|
||||
- `message` (`string`): The body or detail text.
|
||||
- `type` (`string`): Type of message (e.g., "success", "error", "info").
|
||||
- `src` (`number`, optional): Server ID of the player to notify (omit to notify locally).
|
||||
- **Example:**
|
||||
```lua
|
||||
-- Client-side usage without specifying a player (shows to the current player)
|
||||
triggerNotify("Success", "You have completed the task!", "success")
|
||||
|
||||
-- Server-side usage specifying a player by their server ID
|
||||
triggerNotify("Alert", "You have been warned for misconduct.", "error", source)
|
||||
```
|
||||
21
documentation/main_functions/phones.md
Normal file
21
documentation/main_functions/phones.md
Normal file
@@ -0,0 +1,21 @@
|
||||
### phones.lua
|
||||
|
||||
This module allows you to send in-game mail/messages to player phones, depending on the phone system integrated (e.g., QB, NPWD).
|
||||
|
||||
- **sendPhoneMail(data)**
|
||||
|
||||
- Sends a mail message to a player's in-game phone app.
|
||||
- Typically used to notify players about deliveries, missions, or reminders.
|
||||
- **Parameters:**
|
||||
- `data` (`table`): Must contain phone/mail system-compatible fields like `sender`, `subject`, `message`, and `receiver`.
|
||||
- **Example:**
|
||||
```lua
|
||||
sendPhoneMail({
|
||||
subject = "Welcome!",
|
||||
sender = "Admin",
|
||||
message = "Thank you for joining our server.",
|
||||
actions = {
|
||||
{ label = "Reply", action = replyFunction }
|
||||
}
|
||||
})
|
||||
```
|
||||
115
documentation/main_functions/playerfunctions.md
Normal file
115
documentation/main_functions/playerfunctions.md
Normal file
@@ -0,0 +1,115 @@
|
||||
### playerfunctions.lua
|
||||
|
||||
This module contains helper functions for manipulating player states, interactions, and utility checks.
|
||||
|
||||
- **instantLookEnt(ent, ent2)**
|
||||
|
||||
- Instantly turns an entity to face a target (entity or coordinates) without animation.
|
||||
- **Example:**
|
||||
```lua
|
||||
instantLookEnt(nil, vector3(200.0, 300.0, 40.0))
|
||||
instantLookEnt(ped1, ped2)
|
||||
```
|
||||
|
||||
- **lookEnt(entity)**
|
||||
|
||||
- Makes the current player look toward the given entity.
|
||||
- Usually called after when opening a menu or something similar to make the player visually face the location
|
||||
- **Example:**
|
||||
```lua
|
||||
lookEnt(vector3(200.0, 300.0, 40.0))
|
||||
lookEnt(pedEntity)
|
||||
```
|
||||
|
||||
- **setThirst(src, thirst)**
|
||||
|
||||
⚠️ Server Side Only
|
||||
- Sets the thirst level of a player.
|
||||
- **Example:**
|
||||
```lua
|
||||
setThirst(source, 75)
|
||||
```
|
||||
|
||||
- **setHunger(src, hunger)**
|
||||
|
||||
⚠️ Server Side Only
|
||||
- Sets the hunger level of a player.
|
||||
- **Example:**
|
||||
```lua
|
||||
setHunger(source, 50)
|
||||
```
|
||||
|
||||
- **chargePlayer(cost, moneyType, newsrc)**
|
||||
|
||||
⚠️ Server Side Only
|
||||
- Deducts money from a player of the specified type (`cash`, `bank`, etc).
|
||||
- **Example:**
|
||||
```lua
|
||||
chargePlayer(100, "cash", source)
|
||||
```
|
||||
|
||||
- **fundPlayer(fund, moneyType, newsrc)**
|
||||
|
||||
⚠️ Server Side Only
|
||||
- Adds money to a player's balance of a given type.
|
||||
- **Example:**
|
||||
```lua
|
||||
fundPlayer(250, "bank", source)
|
||||
```
|
||||
|
||||
- **ConsumeSuccess(itemName, type, data)**
|
||||
|
||||
- Handles logic when an item is successfully consumed (e.g., food, drink, etc).
|
||||
- Supports hunger and thirst info directly from table eg. `{ hunger = 10, thirst = 20 }`
|
||||
- **Example:**
|
||||
```lua
|
||||
ConsumeSuccess("health_pack", "food", { hunger = 10 })
|
||||
|
||||
ConsumeSuccess("beer", "alcohol", { thirst = 20 })
|
||||
```
|
||||
|
||||
- **hasJob(job, source, grade)**
|
||||
|
||||
- Checks if a player has a certain job and optionally checks for a specific grade.
|
||||
- Similar to `jobCheck()` but also retrieves as much player job info as possible
|
||||
- **Example:**
|
||||
```lua
|
||||
-- Check if the player has the 'police' job and is on duty
|
||||
local hasPoliceJob, isOnDuty = hasJob("police")
|
||||
if hasPoliceJob and isOnDuty then
|
||||
-- Grant access to police-specific features
|
||||
end
|
||||
|
||||
-- Check if a specific player has the 'gang_leader' job with at least grade 2
|
||||
local hasGangLeaderJob, _ = hasJob("gang_leader", playerId, 2)
|
||||
if hasGangLeaderJob then
|
||||
-- Allow gang leader actions
|
||||
end
|
||||
```
|
||||
|
||||
- **getPlayer(source)**
|
||||
|
||||
- Retrieves basic player information (name, cash, bank, job, etc.) based on the active core/inventory system.
|
||||
- Can be called server-side (passing a player source) or client-side (for current player).
|
||||
- Called often in my scripts as its makes use of frameworks "GetPlayerData" etc.
|
||||
- **Example:**
|
||||
```lua
|
||||
-- Get information for a specific player
|
||||
local playerInfo = getPlayer(playerId)
|
||||
print(playerInfo.name, playerInfo.cash, playerInfo.bank)
|
||||
|
||||
-- Get information for the current player (client-side)
|
||||
local myInfo = getPlayer()
|
||||
print(myInfo.name, myInfo.cash, myInfo.bank)
|
||||
```
|
||||
|
||||
- **GetPlayersFromCoords(coords, radius)**
|
||||
|
||||
- Returns a list of players within a specified radius of a set of coordinates.
|
||||
- **Example:**
|
||||
```lua
|
||||
local nearby = GetPlayersFromCoords(GetEntityCoords(PlayerPedId()), 10.0)
|
||||
for _, playerId in pairs(nearby) do
|
||||
print("Nearby player ID:", playerId)
|
||||
end
|
||||
```
|
||||
44
documentation/main_functions/polyzone.md
Normal file
44
documentation/main_functions/polyzone.md
Normal file
@@ -0,0 +1,44 @@
|
||||
### polyZone.lua
|
||||
|
||||
This module provides helpers for creating and removing polygon or circular zones using PolyZone-compatible data structures.
|
||||
|
||||
- **createPoly(data)**
|
||||
|
||||
- Creates a polygonal zone using the detected polyzone library (ox_lib or PolyZone).
|
||||
- Automatically checks which polyzone script is active. When using ox_lib, it converts the provided 2D points to 3D (setting a constant z value) and sets a thickness value.
|
||||
- For PolyZone, it creates the zone and attaches onEnter and onExit callbacks for ease of use.
|
||||
- **Example:**
|
||||
```lua
|
||||
createPoly({
|
||||
name = 'testZone',
|
||||
debug = true,
|
||||
points = { vec2(100.0, 100.0), vec2(200.0, 100.0), vec2(200.0, 200.0), vec2(100.0, 200.0) },
|
||||
onEnter = function() print("Entered Test Zone") end,
|
||||
onExit = function() print("Exited Test Zone") end,
|
||||
})
|
||||
```
|
||||
|
||||
- **createCirclePoly(data)**
|
||||
|
||||
- When using ox_lib, it creates a sphere zone. For PolyZone, it creates a CircleZone and attaches onEnter and onExit callbacks.
|
||||
- **Example:**
|
||||
```lua
|
||||
createCirclePoly({
|
||||
name = 'circleZone',
|
||||
coords = vector3(150.0, 150.0, 20.0),
|
||||
radius = 50.0,
|
||||
onEnter = function() print("Entered Circle Zone") end,
|
||||
onExit = function() print("Exited Circle Zone") end,
|
||||
})
|
||||
```
|
||||
|
||||
- **removePolyZone(Location)**
|
||||
|
||||
- Removes a previously created polygon or circle zone by name.
|
||||
- Detects the active polyzone library and calls the appropriate removal method.
|
||||
- **Example:**
|
||||
```lua
|
||||
local zone = createPoly({...})
|
||||
---
|
||||
removePolyZone(zone)
|
||||
```
|
||||
23
documentation/main_functions/progressbars.md
Normal file
23
documentation/main_functions/progressbars.md
Normal file
@@ -0,0 +1,23 @@
|
||||
### progressBars.lua
|
||||
This module provides a unified progress bar system compatible with various UI frameworks.
|
||||
|
||||
❔It also contains an experimental "Shared Progressbar" system which was created for things like "giving an item to another player"
|
||||
|
||||
- **progressBar(data)**
|
||||
- Displays a progress bar using the current configured system (e.g., ox_lib, qb, etc).
|
||||
- **Example:**
|
||||
```lua
|
||||
local success = progressBar({
|
||||
label = "Processing...",
|
||||
time = 5000,
|
||||
dict = "amb@world_human_hang_out_street@female_hold_arm@base",
|
||||
anim = "base",
|
||||
flag = 49,
|
||||
cancel = true,
|
||||
})
|
||||
if success then
|
||||
print("Success!")
|
||||
else
|
||||
print("Cancelled")
|
||||
end
|
||||
```
|
||||
24
documentation/main_functions/scaleentity.md
Normal file
24
documentation/main_functions/scaleentity.md
Normal file
@@ -0,0 +1,24 @@
|
||||
### scaleEntity.lua
|
||||
|
||||
This utility provides a simple interface to scale an entity (ped, object, vehicle) in the world.
|
||||
|
||||
⚠️ **Important:** Unless the model's collision is removed or modified, the scale will reset when interacted with by other entities (e.g., walking into it, driving over it).
|
||||
|
||||
- **scaleEntity(entity, scale)**
|
||||
|
||||
- Scales the specified entity by the given factor.
|
||||
- **Parameters:**
|
||||
- `entity` (`number`): Entity handle (ped, object, vehicle).
|
||||
- `scale` (`number`): Scale factor (e.g., `1.0` is normal size, `0.5` is half size).
|
||||
- **Example:**
|
||||
```lua
|
||||
scaleEntity(PlayerPedId(), 0.8) -- Shrinks player slightly
|
||||
```
|
||||
|
||||
- **resetScale(entity)**
|
||||
|
||||
- Resets the entity's scale back to its original default.
|
||||
- **Example:**
|
||||
```lua
|
||||
resetScale(PlayerPedId()) -- Return to default size
|
||||
```
|
||||
63
documentation/main_functions/shops.md
Normal file
63
documentation/main_functions/shops.md
Normal file
@@ -0,0 +1,63 @@
|
||||
### shops.lua
|
||||
|
||||
This module provides functions to open, sell to, and register in-game shops and markets.
|
||||
|
||||
- **sellMenu(data)**
|
||||
|
||||
- Opens a UI menu for selling items to a vendor or market system.
|
||||
- A simple system for the ability to sell all of an item in a players inventory
|
||||
- Good for money making eg. pawn shops
|
||||
- **Example:**
|
||||
```lua
|
||||
sellMenu({
|
||||
sellTable = {
|
||||
Header = "Sell Items",
|
||||
Items = {
|
||||
["gold_ring"] = 100,
|
||||
["diamond"] = 500,
|
||||
},
|
||||
},
|
||||
ped = pedEntity,
|
||||
onBack = function() print("Returning to previous menu") end,
|
||||
})
|
||||
```
|
||||
|
||||
- **sellAnim(data)**
|
||||
|
||||
- Plays an animation during the selling process for immersion.
|
||||
- Used in sellMenu, but can be called externally if needed
|
||||
- **Example:**
|
||||
```lua
|
||||
sellAnim({
|
||||
item = "gold_ring",
|
||||
price = 100,
|
||||
ped = pedEntity,
|
||||
onBack = function() print("Sold Items") end,
|
||||
)
|
||||
```
|
||||
|
||||
- **openShop(data)**
|
||||
|
||||
- Opens a shop interface for purchasing items.
|
||||
- Checks job/gang restrictions, then uses the active inventory system to open the shop.
|
||||
- **Example:**
|
||||
```lua
|
||||
openShop({
|
||||
shop = "weapon_shop",
|
||||
items = weaponShopItems,
|
||||
coords = vector3(100.0, 200.0, 300.0),
|
||||
job = "police",
|
||||
})
|
||||
```
|
||||
|
||||
- **registerShop(name, label, items, society)**
|
||||
|
||||
- Registers a named shop with associated items and an optional society for fund handling.
|
||||
- Supports either OXInv or QBInv (with QBInvNew flag).
|
||||
- **Example:**
|
||||
```lua
|
||||
registerShop("fishing_shop", "Bait & Tackle", {
|
||||
{ item = "fishing_rod", price = 50 },
|
||||
{ item = "bait", price = 5 }
|
||||
}, "fishing_society")
|
||||
```
|
||||
16
documentation/main_functions/skillcheck.md
Normal file
16
documentation/main_functions/skillcheck.md
Normal file
@@ -0,0 +1,16 @@
|
||||
### skillcheck.lua
|
||||
|
||||
This module provides a UI-based skill check system, useful for crafting, hacking, or other interactive gameplay scenarios.
|
||||
|
||||
- **skillCheck()**
|
||||
|
||||
- Starts a skill check minigame sequence using the provided configuration.
|
||||
- Configuration may define speed, difficulty, bar size, or success zones.
|
||||
- **Example:**
|
||||
```lua
|
||||
if skillCheck() then
|
||||
print("Success!")
|
||||
else
|
||||
print("Failed :(")
|
||||
end
|
||||
```
|
||||
28
documentation/main_functions/societybank.md
Normal file
28
documentation/main_functions/societybank.md
Normal file
@@ -0,0 +1,28 @@
|
||||
### societybank.lua
|
||||
|
||||
This module handles financial operations for society accounts, typically used for jobs or organizations.
|
||||
|
||||
- **getSocietyAccount(society)**
|
||||
|
||||
- Retrieves the current balance for the specified society.
|
||||
- **Example:**
|
||||
```lua
|
||||
local balance = getSocietyAccount("police")
|
||||
print("Police account balance: $"..balance)
|
||||
```
|
||||
|
||||
- **chargeSociety(society, amount)**
|
||||
|
||||
- Deducts a specified amount from the society's account.
|
||||
- **Example:**
|
||||
```lua
|
||||
chargeSociety("police", 500)
|
||||
```
|
||||
|
||||
- **fundSociety(society, amount)**
|
||||
|
||||
- Adds funds to a society’s account.
|
||||
- **Example:**
|
||||
```lua
|
||||
fundSociety("ambulance", 1200)
|
||||
```
|
||||
44
documentation/main_functions/stashcontrol.md
Normal file
44
documentation/main_functions/stashcontrol.md
Normal file
@@ -0,0 +1,44 @@
|
||||
### stashcontrol.lua
|
||||
|
||||
This module handles logic for interacting with stashes—shared inventories for crafting, jobs, or storage systems.
|
||||
|
||||
- **checkStashItem(stashes, itemTable)**
|
||||
|
||||
- Retrieves (or updates) a local stash cache entry with a timeout.
|
||||
- **Example:**
|
||||
```lua
|
||||
local found, foundinStash = checkStashItem({"crafting_stash"}, { item = "steel", amount = 2 })
|
||||
if found then print("Found item in "..foundInStash) end
|
||||
```
|
||||
|
||||
- **openStash(data)**
|
||||
|
||||
- Opens a stash using the active inventory system.
|
||||
- Checks for job or gang restrictions before opening the stash.
|
||||
- **Example:**
|
||||
```lua
|
||||
openStash({
|
||||
stash = "playerStash",
|
||||
label = "Player Stash",
|
||||
coords = vector3(100, 200, 30)
|
||||
})
|
||||
```
|
||||
|
||||
- **getStash(stashName)**
|
||||
|
||||
- Retrieves the stash data by name (usually used for querying contents).
|
||||
- **Example:**
|
||||
```lua
|
||||
local items = getStash("playerStash")
|
||||
for k, v in pairs(items) do
|
||||
print(k)
|
||||
end
|
||||
```
|
||||
|
||||
- **stashRemoveItem(stashItems, stashName, items)**
|
||||
|
||||
- Removes specified items from a stash. Used during crafting or transfers.
|
||||
- **Example:**
|
||||
```lua
|
||||
stashRemoveItem(currentItems, "playerStash", { iron = 2, wood = 5 })
|
||||
```
|
||||
108
documentation/main_functions/targets.md
Normal file
108
documentation/main_functions/targets.md
Normal file
@@ -0,0 +1,108 @@
|
||||
### targets.lua
|
||||
|
||||
⚠️ This module provides utility functions for adding and removing interaction targets with entities, models, zones, and coordinates. Supports common targeting frameworks like `ox_target`, `qb-target`, and more.
|
||||
|
||||
- **createEntityTarget(entity, opts, dist)**
|
||||
|
||||
- Adds interaction targets to a specific in-world entity.
|
||||
- **Example:**
|
||||
```lua
|
||||
createEntityTarget(entityId, {
|
||||
{
|
||||
action = function()
|
||||
openStorage()
|
||||
end,
|
||||
icon = "fas fa-box",
|
||||
job = "police",
|
||||
label = "Open Storage",
|
||||
},
|
||||
}, 2.0)
|
||||
```
|
||||
|
||||
- **createBoxTarget(data, opts, dist)**
|
||||
|
||||
- Creates an interactable box zone with configurable options.
|
||||
- **Example:**
|
||||
```lua
|
||||
createBoxTarget(
|
||||
{
|
||||
'storageBox',
|
||||
vector3(100.0, 200.0, 30.0),
|
||||
2.0,
|
||||
2.0,
|
||||
{
|
||||
name = 'storageBox',
|
||||
heading = 100.0,
|
||||
debugPoly = true,
|
||||
minZ = 27.0,
|
||||
maxZ = 32.0,
|
||||
},
|
||||
},
|
||||
{
|
||||
{
|
||||
action = function()
|
||||
openStorage()
|
||||
end,
|
||||
icon = "fas fa-box",
|
||||
job = "police",
|
||||
label = "Open Storage",
|
||||
},
|
||||
}, 2.0)
|
||||
```
|
||||
|
||||
- **createCircleTarget(data, opts, dist)**
|
||||
|
||||
- Creates an interactable circular zone.
|
||||
- **Example:**
|
||||
```lua
|
||||
createCircleTarget({
|
||||
name = 'centralPark',
|
||||
coords = vector3(200.0, 300.0, 40.0),
|
||||
radius = 50.0,
|
||||
options = { debugPoly = false }
|
||||
}, {
|
||||
{ icon = "fas fa-tree", label = "Relax", action = relaxAction }
|
||||
}, 2.0)
|
||||
```
|
||||
|
||||
- **createModelTarget(models, opts, dist)**
|
||||
|
||||
- Adds interactions to all matching models globally.
|
||||
- **Example:**
|
||||
```lua
|
||||
createModelTarget({ model1, model2 },
|
||||
{
|
||||
{
|
||||
action = function()
|
||||
openStorage()
|
||||
end,
|
||||
icon = "fas fa-box",
|
||||
job = "police",
|
||||
label = "Open Storage",
|
||||
},
|
||||
}, 2.0)
|
||||
```
|
||||
|
||||
- **removeEntityTarget(entity)**
|
||||
|
||||
- Removes all targets linked to the specified entity.
|
||||
- **Example:**
|
||||
```lua
|
||||
removeEntityTarget(vehicle)
|
||||
```
|
||||
|
||||
- **removeZoneTarget(target)**
|
||||
|
||||
- Removes a named zone-based target.
|
||||
- **Example:**
|
||||
```lua
|
||||
removeZoneTarget("shop_box")
|
||||
```
|
||||
|
||||
- **removeModelTarget(model)**
|
||||
|
||||
- Removes interactions tied to a model globally.
|
||||
- **Example:**
|
||||
```lua
|
||||
removeModelTarget("prop_vend_soda")
|
||||
```
|
||||
63
documentation/main_functions/vehicles.md
Normal file
63
documentation/main_functions/vehicles.md
Normal file
@@ -0,0 +1,63 @@
|
||||
### vehicles.lua
|
||||
|
||||
This module provides utilities for reading, modifying, and interacting with vehicle properties and positioning.
|
||||
|
||||
- **searchCar(vehicle)**
|
||||
|
||||
- Searches the 'Vehicles' table for a specific vehicle's details.
|
||||
- If the vehicle differs from the last searched, it retrieves its model and updates the carInfo table.
|
||||
- The table includes the vehicle's name, price, and class information.
|
||||
- **Example:**
|
||||
```lua
|
||||
local info = searchCar(vehicleEntity)
|
||||
print(info.name, info.price, info.class.name, info.class.index)
|
||||
```
|
||||
|
||||
- **getVehicleProperties(vehicle)**
|
||||
|
||||
- Retrieves the properties of a given vehicle using the active framework.
|
||||
- **Example:**
|
||||
```lua
|
||||
local props = getVehicleProperties(vehicle)
|
||||
if props then
|
||||
print(json.encode(props))
|
||||
end
|
||||
```
|
||||
|
||||
- **setVehicleProperties(vehicle, props)**
|
||||
|
||||
- Sets the properties of a given vehicle if changes are detected.
|
||||
- It compares the current properties with the new ones and applies the update using the active framework.
|
||||
- **Example:**
|
||||
```lua
|
||||
setVehicleProperties(vehicle, props)
|
||||
```
|
||||
|
||||
- **checkDifferences(vehicle, newProps)**
|
||||
|
||||
- Checks for differences between the current and new vehicle properties.
|
||||
- Compares properties using JSON encoding for deep comparison and logs differences.
|
||||
- **Example:**
|
||||
```lua
|
||||
if checkDifferences(vehicleEntity, newProperties) then
|
||||
setVehicleProperties(vehicleEntity, newProperties)
|
||||
end
|
||||
```
|
||||
|
||||
- **pushVehicle(entity)**
|
||||
|
||||
- This function ensures that the vehicle is controlled by the current player and is set as a mission entity.
|
||||
- It requests network control and sets the vehicle accordingly to synchronize changes across clients.
|
||||
- **Example:**
|
||||
```lua
|
||||
pushVehicle(vehicle)
|
||||
```
|
||||
|
||||
- **getClosestVehicle(coords, src)**
|
||||
|
||||
- Finds the closest vehicle to the specified coordinates.
|
||||
- The function uses different APIs based on whether a source is provided.
|
||||
- **Example:**
|
||||
```lua
|
||||
local closestVeh, distance = getClosestVehicle({ x = 100, y = 200, z = 30 }, source)
|
||||
```
|
||||
37
documentation/main_functions/wrapperfunctions.md
Normal file
37
documentation/main_functions/wrapperfunctions.md
Normal file
@@ -0,0 +1,37 @@
|
||||
### wrapperfunctions.lua
|
||||
|
||||
Provides wrapper compatibility functions for command and inventory stash systems across different frameworks (OX, QB, ESX, QS, etc).
|
||||
|
||||
- **registerCommand(command, options)**
|
||||
|
||||
⚠️ Server Side Only
|
||||
- Registers a command using the appropriate framework's API.
|
||||
- **Parameters:**
|
||||
- `command`: Command name (string)
|
||||
- `options`: Table including help, params, callback, autocomplete, restrictedGroup
|
||||
- **Example:**
|
||||
```lua
|
||||
registerCommand("greet", {
|
||||
"Greets the player",
|
||||
{ name = "name", help = "Name of the player to greet" },
|
||||
function(source, args) print("Hello, "..args[1].."!") end,
|
||||
nil,
|
||||
"admin"
|
||||
})
|
||||
```
|
||||
|
||||
- **registerStash(name, label, slots?, weight?, owner?, coords?)**
|
||||
|
||||
⚠️ Server Side Only
|
||||
- Registers a stash using OX, QS, or Origen inventory systems.
|
||||
- **Example:**
|
||||
```lua
|
||||
registerStash(
|
||||
"playerStash",
|
||||
"Player Stash",
|
||||
100,
|
||||
8000000,
|
||||
"player123",
|
||||
{ x = 100.0, y = 200.0, z = 30.0 }
|
||||
)
|
||||
```
|
||||
Reference in New Issue
Block a user