diff --git a/src/SampSharp.OpenMp.Entities.Commands/Options/PlayerCommandServiceOptions.cs b/src/SampSharp.OpenMp.Entities.Commands/Options/PlayerCommandServiceOptions.cs
index 41941880..307a0d19 100644
--- a/src/SampSharp.OpenMp.Entities.Commands/Options/PlayerCommandServiceOptions.cs
+++ b/src/SampSharp.OpenMp.Entities.Commands/Options/PlayerCommandServiceOptions.cs
@@ -10,4 +10,19 @@ public class PlayerCommandServiceOptions : CommandServiceOptions
/// Defaults to .
///
public Color UsageMessageColor { get; set; } = Color.White;
+
+ ///
+ /// Gets or sets the color used when displaying permission denied messages.
+ /// Defaults to .
+ ///
+ public Color PermissionDeniedMessageColor { get; set; } = Color.White;
+
+ ///
+ /// Gets or sets the message displayed when a player attempts to execute
+ /// a command without sufficient permissions.
+ /// If , no message is sent.
+ /// Defaults to "You do not have permission to use this command.".
+ ///
+ public string? PermissionDeniedMessage { get; set; }
+ = "You do not have permission to use this command.";
}
\ No newline at end of file
diff --git a/src/SampSharp.OpenMp.Entities.Commands/Player/DefaultPlayerCommandMessageService.cs b/src/SampSharp.OpenMp.Entities.Commands/Player/DefaultPlayerCommandMessageService.cs
index 43753e79..7744a0b9 100644
--- a/src/SampSharp.OpenMp.Entities.Commands/Player/DefaultPlayerCommandMessageService.cs
+++ b/src/SampSharp.OpenMp.Entities.Commands/Player/DefaultPlayerCommandMessageService.cs
@@ -94,8 +94,10 @@ public virtual bool SendPermissionDenied(Player player, CommandDefinition overlo
ArgumentNullException.ThrowIfNull(player);
ArgumentNullException.ThrowIfNull(overload);
- const string message = "You do not have permission to use this command.";
- player.SendClientMessage(message);
+ if (_options.PermissionDeniedMessage is null)
+ return true;
+
+ player.SendClientMessage(_options.PermissionDeniedMessageColor, _options.PermissionDeniedMessage);
return true;
}