What's in it

A FiveM framework you build your server in

Made for FiveM Legacy & Enhanced

whip is written from scratch: the server in charge of everything, whole jobs built from cards in game, and its menus made to play on a controller.

Built from scratch, with the server in charge

whip needs FiveM and oxmysql, and nothing else: no ESX, QBCore or ox_core underneath. The server owns the game: cars, inventories, money, stats, ground items and doors. A player's game asks, and the server checks and answers. Your resources build on whip_core through exports, and their registrations come back by themselves when it restarts.

  • 1 dependency: oxmysql
  • 478 documented exports
  • 61 typed public events
How whip is built
whip_gunny whip_autos whip_dealership your resource exports whip_core on the server, owns Vehicles Inventories Money Stats Ground items Doors asks answers a player's game a player's game a player's game
One core on the server, resources plugged into it, and players' games that ask rather than decide.

Build jobs and missions without writing code

The Director is a card editor inside the game, with 80 kinds of card. Wire a job together, place its NPCs, cars and props where you stand, then press Test and watch the cards it went through light up. Switch it on, and players start it by talking to an NPC, pressing a prompt, walking up, using an item or on a timer. Every revision is kept, and your resource can add cards of its own.

The Director in the docs
Scenario Started01 Out When the run begins Goal: Deliver the Car02 In Delivered Car lost Out of time CAR Sultan TO Airport cargo Pay03 In Paid Failed AMOUNT $2,500 · cash NPC Says04 In Out Buyer “Too slow.”
An example run after Test: the cards it went through are ringed green, and the one it ended on glows. Drawn in the Director's Board card style.

Made to play on a controller

whip reads the pad itself, so the prompts in the world, the menus, the inventory, the admin panel, the Director and driving all work on a gamepad. Hints show real button pictures, an on-screen keyboard with word suggestions does the typing, and holding the D-pad opens an action wheel and an item wheel. Players move whip's actions between buttons in the pause menu, and a resource adds its own with one call.

Controllers in the docs
On a pad: the inventory's item card with the buttons that work on it, then the radial's quick-select wheel (hold the D-pad down; the actions wheel sits beside it). Items from whip_gunny, whip_rope and whip_phone; the serial is an example.

Every server event is checked before your code runs

SecureEvent wraps a handler in the checks you would otherwise write by hand. Rate limiting is on even if you leave it out, and players who aren't loaded, or are dead, are turned away. Parameters are typed and clamped, a range check refuses calls from too far away, and permissions are an ACE or one given in game. Errors are caught instead of killing the handler, and every call and refusal shows in the Event Monitor.

SecureEvent in the docs
-- server.lua
exports.whip_core:SecureEvent('myresource:server:buyItem', {
    rateLimit = 500,
    params = {
        {'itemId', 'id', 1, 9999},
        {'amount', 'amount', 100},
    },
}, function(source, player, itemId, amount)
    -- source, player and the params are already valid
    doBuy(source, player, itemId, amount)
end)
Event Monitor
myresource:server:buyItemran0.3 ms
myresource:server:buyItemrefused: rate limit0.0 ms
myresource:server:buyItemrefused: itemId out of range0.1 ms
The example is the docs' own. The monitor rows are illustrative.

Run the server from inside it

/whip is one admin panel for the whole server: its players, their cars and homes, the shops and jobs, and every setting. Wizards set up jobs, shops, garages, vehicles, doors, containers and zones by placing them where you stand. The Config page edits every setting in config.lua in game, checked as you type and logged with who changed it, and most apply at once. Resources built on whip add their own settings pages without writing any HTML.

