> For the complete documentation index, see [llms.txt](https://5scripts-1.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://5scripts-1.gitbook.io/docs/assets/5s_tuningmenu/standalone.md).

# Standalone

5s\_tuningmenu runs on any framework, or standalone, but it is the most economy-driven of our resources: it is a mechanic shop, so it leans on **jobs** and **money**, not just identity. Plan to wire those up.

{% hint style="info" %}
Shared mechanism: [5s\_lib > Standalone & Custom Frameworks](/docs/assets/5s_lib/standalone.md).
{% endhint %}

## What it needs

* **Job:** `getPlayer`, `getJob`, to check the customer is served by a mechanic (`ConfigSh.MechanicJobNames`).
* **Money:** billing the customer and paying the worker and the business.

On the standalone framework these are stubs, so tuningmenu will not gate the job or move money until you implement them.

## Two things to fill in

**1. Billing** lives in `5s_tuningmenu/server/editable/invoicePayment.lua`. Rewrite `hasMoney` and `billPlayer` to charge the customer and pay out using your own economy. This is the main money entry point.

**2. Job checks** use `getJob` / `getPlayer`. Point them at your job system in the standalone bridge file:

```lua
-- 5s_lib/resource/bridge/framework/standalone/server.lua
frameworkObj.getPlayer = function(source) return exports.my_core:getPlayer(source) end
frameworkObj.getJob    = function(source) return exports.my_core:getJob(source) end
```

If your server has no job system at all, you can make `getJob` return a value that is always present in `ConfigSh.MechanicJobNames` so any player can use the tablet.

Everything else (the tablet UI, tuning parts, previews) is self-contained.
