Skip to content

Customization

Everything you can change is in two places: config.lua for behaviour, and the bridge/ folder for how the rope talks to your framework, your target and your text UI. Both are open (listed in escrow_ignore); client/client.lua and server.lua are escrowed.


FileWhat it decides
config.luaFramework, item name, interaction system, labels, keys, distances, rope length and physics, marker, cooldown, time limit
bridge/server_bridge.luaGetting the framework, registering the rope item as usable, checking the player carries it
bridge/client_bridge.luaThe 3D text and the marker drawn in drawtext mode, and the client event that takes the rope out
bridge/target.luaThe ox_target and qb-target options, and the fall-back to drawtext
bridge/README.mdShort notes on the bridge (in Spanish)
inventory/Ready-made item definitions for ox_inventory, QBCore and ESX
stream/The rope prop model and texture

There is no locales/ folder. The only text players see is the labels in Config.Labels.


OptionWhat it doesDefault
Config.Frameworkesx or qbcore. On QBox, use qbcore — QBox runs QBCore resources through its compatibility layer. Anything else stops the resource on startesx
Config.ItemThe inventory item that is the roperope
OptionWhat it doesDefault
Config.InteractionSystemox_target, qb-target or drawtext. A target that is not running falls back to drawtext until it startsox_target
Config.LabelsThe text for each action: grab (Drag with rope), release (Release player), attach (Tie to vehicle), detach (Untie from vehicle)English
Config.KeyLabelsThe key names shown in drawtext mode: Attach and VehicleE, Y
Config.ShowInteractionMarkersDraw a marker over the player or vehicle you can act on. Drawtext mode onlytrue

What each action does:

ActionWho can do itWhat happens
Drag with ropeYou, with the rope in hand, near a player on footThat player is tied to your hand
Release playerThe one draggingThe rope is removed and the player gets up
Tie to vehicleThe one dragging, near a vehicleThe rope moves from your hand to the back of the vehicle
Untie from vehicleThe one who tied itThe rope comes back into your hand, player still attached
Release player (on the vehicle)The one who tied itThe player is let go from the vehicle

Keys are FiveM control numbers. Arrow keys work in every mode; E and Y only matter in drawtext mode (with a target, you pick the action from the menu).

OptionWhat it doesDefault
Config.AttachKeyGrab or release a player38 (E)
Config.AttachToVehicleKeyTie to or untie from a vehicle246 (Y)
Config.AdjustLengthUpKeyHold to lengthen the rope172 (Arrow Up)
Config.AdjustLengthDownKeyHold to shorten the rope173 (Arrow Down)

If you change AttachKey or AttachToVehicleKey, change Config.KeyLabels too, or the prompt will show the old key.

OptionWhat it doesDefault
Config.MaxDetectionDistanceHow close (m) a player must be to be grabbed. Also the target distance for players2.0
Config.MaxVehicleAttachDistanceHow close (m) a vehicle must be to tie the rope to it. Also the target distance for vehicles5.0
Config.MarkerVisibilityDistanceStill in config.lua, but not read by the current version — the prompt shows for whoever is within the two distances above20.0
OptionWhat it doesDefault
Config.InitialRopeLengthLength (m) when a drag starts3.0
Config.MinRopeLengthShortest the arrows can make it1.0
Config.MaxRopeLengthLongest the arrows can make it100.0
Config.RopeTypeThe game’s rope type1
Config.RopeSlackStill in config.lua, but not read by the current version — the rope’s give comes from its length0.5
Config.RopePropModelThe prop in the player’s hand. The default one streams from stream/prop_stag_do_rope
OptionWhat it doesDefault
Config.MarkerTypeThe game’s marker type2
Config.MarkerHeightOffsetHeight (m) above the player where the prompt and marker sit1.0
Config.MarkerScaleMarker size0.3
Config.MarkerColorMarker colour, as red, green, blue and alphared, alpha 150
OptionWhat it doesDefault
Config.DragCooldownMilliseconds between two rope actions1000
Config.DisableControlsBlock every control of the player being dragged. Off, they can still use their controls while ragdolledtrue
Config.EnableMaxDragTimeBreak the rope on its own after MaxDragTimefalse
Config.MaxDragTimeSeconds before the rope breaks, when the option above is on100
Config.NeedItemToReleaseOn foot, releasing needs the rope in hand. The owner can always release someone tied to a vehicletrue

The player being dragged is ragdolled, can not fire, and is invincible until the rope comes off.


There is no locale file. Translate the four strings in Config.Labels, and Config.KeyLabels if your players use a different key naming.


The bridge/ folder is open so you can fit the rope to a setup it does not know. The rope physics and the network events stay in the escrowed files and do not need to change.

  • server_bridge.lua — framework and inventory. Gets ESX or QBCore, registers Config.Item as a usable item, and answers “does this player carry a rope?” when a drag starts. For a custom framework or an inventory with its own API, rewrite Bridge.GetPlayer, Bridge.HasRope and Bridge.RegisterRopeItem. Register the item in one place only — two integrations registering the same item will fire twice.
  • client_bridge.lua — text and marker. Bridge.DrawText and Bridge.DrawMarker draw the drawtext prompt every frame it is visible. Replace them to use your own 3D text or TextUI resource. It also listens for the client event mic_drag:useRope, which takes the rope out or puts it away — trigger that from a custom inventory’s use callback if you do not use the framework’s usable items.
  • target.lua — target menus. Adds and removes the global player and vehicle options for ox_target and qb-target, and switches to drawtext when the target stops. Another target resource would be added here.

Export (client)Returns
GetInteractionStateA table: mode (the interaction in use), hasRope (rope in hand), targetServerId (who you are dragging), vehicle (the vehicle the rope is tied to), beingDragged, busy

It is read-only: useful for a HUD, or for another script to know not to act on a player who is on a rope.