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

Water Activities Pack Documentation

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

Compatibility

  • ESX Legacy
  • QBCore
  • Qbox with QBCore compatibility support
  • ox_inventory
  • qs-inventory

Requirements

  • ESX Legacy, QBCore, or Qbox with QBCore compatibility support
  • Framework resource if you use a framework mode
  • ox_lib required
  • OneSync required for stable networked activity entities
  • ox_target optional for target interaction
  • qb-target optional for target interaction
  • qb-menu optional for QBCore menu fallback
  • ox_inventory optional for item rewards
  • qs-inventory optional for item rewards
  • Custom streamed props and animations included in the stream folder

Installation

  • Download the resource from your Tebex purchases.
  • Extract the folder.
  • Place the tdev_wateractivities folder inside your server resources folder.
  • Start your framework before the resource.
  • Start ox_lib before the resource.
  • Start ox_target or qb-target before the resource if you use target interaction.
  • Start ox_inventory or qs-inventory before the resource if you use inventory rewards.
  • Make sure all files inside the stream folder stay inside the resource.
  • Make sure tdev_activities_props.ytyp is inside the stream folder.
  • Open the config.lua file.
  • Select your framework or leave it on auto detection.
  • Configure the target system, menu system, inventory system, locale, and webhook.
  • Configure the activity ped, blip, return coordinates, prices, and payment accounts.
  • Configure Kayak, Surf, Paddle, Flyingboard, Rubber Ring, and Skurfing locations.
  • Configure custom props, animations, seats, rope settings, water FX, and activity controls.
  • Replace html/logo or activity icon files if you want to use your own menu branding.
  • Add the resource to your server.cfg.
  • Restart your server or run refresh followed by ensure tdev_wateractivities.
  • Test solo start, lobby start, ready checks, payments, park/exit behavior, and cleanup for every activity.

Server CFG Example

ESX Example:

ensure es_extended

ensure ox_lib

ensure ox_target

ensure ox_inventory

ensure tdev_wateractivities

QBCore Example:

ensure qb-core

ensure ox_lib

ensure qb-target

ensure qb-menu

ensure ox_inventory

ensure tdev_wateractivities

Configuration

  • Set Config.Framework to auto, esx, or qb.
  • Use qb mode for QBCore and Qbox servers using QBCore compatibility.
  • Set Config.Target to auto, ox_target, qb-target, or none.
  • Set Config.Menu to nui, ox_lib, qb-menu, esx, or auto.
  • Set Config.Inventory to auto, framework, ox_inventory, or qs-inventory.
  • Configure Config.ActivityPeds for ped model, location, scenario, blip, and enabled activities.
  • Configure Config.Payment for prices, payment account, charge timing, refunds, and production payment behavior.
  • Configure Config.Security for lobby size, ready timeout, ped distance validation, cooldowns, and anti-abuse checks.
  • Configure Config.ActivityReturnCoords for the position players return to when exiting activities.
  • Configure Config.Kayak for kayak model, locations, command, park behavior, and water spawn settings.
  • Configure Config.Surf for surfboard model, animations, locations, park behavior, and board placement.
  • Configure Config.Paddle for paddleboard model, paddle prop, animations, locations, and stand-up behavior.
  • Configure Config.Flyingboard for custom board prop, flying movement, height limits, water spray FX, sound, and park behavior.
  • Configure Config.RubberRing for boat model, custom ring prop, rope length, tow behavior, seats, max players, and exit control.
  • Configure Config.Skurfing for board prop, guidon prop, rope handling, player animation, side movement, and boat route behavior.
  • Keep lobby creation, payment, refund, start, finish, and validation logic server-side.

Activities Included

  • Kayak
  • Surf
  • Paddleboard
  • Flyingboard
  • Rubber Ring
  • Skurfing

Activity System

  • Players open the water activities menu from the configured activity ped.
  • Players can start supported activities alone.
  • Players can create group lobbies.
  • Lobby members can ready up before the activity starts.
  • The activity starts automatically when all required members are ready.
  • Payments, refunds, active sessions, lobby ownership, and cleanup are handled server-side.
  • Players return to the configured return coordinates when exiting supported activities.
  • Admins can use stopwateractivity to force stop their active water activity.

