Join the Game4Freak Discord Get exclusive plugin sneak peeks, talk directly with VisEntities, never miss important updates, and unlock special discount codes!
Server Password

Server Password 1.1.1

Requires players to enter a password via keypad UI before they can play
image.jpg



Server Password adds a password gate to your server that locks players out until they enter the correct password via an on-screen keypad interface. Players are frozen at their spawn location and must enter the password before they can move or interact with the world.

The plugin supports multiple password profiles based on permissions, allowing different groups of players to use different passwords. It includes configurable attempt limits, temporary lockouts after too many failures, and extensive UI customization options. Verified players can optionally stay verified until disconnect, avoiding repeated password entry on respawn.

Features

  • Keypad UI interface - Clean, interactive keypad similar to code lock interface
  • Password profiles - Assign different passwords to different permission groups
  • Attempt limits - Kick players after too many incorrect attempts
  • Temporary lockouts - Block rejoins for a configurable duration after kick
  • Player freezing - Locks players in place until verified
  • Auto-submit - Automatically submits password when full length is entered
  • Masked input - Optionally hide password as asterisks
  • Case sensitivity control - Choose whether passwords are case-sensitive
  • Persistent verification - Remember verified players until disconnect
  • Customizable UI - Full control over colors, transparency, and text

Permissions

  • serverpassword.bypass -- Players with this permission skip the password gate entirely

Profile permissions are defined in the configuration. Each password profile can specify a required permission (e.g., serverpassword.profile.event). Players are matched to the first profile for which they have the required permission.

Configuration

JSON:
{
  "Version": "1.1.1",
  "Password Settings": {
    "Enabled": false,
    "Password": "1234",
    "Case Sensitive": false,
    "Maximum Failed Attempts Before Kick": 3,
    "Hide Input As Asterisks": true,
    "Maximum Input Length": 12,
    "Remember Verified Player Until Disconnect": true,
    "Show UI Again On Respawn If Not Verified": true,
    "Hide UI On Join If Already Verified": true,
    "Auto Submit When Code Complete": true,
    "Kick Lockout Time After Failure Seconds": 300,
    "Enable Password Profiles": false,
    "Password Profiles": [
      {
        "Profile Name": "Event",
        "Required Permission": "serverpassword.profile.event",
        "Password": "5678",
        "Override UI Header": "Event Password",
        "Override UI Subtitle": "Enter the event password to join"
      }
    ]
  },
  "UI Style Settings": {
    "Overlay Background Color (HEX)": "24201B",
    "Overlay Transparency (0..1)": 0.5,
    "Code Display Background Color (HEX)": "2B2F33",
    "Code Display Transparency (0..1)": 0.78,
    "Code Text Color (HEX)": "F3F5F7",
    "Title Text Color (HEX)": "F3F5F7",
    "Subtitle Text Color (HEX)": "F3F5F7",
    "Keypad Button Background Color (HEX)": "8E949A",
    "Keypad Button Transparency (0..1)": 0.8,
    "Keypad Button Text Color (HEX)": "F3F5F7",
    "Keypad Button Hover Color (HEX)": "8BC34A",
    "Keypad Button Pressed Color (HEX)": "6FA83B",
    "Keypad Button Selected Color (HEX)": "8BC34A",
    "Keypad Button Disabled Color (HEX)": "4D5258",
    "Clear Button Background Color (HEX)": "C85C5C",
    "Clear Button Transparency (0..1)": 0.7,
    "Clear Button Text Color (HEX)": "F3F5F7",
    "Clear Button Hover Color (HEX)": "E07A7A",
    "Clear Button Pressed Color (HEX)": "A13F3F",
    "Clear Button Selected Color (HEX)": "D36A6A",
    "Clear Button Disabled Color (HEX)": "5A2E2E",
    "Attempts Text Color (HEX)": "ECEFF1"
  }
}

Password Settings

  • Enabled -- Set to true to activate the password gate
  • Password -- The default password players must enter. Used when password profiles are disabled or no profile matches the player
  • Case Sensitive -- When true, passwords must match exact case. When false, "ABC" and "abc" are treated as the same
  • Maximum Failed Attempts Before Kick -- How many incorrect password attempts are allowed before kicking the player
  • Hide Input As Asterisks -- When true, shows * characters instead of the actual input on the keypad display
  • Maximum Input Length -- Maximum number of digits/characters players can enter. Set to 0 for unlimited
  • Remember Verified Player Until Disconnect -- When true, players stay verified across respawns until they disconnect
  • Show UI Again On Respawn If Not Verified -- When true, shows the password UI again when unverified players respawn
  • Hide UI On Join If Already Verified -- When true, hides the UI immediately on join if the player is already verified from a previous session
  • Auto Submit When Code Complete -- When true, automatically submits the password once it reaches the target length
  • Kick Lockout Time After Failure Seconds -- How long in seconds players must wait before rejoining after being kicked for too many failed attempts. Set to 0 to disable lockout
  • Enable Password Profiles -- Set to true to enable permission-based password profiles
  • Password Profiles -- List of password profiles. See Password Profiles below

