Global License Plate System
The Global License Plate System (GLPS) is a free, open-source license plate system maintained by the NTBI Group. Anyone can attach a GLPS license plate onto their own vehicle and sell their vehicle with GLPS license plates installed.
Contents
- 1 Overview
- 2 Compatible Vehicles
- 3 Instructions
- 4 Frequently Asked Questions
- 4.1 Can I change the number on my plate?
- 4.2 Can I change the plate design/template to something else?
- 4.3 Can I use my own plate textures?
- 4.4 My plate texture already has numbers on it, can I still use it?
- 4.5 Why does my plate use an invalid combination of letters and numbers for my state/country? Why does the Japanese plate not use only numbers? Why does the hiragana character on the Japanese plate not match the vehicle type?
- 4.6 My country isn't included among the default templates, how do I add it?
- 4.7 Why do you call them "license plates" and not "registration plates" or "number plates"?
- 4.8 What plate sizes are available?
- 4.9 Are motorcycle plates available?
- 4.10 What information is stored by the GLPS web API?
- 4.11 Why is an NBS API key required?
- 4.12 How are default plate numbers assigned?
- 4.13 Are plate numbers unique or searchable?
- 4.14 Why is the layout/font not accurate for my state/country?
- 4.15 For European plates with inspection stickers, can they be changed?
- 4.16 For Russian plates, can the region number be changed to not say "SL"?
- 4.17 What does the Japanese plate say at the top?
- 4.18 For Japanese plates, can I change the issuing office and class codes at the top of the plate?
- 4.19 For Japanese plates, how do I display dots instead of leading zeroes?
- 4.20 For Japanese plates, how do I enter the hiragana character?
- 4.21 What are the default templates?
- 4.22 What are the default fonts?
Overview
GLPS is the combination of a full-permissions model, script, PSD files, and web API. While designed for vehicle manufacturers, GLPS plates can be installed on any modifiable vehicle by simply linking them to the vehicle object.
GLPS is designed to overcome formatting issues with license plates previously used on NTBI vehicles and those created by some other manufacturers. On those models, characters shown on the plate had to be displayed where the individual character faces were positioned on the model. Instead, GLPS uses an innovative text rendering technique that allows characters to be displayed effectively anywhere on the plate at any size while still using only one texture per font. This also allows GLPS plates to be resized automatically between US/Japan and UK/Euro sizes without needing to duplicate the entire plate for another size, because fonts can be changed and characters can be moved and scaled appropriately for each plate size and design.
Click here for the GLPS developer kit.
Click here for the GLPS JP/US sized custom texture PSD.
Click here for the GLPS EU/RU/UK sized custom texture PSD.
For a list of default templates, scroll to the bottom of the page.
Compatible Vehicles
GLPS is being integrated into NTBI vehicles on a rolling basis. However, since GLPS is a free standard, other manufacturers may also implement GLPS on their vehicles.
Instructions
GLPS is very simple to install and use - see the instructions below.
For End-Users
Each manufacturer implements GLPS differently, so refer to your vehicle's owners guide.
Most vehicles allow you to set a plate by navigating the vehicle's configuration menu.
If you are developing your own vehicle, or for some reason you cannot access the GLPS configuration menu, drop the NTBI GLPS Configuration Tool script into the vehicle. It will send the command to open the GLPS configuration menu and immediately delete itself.
For Vehicle Developers
Follow the instructions at the top of the script inside the plate to set it up for your vehicle.
GLPS plates can be configured two ways - either by sending a command that causes the plate to send the user the GLPS configuration menu, or by sending configuration information directly to the plate.
To trigger the GLPS configuration menu for the owner, use:
llMessageLinked(LINK_SET, 0, "GLPS_OPEN_MENU", "");
To set the plate number, use:
llMessageLinked(LINK_SET, 0, "GLPS_SET_NUMBER", "[plate number]");
To load a template directly, use:
llMessageLinked(LINK_SET, 0, "GLPS_LOAD_TEMPLATE", "[template code]");
To request the current GLPS config, use:
llMessageLinked(LINK_SET, 0, "GLPS_GET_DATA", "");
This will return:
llMessageLinked(LINK_SET, 0, "GLPS_GOT_DATA", "[JSON object of GLPS config]");
To load a GLPS config, use:
llMessageLinked(LINK_SET, 0, "GLPS_LOAD_DATA", "[JSON object of GLPS config]");
You may also want to set the current template ID using:
llMessageLinked(LINK_SET, 0, "GLPS_SET_TEMPLATE_ID", "[template code]");
Note that this will not actually load the template, but can be used to force the template code into memory.
For Roleplay Managers and Other Developers
GLPS plates can be "read" using a chat command, which facilitates simulated ALPR cameras. Communication to the plate is performed on a pseudo-random channel, and communication back to the reader is sent on channel 2250. The command is as follows:
key vehicle_key = llDetectedKey(0); // this key can be obtained any way you want llRegionSay(-1 - (integer)("0x" + llGetSubString((string)vehicle_key, -7, -1)), "GLPS_SCAN|" + (string)vehicle_key);
The response, sent to channel 2250, will be:
GLPS_SCANNED|[vehicle_key]|[template code]|[plate number]
[template code]
is the code of the default template, if used. If the plate has any modifications, or is using a custom code, [template code]
will be "XXXXX".
Frequently Asked Questions
Can I change the number on my plate?
Yes. Open the GLPS configuration menu and select Number..., then enter your desired number. Note that for some plates, such as the default Second Life US-style plate, only a specific number of characters can be entered.
Can I change the plate design/template to something else?
Yes. Open the GLPS configuration menu and select Templates... -> Load..., then enter the template code of the template you want to use. The template code will load a plate texture, layout, and font. Scroll down for a list of public template codes.
Can I use my own plate textures?
Yes. Open the GLPS configuration menu and select Templates... -> Customize... -> Texture..., then paste the texture UUID in the text box. Then, if prompted, select whether you want to apply that texture to the Front, Back, or Both plates. Then select Layout... and apply a default layout or change the layout as needed to fit the texture. Then, if desired, select Font... and select your desired font.
My plate texture already has numbers on it, can I still use it?
Yes. Open the GLPS configuration menu and select Number... -> Clear Number, then follow the instructions above to use a custom texture UUID.
Why does my plate use an invalid combination of letters and numbers for my state/country?
Why does the Japanese plate not use only numbers?
Why does the hiragana character on the Japanese plate not match the vehicle type?
Due to how GLPS works, plates are issued semi-randomly using both letters and numbers regardless of whether that would be an appropriate combination in real life for each jurisdiction and vehicle type. If you like, you can change the number to something appropriate.
My country isn't included among the default templates, how do I add it?
Download the PSD file and design a template in Photoshop, or use someone else's template.
Note that GLPS plates are limited to 7 characters, so some plates (such as those issued in Russia) cannot be rendered fully.
Note also that characters on GLPS plates are flexible but generally cannot be made small enough to be stacked on top of each other, as seen on certain US specialty plates. Therefore, if you are making a specialty plate template that uses two characters stacked on top of each other, we recommend that you include those characters directly on the template if possible.
Finally, keep in mind that GLPS can only display 0-9, A-Z, certain Japanese hiragana (see below), and the following special characters: -.: GLPS cannot display registration or inspection stickers, other special characters, or non-English characters.
If you design a real-life plate template that is not in the default templates, send an IM to Nelson Jenkins and we will review it to see if it would be appropriate to add to the default templates. Note that we will only add templates that are effectively identical to real-life plates.
Why do you call them "license plates" and not "registration plates" or "number plates"?
Because the person who developed GLPS is an American. Sorry.
What plate sizes are available?
GLPS includes, by default, 12x6 inch (305x152 mm) plates for Japan/US and 520x130 mm plates for Europe/Russia/UK. Other sizes may be available for specific jurisdictions, but these two sizes are the only ones that we provide PSDs for.
Some trivia as to why the UK/Europe GLPS size is not accurate: all US states and Canadian provinces managed to agree on a reasonable, delightfully proportional 12x6 inch standard all the way back in 1956, which fits perfectly onto a 512x256 px texture. Europe, meanwhile, mostly uses 520x110 mm or 520x120 mm plates with horrendous 52:11 and 13:3 aspect ratios, with many countries using completely different sizes for no clear reason, including some even using the 12x6 inch format. Because of this, GLPS also bucks the trend with a "standard" 520x130 mm plate to facilitate the use of a 512x128 px texture.
Are motorcycle plates available?
While GLPS does not include any templates for smaller motorcycle plates, you may create your own using the PSD file and instructions above. However, it will be difficult if not impossible to render characters in two rows as seen on most European motorcycle plates due to technical limitations of the font textures.
What information is stored by the GLPS web API?
The GLPS API, hosted by Northbridge Business Systems, only stores the plate template (design only, no text) and plate owner's UUID when copying a plate template code. This data is not available to the public and is only used for detecting abuse of the template code generation service. This service is necessary because plate configurations are very long and are not easy to load into the plate manually. GLPS does not store any information about the vehicle, such as its position, speed, driver, or model, except for the vehicle owner's UUID as a consequence of storing the plate owner's UUID.
Why is an NBS API key required?
The GLPS API hosts saved plate data as described above. There is currently no limit to the number of plates any one person can save. To allow NBS to monitor the system for abuse, an NBS API key is required for calls that either read or store custom plate data.
How are default plate numbers assigned?
Plate numbers are generated as seven-digit strings, and if the plate template cannot display seven digits, only the first digits are displayed up to the maximum. The first two characters are random alphanumeric characters, the third character is the first character of the region name that the car is first rezzed in, the fourth through sixth characters are the last three digits of the current Unix timestamp, and the last character is a random alphanumeric character.
Are plate numbers unique or searchable?
No. Due to privacy concerns, we chose to make plate numbers pseudo-random and they might not be unique. However, plate numbers only change when the vehicle owner changes or the plate is edited by the user, so plate numbers will persist even if the vehicle is taken and re-rezzed.
Why is the layout/font not accurate for my state/country?
We have tried to implement as many plate designs as we could, but the person who developed GLPS is a stupid American, so many of the European plates are wrong because we do not have access to every accurate font, and we do not have the time to make sure every state plate is pixel-perfect. Different states and countries use a wide variety of fonts, layouts, decals, additional stickers, and sizes. We have attempted to emulate these formats, but the layout and font may not be completely accurate in every case.
For European plates with inspection stickers, can they be changed?
While you are welcome to make your own inspection sticker, the sticker on the template is the only inspection sticker possible by default. We have thus attempted to avoid referring to any specific year on the default templates.
For Russian plates, can the region number be changed to not say "SL"?
No. Due to the fact that GLPS can only render 7 characters, the region code was replaced with "SL", but you can edit the default template to set a custom region number if you like.
What does the Japanese plate say at the top?
The kanji at the top reads "import" and the number to the right is the vehicle class code, which is estimated depending on the plate type you use, but can be edited (see above). Realistically, the kanji would indicate the local office that issued the plate, but incorporating all of the possible office codes would make the characters unreadable. For more information, see the relevant Wikipedia article. It is also possible that the kanji reads something totally nonsensical or that we glossed over an appropriate real-life alternative that could have been used, since the person who developed GLPS is a baka gaijin.
For Japanese plates, can I change the issuing office and class codes at the top of the plate?
Yes, but this can only be done by making your own texture using the PSD file in Photoshop. Due to Second Life limitations, only the hiragana character and sequential digits can be changed in-world.
For Japanese plates, how do I display dots instead of leading zeroes?
Use ":" (the colon punctuation mark) for each centered dot.
For Japanese plates, how do I enter the hiragana character?
GLPS will accept hiragana in the number input. Alternatively, you can use the following romanji and punctuation that are mapped to the following hiragana:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | G | H | I | J |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
さ | す | せ | そ | た | ち | つ | て | と | な | に | ぬ | ね | の | は | ひ | ふ | ほ | ま | み |
K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | - | . | : | @ |
む | め | も | や | ゆ | よ | ら | り | る | ろ | あ | い | う | え | か | き | く | け | こ | を |
Note that the hiragana mapped to 0-9 and A-T are used on private vehicles and those mapped to U-Z and punctuation are used on commercial vehicles, though due to the nature of GLPS, these combinations are not always accurate. Also, GLPS does not support the れ and わ "rental vehicle" hiragana due to space limitations, and does not support any of the following hiragana not valid on license plates: 'ばだがぱざびぢぎぴじぶづぐぷずべでげペぜぼどごぽぞゑゐ
What are the default templates?
Below is a list of default template codes:
Code | Size | Digits | Description |
---|---|---|---|
GLPSD/SLUSS | JP/US | 6 | Second Life Default (US Style) |
GLPSD/SLUSV | JP/US | 1-7 | Second Life Vanity (US Style) |
GLPSD/SLMBE | JP/US | 1-7 | Second Life Mainland - Bellisseria |
GLPSD/SLMBS | JP/US | 1-7 | Second Life Mainland - Blake Sea |
GLPSD/SLMCO | JP/US | 1-7 | Second Life Mainland - Corsica |
GLPSD/SLMGI | JP/US | 1-7 | Second Life Mainland - Gaeta Islands |
GLPSD/SLMHE | JP/US | 1-7 | Second Life Mainland - Heterocera |
GLPSD/SLMJE | JP/US | 1-7 | Second Life Mainland - Jeogeot |
GLPSD/SLMNA | JP/US | 1-7 | Second Life Mainland - Nautilus |
GLPSD/SLMSA | JP/US | 1-7 | Second Life Mainland - Sansara |
GLPSD/SLMST | JP/US | 1-7 | Second Life Mainland - Satori |
GLPSD/SLMSC | JP/US | 1-7 | Second Life Mainland - Sharp Continent |
GLPSD/SLMZI | JP/US | 1-7 | Second Life Mainland - Zindra |
GLPSD/JPPSS | JP/US | 5 | Japan - Private |
GLPSD/JPPKS | JP/US | 5 | Japan - Private Kei |
GLPSD/JPCSS | JP/US | 5 | Japan - Commercial |
GLPSD/JPCKS | JP/US | 5 | Japan - Commercial Kei |
GLPSD/JPTPS | JP/US | 5 | Japan - Temporary |
GLPSD/USCAS | JP/US | 1-7 | United States - California |
GLPSD/USCAB | JP/US | 1-7 | United States - California (Black) |
GLPSD/USNJS | JP/US | 6 | United States - New Jersey |
GLPSD/USNJV | JP/US | 1-7 | United States - New Jersey Vanity |
GLPSD/USNYS | JP/US | 7 | United States - New York |
GLPSD/USNYV | JP/US | 1-7 | United States - New York Vanity |
GLPSD/USNYA | JP/US | 7 | United States - New York (2010s) |
GLPSD/USNYB | JP/US | 1-7 | United States - New York Vanity (2010s) |
GLPSD/USNYC | JP/US | 1-7 | United States - New York Livery (2010s) |
GLPSD/USNYD | JP/US | 1-7 | United States - New York T&LC (2010s) |
GLPSD/USNYE | JP/US | 7 | United States - New York (2000s) |
GLPSD/USNYF | JP/US | 1-7 | United States - New York Vanity (2000s) |
GLPSD/USNYG | JP/US | 1-7 | United States - New York Livery (2000s) |
GLPSD/USNYH | JP/US | 1-7 | United States - New York T&LC (2000s) |
GLPSD/USNYI | JP/US | 6 | United States - New York (1990s) |
GLPSD/USNYJ | JP/US | 6 | United States - New York Vanity (1990s) |
GLPSD/USNYK | JP/US | 6 | United States - New York Livery (1990s) |
GLPSD/USNYL | JP/US | 6 | United States - New York T&LC (1990s) |
GLPSD/USNYM | JP/US | 6 | United States - New York Commercial (1990s) |
GLPSD/USPAS | JP/US | 7 | United States - Pennsylvania |
GLPSD/USPAV | JP/US | 1-7 | United States - Pennsylvania Vanity |
GLPSD/USTXS | JP/US | 7 | United States - Texas |
GLPSD/USTXV | JP/US | 1-7 | United States - Texas Vanity |
GLPSD/SLEUS | EU/RU/UK | 1-7 | Second Life Default (EU Style) |
GLPSD/EUALS | EU/RU/UK | 7 | Albania |
GLPSD/EUAAS | EU/RU/UK | 6 | Austria |
GLPSD/EUBYS | EU/RU/UK | 7 | Belarus |
GLPSD/EUBBS | EU/RU/UK | 7 | Belgium |
GLPSD/EUBIS | EU/RU/UK | 7 | Bosnia and Herzegovina |
GLPSD/EUBGS | EU/RU/UK | 7 | Bulgaria |
GLPSD/EUHRS | EU/RU/UK | 7 | Croatia |
GLPSD/EUCZS | EU/RU/UK | 7 | Czech Republic |
GLPSD/EUDKS | EU/RU/UK | 7 | Denmark |
GLPSD/EUDKC | EU/RU/UK | 7 | Denmark - Commercial |
GLPSD/EUDKP | EU/RU/UK | 7 | Denmark - "Parrot" |
GLPSD/EUESS | EU/RU/UK | 6 | Estonia |
GLPSD/EUFIS | EU/RU/UK | 6 | Finland |
GLPSD/EUFFS | EU/RU/UK | 7 | France |
GLPSD/EUDDS | EU/RU/UK | 7 | Germany |
GLPSD/EUGRS | EU/RU/UK | 7 | Greece |
GLPSD/EUHHS | EU/RU/UK | 6 | Hungary |
GLPSD/EUISS | EU/RU/UK | 5 | Iceland |
GLPSD/EUIRS | EU/RU/UK | 7 | Ireland |
GLPSD/EUIIS | EU/RU/UK | 7 | Italy |
GLPSD/EULVS | EU/RU/UK | 6 | Latvia |
GLPSD/EULIS | EU/RU/UK | 7 | Liechtenstein |
GLPSD/EULTS | EU/RU/UK | 6 | Lithuania |
GLPSD/EULLS | EU/RU/UK | 6 | Luxembourg |
GLPSD/EUMMS | EU/RU/UK | 6 | Malta |
GLPSD/EUMDS | EU/RU/UK | 6 | Moldova |
GLPSD/EUMNS | EU/RU/UK | 7 | Montenegro |
GLPSD/EUNLS | EU/RU/UK | 6 | Netherlands |
GLPSD/EUNMS | EU/RU/UK | 7 | North Macedonia |
GLPSD/EUNNS | EU/RU/UK | 7 | Norway |
GLPSD/EUPLS | EU/RU/UK | 7 | Poland |
GLPSD/EUPPS | EU/RU/UK | 6 | Portugal |
GLPSD/EUROS | EU/RU/UK | 7 | Romania |
GLPSD/EUSRS | EU/RU/UK | 7 | Serbia |
GLPSD/EUSKS | EU/RU/UK | 7 | Slovakia |
GLPSD/EUSLS | EU/RU/UK | 7 | Slovenia |
GLPSD/EUEES | EU/RU/UK | 7 | Spain |
GLPSD/EUSSS | EU/RU/UK | 6 | Sweden |
GLPSD/EUUAS | EU/RU/UK | 7 | Ukraine |
GLPSD/RURUS | EU/RU/UK | 6 | Russia |
GLPSD/UKUKS | EU/RU/UK | 7 | United Kingdom (Front/Rear) |
GLPSD/UKEUS | EU/RU/UK | 7 | United Kingdom EU (Front/Rear) |
GLPSD/THPCS | Custom | 6 | Thailand - Private Car |
GLPSD/THPVS | Custom | 6 | Thailand - Private Van |
GLPSD/THPPS | Custom | 6 | Thailand - Private 2DR Pickup |
GLPSD/THPTS | Custom | 6 | Thailand - Private Motorized Tricycle |
GLPSD/THTCS | Custom | 6 | Thailand - Taxi |
GLPSD/THSCS | Custom | 6 | Thailand - Service Vehicle |
What are the default fonts?
Below is a list of default font codes:
Code | Description |
---|---|
US1 | United States - Generic 1 |
US2 | United States - Generic 2 |
USCA | United States - California |
USFL | United States - Florida |
USIL | United States - Illinois |
USMA | United States - Massachusetts |
USMD | United States - Maryland |
USMI | United States - Michigan |
USMO | United States - Missouri |
USNC | United States - North Carolina |
USNJ | United States - New Jersey |
USNY | United States - New York |
USOH | United States - Ohio |
USPA | United States - Pennsylvania |
USVA | United States - Virginia |
USWA | United States - Washington |
USWI | United States - Wisconsin |
CAON | Canada - Ontario |
CAQC | Canada - Quebec |
UK | United Kingdom |
EU1 | Europe - Generic 1 |
EU2 | Europe - Generic 2 |
EU3 | Europe - Generic 3 |
JPR | Japan - Romaji/Numerals |
JPH | Japan - Hiragana |