Custom Props and Animations

  • The resource includes custom streamed props for Flyingboard, Rubber Ring, and Skurfing.
  • The resource includes custom streamed animations for Surfing and Skurfing.
  • Keep stream/tdev_activities_props.ytyp inside the stream folder.
  • Keep flyingboard.ydr, rubberring.ydr, kitesurfboard.ydr, and kitesurfguidon.ydr inside the stream folder.
  • Keep tdev@surfing.ycd and tdev@skurfing.ycd inside the stream folder.
  • Do not rename streamed models unless you also update config.lua and the YTYP references.
  • Fully restart the resource after changing streamed models, YTYP files, or animation dictionaries.

Security

  • Do not move payment logic client-side.
  • Do not move reward logic client-side.
  • Do not trust client-sent prices, accounts, rewards, activity types, lobby IDs, session IDs, coordinates, or network IDs.
  • Keep server-side destination validation enabled on production servers.
  • Keep server-side activity ped validation enabled on production servers.
  • Keep preventDoubleCharge enabled on production servers.
  • Keep preventMultipleActiveActivities enabled on production servers.
  • Keep refundOnInternalFailure enabled on production servers.
  • Use Config.Webhook and logging for payment logs, warning logs, and exploit logs.
  • Back up config.lua before updating the resource.

Anticheat Whitelist

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

Important server events include tdev_wateractivities:server:callback, tdev_wateractivities:server:getConfigSafe, tdev_wateractivities:server:createLobby, tdev_wateractivities:server:joinLobby, tdev_wateractivities:server:leaveLobby, tdev_wateractivities:server:setReady, tdev_wateractivities:server:startAlone, tdev_wateractivities:server:requestStart, tdev_wateractivities:server:finishActivity, tdev_wateractivities:server:cancelActivity, tdev_wateractivities:server:rideEntityReady, tdev_wateractivities:server:rubberRingEntitiesReady, and tdev_wateractivities:server:skurfingEntitiesReady.

Important client events include tdev_wateractivities:client:callback, tdev_wateractivities:client:notify, tdev_wateractivities:client:openMenu, tdev_wateractivities:client:updateLobby, tdev_wateractivities:client:startRideActivity, tdev_wateractivities:client:startRubberRing, tdev_wateractivities:client:startSkurfing, tdev_wateractivities:client:endActivity, tdev_wateractivities:client:forceStopActivity, tdev_wateractivities:client:rideEntityReady, tdev_wateractivities:client:rubberRingEntitiesReady, tdev_wateractivities:client:skurfingEntitiesReady, tdev_wateractivities:client:rubberRingControllerChanged, and tdev_wateractivities:client:skurfingControllerChanged.

Common Issues

Menu does not open: Check Config.ActivityPeds, Config.Target, ox_target or qb-target ensure order, ped coordinates, and client console errors.

No blip appears: Check that the activity ped blip is enabled in Config.ActivityPeds and restart the resource.

Activity does not start: Check payment settings, player money account, server console errors, lobby status, and activity destination config.

Players spawn without props: Check that OneSync is enabled and that the custom models are streamed correctly.

Custom props do not appear: Check stream/tdev_activities_props.ytyp, the matching .ydr files, fxmanifest.lua data_file entries, and restart the resource.

Custom animations do not play: Check the .ycd file name, animation dictionary, animation clip name, fxmanifest.lua ANIM_DICT entries, and restart the resource.

Flyingboard does not move: Check Config.Flyingboard movement settings, hidden vehicle logic, keybind controls, and F8 errors.

Rubber Ring shakes or flickers: Check OneSync, rope settings, tow settings, seat offsets, and make sure the ring prop is not being forced by another resource.

Skurfing props shake or flicker: Check guidon settings, board offsets, rope settings, hidden tow settings, and network ownership stability.

Players do not return after exiting: Check Config.ActivityReturnCoords and make sure no other spawn or death resource overrides the player position.

Payments are not taken: Check Config.Payment.enabled, Config.Payment.account, framework detection, and player money account names.

Qbox server does not start the resource: Use QBCore compatibility support or configure the server to expose qb-core compatible player/payment functions.

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