Garry's Mod

Garry's Mod

Not enough ratings
[Amethyst] ScriptFodder Official Product Guide
By Richard
This guide takes customers of Amethyst step-by-step through the installation, setup, and features of the product. [Note] This is a temp guide location -- official guide will be up soon.
   
Award
Favorite
Favorited
Unfavorite
i: Introduction
1. What Is Amethyst?
Amethyst is a DarkRP F4 menu developed by Richard in collaboration with Mamunia. This F4 menu was made with the purpose of allowing players to purchase items in-game, and to take on new jobs within the DarkRP community. It features a full in-game configuration system which allows each player to customize the F4 menu to fit their own personal preferences, as well as a theme system.

2. Features

Gemerosity Collection
This script is part of the "Gemerosity Collection".

Theme System
Allow your players to completely customize how the F4 menu looks and acts on a per-player basis. Supports multiple themes, and server owners can create their own to add to the list. Every aspect of the F4 menu can be re-colored and features can be turned on/off with a click.

Themes | Reset Defaults
Made a mistake while changing the colors of a theme? Simply click the [/b]Reset Defaults[/b] button and all origional settings will be restored.

Compact-Mode
Players who want more FPS and without all of the extras can enable [/b]Compact-Mode[/b], which minimizes with F4 menu to include just what they need.

Statistics
Each player can track their own statistics as they play on your server. The server admin can either choose to allow these statistics to save over the players' total sessions, or reset each them they disconnect. These stats include:

  • Number of Jumps
  • Times Crouched
  • Items Used
  • Steps Taken
  • Server Connections
  • Messages Sent
  • Gun Reloads
  • Bullets Fired
  • Damage Inflicted
  • Damage Taken
  • Deaths
  • Players Killed
  • Job Switches

