# WiFi

> The WiFi System introduces a new layer of interaction, security, and progression to your server. Instead of having every application available everywhere, administrators can configure custom wireless hotspots across the map, serving as physical gateways to unlock specific functionalities on the device.

<figure><img src="https://1688068901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9bCwnajAqpi3Viykb5Wi%2Fuploads%2FAZX2muKjyu0qQcilI37d%2F%7B900EB46E-F6D9-4753-A407-ACF9D0A7C0B2%7D.png?alt=media&#x26;token=42cd295e-2a93-46ae-b635-8efb3ea15568" alt=""><figcaption></figcaption></figure>

#### Configuration & Security

Admins have complete control over how and where these networks operate. When creating a hotspot, you can utilize the following security measures:

* **Password Protection:** Secure your networks with traditional passwords.
* **Conditional Visibility** (`canConnect`): This is a dynamic function that dictates whether a network is even visible to a player in their WiFi list.
  * If the function returns `true`, the network appears.
  * If it returns `false`, the network remains completely hidden.
  * ***Use case:*** You can hide the "Mission Row Employees" network from civilians, making it only visible and connectable for players who currently have the Police job.

#### Example Configuration

Here is an example of how a restricted network might look in your configuration file:

```lua
{
        name = "uwucafe_boss",
        label = "UwU Boss",
        password = '123',
        coords = { -580.3973, -1059.5032, 22.3442 },
        canConnect = function() -- run your own check, return true or false to show/hide the hotspot from players
            -- THIS IS JUST AN EXAMPLE!
            -- Checks if the player holds the boss grade and if their job name is 'uwu_cafe'
            local isBoss = exports['av_laptop']:isBoss() -- true or false
            local isUwU = exports['av_laptop']:hasJob('uwu_cafe') -- true or false
            return (isBoss and isUwU) -- both true? returns true, 1 true but other one is false? return false, both false returns false
        end,
    },
```
