Editorโs featured review
Nothing competes
This is probably the apex of keypad addons, the amount of quality and customization while keeping it true to vanilla darkrp is honestly a feat of it's own. You will not find any other keypad addon with this kind of love and care put into it. Beyond impressed.
Media gallery
Buy product
$14.99
Product support is provided externally.

In short
The ultimate keypads & keycards system for Garry's Mod โ compatible with any gamemode with special features for DarkRP.

Introduction
After a whole year of development, welcome to the newest in Gmod keypad technology โ crafted by Billy :D
Billy's Keypads contains innovations never seen before in Gmod, and guarantees to revolutionise the keypads experience on your server.
Every part of the script contains help, tooltips, links and even animations to help new & experienced players alike learn how to use your server's new keypads. A massive amount of effort has been made to make sure Billy's Keypads are a familiar experience, easy to use and enjoyable whilst still packing an eye watering number of features.
Don't like reading?
Cool! That's why I set up the demo server.
Click here to join and try Billy's Keypads out for yourself. Otherwise, read on to learn more.
Here at Billy's Keypads, we take security seriously. That's why Billy's Keypads comes with three different authentication methods, all of which are configurable and can even be finely permission-controlled (e.g. reserving some methods to donators only.)
Access Groups
Each authentication method comes with a wide range of different "access groups" that can be whitelisted to or blacklisted from keypads. No more forgetting PINs or trusting your 64-player-strong criminal organisation with the PIN code to your printer vault, simply whitelist your friends via the Player Selector and you're done.
Here's the current full list:
Keycard Level (Keycard scanners only)
Players/SteamIDs
Steam Friends
Usergroups/Ranks
Teams
Custom Team Groups
Custom Lua Functions
DarkRP Jobs
DarkRP Job Categories
DarkRP Door Groups
DarkRP Agenda Groups
DarkRP Demote Groups
Helix Faction Flags

FaceID is the star authentication method of Billy's Keypads, boasting unique, futuristic animations, effortless configuration and pretty visuals. FaceID keypads connect to the Billy's Keypads Centralised Facial Databaseโข (proudly provided by the generous Chinese Communist Party) to link players' faces to their SteamID and acquire other relevant information to determine if they should be granted or denied access to the keypad.
Players asking questions about their privacy? No bother โ just take them for an admin sit and remind them of their rights: none. If you have nothing to hide, you have nothing to fear! :)
Recommended Gamemodes: Sandbox, DarkRP, StarWarsRP, MilitaryRP, Cops & Robbers
Billy's Keypads has a fully-featured keycards system that is capable of completely revolutionising the roleplay experience for select gamemodes.
Keycards can be easily configured in the config file, and each have a unique name, any variety of keycard levels assigned to it, the choice of 16,777,216 different colours to choose from, and can be assigned to be spawned with for any variety of jobs/teams.
Recommended Gamemodes: SCP-RP, MilitaryRP
Keycard Inventory

The keycard inventory is an inventory that can be accessed in the keycard weapon by pressing RELOAD. This menu allows you to inspect, switch and drop keycards that you hold.
Dropping keycards is completely configurable and can be disabled, and it is also possible to configure the keycard inventory to be dropped on player death.
Spawned Keycards

One game-changing feature of Billy's Keycards is that they can be spawned in the map for pickup.
These keycards can be picked up by players and added to their keycard inventory, allowing them to switch between them and use them in keycard-scanning keypads.
They are spawned in via the Spawn Menu > Entities > Billy's Keypads tab and are configurable through the in-game menu that pops up.
Possible configuration options are hiding the spawned keycard to players that have already picked them up, enabling/disabling physics, enabling touch to pickup, setting the keycard level(s) it holds, setting the keycard's shown player model and setting the quantity it holds.
Spawned keycards can also be marked as permanent, and will spawn when the map is loaded or cleaned up.
Spawned keycards will save their position and angles when dropped by the physgun, allowing you to carefully place keycards in desired positions on the map.
Dynamic Keycard Textures