Compatibility 3rd Party Scripts
This script is compatible with:
[TCB Stamina](https://github.com/TheCodingBeast/TCB_Stamina)
[Leveling System](https://github.com/vrondakis/Leveling-System)
[ScriptFodder Advanced Leveling System](https://scriptfodder.com/scripts/view/55/)

Hunger Module Support
This script supports the DarkRP Hunger Module

Compatibility with Leveling System / ScriptFodder Advanced Leveling System
This script is compatible with the DarkRP [Leveling System](https://github.com/vrondakis/Leveling-System) and [ScriptFodder Advanced Leveling System](https://scriptfodder.com/scripts/view/55/)

Custom Avatars
Like circles? Then choose circles -- like squares? Then square it up. Pick how you want them to display.

Customized Model Positioning
You now have control over where each and every model sits on your F4 menu. If one looks a bit off, or is too low -- modify the position straight from the config.

Job Player Model / Icon Support
Want options? Players can choose whether they see the actual player model for each job OR they can show the job player model icon (also helps with fps performance).

Debug System
Get more in-depth information about issues related to the script and how it's performing.

Custom Font Support
This script utilizes 3rd party fonts for a more unique look.

Integrated Achievements
Make achievements important again -- all Garry's Mod achievements are built into the F4 menu and will give information related to which ones you have, and which ones you have yet to receive.

Build Your Own Content
Want to add your own tabs? Read the official documentation and put your content into the game. The script supports your own content with a few simple steps (and some Lua knowledge).

Network Support
Players can now reach your official website, donations link, steam workshop, and much more right from the F4 menu.

Vehicle / Food Support
Yes! This F4 menu also includes the Vehicles and Food tabs.

Category Support
This script supports categories, as well as sorting your categories however you want using the built-in DarkRP sorting functions, as well as being able to start a category expanded, or have it closed on load (with animations of course).

Live Wallpapers and Bokeh
We've included our Live Wallpapers feature, as well as a new feature called "Bokeh Effects" which can be modified within the settings page.

FastDL/Resource Compatibility
This script includes pre-setup Steam Workshop collections and FastDL support.

Message of the Day
You can now broadcast a Message of the Day right on the F4 menu Dashboard. Easy to customize.

News Ticker
Give your players even more news and information by customizing the News Ticker that rests at the top of the F4 menu. Add as many messages as you want, customize the timing, etc.

3. Support and Updates
As a customer of Amethyst -- you have the ability to submit support tickets via ScriptFodder.com if you ever need assistance. People who own Amethyst will also get access to any new updates that are released on the spot.

4. Terminology
There are a few things within this documentation that you will need to know the terms for:

Term
Description
Boolean
Boolean type has two values, false or true.
String
Strings are a sequence of characters wrapped in quotation marks. An example would be "Hello".
Integer
Integers are whole numbers that can be either negative or positive in value.

5. Disclosure
There are few toxic people in the Garry's Mod community who insist all scripts/mods should be given out for free. Well, if you truly feel this way -- then I'd suggest you go and learn how to code in Lua and write your own. I already provide my scripts extremely cheap (ranging between $2 - $7USD) and that's with me working on some of these scripts for a month +; ensuring everything functions properly, on top of providing support to anyone who purchases it. If you're really going to start drama because a product that is less than $10, with unlimited free support, documentation, and constant updates, then you really need to re-think your priorities. Any of these comments will be deleted immediately, and you will be blocked from any types of purchases with me. I'm here to provide a service, not to deal with kids. This is your one and only warning.
ii: Steam Collection / Product Info
If you wish to see a list of updates made to Amethyst, or need more information about this product; you can visit the official ScriptFodder page to find out more.
iii: Frequently Asked Questions
Question: Amethyst won't start when I boot my server?
Answer: Ensure that you have placed the script in the right directory of your Garry's Mod server. It is highly recommended that when you create a new folder for your new script, that you DO NOT use spaces or special characters in the folder name. Linux and Windows based servers handle oddly named folders differently. Windows is OK with caps and spaces in the folder names, whereas Linux will completely skip loading an addon if the folder has improper characters within the name.

Question: How do I make my own theme?
Answer: This question is explained in Chapter 3 of this guide. In short: you will need to create a new file within lua/amethyst/sh/themes with your new theme name. Then you'll need to add the theme to the themes config file: lua/amethyst/sh/sh_themes.lua.

Question: What gamemodes is Amethyst compatible with?
Answer: Amethyst is only compatible with any gamemode that is a branch of DarkRP, meaning it is compatible with SeriousRP, MethRP, SWRP (StarWarsRP), and so forth. In short, if it is a derivative of DarkRP, then this script is compatible with it.

Question: How can I add jobs/shipments/etc to the menu?
Answer: You will add your jobs and other items into your server just the same as you did before. Amethyst is a client-side script that will take your existing items and put them into the new F4 menu. Your actual items are added through DarkRP/DarkRP Modifications. If you need assistance with adding jobs or items to your server; you can read the Official DarkRP Wiki[wiki.darkrp.com]. Amethyst itself doesn't control what items are on your server.

Question: Can I edit the "failsafe" theme?
Answer: It is NOT RECOMMENDED that you edit the failsafe theme. It is there to ensure that if any theme is missing certain values, the failsafe will kick in so that nil value errors can be avoided. Do NOT touch this file unless you know what you are doing. If you do break the failsafe theme, you'll need to download a new copy and replace the file. We do not support you modifying this file, and if you do so, no support will be given.

Question: Why am I getting frame drops?
Answer: Amethyst includes a lot of "visual enhancements" for the best possible look. We've focused a lot of time on optimization, however, depending on each computer, you may experience a drop in frames when the panel is open. It is recommended that if you're experiencing low fps, to disable the visual enhancements within the settings area. This means the "Live Bokeh Effect", "Live Wallpapers", anything related to blur, and other visual enhancements. It also depends on how many items the server owner has added to the F4 menu list such as jobs, shipments, etc.

Question: Why can't I see the Live Wallpapers once enabled?
Answer: First, ensure that you've pressed Apply Changes at the bottom of the settings page after you've enabled the feature. Also, Live Wallpapers are a panel behind the primary panel, so if you cannot see Live Wallpapers running, then you'll need to go into the Settings panel, and ensure that your Alpha color for the item Primary Color (located in the "General" section) is set to something BELOW 255.

Question: Why is my text too big?
Answer: It is possible that you haven't synced all of the resources to your FastDL yet. Without the proper fonts being distributed when you connect to the server; fonts may look different or appear bigger than they should be. Double-check your FastDL and make sure you have all items in the resource folder synced with FastDL. DO NOT try creating a new steam workshop collection with the fonts included -- it will break the fonts all together. This is a bug in Garry's Mod, and we have no way to control this.

Question: Why do I have black/pink textures?
Answer: This means that you don't have the materials that this script comes with available by download. You need to either subscribe to the official steam workshop collection for this script and add it your server, or you can sync the materials with your FastDL server. After doing so, you should restart both your server AND your game client-side copy of Garry's Mod, and reopen it completely, then reconnect to your server.

Question: How can I request new features?
Answer: The best way to request new features to be added is by submitting a ticket for the script itself via ScriptFodder.com -- however, please be aware that features are added in bundles with each update that is released. Therefore it may take some time for your feature to be added (as long as it's within reason and beneficial to the script and other customers.

Question: When will the next update be released?
Answer: We try to release updates in bundles -- which means that each update has to be "worth a release". Typically updates won't happen if just a minor thing needs to be added or addressed unless it's affecting game-play on a bad level. Each time an update is released, customers have to re-configure the entire script, so we want to make sure that we put in a fair amount of changes to justify our customers haven't do this. We also never give deadlines or dates on when an update is being released. But rest assured -- they will happen.

Question: What do I do if I see a server using a leaked copy?
Answer: We ask that if you find a server using a leaked copy, that you send Richard or Mamunia a private message on ScriptFodder.com. Please include the server address, who the owner is of that network if you know, and which script it is that they are using a non-legit copy of. Typically if you catch a leaker and it results in them being banned -- we will offer you a coupon code that you can use to get a discount on your next purchase from us. This is a thank you for helping us keep everyone in good standings.
iv: Other Products
Like Amethyst? You can also view other products that have been developed by Richard and Mamunia™ which are available on ScriptFodder for purchase.

Name
Description
Builder-X[scriptfodder.com]
PvP/PvE protection / anti-kill and punishment system
HUDHive: Deathrun[scriptfodder.com]
Deathrun HUD
Jasper[scriptfodder.com]
MOTD [Message of the Day]
Quartz[scriptfodder.com]
DarkRP F1 Menu
Opal[scriptfodder.com]
Escape Screen
Jarvin[scriptfodder.com]
Escape Screen
Athena[scriptfodder.com]
DarkRP F1 Menu
HUDHive: DarkRP[scriptfodder.com]
DarkRP HUD
Arivia[scriptfodder.com]
DarkRP F4 Menu
Vliss[scriptfodder.com]
Multi-Gamemode Scoreboard
Liko[scriptfodder.com]
Escape Screen
Lunera[scriptfodder.com]
MOTD [Message of the Day]
Linx[scriptfodder.com]
Escape Screen]
Dozi[scriptfodder.com]
3-in-1 Deathscreen
Cyrus[scriptfodder.com]
PvP Leaderboard / Scoreboard System
Lapis[scriptfodder.com]
DarkRP HUD
Chapter 1: Installation
i. Prerequisites
  • Downloaded ZIP of your purchased copy of Amethyst
  • Access to the file structure of your Garry's Mod server [either FTP/SFTP/SSH or TCAdmin]

ii. Installation

Download a copy of Amethyst from ScriptFodder.com after you have made the purchase. You'll need to download it to a location that you have quick access to [such as your desktop]. Once the download is complete, unzip it to a folder of your choosing and keep that folder open.

Next, you'll need to access your Garry's Mod server and create a new folder in your addons directory. Ensure your server is OFF while completing this step.

Ensure the folder that you create goes by the following rules:
  • Must NOT contain s p a c e s in the name
  • Must NOT contain special characters such as #$%^@ in the name
  • Must ONLY contain lower-case letters and underscores _

Failure to follow the above rules may result in your server not recognizing the new script and it will not load on server startup. Before submitting a ticket, ensure you have followed these rules.

Once the new folder has been created, upload the contents of the zip to the new folder you created within your Garry's Mod server. DO NOT JUST UPLOAD THE ZIP ITSELF -- ONLY THE FOLDERS WITHIN THE ZIP. This can take anywhere from a few seconds up to a minute depending on size and your internet connection.

After the folders/files have finished uploading -- you may now boot up your server. As the server is booting, you may look in your server-side console and you will see information related to Amethyst. Seeing this information will be a good indication that you've installed the script properly.

Chapter 2: Configuration
After you have verified that Amethyst is successfully installed and running on your server; this is a good time to start configuring the script based on how you want it to act. There are two types of configuration related to Amethyst:

  • File-Based Configuration
  • Client-Side Configuration

i. File-Based Configuration
This type of configuration is what you will use in order to setup the basic functionality of Amethyst. It is something only you [and other people who have access to the file structure on your server] can access.

The file based configuration file(s) can be located in:

addons/[name_of_new_folder]/lua/amethyst/sh

Within this directory; you'll notice various files. The configuration is broken up into multiple files so that it's easier to identify what it is that you are actually configuring. The file structure is as follows:

Filename
Description
sh_buttons.lua
Contains all of the configs for your website, donation, and various other buttons that players can click on.
sh_commandblocks.lua
Contains settings for the command blocks. These are the buttons that players can use to drop/give money, drop weapons, start/stop lockdown, remove/add laws, etc.
sh_entities.lua
Contains entity descriptions that you can add in order to enhance how your items in Amethyst are displayed for players. This includes descriptions and positioning for models.
sh_language.lua
Contains the language strings for various parts of Amethyst. You can use this file if you wish to translate Amethyst to say something in another language, or just to change the verbiage all together.
sh_main.lua
Contains the main configuration settings for Amethyst -- including panel regeneration, workshop collection distribution, tabs, and much more.
sh_motd.lua
Contains the message of the day text. You can put anything in here that you want. Users will see it when they click on the button.
sh_statistics.lua
Contains settings for the statistics feature in Amethyst.
sh_tabs.lua
Contains a list of all available tabs that a player can click on including jobs, weapons, ammo, shipment, etc. You will use this file to create your own new tabs if you need to.
sh_themes.lua
Contains a list of the available themes a player can use while on your server. You must add your new theme here if you wish to create your own.

Anytime you make changes to the above files -- ensure that you give your server a restart so that all new changes take effect.

i-2. File-Based Configuration > sh_commandblocks.lua
Contains settings for the command blocks. These are the buttons that players can use to drop/give money, drop weapons, start/stop lockdown, remove/add laws, etc.


i-3. File-Based Configuration > sh_entities.lua
Contains entity descriptions that you can add in order to enhance how your items in Amethyst are displayed for players. This includes descriptions and positioning for models.


i-4. File-Based Configuration > sh_language.lua
Contains the language strings for various parts of Amethyst. You can use this file if you wish to translate Amethyst to say something in another language, or just to change the verbiage all together.


i-5. File-Based Configuration > sh_main.lua
Contains the main configuration settings for Amethyst -- including panel regeneration, workshop collection distribution, tabs, and much more.


i-6. File-Based Configuration > sh_motd.lua
Contains the message of the day text. You can put anything in here that you want. Users will see it when they click on the button.


i-7. File-Based Configuration > sh_statistics.lua
Contains settings for the statistics feature in Amethyst.


i-8. File-Based Configuration > sh_tabs.lua
Contains a list of all available tabs that a player can click on including jobs, weapons, ammo, shipment, etc. You will use this file to create your own new tabs if you need to.


i-9. File-Based Configuration > sh_themes.lua
Contains a list of the available themes a player can use while on your server. You must add your new theme here if you wish to create your own.


ii. Client-Side Configuration
Amethyst comes with an in-game settings feature which allows each player to modify how Amethyst works for them by making use of convars. The convars for each player are generated once they connect to your server, and these settings carry on to other servers as well. So if Player [Andrew] connects to a DarkRP server which uses Amethyst and decides to modify the client-side aspects available in the settings tab, and then Andrew decides to connect to your DarkRP server later, which is also using Amethyst -- the settings Andrew made on the previous server will carry over to your server as well.

Players can view the In-Game Settings Tab by opening Amethyst (with the F4 key) and clicking the icon to the top right. On the new panel, the player will be shown all of the settings that Amethyst includes.

Please see [Chapter 4] Themes -- for more information on how theme settings work
Chapter 2: Configuration -> sh_buttons
i-1. File-Based Configuration > sh_buttons.lua
Contains all of the configs for your website, donation, and various other buttons that players can click on.

Community Buttons
Each button has its own title and link which can be modified to fit your networks' needs:

Amethyst.Settings.Community.ForumsTitle = "Community Forums" Amethyst.Settings.Community.ForumsLink = "http://facepunch.com/" Amethyst.Settings.Community.DonateTitle = "Donate to our Network!" Amethyst.Settings.Community.DonateLink = "http://paypal.com/" Amethyst.Settings.Community.WebsiteTitle = "Welcome to our Official Website!" Amethyst.Settings.Community.WebsiteLink = "http://iamrichardt.com" Amethyst.Settings.Community.WorkshopTitle = "The Official Network Steam Collection" Amethyst.Settings.Community.WorkshopLink = "https://steamhost.cn/steamcommunity_com/"

The above code covers your forums, donation link, official website to your network, and your workshop collection link. You can change the titles and links to whatever you'd like.

All buttons above are placed inside a table called Amethyst.Settings.Community and called for display on the client-side UI. An example of the entire button shows as the following:

{ Enabled = true, Name = "Donate", Desc = "Donate to help keep us running", Icon = "amethyst/amethyst_button_donate.png", func = function() Amethyst:CommunityAction( Amethyst.Settings.Community.DonateTitle, Amethyst.Settings.Community.DonateLink, false, false ) end },

You'll see that each button has its own set of properties which are explained:

Property
Description
Enabled
[Boolean] -- true makes the button show within the F4 menu, false hides it completely from being visible.
Name
[String] -- The visible name for the button when it displays.
Desc
[String] -- The visible description for the button when it displays. This shows directly under the Name.
Icon
[String] -- The visible icon for the button when it displays. This shows directly to the far left of the Name and Description.
func
[Function] -- This is the action that the button will perform once it is clicked.

Most of the above buttons use a function called CommunityAction which is a built-in function of Amethyst. Within each button action, you'll see a few true or false arguments. The arguments for CommunityAction() are as follows:

Amethyst:CommunityAction( resourceTitle, resourceData, resourceExternal, resourceTextOnly )

Argument
Description
resourceTitle
[String] -- the name of the button that will display.
resourceData
[String] -- the website URL OR regular text that will display when the button is clicked. This button will only display standard text if resourceTextOnly is set to true
resourceExternal
[Boolean] -- true forces the new link to open the Steam Overlay Browser, false forces the link to open with the built-in browser for Amethyst.
resourceTextOnly
[Boolean] -- true makes the button display the content as standard text. false treats the button as a website link and redirects the player to the specified URL.

Rules
The rules feature allows you to publicly display rules that players can look at anytime they want:

Amethyst.Settings.Community.RulesTitle = "Network Rules" Amethyst.Settings.Community.RulesLink = "http://link-to-your-rules.com" Amethyst.Settings.Community.RulesText = [[ Your rules here ]]

You can host your rules in one of two ways:

Type
Description
Text-Based
Rules are displayed as standard text within Amethyst.
Web-Based
Players who click the rules button will be taken to an actual website.

You can specify which type of rules to use with the following setting:

{ Enabled = true, Name = "Rules", Desc = "What you should know", Icon = "amethyst/amethyst_button_rules.png", func = function() Amethyst:CommunityAction( Amethyst.Settings.Community.RulesTitle, Amethyst.Settings.RulesText, true, true ) end }, { Enabled = false, Name = "Rules", Desc = "What you should know", Icon = "amethyst/amethyst_button_rules.png", func = function() Amethyst:CommunityAction( Amethyst.Settings.Community.RulesTitle, Amethyst.Settings.Community.RulesLink, false, false ) end },

You'll notice in the above 2 entries, one is set to Enabled = true and the other is false. The first entry makes use of Amethyst.Settings.RulesText which is just a list of rules displayed in the config file. The second entry makes use of Amethyst.Settings.Community.RulesLink which takes the player to a physical website. You can use either one, but make sure if you enable one, the other is disabled -- otherwise they will both display.
Chapter 2: Configuration -> sh_commandblocks
Chapter 2: Configuration -> sh_entities
Chapter 2: Configuration -> sh_language
Chapter 2: Configuration -> sh_main
Chapter 2: Configuration -> sh_motd
Chapter 2: Configuration -> sh_statistics
Chapter 2: Configuration -> sh_tabs
Chapter 2: Configuration -> sh_themes
The theme configuration file lists all of the themes that your server has installed. It's a fairly small config file and just gives the server a minor amount of information so it knows how to handle each theme and who has access to it.

A typical theme entry can look like the following:

Amethyst.Settings.Themes = { ["default"] = { Enabled = true, IsDonatorOnly = false, IsStaffOnly = false, }, ["crimson"] = { Enabled = true, IsDonatorOnly = false, IsStaffOnly = false, } }

The above code lists two themes, the Default theme, and the Crimson theme, both themes ship with Amethyst when you purchase. Each one has associated properties which you can set:

Property
Description
Enabled
If enabled, the theme will be available for selection in the theme dropdown list.
DonatorOnly
If set to true, only people in the defined donator usergroup will be allowed to customize this theme, and false will allow anyone to customize it.
StaffOnly
If set to true, only people in the defined staff usergroup will be allowed to customize this theme, and false will allow anyone to customize it.
HideNotAllowed
If set to true, any person who does not have the proper rank (either donator or staff) for a theme, will remove the theme completely from the list so it cannot be selected, and false will allow the theme to display on the selection list even if they aren't the correct rank -- but they still cannot customize it.

NOTE: The default theme is immune to being blocked or hidden and should never be. If you wish to create themes that are rank specific, copy the default theme and make your own.
Chapter 3: Themes
Overview

Amethyst ships with a few themes that are available to every player and can be customized to each player's specifications by clicking the icon in the top-right of Amethyst (opened by pressing F4)

Selecting A Theme
By default, Amethyst ships with a few themes. One of them is of course the default theme that everyone will start out with. However, you (and other players) can change your theme within Amethyst by opening your F4 menu, and selecting the Paint Bucket icon to the top right. On the new panel, you will see a theme box to the right which gives information related to the currently selected theme, and a dropdown list of available themes:



Once you click the dropdown list and select a theme; the new settings will be applied automatically at that moment.

Resetting to Default Properties
Players can change the colors and properties of the theme. However, if you or a player decide that you have changed settings, are unhappy with the current configuration, and wishes to revert back -- you can use the Reset Defaults option, and go back to how the theme use to look out of the box. This can be done by pressing the arrow pointing left to the far right of the Reset Defaults box on the right side of the Themes page.



Fail-Safe Theme
The failsafe theme is a way of ensuring that if a theme is missing properties; Amethyst will collect the default settings and put them in place of where items are missing. This helps remove the possibility of human error. The failsafe theme settings can be located in:

lua/amethyst/sh/libraries/sh_theme_failsafe.lua

WARNING: DO NOT MODIFY any of the settings within the failsafe file. It should be not modified under ANY circumstances. If you do modify the failsafe -- you forfeit your right to support from us on the script.

Creating New Themes
As the owner of a server, you have the ability to create new themes that your players can select from. First, you'll need to locate the folder where all themes are stored; which is in:

lua/amethyst/sh/themes

Within this folder, you can either modify an existing theme's settings, OR create your own file to support a new theme. If you choose to make your own brand new theme file, make sure you also add the new theme to the File-Based Configuration file sh_themes.lua. When creating the new entry, ensure you use the proper format:

["themename"] = { Enabled = true, Name = "Your Theme Name", Author = "Your Name" },

Make sure that ["themename"] is lowercase without any special characters. It needs to match the name of the file you've created. At a later date, new methods will be added for automatically detecting themes; thus removing one of the steps you must take to get a theme to function properly. Also make sure that directly after the last } in your new theme entry, you include a comma [,] right after the closed-curvy bracket.

If you set Enabled = false, the theme will NOT display in the dropdown list for players to select from, so ensure that if you want it to show, that you enable it with the boolean true.

After any new theme is created -- restart your server so that the changes can be applied.

Modifying Existing Themes
You can edit existing themes names' by editing the file:
lua/amethyst/sh/themes

Ensure for the existing themes, you only modify

Name = "Your Theme Name",

Changing the name itself (which is always lower-case) could cause issues with the theme from loading properly.

**NOTE**: NEVER under ANY circumstance -- change the name or anything related to the failsafe theme. Doing so will void any support that is offered.
Chapter 4: Tabs
Amethyst was designed to be fully customizable depending on what you need, which means a majority of the features within this script can be modified to fix your needs. This section takes you through the tabs of Amethyst, and adding additional item support.

Tab Setup
By default when you first open the script, you will see the available tabs that you can click on as a player:



Within the default code, if a player does not have a job that gives them access to things such as vehicles, food, shipments, etc -- the tab will be disabled / darkened. You can also modify these properties within the Settings page by clicking on the Paint Bucket Icon located to the top-right of Amethyst.

Modifying Existing Tabs
If you wish to modify an existing tabs contents -- you may edit the appropriate tab file located within:

lua/amethyst/cl/tabs

If you wish to modify the tab details itself (name, description, icon, if it's enabled, you'll need to open and edit:

lua/amethyst/sh/sh_tabs.lua

A list of properties have been provided:

Property
Purpose
enabled
Boolean value - true to enable the tab for use, false if you don't want the tab showing for anyone yet.
onLoadInit
Boolean value - true if you want this tab to display by default when the F4 menu is opened. false if you've already got another tab that you want to open by default instead. Make sure you don't have multiple tabs with this set to true, otherwise one will overwrite the other.
name
The name of your new tab.
desc
The description of your new tab.
icon
The icon that displays to the left of your new tab.
panel
The identifying name of your new tab. This was what we asked you to memorize in the previous section and is now needed in order to tell Amethyst what panel to call.

Adding New Tabs
If you wish to add your own new tab to Amethyst -- you'll first need to create a new file which includes your tab contents. All tab files are located in:

lua/amethyst/cl/tabs

You can name the new tab file whatever you wish, the format we used is cl_tab_nameoftab.lua

After created -- you can open the file and start off with some default code to get you started, which means you can copy/paste the code below:

local PANEL = {} function PANEL:Init() // Your tab contents here end vgui.Register("Amethyst_Tab_Something", PANEL, "DPanel")

NOTE: Pay close attention to the last line, which includes Amethyst_Tab_Something -- change the word "Something" to whatever your new tab will include and memorize that name. For this example, we could use Amethyst_Tab_Powerups.

After the new file and tab contents have been added, you will need to do the last step which is telling Amethyst to include this new tab in your script, which includes opening:

lua/amethyst/sh/sh_tabs.lua

You'll see an existing list of tabs that are available, from here; you'll need to add your new tab to the list by adding a new entry:

{ enabled = true, onLoadInit = false, name = "Powerups", desc = "Some description here", icon = "amethyst/amethyst_mnu_youricon.png", panel = "Amethyst_Tab_Powerups", },

NOTE: Ensure after the last curvy-bracket, you include a comma [,] at the end.

You'll see in the above example that there's some things you'll need to re-name to fit your new tab, such as the Name, Description, Icon, etc. The items are explained below:

Property
Purpose
enabled
Boolean value - true to enable the tab for use, false if you don't want the tab showing for anyone yet.
onLoadInit
Boolean value - true if you want this tab to display by default when the F4 menu is opened. false if you've already got another tab that you want to open by default instead. Make sure you don't have multiple tabs with this set to true, otherwise one will overwrite the other.
name
The name of your new tab.
desc
The description of your new tab.
icon
The icon that displays to the left of your new tab.
panel
The identifying name of your new tab. This was what we asked you to memorize in the previous section and is now needed in order to tell Amethyst what panel to call.

After these tasks have been completed -- you can save everything and give your server a quick reboot for all changes to take affect. Once rebooted, you should be able to open your F4 menu and see the new tab displayed to the left.
Chapter 5: Statistics
We've included a statistics feature within Amethyst -- which allows the script to keep track of each player's actions while they play on the server. We've seen over the years, that players of the Gmod Community love statistics, so we've provided them.

Config Settings Location
You can configure the statistics feature by opening and editing the following file:

lua/amethyst/sh/sh_statistics.lua

Setting
Description
Amethyst.Settings.StatsEnabled
Boolean value -- true will enable the statistics feature, false will disable it from your server.
Amethyst.Settings.StatsKeepLifetime
Boolean value -- true will keep statistics going through player connections, false will make the player's statistics reset after each new connection to the server.
Amethyst.Settings.StatsList
A list of all the stats that Amethyst will record.

Accessing Statistics
Players can view their statistics within the F4 menu by clicking on the Home Icon to the top-right of the menu. This is known as the player Dashboard.

Statistic Types
Amethyst includes a wide variety of statistics which are explained below:

Statistic
Purpose
action_jumps
Number of times the player has jumped.
action_duck
Number of times the player has ducked/crouched.
action_use
Number of times the player has pressed "E" (the "use" bind) on items such as doors or objects.
action_steps
Number of times the player has taken a step (walking). This counts each left and right step has their own. A left step and then a right step = 2 steps.
action_connections
Number of times the player has connected to your server.
action_messages
Number of times the player has typed and sent a message on the server.
action_reloads
Number of times the player has reloaded their weapon.
action_bulletsfired
Number of times the player has fired a bullet from their weapon.
action_damageinf
Amount of damage the player has inflicted in other players.
action_damagetaken
Amount of damage the player has taken by other players.
action_deaths
Number of times the player has died.
action_kills
Number of times the player has killed another player.
action_jobswitches
Number of times the player has switched jobs.

Fetching Statistics
We try to ensure that unnecessary calls are not made and cause performance issues, therefore statistics will be refreshed under the following conditions:
  • When the Dashboard icon is pressed.
  • The refresh icon is pressed to the right of the statistics box.
Chapter 6: Command Blocks
Command blocks give players the ability to perform quick actions on themselves or others.

Config Settings Location
You can configure command block properties by accessing and editing the following file:

lua/amethyst/sh/sh_commandblocks.lua

Setting
Description
Enabled
Boolean value -- true will enable the item, false will disable it from displaying.
Name
Name of the block.
Icon
Icon to display to the left of the block.
Type
Defines the type of control the item is. Either button or separator.
ExeCommand
Command to be executed when button is pressed.
ArgCount
Number of arguments this button has.
Arg1
Argument 1 for player when block is pressed.
Arg2
Argument 2 for player when block is pressed.
IsMayorOnly
If true -- item will only display if a player is a mayor specified job.
IsCivilProtectionOnly
If true -- item will only display if a player is a civil protector specified job.

NOTE: If type = "separator" -- you can NOT have to specify a NAME for the item. If you do provide a name for a separator type, then it will automatically add it as a category name above the space for the separator.

Accessing Command Blocks
Players can access the available command blocks by clicking the fourth circular tab to the far left to see the following:



Adding New Entries
You can add two types of entries: separators and command blocks.

Separators can be added with the following code:

{ Enabled = true, Name = "General", Type = "separator", },

The above code will display the word "General"

Command blocks themselves can be added with the following code:

{ Enabled = true, Name = "Drop Money", Icon = "amethyst/amethyst_gui_point.png", IsCivilProtectionOnly = false, IsMayorOnly = false, Type = "button", ExeCommand = "/dropmoney", ArgCount = 1, Arg1 = "Amount", arg2 = "", },

NOTE: Ensure for both separators and command block entries, you add a comma [,] to the end of the closing curly-bracket.
3 Comments
Joe 23 May, 2017 @ 4:50am 
This comment be like:

Delete it
AW AW AW AW AW

Just 'leet it
AW A AW AW AW
Richard  [author] 22 May, 2017 @ 8:14pm 
That's how they set it up, was to just have french translations. So you'll have to talk to the owner of the server.
Bob Johnson 21 May, 2017 @ 8:25am 
I'm playing on a server with this and every thing is in french, how do I change that?