Installation
Five minutes. One folder, one item, one line in config.lua.
Before you start
Section titled “Before you start”| You need | Why |
|---|---|
| ESX, QBCore or QBox, running | The rope item is registered through your framework |
An inventory that can hold a rope item | ox_inventory, qb-inventory or the ESX default all work |
| ox_target or qb-target (optional) | Only if you want the target menu instead of 3D text |
1. Put the folder in place
Section titled “1. Put the folder in place”Drop mic_drag into your resources, for example inside resources/[mic]/. Keep the stream/ folder that comes with it: it holds the rope prop (prop_stag_do_rope) and its texture, and without it the rope never appears in the player’s hand.
2. Start it after your framework
Section titled “2. Start it after your framework”In server.cfg, put ensure mic_drag below your framework (es_extended, qb-core or qbx_core) and below your inventory. If you use a target, start it before mic_drag too — although the rope will pick the target up by itself if it starts later.
It worked when the server console shows no red line from mic_drag on start. The one you do not want to see is “Config.Framework must be esx or qbcore”.
3. The database — nothing of its own
Section titled “3. The database — nothing of its own”mic_drag stores nothing. The only database step is the ESX item row in step 4, and only if you use the default ESX inventory.
4. Add the rope item
Section titled “4. Add the rope item”The item name is rope (set by Config.Item).
| Item | What it does |
|---|---|
rope | Use it to take the rope into your hand or put it away. Needed in the inventory to start a drag. Never consumed |
The ready-made definitions ship in the resource’s inventory/ folder:
| Inventory | File in mic_drag/inventory/ | Where it goes |
|---|---|---|
| ox_inventory | ox_inventory.md | Add the entry to ox_inventory/data/items.lua |
| QBCore / qb-inventory | qb_inventory.md | Add the entry to qb-core/shared/items.lua |
| ESX default inventory | esx_inventory.sql | Import it once into your database |
No item image ships with the resource. If your inventory shows a blank icon, drop any rope.png into your inventory’s image folder (ox_inventory/web/images/ or qb-inventory/html/images/).
It worked when you give yourself a rope and it appears in your inventory with its label.
5. Tell it your framework and your interaction
Section titled “5. Tell it your framework and your interaction”Open config.lua:
Config.Framework—esx(the default) orqbcore. There is no auto-detect; this has to match. On QBox, chooseqbcore: QBox runs QBCore resources through its compatibility layer.Config.InteractionSystem—ox_target(the default),qb-targetordrawtext.
If you pick a target that is not running, you will see “ox_target is not started; using drawtext until it starts” in the client console (F8) and the rope works with 3D text in the meantime.
6. First test
Section titled “6. First test”You need a second player for this — the rope only grabs players.
- Use the
ropeitem. The rope appears in your right hand. - Walk up to the other player (within 2 m). With a target, look at them and pick Drag with rope. With drawtext, press E when the prompt shows.
- Walk away. They follow on the line. Hold Arrow Up / Arrow Down to change the length.
- Stand near a car and pick Tie to vehicle (or press Y with drawtext). Drive off.
It worked when the other player ragdolls on the end of a visible rope, and the rope moves from your hand to the back of the car when you tie it.
Before you open your city
Section titled “Before you open your city”Config.Frameworkmatches the framework you actually run (qbcoreon QBox).- QBCore: the item
nameisrope, lowercase. - Labels in
Config.Labelsare in your server’s language — they are the only text players see. Config.KeyLabelsstill matches the keys if you changedConfig.AttachKeyorConfig.AttachToVehicleKey.- Decide on
Config.EnableMaxDragTime. Off, a rope lasts until someone lets go.