The Creator Window#
Everything about a shutter is done from one window, opened with /shuttercreator by an admin. Your HUD and minimap are hidden while it is open. On the left is the list of every shutter on the server; on the right, the form of the one you are creating or editing.
Element | What it does |
|---|---|
Search shutters | Filters the list by name. |
Create shutter (+) | Opens an empty form with sensible defaults: the Large 2 model, one interaction point at 3 m and a blip switched on. |
A shutter in the list | Opens it for editing. |
Teleport | Asks for confirmation, closes the window and puts you at the shutter. |
Cancel · ✕ | Cancel asks before throwing away a new shutter; ✕ closes the form without saving. |
Creating a Shutter#
The form has five panels, top to bottom. Nothing in it is typed as a coordinate — every position is picked in the world with a Select button, which closes the window for as long as you are placing.
Panel | What you set there |
|---|---|
Name | What the shutter is called in the list and on the target option — "24/7 Grove Street", "Mechanic bay 2". |
Location | The model, then where the shutter stands and how high it rolls up. |
Interaction Points | Where players press to open and close it, how close they must be, and whether it can be lockpicked there. |
Blip Settings | An optional blip on the map. |
Access Control | Who may use it: an item, a job, a gang, their grades and a PIN code. |
Placing the shutter#
Pick a Model first, then press Select next to Shutter. A see-through copy of the shutter appears where you look, and placing takes three steps. The keys for each step are shown at the bottom of the screen, and a notification explains each one as it starts.
Rough position
Look at the doorway: the shutter follows the point you aim at. Turn it with
ZandXuntil it faces the right way, and left-click when it is roughly in place. It does not need to be exact yet.Fine adjustment
Nudge it into the frame. The arrow keys move it forward, back, left and right relative to the way it faces,
QandEraise and lower it, andZ/Xturn it in small steps. PressENTERwhen it sits flush.Open height
A green circle and line show where the shutter goes when it opens. Move the circle with
Arrow UpandArrow Downuntil it sits where the shutter should disappear — usually inside its housing above the door. PressSPACEto watch it roll up and back down,Arrow Leftto go back to the fine adjustment, andENTERto finish.
Key | Rough position | Fine adjustment | Open height |
|---|---|---|---|
| Aim | Look around | Look around |
| Next step | — | — |
| Rotate | Rotate finely | — |
| — | Move | Up / Down: open height. Left: back |
| — | Up / down | — |
| — | — | Test animation |
| — | Next step | Finish |
| Cancel | Cancel | — |
Changing the model of a placed shutter? Pick the new model and press Select again — a small and a large shutter of the same style do not sit in the same spot, so it is worth placing it afresh.
Interaction points#
An interaction point is a spot where a player can open or close the shutter. A shutter can have as many as you like — one on the street and one inside is the usual pair, so staff can lock up from behind the counter. Press Add Point for each one:
Field | What it does |
|---|---|
Coordinates | Press Select, aim at the spot — a red marker shows where it lands — and left-click. |
Interaction Distance | How close, in metres, a player must be for the prompt to show. Between 3 and 20; 3 by default. |
Enable Lockpick | Lets the lockpick item work at this point. Leave it off on the inside point and only the street side can be forced. |
Blip#
The switch in the panel's header turns the blip on or off. With it on:
Field | What it does |
|---|---|
Blip Name | The text shown on the map. |
Blip Sprite · Blip Color | Picked from searchable lists with a preview of every icon and colour. Sprite 59 and colour 3 by default. |
Blip Scale | From 0.2 to 1.0; 0.8 by default. |
Blip Coordinates | Where the blip sits, picked with Select. It does not have to be on the shutter — the front of the building reads better. |
Access control#
Every rule you set must be met at once, and a rule left empty is not checked — so a shutter with nothing set here is public. The rules are checked on the server every time somebody presses.
Field | Effect |
|---|---|
Required Item | The player must carry at least one. It is checked, not taken. Picked from your inventory's item list, with pictures. |
Job | Only players with this job. |
Grades (job) | Only these grades of that job. None selected means every grade. |
Gang | Only members of this gang. Shown when your server has gangs: QBCore and Qbox gangs, or |
Grades (gang) | Only these ranks of that gang. None selected means every rank. |
Enable PIN Code | Every player who passes the rules above must also type the code on a keypad. |
PIN Length · PIN Code | 4 or 6 digits. The code accepts numbers only and must be exactly that long, or the shutter will not save. |
A successful lockpick ignores every rule on this panel, PIN included. To make a shutter that cannot be forced, leave Enable Lockpick off on all of its points.
Saving#
Press Create shutter. Missing fields are outlined in red and Please fill in all fields appears. Once saved, the shutter is in the database and in every player's world straight away — in its lowered, closed position.
Editing, Teleporting and Deleting#
To | Do this |
|---|---|
Edit a shutter | Click it in the list, change what you need and press Save. Every player gets the change immediately. |
Move it | Press Select in the Location panel again and place it anew. |
Go to it | Press the teleport icon on its card and confirm. |
Delete it | Open it and press Delete, then confirm. It is removed from the database and from every player's world. There is no undo. |
How Players Use a Shutter#
Walk up
Within a point's distance, Press [E] to enter the shutter floats over it — styled by
qs-textuiif it is running. WithConfig.UseTargeton, the point is a target option called Access <shutter name> instead.Press E
The server checks the access rules. A player who fails one is told which: You do not have access to this shutter. Reason: Required job: police.
Type the PIN
Only if the shutter has one. The keypad takes clicks or the number keys;
Backspacedeletes,Enterconfirms andEscwalks away. A wrong code shows Invalid PIN code.The shutter rolls
The player swipes a keycard, the open or close sound plays, and the shutter rolls up or down for everyone around it. There is a two-second pause before the same player can press again.
Players who are further away do not watch it roll — but whenever they arrive, the shutter is already in the right position, because the state is kept on the server and in the database.
Lockpicking#
The lockpick turns any shutter you allow into a robbery target. It works only at interaction points with Enable Lockpick on, and the item is set up as described in Inventory Items.
Use the item at the point
Stand within the point's distance and use
shutter_lockpickfrom the inventory. The player kneels and starts working the lock.Pass the skill check
Four rounds of the ox_lib skill check: press the key shown when the marker crosses the zone. With
Config.LockpickMinigame = falsethis step is skipped.The shutter moves
On success it toggles — an open shutter can be forced shut too — and Lockpick successful! appears. One lockpick is used for every attempt, passed or failed.
Message | Means |
|---|---|
No shutter found | The player is not within the distance of any interaction point. Nothing is used. |
This shutter does not allow lockpicking | The nearest point has Enable Lockpick off. Nothing is used. |
Persistence and Security#
Every shutter is stored with whether it is up or down, so the city looks the same after a restart as before it.
Every change is pushed to every player — created, edited, deleted, opened or closed — with no restart and no reconnect.
Access rules and PIN codes are checked on the server. The code itself is removed from the shutter's data before it reaches any player, so it cannot be read from the client.
Shutters are light. A shutter's model exists only for players within about 10 m of it, and its points are only checked while they are there.
Configuration Reference#
Everything below lives in config/main.lua. Restart the resource after changing it.
Option | Default | What it does |
|---|---|---|
|
| The language: any file name in |
|
|
|
|
| The size of the target box at each point, when targets are on. |
| Six models | The models offered in the creator's Model list, each with a label. |
|
| How long a shutter takes to roll up or down, in milliseconds. |
|
| The keycard swipe the player does when pressing E. |
|
| The open and close sounds. |
|
| Where the sounds are loaded from. Leave it as it is. |
|
| The item registered as the lockpick. |
|
| The skill check. |
|
| Verbose console output, client and server. Turn it off on a live server. |
|
| Draws the box around each shutter, and each target box. The quickest way to see why a prompt does not appear. |
| — | The placement keys. See below. |
Config.Framework and Config.Inventory are detected at start and marked [AUTO] — never set them by hand; Integrations explains how to add a renamed resource. Config.DefaultStashData, Config.MinPointLength, Config.FreeModeKeys and CameraOptions are not used when placing shutters and can be left as they are.
Adding your own shutter model#
Any prop your server streams can be offered as a shutter. Add it to the list with the label the creator should show:
Config.ObjectList = {
{ label = 'Small 1', object = 'qs-shutter_prop_1_small' },
{ label = 'Large 1', object = 'qs-shutter_prop_1_large' },
{ label = 'Small 2', object = 'qs-shutter_prop_2_small' },
{ label = 'Large 2', object = 'qs-shutter_prop_2_large' },
{ label = 'Small 3', object = 'qs-shutter_prop_3_small' },
{ label = 'Large 3', object = 'qs-shutter_prop_3_large' },
{ label = 'Garage door', object = 'my_garage_door' }, -- streamed by another resource
}A model that is not streamed is refused when you press Select, with Model … is not valid.
Placement keys#
ActionControls maps each placement action to GTA control ids, listed in the FiveM controls reference. The click, rotate, finish, cancel and back keys can be changed here; the arrow keys, Q / E and SPACE of the fine adjustment are fixed.
ActionControls = {
leftClick = { label = 'Left Click', codes = { 24 } }, -- step 1: next step · points: place
rotate_z = { label = 'RotateZ +/-', codes = { 20, 73 } }, -- Z / X: rotate
done = { label = 'Done', codes = { 191 } }, -- ENTER: next step / finish
cancel = { label = 'Cancel', codes = { 194 } }, -- BACKSPACE: cancel
arrow_left = { label = 'Arrow Left', codes = { 174 } }, -- step 3: back to step 2
-- ...
}The Shutter Models#
Three styles, each in a small size for a shop door and a large one for a garage or loading bay, all streamed by shutters_props:
Label | Model |
|---|---|
Small 1 · Large 1 |
|
Small 2 · Large 2 |
|
Small 3 · Large 3 |
|