Password Profiles

Password profiles allow you to assign different passwords to different groups of players based on permissions. This is useful for events, VIP access, or separate passwords for different teams.

Each profile has the following settings:
  • Profile Name -- Display name for the profile (for your reference in config)
  • Required Permission -- Players need this permission to be matched to this profile (e.g., serverpassword.profile.event)
  • Password -- The password for this profile
  • Override UI Header -- Optional custom header text for this profile's UI. If left empty, uses the default header from localization
  • Override UI Subtitle -- Optional custom subtitle text for this profile's UI. If left empty, uses the default subtitle from localization
Profile matching: The plugin checks profiles in order from top to bottom and assigns the player to the first profile for which they have the required permission. If no profile matches, the player uses the default Password setting.

Example use case: Create an event password that only players with serverpassword.profile.event permission can use:
JSON:
{
  "Profile Name": "Tournament",
  "Required Permission": "serverpassword.profile.tournament",
  "Password": "RUST2025",
  "Override UI Header": "Tournament Access",
  "Override UI Subtitle": "Enter the tournament password to participate"
}

UI Style Settings

All UI colors use hex color codes without the # symbol. Transparency values range from 0 (invisible) to 1 (fully opaque).
  • Overlay Background Color -- Background color of the full-screen overlay
  • Overlay Transparency -- Transparency of the full-screen overlay
  • Code Display Background Color -- Background color of the password display box
  • Code Display Transparency -- Transparency of the password display box
  • Code Text Color -- Color of the text/asterisks in the password display
  • Title Text Color -- Color of the header text (e.g., "Server Password")
  • Subtitle Text Color -- Color of the subtitle text (e.g., "Enter the password to join the server")
  • Keypad Button Background Color -- Default background color of number buttons (0-9)
  • Keypad Button Transparency -- Transparency of number buttons
  • Keypad Button Text Color -- Color of the numbers on keypad buttons
  • Keypad Button Hover Color -- Color when hovering over a number button
  • Keypad Button Pressed Color -- Color when clicking a number button
  • Keypad Button Selected Color -- Color when a button is selected
  • Keypad Button Disabled Color -- Color when a button is disabled
  • Clear Button Background Color -- Default background color of the clear button
  • Clear Button Transparency -- Transparency of the clear button
  • Clear Button Text Color -- Color of the text on the clear button
  • Clear Button Hover Color -- Color when hovering over the clear button
  • Clear Button Pressed Color -- Color when clicking the clear button
  • Clear Button Selected Color -- Color when the clear button is selected
  • Clear Button Disabled Color -- Color when the clear button is disabled
  • Attempts Text Color -- Color of the "Attempts left" counter text

Localization

JSON:
{
  "Error.NoPermission": "You do not have permission to use this command.",
  "Locked.Generic": "You must enter the server password first.",
  "UI.Header": "Server Password",
  "UI.Subtitle": "Enter the password to join the server",
  "UI.AttemptsLeftFormat": "Attempts left: {0}",
  "UI.ClearButtonLabel": "C",
  "Toast.WrongPassword": "Wrong password.",
  "Toast.Unlocked": "Welcome!",
  "Kick.BaseReason": "Too many incorrect password attempts.",
  "Kick.Generic": "Kicked.",
  "Kick.TryAgainIn": "Try again in {0}."
}
Author
VisEntities
License duration
Unlimited
Price
12.99 USD
First release
Last update

Ratings

0.00 star(s) 0 reviews

Also by VisEntities

Latest updates

  1. 1.1.1

    Fixed keypad input delay when player is on the death screen.
  2. 1.1.0

    Added password profiles so different permission groups can have their own password and optional...
Back
Top
Chat commands start with a /, while console commands can be entered directly in the F1 console or server console. Use find <keyword> in console to search for available commands related to the plugin. Parameters in < > are required, while [ ] are optional.
This plugin uses Oxide's permission system. Grant or revoke permissions using oxide.grant and oxide.revoke. You can assign them to individual players or groups using their Steam id or group name.
Settings are stored in the config file found under the config/ directory. You can edit this file manually, then reload the plugin to apply your changes.
Persistent data is saved in the data/ directory. This includes things like saved settings, usage stats, or player progress depending on the plugin. Deleting a data file will reset stored progress or customizations.
Language files are located in the lang/ folder. To translate messages, copy the en.json file into your target language folder (e.g. fr, de) and edit the values. Reload the plugin after changes to apply new messages.
This section lists public methods exposed by the plugin for use in other plugins. You can call these via the CallHook method. Ensure the plugin is loaded before calling its API to avoid null reference errors.
These are custom hooks that other plugins can listen for. Simply define a method with the same name and expected parameters in your plugin to handle the event. Hooks are triggered at key moments and are useful for extending or reacting to plugin behavior.
These hooks are injected into the game's code using Harmony. They let the plugin run code at key points in the game's internal logic. You can return values to block or modify behavior. Use with caution — these are powerful and can affect core mechanics.
Cart