Each keycard has its own dynamic keycard texture, which shows a variety of information on the front and back of the keycard: the keycard name, player's job/team, player model, configurable custom logo/image or player's Steam profile picture, keycard levels
This keycard texture is not 3D2D UI drawn on top, it's a full blown dynamically generated texture, meaning that it saves immensely on CPU, GPU and memory usage.
For the more technically literate, you will be happy to learn that dynamic keycard textures are extremely optimised, using smart render target pooling to make sure no new render targets are created unnecessarily (which eats into memory) and that render targets are only drawn to once and recycled when used on the same keycard again, to prevent unnecessary redrawing (eating into CPU and GPU performance.)
Dynamic keycard textures are completely clientside, and do not take up any server resources. Additionally, dynamic keycard textures are completely aesthetic, and can be completely switched off by players if their computer was built from salvaged parts from an e-waste dump.
Identification

Some of you may be familiar with the /showid command on some roleplay servers, which displays a simple chat message showing the player's name and job. Billy's Keycards implements this by showing the keycard's name and player's job when they right click, as shown above. This adds a further layer to the roleplay experience via the keycard inventory, as players can switch between different keycards they hold, and pretend to be someone they're not!
This feature also has a configurable fade-out distance, so players must be close up to see this information.
This feature can be switched off entirely.

That's right, Billy's Keypads also supports the classic PIN input too, but makes it even better. PIN keypads have been reimagined in Billy's Keypads to use a mouse-clicking mechanic as well as the classic option of looking at each key and pressing E. Players can choose their preference in the settings panel in their spawn menu.
In the "Mouse" mode, when a player presses E on a PIN keypad, their mouse will release and allow them to click on each key. This allows for much faster & smoother muscle memory and a better user experience. And don't worry, the mouse is released back when it exits the bounds of the keypad's screen, the player presses any movement keys or tries to switch weapon as we all know that things can turn sour very quickly in DarkRP, and you don't want to be caught in the middle of entering a keypad PIN when they do! You can swiftly turn around and shoot the mingebag in the face without any panic keyboard slamming necessary.
Also, you may have noticed in the video above that you can also input PINs using the numpad on your keyboard! Input can be cleared by pressing your numpad's delete key, and input can be finished by pressing your numpad's enter key.
PIN keypads also have bruteforce protection built-in, meaning it would take approximately 30 minutes to crack a 4-digit keypad, and 2.5 days to crack a 6-digit keypad, based on 100ms cooldown between PIN key inputs. This does not include the time in between access denied and showing the buttons again however, so it would take a lot longer still!
Recommended Gamemodes: Sandbox, DarkRP
And yes, players can configure their preferred input method :)

Exploits/Cheating
Were you aware that the "classic" keypads seen widely throughout Gmod are extremely vulnerable to cheaters extracting the PINs from them? It is possible to calculate the PIN of the keypad completely clientside by watching a player's eye angles when they look at a keypad, and noting it down every time they press E. With this angle, you can then calculate which button on the keypad they pressed!
Billy's Keypads is not vulnerable to this issue โ when looking at keypads, clients will send fake eye angles to the server, so they'll always be looking in the center for other players. No PIN sniffing!
Billy's Keypads supports a unique feature โ payment keypads!
Players can set a price for access to their keypads, and can even set it so that only unauthorised users require payment.
The minimum and maximum can be configured in the config file, and you can set up permissions for this feature also.

Billy's Keypads are compatible with the default keypad cracker made by Willox out-of-the-box.
However, you may experience some problems with other keypad crackers. If they are not working, ask the creator to replace something like this:
With this:
Billy's Keypad Cracker
Billy's Keypads has an official keypad cracker complete with its own unique features and advanced configurations, such as making "pro" keypad crackers for VIPs.
Check it out here:
Billy's Keypads has a unique health and shielding system for keypads.
If enabled, players' keypads can be damaged to be broken into.
If disabled, admins will still be able to create & configure destructible keypads.
Two new entities are included, the Keypad Battery and Keypad Shield Battery, which charge the keypad's health and shield up respectively.
In DarkRP, these will already be added to your F4 menu if configured!



