Whitigol SoftwareWhitigol Software

Configuration

Comprehensive guide to configuring DevMate, including permissions, event watchers, and Discord integration.

Overview

DevMate's configuration is managed through the config.json file located in the DevMate folder. This guide provides detailed information about every configuration option available, helping you customize DevMate to fit your server's needs.


Configuration File Location

The configuration file is located at:

DevMate/config.json

The configuration file uses JSON format with schema validation. Most modern editors will provide auto-completion and validation when editing the file.


Quick Reference

Field NameTypeDescription
$schemastringSpecifies the configuration schema. Do not modify or remove this field.
LicenseKeystringEnter your license key from the Big Daddy Scripts Account Page.
EventWatcherarrayDefines events to monitor and log their results.
timestampbooleanEnables or disables timestamps in log messages.
SendToDiscordobjectConfigures Discord Webhooks for sending logs.
SafeRestartobjectConfigures behavior for safe restarts.
PermissionsobjectSets up role-based permissions for different user groups.

Configuration Options

$schema

The $schema field specifies the schema for the configuration file, assisting with validation and auto-completion in supported editors.

Type: string

Example:

{
	"$schema": "https://example.com/devmate-config.schema.json"
}

Changing or removing this field may cause issues with your configuration validation. It's recommended to leave this field as-is.


LicenseKey

The LicenseKey field holds the license key obtained from the Big Daddy Scripts Account Page. This key is required for DevMate to function.

Type: string

Example:

{
	"LicenseKey": "your-license-key-here"
}

Security

Keep your license key secure and never share it publicly. Your license is tied to your account and server.


EventWatcher

The EventWatcher field allows you to specify events to monitor and log. This is useful for debugging and tracking specific game events.

Type: array of objects

Object Structure:

  • eventName (string) - The name of the event to monitor
  • logLevel (string) - The log level for the event results (one of: INFO, SUCCESS, WARN, ERROR)

Example:

{
	"EventWatcher": [
		{
			"eventName": "playerSpawned",
			"logLevel": "SUCCESS"
		},
		{
			"eventName": "playerDropped",
			"logLevel": "WARN"
		}
	]
}

Event watchers can help you track specific events for debugging purposes. Be careful not to monitor too many events, as this can impact performance.


timestamp

The timestamp field controls whether timestamps are included in log messages.

Type: boolean

Example:

{
	"timestamp": true
}

Values:

  • true - Include timestamps in all log messages
  • false - Omit timestamps from log messages

SendToDiscord

The SendToDiscord field configures settings for sending logs to a Discord Webhook. This is useful for monitoring your server remotely.

Type: object

Object Properties:

  • enabled (boolean) - Enable or disable Discord Webhook integration
  • WebHookURL (string) - The URL of your Discord Webhook
  • level (string) - Log level to send to Discord (one of: INFO, SUCCESS, WARN, ERROR)

Example:

{
	"SendToDiscord": {
		"enabled": true,
		"WebHookURL": "https://discord.com/api/webhooks/1234567890/abcdefghijklmnop",
		"level": "ERROR"
	}
}

Only logs at or above the specified level will be sent to Discord. For example, if set to ERROR, only error logs will be sent.

Keep your Discord Webhook URL secure. Anyone with access to this URL can send messages to your Discord channel.


SafeRestart

The SafeRestart field defines the behavior for performing safe restarts. Safe Restart ensures all props, vehicles, and maps are properly unloaded before restarting scripts.

Type: object

Object Properties:

  • warnTime (number) - Time (in seconds) to wait after sending a warning before beginning the restart process
  • lagTime (number) - Time (in seconds) to wait before actually restarting the resource

Example:

{
	"SafeRestart": {
		"warnTime": 5,
		"lagTime": 2
	}
}

We recommend using the default values for optimal performance. Adjust these values only if you experience issues with safe restarts.

Recommended Values:

  • warnTime: 3-10 seconds (gives players time to react)
  • lagTime: 1-3 seconds (allows cleanup to complete)

Permissions

The Permissions field configures role-based permissions for different user groups, specifying which features each group can access.

Type: object

Object Properties:

  • enabled (boolean) - Enable or disable the permissions system
  • groups (array) - Define groups and their respective permissions

Group Structure:

  • group (string) - The name of the group (must match your server's permission system)
  • permissions (array) - A list of permissions for the group

Valid Permissions:

PermissionDescriptionDanger Level
OpenMenuPermission to open the DevMate menuSafe
EntityViewerPermission to use the Entity Viewer moduleSafe
ResourceManagerPermission to use the ResourceManager module (allows stopping, starting, and restarting resources)Semi-Dangerous
CodeExecuterPermission to use the CodeExecuter module (allows executing code on the server)Extremely Dangerous
OneSyncBlipPermission to use the OneSyncBlip moduleSafe
GameModifierPermission to use the GameModifier moduleSafe
CoordsToolPermission to use the CoordsTool moduleSafe
ResourceExplorerPermission to use the ResourceExplorer module (allows seeing and modifying all server resources)Extremely Dangerous

Example:

{
	"Permissions": {
		"enabled": true,
		"groups": [
			{
				"group": "admin",
				"permissions": [
					"OpenMenu",
					"EntityViewer",
					"ResourceManager",
					"CodeExecuter",
					"OneSyncBlip",
					"GameModifier",
					"CoordsTool",
					"ResourceExplorer"
				]
			},
			{
				"group": "developer",
				"permissions": [
					"OpenMenu",
					"EntityViewer",
					"ResourceManager",
					"OneSyncBlip",
					"GameModifier",
					"CoordsTool",
					"ResourceExplorer"
				]
			},
			{
				"group": "tester",
				"permissions": ["OpenMenu", "EntityViewer", "OneSyncBlip", "CoordsTool"]
			}
		]
	}
}

Permission Recommendations:

Security Best Practices

  • Admins: Full access (use with extreme caution)
  • Developers: Most permissions except CodeExecuter (still dangerous)
  • Testers: Safe permissions only (OpenMenu, EntityViewer, OneSyncBlip, CoordsTool)
  • Regular Users: No DevMate permissions (unless specifically needed)

Complete Configuration Example

Here's a complete example configuration file with all options:

{
	"$schema": "https://example.com/devmate-config.schema.json",
	"LicenseKey": "your-license-key-here",
	"EventWatcher": [
		{
			"eventName": "playerSpawned",
			"logLevel": "SUCCESS"
		}
	],
	"timestamp": true,
	"SendToDiscord": {
		"enabled": false,
		"WebHookURL": "",
		"level": "ERROR"
	},
	"SafeRestart": {
		"warnTime": 5,
		"lagTime": 2
	},
	"Permissions": {
		"enabled": true,
		"groups": [
			{
				"group": "admin",
				"permissions": [
					"OpenMenu",
					"EntityViewer",
					"ResourceManager",
					"CodeExecuter",
					"OneSyncBlip",
					"GameModifier",
					"CoordsTool",
					"ResourceExplorer"
				]
			}
		]
	}
}

Configuration Tips

  1. Start with Defaults: Begin with the default configuration and adjust as needed
  2. Test Permissions: Always test permission configurations in a development environment first
  3. Monitor Logs: Use EventWatcher and Discord integration to monitor your server
  4. Security First: Be conservative with dangerous permissions like CodeExecuter and ResourceExplorer
  5. Backup Config: Always backup your configuration before making major changes
Edit on GitHub

Last updated: Unknown