SUMMER STARTS WITH 10% OFF | CODE: SUMMER10 SUMMER STARTS WITH 10% OFF | CODE: SUMMER10 SUMMER STARTS WITH 10% OFF | CODE: SUMMER10 SUMMER STARTS WITH 10% OFF | CODE: SUMMER10 SUMMER STARTS WITH 10% OFF | CODE: SUMMER10 SUMMER STARTS WITH 10% OFF | CODE: SUMMER10

Paddleboard Activity Documentation

```html

This guide explains how to install and configure Tdev Paddleboard for your FiveM server.

Compatibility

  • ESX Legacy
  • QBCore
  • Qbox
  • ox_inventory

Requirements

  • ESX Legacy, QBCore, Qbox, or ox_inventory
  • Framework resource if you use a framework mode
  • OneSync required for stable networked board entities
  • ox_lib optional for modern notifications
  • ox_inventory optional for item-based usage
  • Paddle prop included in the stream folder

Installation

  • Download the resource from your Tebex purchases.
  • Extract the folder.
  • Place the tdev_paddleboard folder inside your server resources folder.
  • Start your framework before the resource.
  • Start ox_inventory before the resource if you use ox_inventory.
  • Start ox_lib before the resource if you want ox_lib notifications.
  • Make sure stream/p_banknote_s.ydr stays inside the stream folder.
  • Open the config.lua file.
  • Select your framework or leave it on auto detection.
  • Select your inventory mode or leave it on auto detection.
  • Add the paddleboard_board and paddleboard_paddle items to your inventory system.
  • Configure the board model, carry position, water placement, controls, paddle prop, animations, movement, and safety settings.
  • Add the resource to your server.cfg.
  • Restart your server or run refresh followed by ensure tdev_paddleboard.
  • Give yourself the paddleboard_board and paddleboard_paddle items and test carrying, dropping, mounting, paddle usage, stance switching, exiting, cleanup, and item return.

Server CFG Example

ESX Example:

ensure es_extended

ensure ox_lib

ensure ox_inventory

ensure tdev_paddleboard

QBCore Example:

ensure qb-core

ensure ox_lib

ensure ox_inventory

ensure tdev_paddleboard

Qbox Example:

ensure qbx_core

ensure ox_lib

ensure ox_inventory

ensure tdev_paddleboard

Configuration

  • Set Config.Framework to auto, esx, qb, qbox, or standalone.
  • Set Config.Inventory to auto, framework, or ox_inventory.
  • Configure Config.Items.board if you want to rename the paddleboard_board item.
  • Configure Config.Items.paddle if you want to rename the paddleboard_paddle item.
  • Configure Config.Commands for recovery, reset, and optional testing command names.
  • Configure Config.Controls for drop, mount, exit, stance switch, pickup, paddle movement, reverse, and steering keys.
  • Configure Config.Carry for the paddleboard model, back bone, carry offset, and carry rotation.
  • Keep Config.Carry.anim.enabled disabled if you want the player to walk normally with the board on their back.
  • Configure Config.Drop for water placement distance, water height offset, and water detection behavior.
  • Configure Config.Board for board model, hidden movement vehicle, enter distance, pickup distance, speed, steering, and stance transition behavior.
  • Configure Config.Paddle for the paddle model, hand bone, attach offset, and attach rotation.
  • Configure Config.Animation for crouching idle, crouching paddle, standing idle, standing paddle, and fallbacks.
  • Configure Config.Safety for cooldowns, maximum board distance, death cleanup, board missing cleanup, and production anti-abuse settings.

Item Setup

  • ox_inventory users should copy install/ox_inventory_items.lua into ox_inventory/data/items.lua.
  • QBCore users should copy install/qb-core_items.lua into qb-core/shared/items.lua.
  • Qbox users should use the ox_inventory item snippet or install/qbox_items.lua.
  • ESX users should run install/esx_items.sql.
  • The default board item name is paddleboard_board.
  • The default paddle item name is paddleboard_paddle.
  • The board item is removed server-side only when the board is dropped over water.
  • The paddle item is removed server-side only when the mounted player uses the paddle item.
  • Removed items are returned server-side when the player exits, picks up, resets, disconnects, dies, or cleanup is triggered.

Paddleboard System

  • Players use the paddleboard_board item from their inventory.
  • The player carries the paddleboard and can walk normally.
  • Players press Y to drop the board over water.
  • Players press F near the board to get on it.
  • Players must use the paddleboard_paddle item while mounted to place the paddle in their hands.
  • The board can only be driven after the paddle item is equipped.
  • The board supports two riding positions: crouching and standing.
  • Players press E while mounted to switch between crouching and standing.
  • Players use W/S for forward and reverse movement.
  • Players use A/D to steer the board.
  • Players press X while mounted to exit the board.
  • The paddleboard_board and paddleboard_paddle items automatically return to the player inventory after exiting.
  • Players can use /paddleboardrecover if items could not be returned because their inventory was full.
  • Players can use /paddleboardreset to force clean their active paddleboarding session.

Custom Props and Animations

  • The resource uses GTA surfboard props by default for the paddleboard.
  • The resource includes a streamed paddle prop inside the stream folder.
  • Keep stream/p_banknote_s.ydr inside the stream folder.
  • Do not rename the paddle prop unless you also update Config.Paddle.model.
  • Do not rename board models unless you also update Config.Carry.model and Config.Board.model.
  • The resource uses GTA animation dictionaries by default for crouching, standing, and paddling.
  • Fully restart the resource after changing streamed models or animation settings.

Security

  • Do not move item remove or item return logic client-side.
  • Do not trust client-side inventory state.
  • Keep item usage, item removal, item return, recovery, and cleanup server-side.
  • Keep Config.Safety.actionCooldownMs enabled on production servers.
  • Keep Config.Safety.serverMaxDropDistance enabled on production servers.
  • Keep Config.Safety.forceReturnOnDeath enabled on production servers.
  • Keep Config.Safety.forceReturnWhenBoardMissing enabled on production servers.
  • Keep Config.Safety.cleanupPendingItemsOnResourceStop enabled on production servers.
  • Back up config.lua before updating the resource.

Anticheat Whitelist

If your anticheat blocks custom resource events, whitelist the Tdev Paddleboard events from the README.

Important server events include tdev_paddleboard:server:tryUseBoard, tdev_paddleboard:server:cancelCarry, tdev_paddleboard:server:tryDropBoard, tdev_paddleboard:server:tryUsePaddle, tdev_paddleboard:server:returnPaddle, tdev_paddleboard:server:returnItems, and tdev_paddleboard:server:forceCleanup.

Important client events include tdev_paddleboard:client:notify, tdev_paddleboard:client:useBoard, tdev_paddleboard:client:usePaddle, tdev_paddleboard:client:carryApproved, tdev_paddleboard:client:boardApproved, tdev_paddleboard:client:paddleApproved, tdev_paddleboard:client:paddleReturned, and tdev_paddleboard:client:forceCleanup.

Common Issues

Board item does nothing: Check that the paddleboard_board item exists, is marked usable, and that tdev_paddleboard starts after your framework or inventory.

Paddle item does nothing: Make sure you are mounted on the paddleboard before using the paddleboard_paddle item.

ox_inventory item does nothing: Check that the board item has client export tdev_paddleboard.usePaddleboardBoard and the paddle item has client export tdev_paddleboard.usePaddleboardPaddle, then restart ox_inventory after editing items.lua.

Board does not drop: Make sure the player is standing over valid water and press Y while carrying the board.

Board does not appear: Check that the board model exists, OneSync is enabled, and there are no F8 errors.

Player cannot get on the board: Stand closer to the board and press F. You can increase Config.Board.enterDistance if needed.

Board does not move: Use the paddleboard_paddle item while mounted first, then use W/S and A/D to move.

Paddle does not appear in hand: Check stream/p_banknote_s.ydr, Config.Paddle.model, Config.Paddle.attach, and F8 errors.

Player does not walk normally while carrying: Make sure Config.Carry.anim.enabled is false and Config.Carry.disableControls is false.

Items do not return: Check inventory weight/slots. Free space and use /paddleboardrecover.

Framework detection is wrong: Set Config.Framework manually to esx, qb, or qbox.

Inventory detection is wrong: Set Config.Inventory manually to framework or ox_inventory.

Support

If you need help, open a support ticket in the Tdev Scripts Discord.

Provide your order ID, script name, framework, inventory, full F8 error, server console error, and a screenshot or video.

Support is only available for verified customers.

Support is not provided for leaked, resold, or heavily modified versions.

Discord: https://discord.gg/5MYzXemM4q

```