diff --git a/docs/docs/reference/classes/validationsingle.md b/docs/docs/reference/classes/validationsingle.md
index c7e61d7..b30357b 100644
--- a/docs/docs/reference/classes/validationsingle.md
+++ b/docs/docs/reference/classes/validationsingle.md
@@ -50,7 +50,7 @@ Applies to **float**.
Checks whenether at least one value matches `data`.
Applies to all data types.
### *CoreValidationSingle* contains(*Array[String]* values, *int* minimum_matches = *1*)
-Ensures that [param data] contains at least <`minimum_matches`> values. \
+Ensures that [param data] contains at least <`minimum_matches`> (or all if set to `-1`) values. \
Applies to **String** & **StringName**.
### *CoreValidationSingle* matches_regex(*String* regex_string)
Matches a regular expression against `data`. \
diff --git a/src/classes/validationsingle.gd b/src/classes/validationsingle.gd
index 5bc337b..10eb244 100644
--- a/src/classes/validationsingle.gd
+++ b/src/classes/validationsingle.gd
@@ -144,6 +144,9 @@ func evaluate() -> bool:
logger.warn("Can't determine if data contains values as data is not of type String or StringName")
continue
+ # Set 'minimum_matches' to the amount of values if set to '-1'
+ if rule["minimum_matches"] == -1: rule["minimum_matches"] = rule["values"].size()
+
var successes: int = 0
for value in rule["values"]:
if data.contains(value):
@@ -277,7 +280,7 @@ func has_values(values: Array) -> CoreValidationSingle:
rules.append({ "type": CoreTypes.ValidationType.HAS_VALUES, "values": values })
return self
-## Ensures that [param data] contains at least <[code]minimum_matches[/code]> values.[br]
+## Ensures that [param data] contains at least <[code]minimum_matches[/code]> (or all if set to [code]-1[/code]) values.[br]
## Applies to [String] & [StringName].
func contains(values: Array[String], minimum_matches: int = 1) -> CoreValidationSingle:
rules.append({ "type": CoreTypes.ValidationType.HAS_VALUES, "values": values, "minimum_matches": minimum_matches })