The admin panel in the docs
Whip Admin
System
Player ManagerPhones
AllOnlineBanned
Kkestrel#3 · Mia Torres
Nnightowl#7 · Dex Hollis
BBramble#12 · Ruby Lane
Ttofu_raider#15 · Sam Okafor
LLumenOffline · Jo Park
K
kestrel
Online#3
Teleport ToBring HereOpen InventoryGive Dev Tools
Actions
Identifiers
Characters
MTMia TorresMechanic · on duty
ATAlex TorresTaxi driver
Current State
VehiclesModel storageGarages
New vehicle — Zentorno
1Vehicle2Owner3Extras4Where5Create
MuscleSportsSuperMotorcyclesOff-roadEverything
Zentorno Adder T20 Turismo R Osiris Entity XF
Zentornozentorno · SuperModelor type a model name
BackNext
ShopsItemsContainersJobsItem Log
New job — Downtown Cab Co.
Name2Ranks3Owner4Staff5Create
RankDriverLevel10HireFireRemove
RankDispatcherLevel50HireFireRemove
RankOwnerLevel100HireFirethe owner's
BackNext
ZonesInteractionsDoorsGround ItemsPropertiesTime & WeatherDirector
2044 North Conker Aveowned#4 · Mia Torres #3
3671 Whispymound Dr#5 · unowned
Eclipse Towers#6 · Apt 31 · unowned
0112 S Rockford Drclosed#7 · unowned
2862 Hillcrest Avecheck#8 · Ruby Lane #12
2044 North Conker Ave #4
Go to signGo insideShow spaceVerify nowDelete
Interiorhillside_house · Hillside house
Space3 shapes · 84.2 m²
Doorsfront #12 (locked), garage #13 (locked)
Outside signfor sale — placed here for this property
Managerinside, for the owner and keyholders
Garage2 bays, private to the owner and keyholders · 1 car in it
Settingsprice 250000 · up to 150 pieces · auto-lock 10 s
Verifychecked in the world
ConfigAutos
Characters, money & jobs
Landing page
Character screen
Character creator
Stats
Inventory & items
Game feel and controls
How prompts look
Characters per accountMaxCharacters
4Default: 4
Starting cashDefaultCash
$ 750Default: $500Reset
Starting bank balanceStartingBalance
$ 1000Default: $1000
1 changeDiscardApply
The /whip panel's pages in turn: the Player Manager, a new vehicle, a new job, a property and Config. Pick a word to stay on one. The players, cars, homes and numbers are examples.

Also built in

Use what you see, without a menu

Things you can use show a small sign where they are in the world. Look at one and it shows its key and what it does; when it does more than one thing, roll down the list with the mouse wheel or the D-pad. A resource adds one with AddAction, and whip handles reach, the player's own key, controllers and who may use it.

Interactions in the docs
Player Car

Stats for players and their cars

Health, armour, hunger, thirst and oxygen live on the server. Register a stat of your own, like stamina, stress or how drunk someone is, and it saves, syncs and gets a HUD gauge, with none of that code to write. Cars carry stats too: fuel is built in, and a fitted turbo or nitrous shows its gauge round the rev dial.

Stats in the docs
2.1 m XYZ

Homes inside real interiors

Set up one floor of an MLO and every copy of it becomes a home, with doors that lock to the owner and their keyholders. Furniture loads only once its interior is really there, and each piece is kept in the room it stands in, so it never drops out of view. Furnish with a free camera from 1,361 checked props, and wardrobes, drawers and safes are storage.

Properties in the docs
Pockets 6.4 / 80 kg
1Phone
2Water Bottle×3
3Bandage×5
4Lockpick×2
5Burger×2
Wallet
Duffle Bag
Vehicle Key
Cash$7,920

An inventory with weight that nests

Weight counts through a bag in a boot in a car, with nothing to set up per item. A dropped item is a real object on the ground for everyone nearby, a thrown one can be caught in the air or knock someone over, and every move is logged.

The inventory in the docs

Measured, then trimmed

whip's loops are timed in game with /whipcost, its own profiler, and trimmed from real captures.

/whipcost in the docs
1,000 → 23
database transactions for 1,000 rounds fired, now that inventories save in batches
17.8 → 8.9 ms
the loading screen's work each frame, in FiveM's own browser
24 → 5
game calls a frame to draw the black HUD's minimap frame

Every export, written up

The docs cover whip from your first resource to the Director's own API, every export written up, with examples you can copy.