Richie's Workshop
FiveM mods

GrubRun

Set up food-delivery gigs with live offers, restaurant pickups, and NPC customers.

GrubRun

GrubRun gives players a delivery job they can pick up between other activities. Choose a food order, collect it from a restaurant, and hand it to the waiting customer. Payouts include delivery fees, tips, and configurable bonuses.

FiveM installation · Get help

What you need

  • OneSync.
  • A supported payment framework: Qbox, QBCore, or ESX.
  • LB Phone when using the default phone-access mode.

GrubRun doesn't declare Ox library, inventory, or database dependencies. Its framework and phone integrations are selected in config.lua.

Install the resource

  1. Copy rw_grubrun into your resources folder.
  2. Open config.lua and set Config.Framework for your server.
  3. Choose phone or NPC access using the instructions below.
  4. Review restaurant and customer coordinates for your map.
  5. Start your framework before GrubRun. In phone mode, start LB Phone before it too.

For the shipped Qbox/phone setup, add these after your framework's own dependency setup:

ensure qbx_core
ensure lb-phone
ensure rw_grubrun

Restart the resource after changing its configuration. No web build is required.

Choose your framework

Config.FrameworkPayment integration
qboxQbox through qbx_core; shipped default.
qbQBCore through qb-core.
esxESX through es_extended.
autoDetects Qbox, then QBCore, then ESX; otherwise selects standalone mode.
standaloneDemo credits, only when Config.AllowStandalone is enabled.

Config.PayAccount can be bank or cash; the default is bank. Keep Config.AllowStandalone = false when you want real framework payouts. Demo credits don't add money to a framework account.

Phone access

The defaults are Config.AccessMode = 'phone' and Config.Phone.resource = 'lb-phone'. The resource registers a GrubRun app with LB Phone.

  • defaultApp = true makes it available by default. Set it to false to place it in the app store instead.
  • requireItem = true checks that players have a phone when accessing orders.
  • name, description, and developer control the app listing.
  • textScale controls the phone app's text size; the shipped value is 1.25.
  • icon = false uses the bundled icon.

Players can use the app or /grubrun to open it. Phone mode doesn't spawn the dispatcher NPC.

NPC access instead

To use a dispatcher without LB Phone, change this existing setting:

Config.AccessMode = 'npc'

Players visit Config.Hub, interact with the dispatcher, and open the delivery menu. /grubrun also opens the menu near the hub; it doesn't provide unrestricted remote access by default.

Config.CommandAnywhere = true allows access away from the hub in NPC mode. The shipped value is false. Use Config.Hub to move the dispatcher and change its model, scenario, label, and map blip.

Complete a delivery

  1. Open GrubRun and accept an available offer.
  2. Follow the route to the restaurant and collect the order.
  3. Travel to the customer's marked location before the deadline.
  4. Complete the handoff with the customer to receive your payout.

The default deadline is ten minutes. Pickup and handoff actions have short interaction timers. Death cancels a delivery when Config.CancelOnDeath is enabled, as it is by default.

Tune offers, timings, and locations

SettingWhat it controls
BoardSizeNumber of shared offers; default 6, allowed range 1–30.
BoardRefreshSecondsOffer-board refresh interval; default 15 seconds.
OfferLifetimeSecondsHow long an offer stays available; default 180 seconds.
DeliveryDeadlineSecondsTime allowed to complete an accepted order; default 600 seconds.
PickupSeconds, HandoffSecondsPickup and customer interaction durations.
CancelCooldownSecondsWait after cancelling; default 15 seconds.
RestaurantsRestaurant IDs, names, food choices, and pickup coordinates.
CustomersCustomer names, areas, coordinates, and delivery notes.
CustomerModels, NPCCustomer appearance and NPC behavior.
Route, Marker, ControlsRoutes, visible markers, and interaction keys.
Bag, HandoffAnimation, CompletionSoundDelivery props, animations, and completion audio.

Restaurant pickups should be reachable without entering an interior. Test custom-map positions on foot so players can actually complete both interactions.

Tune the payouts

Config.Pay controls the delivery fee and bonuses. By default, the fee uses a base of 65 plus 42 per kilometer, with a minimum of 85 and a maximum of 260. That minimum and maximum apply to the delivery fee only; tips and bonuses are added afterward.

The shipped tips range from 8 to 35. A qualifying fast delivery adds 20, and every third delivery in a streak adds 30. Adjust these values to fit your server's economy.

Make the interface your own

Use Config.UI for menu dimensions, text scale, colors, currency formatting, the delivery HUD, and notification timing. For example, increasing textScale from 1.0 to 1.15 makes the menu text 15% larger. Phone text has its own setting under Config.Phone.

If something isn't working

The app is missing: check that LB Phone is started, the configured phone resource name is correct, and the console doesn't show a custom-app registration error.

There is no dispatcher: check Config.AccessMode. Phone mode deliberately uses the app rather than an NPC.

Orders aren't accessible: check the phone item requirement in phone mode, or your distance from the hub in NPC mode.

Payouts are unavailable: check the selected framework and its resource state. Don't turn on standalone credits as a substitute for fixing real payouts.

The resource reports an invalid setting: startup validation names the offending Config field. Fix that value and restart rather than removing the validation.

On this page