Convert
The free preview
Before anything costs credits, the converter shows what it found, what each call becomes and what has no counterpart.
Which framework it is written for
The Framework Converter reads the source framework from the code: the core object, the player functions, the inventory calls. It shows the result under Written for, with the four frameworks as buttons.
- 1. Written for: the framework read from the code; click another to correct it
Correct it when it is wrong. Two warnings above the buttons tell you when to look closely:
We could not tell which framework this is written for.Pick it yourself. A wrong guess would convert calls that are already in the target's dialect.This looks like ESX Legacy, but only at 45% confidence, shown below 55%. The resource may support more than one framework, for example through a bridge file. Check the source before converting.
Picking the target
Under Convert to the three other frameworks are offered. Pick the one your server runs. Two badges help when you are free to choose:
- 1. QBCore: pick the framework your server runs
- 2. MOST COMMON: the most travelled route for ESX resources
- MOST COMMON on QBCore for an ESX resource: the most travelled route, not the easiest.
- SMALLEST STEP on Qbox for a QBCore resource: Qbox runs QBCore code through its bridge, so the fewest calls change.
The preview updates each time you pick another target. Try each one for free before you decide. See Frameworks and routes.
Direct, Reshaped, Rebuilt, Needs a decision
The first panel counts the framework constructs in the resource: every place it calls the framework. A bar shows how they split into four kinds.
- 1. Direct, Reshaped, Rebuilt, Needs a decision: how much is a rename and how much needs judgement
- 2. 100-210 credits: the least and the most this run can cost
Direct
A rename. Same call, different name.Reshaped
Same capability, different call shape or argument meaning. For example, money is read by account name.Rebuilt
No single call does this. It gets built from several.Needs a decision
The target framework has no such concept. The conversion decides what happens and says so.
A resource that is mostly Direct and Reshaped is a routine conversion. Many Rebuilt and Needs a decision entries mean more of the result is a judgement call, and the findings deserve a closer read.
Things with no equivalent
When the target has no counterpart, an amber panel names each case, how often it occurs, and the decision the conversion will take. For esx_shops to QBCore there are three: number formatting, the carry check and rounding.
- 1. Format a number with thousands separators: one gap, how often, and the decision
These decisions are written into the report in the zip, so you can read and change them later. If you disagree with one before converting, the free plan shows exactly how it will be handled.
What changes on your server
This panel lists what the conversion means outside the resource. It has up to five parts:
- Resources you will need: resources the converted version depends on, such as
qb-inventoryorox_lib. - Files that change format: locale files that become JSON for Qbox and ox_core.
- Brought up to date: an old
__resource.luathat becomesfxmanifest.lua. - Carried over untouched: images, sounds, fonts and other files that are not converted.
- Steps only you can do: work on your server the converter cannot do for you.
- 1. Resources you will need: install these on the server first
- 2. Steps only you can do: work the converter cannot do for you
- 1. Resources you will need: ox_inventory and ox_lib on Qbox
- 2. Files that change format: locales/en.lua becomes locales/en.json
Every construct, by area
At the bottom, Every construct, by area groups the constructs into areas such as Money, Inventory, Notifications and Player lookup. The number is how many constructs an area has; the dot shows its hardest kind. Click an area to open it.
- 1. Money: click an area to open it
- 2. ESX call → QBCore call: the old call struck through, the new one next to it
Each entry shows the old call struck through, the call it becomes, how often it occurs and a note on what differs. This is where you see that xPlayer.getAccount('bank').money becomes Player.Functions.GetMoney('bank').
The price range
The first panel and the convert button show a range, for example 100-210 credits. You pay for what the conversion uses, never below the lower number and never above the upper one.
- Lower number: 100 credits, the minimum for any delivered conversion.
- Upper number: 60 credits plus 18 per Lua or other convertible file plus 2.5 per thousand characters of code, capped at 4,000.
When you start, the upper number is held from your balance. When the run ends the actual price is charged and the rest is released at once. Your balance must cover the upper number to start.
The plan for free
Just write the plan for free runs only the planning part. It writes down every decision the conversion would take, costs no credits and takes a few seconds. No files are converted and no checks run.
- 1. Convert for 100-210 credits: starts the paid conversion
- 2. Just write the plan for free: the decisions only, no files
The result is the plan itself, under Every decision this conversion made:
- 1. Analysed … framework constructs: a plan converts no files
- 2. Every decision this conversion made: the whole result of a free plan
Note
A plan-only run stays on the resource. To convert it after reading the plan, upload the zip again and start the conversion there.