Billy's Keypads supports the creation of permanent/persistent keypads which spawn when the map is loaded or cleaned up.
Keypads can be made persistent using your context menu, or using the Persistence tool found in Spawn Menu > Admin > Billy's Keypads > Persistence.
Persistence Profiles
Billy's Keypads supports "Persistence Profiles" โ these are different configurations of persistent keypads for the map.
These allow you to create different "profiles" of persistent keypad configurations and load them on the fly.
This can be useful for server events where you want keypads placed in different areas of the map.

With Billy's Keypads, players can upload their own custom images/logos on to their keypads from the web. This can be permission controlled (e.g. donators only.)
I can't wait what the fantastic Garry's Mod community can make out of this one!
Security
By default, only Imgur.com is whitelisted for keypad image URLs. Unless you know what you're doing, it is highly recommended that you leave this alone. Because clients download keypad images from their computer (the server is not involved in any of this except for verifying that URLs are whitelisted domains) their IP addresses are exposed to the connecting image host.

Players can also set a desired custom background colour on their keypads (this can also be permission controlled) out of 16,777,216 different colours!

Keypads are able to sent notifications to their owners after specific events, such as Access Granted, Access Denied, Payment Taken, Payment Received, and Can't Afford.
This feature can also be configured to go straight to the chat box instead.
It can also be finely permission controlled!

The admin tool is a toolgun tool that can be accessed through the Spawn Menu > Admin > Billy's Keypads > Admin Tool.
The tool allows you to view keypads links, configuration, keypad access whitelists/blacklists, access logs, and the owners of keypads.

Access logs of keypads are not only accessible by admins โ Billy's Keypads also includes an Access Logs SWEP which allows you to physically interface with keypads to inspect their access logs.
Looking for a new job for your DarkRP server? You've found it! May I suggest a Detective job who spawns with this weapon? (Tip: it's called bkeypads_access_logs)

And of course, Billy's Keypads supports Billy's Logs!
"Broken" Keypads are a fun feature which works perfectly for server events.
Admins can use the Keypad Breaker tool (accessible via Spawn Menu > Admin > Billy's Keypads > Keypad Breaker) to "break" keypads, as shown below.
Broken Keypads will keep any linked fading door, map door, button etc. activated, unlocked or open until they are fixed. This opens the potential for amazing server events such as the ship's security system being compromised on StarWarsRP.

Billy's Keypads have four different outputs:
Access Granted [1/0]
Access Denied [1/0]
Player [ENTITY]
Scanning [1/0] (disabled by default)
Wiremod access can be permission controlled or the feature can be switched off entirely.

As mentioned throughout this description, Billy's Keypads is capable of using OpenPermissions for more fine-tuned permissions control.
OpenPermissions is also written by Billy and is automatically installed with GmodAdminSuite, so you do not need to install it if you already have GmodAdminSuite installed.
Billy's Keypads content is automatically downloaded by players via WorkshopDL before they join your server.
It's only about ~6 MB, and compresses down to ~2 MB! That will only take a few seconds even on slower connections.
In every line of code, in every function, in every hook, in every stack, in every data structure, efforts have been made to optimise the script and make sure it runs buttery-smooth on any hardware โ server or client.
I have crafted this script with love, almost 7 years of GLua experience, and almost 12 years of Lua experience, starting from the age of eight, and can therefore assure you that this is the most optimised but feature-rich keypads script available in Garry's Mod.
Billy's Keypads monitors your game's FPS, and applies optimisations & adjustments accordingly, such as reduced animations, effects, and drawing distance. Players can also force the script to optimise or prevent optimisations at all times if necessary, and can even tweak the FPS threshold that optimisations begin at.

Sterling โ Created the keypad model
II_PYRO_II โ Created the keycard model
MaestroN โ gm_neon_construct map
Leystryku โ Missing model fallback drawing method
Testers
(Did I forget you? Please let me know)
Product reviews
Downloadable content
















