For the complete documentation index, see llms.txt. This page is also available as Markdown.

Configuration


Three Ways to Change a Setting

Way
Best for

In game: /twlib → Settings

Pay, XP, bonus, cooldown, crew size, level rules, reward split, interaction style. Saved values apply when the job restarts: use the Restart button in the menu.

Edit defaults/config.lua / defaults/coordinate.lua

Everything else. Save the file and restart tw-gardenerv2: tw-lib notices your edit and stores it.

Server console: twlib set

Quick changes without opening a file: twlib set tw-gardenerv2 Config.MaxPlayersInLobby 3, then restart tw-gardenerv2. Undo with twlib unset tw-gardenerv2 Config.MaxPlayersInLobby.

After tw-lib stores a value, the line in the config file shows the shipped default next to it, for example Config.MaxPlayersInLobby = 3 --[[twlib:4]]. That marker is how tw-lib tells your value from ours. Leave it there.


Configuration Files

File
What is inside

defaults/config.lua

General settings, interaction, lobby, commands, UI colours, regions & rewards, daily missions, tutorial videos, truck paint, flower planting rules, levels

defaults/coordinate.lua

Lawns, bushes, trees and flower beds of every region

defaults/locales/*.lua

Texts in 7 languages

hooks/*.lua

Your own functions (start/end hooks, notifications, prompts)

There is no Config.Framework, Config.Inventory or Config.SQL anymore: tw-lib detects them. The old key, fuel and skin functions are gone too; Config.Vehiclekey, Config.Removekeys and Config.ChangeClothesSystem still switch those features off.


General

Language

Default is English. To change it, run twlib set tw-gardenerv2 Config.Locale tr in the server console and restart the job, or change 'en' in the Config.Locale line and restart the job. Both are kept across updates.


Interaction

Gardener uses one setting for every interaction, the job NPC as well as the mowers, branches and flowers:

resource

Meaning

'default'

Follow Config.InteractionHandler, which by default is the choice made once for all Tworst jobs in /twlib → Settings → All jobs (or twlib set tw-lib interaction ox-target)

'drawtext'

Tworst prompt with E; no target resource needed

'ox_target' / 'qb-target'

Target eye (the resource must be started)

'auto'

ox_target, then qb-target, then the fallback

How the prompt looks

In prompt mode, Config.DrawTextUI decides what draws it:

Config.DrawTextUI

Prompt

'twlib'

The shared Tworst prompt from tw-lib (default, same look in every Tworst job)

'default'

Same as 'twlib'

'ox_lib'

ox_lib TextUI (ox_lib must be started)

'qb'

qb-core DrawText

'esx'

GTA help notification

'custom'

Your own functions: Config.CustomDrawText / Config.CustomHideText (see Hooks)


Lobby & Job

Who Can Take the Job

The job rule is checked on the server when a lobby is opened and when an invite is accepted. On frameworks without jobs (standalone, vRP, TMC) everyone can join.

Commands

Truck Paint


Job Menu Look

The job menu is the shared Tworst job UI inside tw-lib. Gardener's colours and pictures:

Config.DefaultUIPositions sets where the crew list, score, invite and notification boxes sit on screen. Players can also move them in game.


Job Location & Blips

['missionBlips'] holds the blips of each task type, the truck and the delivery point.


Regions & Rewards

Region
Name
Money
XP

1

Vespucci Beach

$5,000

1,000

2

Pillbox Hill

$7,500

1,000

3

Rockford Hills

$10,000

1,000

4

Richman

$12,500

1,000

5

Vinewood Hills

$12,500

1,000

missionCount sets how many of each task a region can roll. The spots themselves are in defaults/coordinate.lua.

Crew Size and Pay

onlineJobExtraAwards decides how the pay changes with more players:

Value
Effect (example: $5,000, 2 players)

Positive, e.g. 2

Team bonus: 5000 × 2 = $10,000 per person

Negative, e.g. -2

Team penalty: 5000 / (2 × 2) = $1,250 per person

0

Split equally: 5000 / 2 = $2,500 per person

Your changes to a region are saved against its regionID. If a later update adds, moves or reorders regions, your money and XP stay with the right region. Keep regionID values unique and do not reuse them.

Reward Split

With Config.LetOwnerSplitRewards = true the lobby owner sets each member's share in the lobby menu: the crew's total (the reward per player × the members online at the payout) is shared by those percentages. With false every member gets the same reward.

Mission Completion Items

missioncompletedItems gives extra items at the end of a region. dropMode = "perItem" rolls each item on its own; "weightedPool" gives one item from the pool. A chance of 100 is always given.


Daily Missions

Changes to a daily mission are saved against its name. Keep the names unique.


Flower Planting

Flowers can only be planted on suitable ground. Two methods are available:

Ground type list (false, default): only the ground types in Config.MaterialHashes (dirt, sand, mud, grass) are allowed. Config.AllowUnknownSurfaces = true also allows ground types the game does not report.

Height check (true): compares the player's height with the planting spot.


Tutorial

Config.TutorialList holds the tutorial videos. Players open them with /openTutorialgardenerv2. Replace a video's name with your own link to show your own tutorial.


Levels

Config.RequiredXP holds the XP needed for each of the 70 levels. XP above the requirement carries over to the next level.


Texts

All texts are in defaults/locales/<language>.lua. Edit the file and restart the job: tw-lib keeps your edited texts across updates like any other setting. A text missing in a language falls back to English.


Hooks

Functions cannot be stored in the database, so they live in hooks/. Copy hooks/hooks.example.lua to hooks/my-hooks.lua and edit it there. An update replaces only the example; your file is never touched, and it is loaded after the settings, so it wins.


Need Help?

Join our Discord and open a ticket.

Last updated