> For the complete documentation index, see [llms.txt](https://pirithous.rlib.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pirithous.rlib.io/changelog/3.7.0.0.md).

# 3.7.0.0

{% hint style="warning" %}
This release requires [**rlib**](https://get.rlib.io) to be updated to v4.0.0.0

The new version completely re-writes a lot of how the system worked, as well as removes a crap ton of no longer needed things and puts the library into a "minified" version. It also includes some optimizations that will definitely show a benefit when loading resource heavy scripts such as [**XTask**](https://xtask.rlib.io/) and [**Arivia v3**](https://arivia.rlib.io/).
{% endhint %}

## <mark style="color:red;">▸ Overview</mark>

* `[ + ]` [**added ability to support various keyboard layouts**](#added-ability-to-support-various-layouts)
* `[ + ]` [**new keyboard layout&#x20;**<mark style="color:red;">**`AZERTY`**</mark>](#new-keyboard-layout-azerty)
* `[ + ]` [**new keyboard layout&#x20;**<mark style="color:red;">**`QWERTZ`**</mark>](#new-keyboard-layout-qwertz)
* `[ + ]` [**added right-click menu to copy binds to clipboard**](#added-right-click-menu-to-copy-binds)
* `[ + ]` [**ability to now group multiple keys into a family and simulate one solid key**](#added-key-family-grouping)
* `[ + ]` [**added detection for the following commands:**](#added-auto-detection-of-gmod-binds)

  &#x20;            \- gm\_showhelp

  &#x20;            \- gm\_showteam\
  &#x20;            \- gm\_showspare1\
  &#x20;            \- gm\_showspare2\
  &#x20;            \- messagemode\
  &#x20;            \- messagemode2\
  &#x20;            \- ulx menu\
  &#x20;            \- ulx motd\
  &#x20;            \- ulx noclip\
  &#x20;            \- ulx god\
  &#x20;            \- toggleconsole\
  &#x20;            \- jpeg\
  &#x20;            \- slot0\
  &#x20;            \- slot1\
  &#x20;            \- slot2\
  &#x20;            \- slot3\
  &#x20;            \- slot4\
  &#x20;            \- slot5\
  &#x20;            \- slot6\
  &#x20;            \- slot7\
  &#x20;            \- slot8\
  &#x20;            \- slot9
* `[ ^ ]` [**increased key button sizes**](#resized-key-button-sizes-1)
* `[ ^ ]` [**new rules interface**](#new-rules-interface)
* `[ ^ ]` [**header / ticker have screen scaling, including exit button**](#header-footer-icons-have-screenscaling)
* `[ ^ ]` [**key functions execute and and condition renamed**](#key-function-name-changes)\
  &#x20;            \- execute now called <mark style="color:blue;">**`onClick`**</mark>\
  &#x20;            \- condition now called <mark style="color:blue;">**`enabled`**</mark>
* `[ ^ ]` [**updated web and rules interface**](#updated-web-and-rules-interface)
* `[ ^ ]` [**removed sh\_cfg.rules.txt config file, merged with sh\_cfg.nav**](#removed-sh_cfg_rules-moved-to-sh_cfg.nav)
* `[ % ]` [**fixed bug which would incorrectly identify commands with spaces**](#fixed-bug-that-incorrectly-assigns-actions-to-keys)
* `[ % ]` [**fixed unregistered hook&#x20;**<mark style="color:red;">**`pirithous_fonts_register`**</mark>](#fixed-unregistered-hook-pirithous_fonts_register)

## <mark style="color:red;">▸ Detailed Changes</mark>

### <mark style="color:purple;">▸ Added Ability to Support Various Layouts</mark>

There is now a specialized button located at the bottom right of the keyboard which allows a player to change keyboard layouts.

<figure><img src="/files/23AOmmH55K8Zm6p5rMfo" alt=""><figcaption></figcaption></figure>

### <mark style="color:purple;">▸ New Keyboard Layout AZERTY</mark>

AZERTY is a specific [layout](https://en.wikipedia.org/wiki/Keyboard_layout) for the characters of the [Latin alphabet](https://en.wikipedia.org/wiki/Latin_alphabet) on computer [keyboards](https://en.wikipedia.org/wiki/Keyboard_\(computing\)). The layout takes its name from the first six [letters](https://en.wikipedia.org/wiki/Letter_\(alphabet\)) to appear on the first row of alphabetical keys; that is, ([A](https://en.wikipedia.org/wiki/A) [Z](https://en.wikipedia.org/wiki/Z) [E](https://en.wikipedia.org/wiki/E) [R](https://en.wikipedia.org/wiki/R) [T](https://en.wikipedia.org/wiki/T) [Y](https://en.wikipedia.org/wiki/Y)). Similar to the [QWERTZ](https://en.wikipedia.org/wiki/QWERTZ) layout, it is modeled on the English [QWERTY](https://en.wikipedia.org/wiki/QWERTY) layout. It is used in [France](https://en.wikipedia.org/wiki/France) and [Belgium](https://en.wikipedia.org/wiki/Belgium).

<figure><img src="/files/quCWfXf80NCxu8bq2BBG" alt=""><figcaption></figcaption></figure>

### <mark style="color:purple;">▸ New Keyboard Layout QWERTZ</mark>

The QWERTZ or QWERTZU [keyboard](https://en.wikipedia.org/wiki/Alphanumeric_keyboard) is a [keyboard layout](https://en.wikipedia.org/wiki/Keyboard_layout) widely used in [Central Europe](https://en.wikipedia.org/wiki/Central_Europe). The name comes from the first six letters at the top left of the keyboard: ([Q](https://en.wikipedia.org/wiki/Q) [W](https://en.wikipedia.org/wiki/W) [E](https://en.wikipedia.org/wiki/E) [R](https://en.wikipedia.org/wiki/R) [T](https://en.wikipedia.org/wiki/T) [Z](https://en.wikipedia.org/wiki/Z)).

<figure><img src="/files/GV0RQr6HLlqDBEDqZxGy" alt=""><figcaption></figcaption></figure>

### <mark style="color:purple;">▸ Added Right-Click Menu to Copy Binds</mark>

Each button has gained a right-click function which makes a menu open. The menu contains certain actions for binding keys to particular actions.

**Unfortunately, Garry's Mod / Facepunch has blocked the ability to force players to execute certain console commands such as the&#x20;**<mark style="color:red;">**`bind`**</mark>**&#x20;command.**

Instead, this menu will copy the proper command you need to your clipboard and then will automatically open your player console so that you can paste the command.

Right click on the key you wish to assign, and then select which feature you want to bind. Once the command is copied to your clipboard, simply CTRL + V (paste) in your console and press ENTER.

<figure><img src="/files/f8RX2aq1FAvGTlKkOZwn" alt=""><figcaption></figcaption></figure>

Only special actions are on this menu since the other actions such as running, jumping, etc; can be re-bound by simply opening your Garry's Mod Keybind Menu. You can access this by clicking the cog icon in the top left corner.

<figure><img src="/files/dysjmw4RJwtXiX4CNpTd" alt=""><figcaption></figcaption></figure>

### <mark style="color:purple;">▸ Added Key Family Grouping</mark>

Grouping keys allows multiple keys to be activated at the same time. On the new QWERTZ and AZERTY layouts; the <mark style="color:blue;">**ENTER**</mark> key is theoretically two keys. With the family grouping feature, this can give the keys the appearance of being one complete key instead of two. This allows for hovering both keys at the same time.

{% code lineNumbers="true" %}

```lua
cfg.azerty.keys.row.three =
{
    { enabled = true, width = 62, lbl = '..' },
    { enabled = true, width = 62, lbl = '£', sub = '$', alt = '¤' },
    { enabled = true, width = 14, fam = 'key_enter', lbl = '' },
    { enabled = true, width = 60, fam = 'key_enter', lbl = 'ENTER' },ua
}
```

{% endcode %}

<figure><img src="/files/VxToLUwUkEL8Lfm79PFm" alt=""><figcaption></figcaption></figure>

### <mark style="color:purple;">▸ Added Auto Detection of Gmod Binds</mark>

Keys bound to particular actions in Garry's Mod will automatically display on the keyboard.

The following actions have been added for auto-detection:

<table><thead><tr><th width="253">Bind</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>gm_showhelp</strong></mark></td><td><br><mark style="color:blue;"><strong>F1 key</strong></mark><br>Functionality changes depending on the gamemode.<br></td></tr><tr><td><mark style="color:red;"><strong>gm_showteam</strong></mark></td><td><br><mark style="color:blue;"><strong>F2 key</strong></mark><br>Functionality changes depending on the gamemode.<br>Usually used for selecting your team.<br></td></tr><tr><td><mark style="color:red;"><strong>gm_showspare1</strong></mark></td><td><br><mark style="color:blue;"><strong>F3 key</strong></mark><br>Functionality changes depending on the gamemode.<br>For DarkRP, this makes your cursor appear.<br></td></tr><tr><td><mark style="color:red;"><strong>gm_showspare2</strong></mark></td><td><br><mark style="color:blue;"><strong>F4 key</strong></mark><br>Functionality changes depending on the gamemode.<br>For DarkRP, this is the F4 menu to buy entities or change jobs.<br></td></tr><tr><td><mark style="color:red;"><strong>+forward</strong></mark></td><td><br>Step forward<br></td></tr><tr><td><mark style="color:red;"><strong>+back</strong></mark></td><td><br>Step backward<br></td></tr><tr><td><mark style="color:red;"><strong>+moveleft</strong></mark></td><td><br>Strafe Left<br></td></tr><tr><td><mark style="color:red;"><strong>+moveright</strong></mark></td><td><br>Strafe Right<br></td></tr><tr><td><mark style="color:red;"><strong>+jump</strong></mark></td><td><br>Jump<br></td></tr><tr><td><mark style="color:red;"><strong>+duck</strong></mark></td><td><br>Duck / crouch<br></td></tr><tr><td><mark style="color:red;"><strong>+speed</strong></mark></td><td><br><mark style="color:blue;"><strong>Shift key</strong></mark><br>Sprint<br></td></tr><tr><td><mark style="color:red;"><strong>+walk</strong></mark></td><td><br>Walk instead of run<br></td></tr><tr><td><mark style="color:red;"><strong>+use</strong></mark></td><td><br><mark style="color:blue;"><strong>E key</strong></mark><br>Open doors, pick up items.<br></td></tr><tr><td><mark style="color:red;"><strong>+menu_context</strong></mark></td><td><br><mark style="color:blue;"><strong>C key</strong></mark><br>Open context menu.<br>Change draw settings, change / view player models. Some addons will add menus here such as Third Person.<br></td></tr><tr><td><mark style="color:red;"><strong>+reload</strong></mark></td><td><br><mark style="color:blue;"><strong>R key</strong></mark><br>Reload weapon<br></td></tr><tr><td><mark style="color:red;"><strong>+menu</strong></mark></td><td><br><mark style="color:blue;"><strong>Q key</strong></mark><br>Open Spawn menu. Allows you to spawn props, entities, NPCs, etc.<br></td></tr><tr><td><mark style="color:red;"><strong>+showscores</strong></mark></td><td><br><mark style="color:blue;"><strong>TAB key</strong></mark><br>Scoreboard<br></td></tr><tr><td><mark style="color:red;"><strong>+undo</strong></mark></td><td><br><mark style="color:blue;"><strong>Z key</strong></mark><br>Undo last action<br></td></tr><tr><td><mark style="color:red;"><strong>messagemode</strong></mark></td><td><br><mark style="color:blue;"><strong>Y key</strong></mark><br>Global chat<br></td></tr><tr><td><mark style="color:red;"><strong>messagemode2</strong></mark></td><td><br><mark style="color:blue;"><strong>U key</strong></mark><br>Team chat<br></td></tr><tr><td><mark style="color:red;"><strong>+voicerecord</strong></mark></td><td><br>Voice chat<br></td></tr><tr><td><mark style="color:red;"><strong>ulx menu</strong></mark></td><td><br>Opens ULX Admin Menu<br><br>Requires ULX on server<br><br>Only works if bound to key with console command<br><mark style="color:yellow;"><code>bind "ulx menu" KEYHERE</code></mark><br></td></tr><tr><td><mark style="color:red;"><strong>ulx motd</strong></mark></td><td><br>Opens ULX Message of the Day<br><br>Requires ULX on server<br><br>Only works if bound to key with console command<br><mark style="color:yellow;"><code>bind "ulx motd" KEYHERE</code></mark><br></td></tr><tr><td><mark style="color:red;"><strong>ulx noclip</strong></mark></td><td><br>Activates ULX noclip<br><br>Requires ULX on server<br><br>Only works if bound to key with console command<br><mark style="color:yellow;"><code>bind "ulx noclip" KEYHERE</code></mark><br></td></tr><tr><td><mark style="color:red;"><strong>ulx god</strong></mark></td><td><br>Activates ULX god mode<br><br>Requires ULX on server<br><br>Only works if bound to key with console command<br><mark style="color:yellow;"><code>bind "ulx god" KEYHERE</code></mark><br></td></tr><tr><td><mark style="color:red;"><strong>toggleconsole</strong></mark></td><td><br>Opens developer console<br></td></tr><tr><td><mark style="color:red;"><strong>jpeg</strong></mark></td><td><br>Take screenshot<br></td></tr><tr><td><mark style="color:red;"><strong>slot0</strong></mark></td><td><br>Inventory slot 0<br></td></tr><tr><td><mark style="color:red;"><strong>slot1</strong></mark></td><td><br>Inventory slot 1<br></td></tr><tr><td><mark style="color:red;"><strong>slot2</strong></mark></td><td><br>Inventory slot 2<br></td></tr><tr><td><mark style="color:red;"><strong>slot3</strong></mark></td><td><br>Inventory slot 3<br></td></tr><tr><td><mark style="color:red;"><strong>slot4</strong></mark></td><td><br>Inventory slot 4<br></td></tr><tr><td><mark style="color:red;"><strong>slot5</strong></mark></td><td><br>Inventory slot 5<br></td></tr><tr><td><mark style="color:red;"><strong>slot6</strong></mark></td><td><br>Inventory slot 6<br></td></tr><tr><td><mark style="color:red;"><strong>slot7</strong></mark></td><td><br>Inventory slot 7<br></td></tr><tr><td><mark style="color:red;"><strong>slot8</strong></mark></td><td><br>Inventory slot 8<br></td></tr><tr><td><mark style="color:red;"><strong>slot9</strong></mark></td><td><br>Inventory slot 9<br></td></tr></tbody></table>

### <mark style="color:purple;">▸ New Rules Interface</mark>

The rules interface has been updated with a new scrollbar with a little bounce. A small but nice change.

<figure><img src="/files/4uemIxNCbH7v7yZT00MD" alt=""><figcaption><p>Rules: Old Interface</p></figcaption></figure>

<figure><img src="/files/KFv7sbxQSPbpDQUXfvvi" alt=""><figcaption><p>Rules: New Interface</p></figcaption></figure>

### <mark style="color:purple;">▸ Resized Key Button Sizes</mark>

Increased the size of keyboard keys

### <mark style="color:purple;">▸ Header / Footer / Icons Have Screen-scaling</mark>

Header, footer, and icons now have screen scaling

### <mark style="color:purple;">▸ Key Function Name Changes</mark>

Due to confusion, a few function names in configuration file have been changed.

#### <mark style="color:yellow;">OLD</mark>

{% code lineNumbers="true" %}

```json
{
    key         = 'F12',
    desc        = 'act_steam_screenshot',
    clr         = Color( 54, 145, 72 ),
    condition   = function( )
                    return true
                end,
    execute     = function( )
                    rcc.run.gmod( 'screenshot' )
                end
},
```

{% endcode %}

#### <mark style="color:green;">NEW</mark>

{% code lineNumbers="true" %}

```json
{
    key         = 'F12',
    desc        = 'act_steam_screenshot',
    clr         = Color( 54, 145, 72 ),
    enabled   = function( )
                    return true
                end,
    onClick     = function( )
                    rcc.run.gmod( 'screenshot' )
                end
},
```

{% endcode %}

{% hint style="info" %}
If adding new keys to the <mark style="color:blue;">**`cfg.qwerty.keys.binds`**</mark>, you MUST make sure the function enabled returns <mark style="color:blue;">**true**</mark> if you want the key to show.
{% endhint %}

### <mark style="color:purple;">▸ Updated Web and Rules Interface</mark>

Updated the web and rules interfaces. Now has screen-scaling and an updated interface appearance.

<figure><img src="/files/jNS1op5BnT0BO6SYX9wx" alt=""><figcaption></figcaption></figure>

### <mark style="color:purple;">▸ Removed sh\_cfg\_rules, Moved to sh\_cfg.nav</mark>

Having both a nav file and a rules config file were too confusing.&#x20;

<mark style="color:red;">**cfg/sh\_cfg\_rules.lua**</mark> has been removed, and the configs have been moved to:

&#x20;           <mark style="color:yellow;">**`cfg/sh_cfg_03_nav.lua`**</mark>

The integrated web setting has also been moved to the area with the other rule settings:

```lua
cfg.nav.btn.rules_url	            = 'https://pirithous.rlib.io/internal/rules'
cfg.nav.btn.rules_openIngame        = false
cfg.nav.btn.rules_textonly          = true
```

|                   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| rules\_url        | <p><br>The URL players will be taken to when clicking the rules button.<br><br>In order to use websites, the setting <mark style="color:blue;"><strong><code>rules\_textonly</code></strong></mark> must be <mark style="color:red;"><strong><code>false</code></strong></mark>.<br></p>                                                                                                                                                                                         |
| rules\_openIngame | <p><br><mark style="color:blue;"><strong><code>true</code></strong></mark>: built-in web browser will be used to display websites.<br><br><mark style="color:red;"><strong><code>false</code></strong></mark>: steam overlay browser will be used<br></p>                                                                                                                                                                                                                        |
| rules\_textonly   | <p><br><mark style="color:blue;"><strong><code>true</code></strong></mark>: instead of a website, rules will be displayed as text.<br><br><mark style="color:red;"><strong><code>false</code></strong></mark>: player will be taken to a website to show rules instead of text.<br><br>if <mark style="color:blue;"><strong>true</strong></mark>, you can edit the rules in the game file under the setting <mark style="color:blue;"><strong>cfg.rules.text</strong></mark></p> |

### <mark style="color:purple;">▸ Fixed bug that incorrectly assigns actions to keys</mark>

Some customers reported issues with certain keys not properly assigning actions. This issue has been fixed.

### <mark style="color:purple;">▸ Fixed unregistered hook pirithous\_fonts\_register</mark>

When opening the main interface, the fonts were not reloading and causing confusion with customers attempting to modify the font sizes.

Fonts now automatically reload when the player opens the interface after closing it.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://pirithous.rlib.io/changelog/3.7.0.0.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
