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