Smart Signs
Our smart signs integration resource allows you to update roadway signs in-game directly from the CAD!
Last updated
Our smart signs integration resource allows you to update roadway signs in-game directly from the CAD!
Last updated
This resource utilizes API endpoints that require the Pro version of Sonoran CAD or higher. For more information, view our pricing page.
Looking for VPS, web, or dedicated hosting? Check out our official server hosting!
View our video showcase of the Smart Signs resource here!
If you have the original London Studios Smart Signs resource please remove and/or disable it from running. Our resource completely replicates the functionality of the original resource and they will conflict if both are running at the same time.
Purchase the resource for free from our store.
This resource is managed through Tebex and will require you to login with FiveM. Be sure to login using the account that has the keymaster license for your server.
Once "purchased" you can download the asset from your keymaster account.
We suggest installing the smartsigns_sonoran
and smartsigns_sononran_helper
folders within the [sonorancad]
folder your integration framework is installed in. The final result would look like the image below...
In your server.cfg
add the following new line after/below your ensure sonorancad
line:
Rename config_RENAMEME.lua
to config.lua
.
In the config.lua
file, you can enable options depending on your framework you are using or permissions you would like to integrate with.
The smart signs resource also has support with ESX, VRP, Discord logging, ace permissions, and more. View the documentation from London Studios for the most up to date information.
Rename sv_discordConfig_RENAMEME.lua
to sv_discordConfig.lua
.
In the sv_discordConfig.lua
file, you can specify the discord webhook URL you would like log messages sent to from Smart Signs. Additional settings and to enable webhook logging is found in the config.lua
file you renamed in the previous
In the Admin panel, navigate to Advanced > In-Game Integration > Push Events and Live Map
Ensure your game server's IP and game port are set. The CAD will use this to push sign updates to your server.
Error: Server ID: 123 has IP set to: 1.2.3.4 -> your IP: '2.3.4.5'
Some hosting providers may have your game server sending traffic out from a different IP address than is used to connect to your game server. If this is the case, toggle the Differing Outbound IP
checkbox for this server and fill in the Outbound IP
field.
This script works by approaching a sign. When a player approaches a sign and are in the range of the control panel, they are able to edit the text of the sign if they meet the required permission checks. The resource has been optimized so that the signs will load and unload for players based on how close they are to each sign which is perfect for larger servers as it means that server resources will not be used unnecessarily.
The street sign panel can be found on both the Dispatch and DMV pages. Users will need the Modify Street Signs
permissions in order to update them.
Here, you can easily search to filter sign labels. Sign text can also be easily duplicated from one sign to another.
You can also modify smart signs right from the live map!
Users will need both the Modify Street Signs
and the Self Dispatch
permissions in order to view and edit signs from the live map.
Signs – This is the main element of the resource, allowing you to walk up to a sign and change the text from an in-game control panel at the bottom of the sign. This can be used to open a world of roleplay opportunities. Word Denylist – You are able to set the resource up so that users cannot use specific words on a sign. Discord Logs – You can choose to send logs to your Discord server via a webhook each time a player sets the text on a sign. Custom Model – This resource includes high-quality letters and a custom sign model created by Beaver Mods. This will ultimately enhance realism. Highly Configurable – This resource is highly configurable, allowing you to setup each sign separately. You can adjust the location of each sign, all messages and even add extra characters from other languages. Permission Checks – You can easily enable permission checks in the configuration file for ACE permissions, framework jobs/groups or SonoranCAD active unit checking.
We understand that it may be confusing to use for some of our users. If you need support please feel free to open a ticket in the official London Studios Discord.
You can easily open the config.lua
and configure the script to your liking in either notepad, notepad ++ or using Visual Studio Code.
The config examples below are not the full configuration file and further explanation comments of what each setting does can be found in the config.lua
file.
The first section is called main, allowing you to set the following:
To change the activation key (adjustButton), replace it with your desired key code from here.
You can see from the above config just how configurable the resource is, allowing you to set many features such as the load in the distance and access points to edit the text of the signs, the different denied words and the animations played while the player is typing.
Secondly, the instructionalText section allows you to convert the access message to another language.
We’ve made it simpler than ever to integrate permissions into the resource. This can be Ace Permissions, VRP or even ESX Integration (built-in).
This means that you can restrict certain players, permissions or even jobs/groups from setting the message on a sign.
In the config.lua
file, you can easily enable a permission check to allow "active units" in the CAD to change smartsigns in game.
Simply ensure that useUnitPermission
is set to true
to enable this check
In the config.lua
file, you can easily enable ace permissions and set the required permission.
You could then add this to certain players in the server.cfg
or even groups as part of a server framework.
For more help on that, see some documentation on Ace Permissions here.
In the config.lua
file, you can easily enable vRP Integration including both vRP.hasPermission
checks and vRP.hasGroup
checks. This can allow you to restrict it to a police job for example, or highways maintenance job, if that exists on your server.
Simply changed enabled to true to enable vRP integration. This will then generate the necessary vRP Proxy on the server, enabling global vRP functions such as GetUserId.
In the checkGroup = {}
section, you can set it up to check if the user has a required group. In the groups box, you can enter all the groups you would like to have permission, such as adding both police and administrators, as they may need to access them.
In the checkPermission = {}
section, you can do the same as a group, but for a permission instead. As you use the vRP framework you should be familiar with permissions and how to issue them.
You should check your vRP groups.lua
file to view your groups and the permissions for each group.
In the config.lua
file, you can easily enable ESX Integration using a job check.
Simply change enabled to true to enable ESX integration. This will then generate the necessary ESX Shared Object on the server, enabling you to use ESX functions.
In the checkJob = {}
section, you can set it up to check if the user has a required job. For example, by keeping it as “police”
, it will only work if the user has the police job. Alternatively, you may choose to add more such as “admin”
.
You should check your ESX jobs database table to be familiar with what jobs are configured on your server.
In the config.lua
file, you can easily enable QB Core Integration using a job or permission check.
Simply change enabled to true to enable the QB Core integration.
In the checkJob = {}
section, you can set it up to check if the user has a required job. For example, by keeping it as “police”
, it will only work if the user has the police job. Alternatively, you may choose to add more such as “admin”
.
In the checkPermission = {}
section, you can do the same as a job, but for a permission instead.
Overall, we think we’ve made it easy for you to add permission checks into the resource. If you need additional help setting it up, our support team is here to help. You can open a support ticket here.
All sign locations and texts are now visible in the locations.json file, a dynamic file that will update every time players are on your server.
This means that any text set by players on signs will also be saved each time your server is restarted.
To make it easier to set signs up we have added a /createsmartsign command which will only work while developerMode is set to true in config.lua. You can select left or right on the command depending on what side you want the sign to be.
This command will then spawn a sign prop that can be repositioned with the following controls:
R -- rotates the sign Right Mouse Button -- Exits Spooner Menu Left Mouse Button -- Allows you to move the sign as needed ENTER -- finish placement
Once you press ENTER the new sign location will automatically be added to the locations.json file. You will need to restart your server to see the sign after setting it up.
With the release of v.1.5.1 we have made the decision to not push an auto-update to users using v.1.4.1 or older. This is due to the change in configuration of sign locations and major refactoring of systems that would make automatically updating your config challenging. To update follow the steps below:
Move your old smartsigns_sonoran folder to a safe location to reference your old config for any settings you would like to migrate over.
Download the new version from your keymaster account, you should have "10870 - SmartSigns" (v1.4.1) and the new "339435 - Sonoran Store - Smart Signs (Sonoran CAD Edition)" asset in keymaster. Please download the newer one only as the old one will not receive updates going further.
Follow the 2. Install the Resource steps to install the updated resource. When configuring your settings refer back to your previous config file you have moved out of your server resources folder.