Random Game Filter
Vnite supports custom filter rules for the random game feature. You can edit the JSON directly in Settings - Advanced - Random Game Filter Configuration. Once the rule takes effect, random game selection will only pick from games that match the rule.
TIP
It is recommended to start with a preset from the top right and then adjust it as needed.
Presets
There are currently three built-in presets:
Default: keeps only thegameNameNotblacklistFilter by Play Status: filters by play status and keeps the blacklistFilter by Collection: filters by collection and keeps the blacklist
Basic Structure
Filter rules use a recursive object structure. Every object follows the same constraints:
- The object must contain exactly one key
- The key name represents the operator
- The value represents the operand of that operator
The structure looks like this:
{
"<operator>": <value>
}This structure can be nested recursively to express more complex logic.
NOTE
The root node must be a single-operator object, for example:
{ "and": [...] }The following form is invalid:
{ "and": [...], "or": [...] }Available Operators
Logical AND and
- The value must be an array
- Every item in the array must be a valid rule object
- All child conditions must be satisfied
{
"and": [{ "inCollection": ["A"] }, { "gameNameNot": ["game1"] }]
}Logical OR or
- The value must be an array
- Every item in the array must be a valid rule object
- At least one child condition must be satisfied
{
"or": [{ "inCollection": ["A"] }, { "playStatusIs": ["playing"] }]
}Logical NOT not
- The value must be a single rule object
- Negates the result of that rule
{
"not": {
"playStatusIs": ["finished"]
}
}inCollection
Filters by collection name. The value must be an array of strings, and each item should be a collection name.
{
"inCollection": ["collection1", "collection2"]
}gameNameNot
Excludes specific games. The value must be an array of strings, and each item should be a game name. This rule matches both the current game name and the original name.
{
"gameNameNot": ["GameA", "GameB"]
}playStatusIs
Filters by play status. The value must be an array of strings, and each item should be a play status name.
{
"playStatusIs": ["finished", "multiple"]
}Available values:
"unplayed": Not started"playing": Playing"partial": Partially completed"finished": Finished"multiple": Multiple playthroughs"shelved": Shelved
Examples
Default Rule
By default, no games are excluded:
{
"gameNameNot": []
}Keep a Global Blacklist While Filtering by Play Status
{
"and": [
{ "playStatusIs": ["playing"] },
{ "gameNameNot": ["game1", "game2"] }
]
}Fine-Grained Rules for Each Collection
{
"or": [
{
"and": [
{ "inCollection": ["TODO"] },
{ "playStatusIs": ["unplayed", "playing"] }
]
},
{
"and": [
{ "inCollection": ["good1", "good2"] },
{ "playStatusIs": ["finished", "multiple", "partial"] }
]
}
]
}