- Works With
This plugin lets you create custom commands for your server - things like /rules, /discord, /kit - with built-in cooldowns, costs, and smart conditions. Want a heal command that only works in safe zones? A tip command that shows random messages? Commands that charge players items or currency? You can make all that happen without needing separate plugins for every little thing.
Features
- Create unlimited custom commands with aliases
- Support chat commands, console commands, or both
- Display multiple response messages with rich text formatting
- Show random responses from predefined sets
- Use dynamic placeholders for player info and arguments
- Set per-command cooldowns with permission-based overrides
- Limit maximum uses per wipe or day with permission overrides
- Charge Economics currency, ServerRewards points, or require items
- Configure different costs for different permission groups
- Enforce usage conditions like safe zones, building blocked status, health requirements, swimming status
- Execute client console commands, server console commands, and chat commands
- Broadcast messages to all online players
- Control where responses appear: chat, console, or both
- Set custom chat avatars using Steam IDs
- Automatically reset cooldowns and usage counts on map wipe or daily
- Manage player cooldowns and usage counts with admin commands
Permissions
customcommands.admin-- Access to admin commands for resetting cooldowns and usage counts.
Command-Specific Permissions
Each command can have a required permission configured in its settings. Set the
Required Permission field to any permission string you want. Players without this permission cannot use the command. The default configuration includes these example permissions:customcommands.vip-- Example VIP permission for reduced cooldowns and costscustomcommands.elite-- Example Elite permission for further reduced cooldownscustomcommands.kit.nocooldown-- Bypass cooldown for kit commandcustomcommands.kit.unlimited-- Unlimited kit usagecustomcommands.heal.nocooldown-- Bypass cooldown for heal commandcustomcommands.heal.free-- Free heal command usagecustomcommands.buybase-- Permission to use buybase commandcustomcommands.buybase.free-- Free base purchase
Commands
All commands are fully customizable. The following are examples from the default configuration.
Player Commands
/rules-- Display server rules.- Aliases:
/r,/serverrules
- Aliases:
/discord-- Show Discord and community links.- Aliases:
/dc,/community,/socials
- Aliases:
/kit <name>-- Claim a kit (executes kit plugin command).- Aliases:
/getkit,/starterkit - <name> -- Kit name to claim (defaults to "starter" if not specified)
- Aliases:
/vote-- Display voting information and links.- Aliases:
/votereward,/claimvote
- Aliases:
/tip-- Display a random server tip.- Aliases:
/tips,/hint,/hints
- Aliases:
/pos-- Show your current position and grid location.- Aliases:
/position,/loc,/location,/coords,/where
- Aliases:
/buybase-- Purchase a starter base (disabled by default, requires permission).- Alias:
/purchasebase - Note: Requires customcommands.buybase permission
- Alias:
/heal-- Heal to full health (disabled by default).- Aliases:
/medic,/doctor
- Aliases:
/vipinfo-- Display VIP benefits information.- Aliases:
/vip,/donate,/premium,/store
- Aliases:
/playtime-- Check playtime (disabled by default, requires compatible plugin).- Aliases:
/played,/mytime
- Aliases:
/wipe-- Display wipe schedule information.- Aliases:
/wipetime,/wipeinfo,/nextwipe
- Aliases:
/report-- Show how to report players.- Aliases:
/reportplayer,/cheater
- Aliases:
/pm <player> <message>-- Send private message (disabled by default).- Aliases:
/msg,/whisper,/tell,/w <player>-- Target player name or ID<message>-- Message to send
- Aliases:
craftinfo-- Display crafting information.- Aliases:
craft,crafting
- Aliases:
Admin Commands
/ccresetcooldowns [player]-- Reset cooldowns for all players or a specific player.- Requires
customcommands.adminpermission [player]-- Optional player name to reset cooldowns for
- Requires
/ccresetuses [player]-- Reset usage counts for all players or a specific player.- Requires
customcommands.adminpermission [player]-- Optional player name to reset usage counts for
- Requires
Configuration
JSON:
{
"Version": "1.0.0",
"Global Settings": {
"Reset Cooldowns On Map Wipe": true,
"Reset Usage Counts On Map Wipe": true,
"Reset Usage Counts Daily At Midnight (Server Time)": false,
"Chat Message Prefix (Supports Rich Text)": "<color=#55aaff>[Server]</color> ",
"Log Command Usage To Server Console": true
},
"Commands": {
"rules": {
"Enabled": true,
"Command Type (Chat, Console, Both)": "Both",
"Alternate Command Names (Aliases)": ["r", "serverrules"],
"Required Permission (Empty = No Permission)": "",
"Response Messages (Sent To Player)": [
"<size=16><color=#55aaff>========== SERVER RULES ==========</color></size>",
"",
"<color=#ff5555>1.</color> No cheating, hacking, or exploiting bugs",
"<color=#ff5555>2.</color> No racism, harassment, or toxic behavior",
"<color=#ff5555>3.</color> No griefing sleepers or spawn camping",
"<color=#ff5555>4.</color> English only in global chat",
"<color=#ff5555>5.</color> Respect admins and their decisions",
"",
"<color=#aaaaaa>Violators will be banned without warning.</color>",
"<size=16><color=#55aaff>==================================</color></size>"
],
"Random Response Sets (Groups Of Messages)": [],
"Pick Random Response (Instead Of Sending All)": false,
"Broadcast To All Players": false,
"Response Location (Where Messages Appear)": "MatchWhereUsed",
"Chat Avatar Steam ID (0 = Default)": 0,
"Cooldown (Seconds, 0 = None)": 30.0,
"Cooldown Overrides (Permission: Seconds)": {},
"Cooldown Bypass Permission (Ignores Cooldown)": "",
"Maximum Uses Per Reset (0 = Unlimited)": 0,
"Maximum Uses Overrides (Permission: Amount)": {},
"Maximum Uses Bypass Permission (Unlimited Uses)": "",
"Economics Cost (0 = Free)": 0,
"Economics Cost Overrides (Permission: Cost)": {},
"Server Rewards Cost (0 = Free)": 0,
"Server Rewards Overrides (Permission: Cost)": {},
"Required Items (Consumed On Use)": [],
"Cost Bypass Permission (Free Use)": "",
"Client Console Commands (Runs On Player)": [],
"Server Console Commands (RCON)": [],
"Chat Commands (Runs As Player)": [],
"Usage Requirements (Conditions)": {
"Must Have Permission (Extra Permission Check)": {
"Enabled": false,
"Value (Permission For Permission Checks)": "",
"Error Message (Shown When Condition Fails)": "You don't have the required permission."
},
"Block If Has Permission (Prevent Usage)": {
"Enabled": false,
"Value (Permission For Permission Checks)": "",
"Error Message (Shown When Condition Fails)": "You cannot use this command."
},
"Must Not Be Building Blocked": {
"Enabled": false,
"Value (Permission For Permission Checks)": "",
"Error Message (Shown When Condition Fails)": "You cannot use this while building blocked!"
},
"Must Be Building Blocked": {
"Enabled": false,
"Value (Permission For Permission Checks)": "",
"Error Message (Shown When Condition Fails)": "You must be building blocked to use this!"
},
"Must Be In Safe Zone": {
"Enabled": false,
"Value (Permission For Permission Checks)": "",
"Error Message (Shown When Condition Fails)": "You must be in a safe zone to use this!"
},
"Must Not Be In Safe Zone": {
"Enabled": false,
"Value (Permission For Permission Checks)": "",
"Error Message (Shown When Condition Fails)": "You cannot use this in a safe zone!"
},
"Minimum Health Required": {
"Enabled": false,
"Value": 0.0,
"Error Message (Shown When Condition Fails)": "You need at least {0} health to use this!"
},
"Maximum Health Allowed": {
"Enabled": false,
"Value": 100.0,
"Error Message (Shown When Condition Fails)": "Your health must be below {0} to use this!"
},
"Must Be Alive": {
"Enabled": false,
"Value (Permission For Permission Checks)": "",
"Error Message (Shown When Condition Fails)": "You must be alive to use this!"
},
"Must Be Swimming": {
"Enabled": false,
"Value (Permission For Permission Checks)": "",
"Error Message (Shown When Condition Fails)": "You must be swimming to use this!"
},
"Must Not Be Swimming": {
"Enabled": false,
"Value (Permission For Permission Checks)": "",
"Error Message (Shown When Condition Fails)": "You cannot use this while swimming!"
}
}
}
}
}
Global Settings
Reset Cooldowns On Map Wipe-- Automatically clears all cooldowns when a new map is generated.Reset Usage Counts On Map Wipe-- Automatically resets usage counts when a new map is generated.Reset Usage Counts Daily At Midnight-- Resets usage counts every day at midnight server time. Useful for daily limits instead of per-wipe limits.Chat Message Prefix-- Prefix added to chat messages. Supports Unity rich text formatting.Log Command Usage To Server Console-- Logs each command usage to the server console for tracking.
Command Configuration
Each command is defined under the
Commands section with a unique key that becomes the primary command name.Basic Settings
Enabled-- Whether this command is active.Command Type-- Where the command can be used.Alternate Command Names-- Alternative names for the command.Required Permission-- Permission required to use the command. Empty string means no permission required.
Response Settings
Response Messages-- Messages sent to the player when command is used. Supports rich text and placeholders.Random Response Sets-- Alternative to Response Messages. Each inner array is a possible set of messages. One set is randomly chosen if Pick Random Response is enabled.Pick Random Response-- If true and Random Response Sets is configured, picks one random set. If false, uses Response Messages.Broadcast To All Players-- If true, sends responses to all online players instead of just the command user.Response Location-- Where messages appear. Options: MatchWhereUsed (chat if used via chat, console if used via console),ChatOnly(always chat),ConsoleOnly(always F1 console),ChatAndConsole(both locations).Chat Avatar Steam ID-- Steam ID for the chat avatar image. Use 0 for server icon, or any Steam ID for custom avatars.
Cooldown Settings
Cooldown-- Default cooldown in seconds.Cooldown Overrides-- Permission-based cooldown reductions. Lower values take precedence. First matching permission is used.Cooldown Bypass Permission-- Permission that completely ignores cooldown.
Usage Limit Settings
Maximum Uses Per Reset-- Maximum number of times command can be used per reset period (wipe or daily).Maximum Uses Overrides-- Permission-based usage limit increases. Higher values take precedence. First matching permission is used.Maximum Uses Bypass Permission-- Permission for unlimited uses.
Cost Settings
Economics Cost-- Cost in Economics plugin currency. Requires Economics plugin.Economics Cost Overrides-- Permission-based cost reductions for Economics. Lower values take precedence.Server Rewards Cost-- Cost in ServerRewards points. Requires ServerRewards plugin.Server Rewards Overrides-- Permission-based cost reductions for ServerRewards. Lower values take precedence.Required Items-- List of items consumed when using the command. Each entry has:Item Short Name,Amount Required,Skin ID, andCustom Display Name.Cost Bypass Permission-- Permission that bypasses ALL costs (Economics, ServerRewards, and items).
Action Settings
Client Console Commands-- Commands executed on the player's client. Supports placeholders.Server Console Commands-- Commands executed on the server console. Supports placeholders.Chat Commands-- Chat commands executed as if the player typed them. Supports placeholders.
Usage Requirements (Conditions)
All conditions have the same structure with
Enabled, Value, and Error Message fields.Must Have Permission-- Requires an additional permission beyond the base command permission.Valuefield contains the permission string to check
Block If Has Permission-- Prevents usage if player has a specific permission (useful for blocking certain groups).Valuefield contains the permission string to check
Must Not Be Building Blocked-- Player must NOT be in a building blocked area.Must Be Building Blocked-- Player MUST be in a building blocked area.Must Be In Safe Zone-- Player must be in a safe zone.Must Not Be In Safe Zone-- Player must NOT be in a safe zone.Minimum Health Required-- Player must have at least this much health. Use `{0}`in error message to show the required value.Valuefield is numeric health amount
Maximum Health Allowed-- Player must have less than this much health. Use `{0}`in error message to show the maximum value.Valuefield is numeric health amount
Must Be Alive-- Player must be alive (not dead/wounded).Must Be Swimming-- Player must be in water/swimming.Must Not Be Swimming-- Player must NOT be swimming.
Placeholder System
Placeholders allow dynamic content in messages and commands. Use them in Response Messages, Client Console Commands, Server Console Commands, and Chat Commands.
Player Placeholders
{player.name}-- Player's display name{player.id}-- Player's Steam ID (UserIDString){player.position}-- Player's 3D position (X, Y, Z){player.grid}-- Player's grid location (e.g., "H10"){player.health}-- Player's current health (rounded to nearest integer){player.maxhealth}-- Player's maximum health (rounded to nearest integer)
Argument Placeholders
{args}-- All arguments joined with spaces{arg0}-- First argument (index 0){arg1}-- Second argument (index 1){arg2}-- Third argument (index 2)- etc.
{arg0:defaultvalue}-- If arg0 doesn't exist, uses "defaultvalue"{arg1:starter}-- If arg1 doesn't exist, uses "starter"
{arg0:starter} in the message "You received the {arg0:starter} kit!" will show "You received the vip kit!" if the player types /kit vip, or "You received the starter kit!" if they just type /kit.Stored Data
JSON:
{
"Player Data": {
"76561198000000000": {
"Cooldowns": {
"commandname": 1234567890.0
},
"Uses": {
"commandname": 3
}
}
}
}
Cooldowns-- Dictionary of command cooldown expiry times (Unix timestamp in seconds)Uses-- Dictionary of command usage counts for the current reset period
Localization
JSON:
{
"Error.NoPermission": "You do not have permission to use this command.",
"Error.OnCooldown": "This command is on cooldown for {0}.",
"Error.MaxUsesReached": "You have reached the maximum uses ({0}) for this command.",
"Error.InsufficientFunds": "You need {0} money to use this command. (Balance: {1})",
"Error.InsufficientPoints": "You need {0} points to use this command. (Points: {1})",
"Error.InsufficientItems": "You need {0}x {1} to use this command.",
"Success.CooldownsReset": "All cooldowns have been reset.",
"Success.UsesReset": "All usage counts have been reset."
}
FAQ
Can I make commands that execute other plugin commands?
Yes! Use the
Chat Commands (Runs As Player) setting to execute commands as if the player typed them. You can pass arguments using placeholders.What's the difference between Response Location options?
MatchWhereUsed-- Shows response where command was used (chat command shows in chat, console command shows in console)ChatOnly-- Always shows in chat (even if used from console)ConsoleOnly-- Always shows in F1 console (useful for long text that would spam chat)ChatAndConsole-- Shows in both locations simultaneously
Can I have different costs for different permission groups?
Yes! Use the override dictionaries:
Economics Cost Overrides, Server Rewards Overrides, Cooldown Overrides, and Maximum Uses Overrides. Players need the permission to get the override. Lower costs/cooldowns take precedence.How do I reset a player's cooldowns?
Use either:
- Chat command:
/ccresetcooldowns <playername> - Console command:
customcommands.resetcooldowns <playername>
- Chat command:
/ccresetcooldowns - Console command:
customcommands.resetcooldowns
What are Random Response Sets used for?
Random Response Sets let you display one random set of messages from multiple options. Perfect for random tips, random quotes, random server messages, or randomized help responses. Set
Pick Random Response (Instead Of Sending All) to true to enable.Can I make a command that's only usable in safe zones?
Yes! Use the Usage Requirements conditions:
JSON:
"Usage Requirements (Conditions)": {
"Must Be In Safe Zone": {
"Enabled": true,
"Error Message (Shown When Condition Fails)": "You must be in a safe zone to use this!"
}
}
Can commands cost multiple resources simultaneously?
Yes! Commands can require Economics balance, ServerRewards points, and multiple different items. All costs are checked before execution. If any cost cannot be paid, the command fails and nothing is consumed.