Amazon GameLift
Developer Guide (Version )

The AWS Documentation website is getting a new look!
Try it now and let us know what you think. Switch to the new look >>

You can return to the original look by selecting English in the language selector above.

FlexMatch Rule Set Schema

This topic documents the standard schema for a small-match rule set and a large-match rule set. Use the rules language, detailed in to develop your custom values.

Rule Set Schema for Small Matches

Use this schema when creating a rule set to build matches of 40 players maximum.

{ "name": <descriptive label, string>, "ruleLanguageVersion": <must be "1.0">, "playerAttributes":[{ "name": <unique name for player attribute to be used by matchmaker, string>, "type": <attribute data type, allowed values are "string", "number", "string_list", "string_number_map">, "default": <value to use when no player-specific value is provided> }], "teams": [{ "name": <unique label, string>, "maxPlayers": <max players allowed in team>, "minPlayers": <min players required in team>, "quantity": <number of teams to create with this definition> }], "rules": [{ "name": <unique label, string>, "description": <descriptive label, string>, "type": <rule type, string>, "<type-specific property>": <property expression> }], "expansions": [{ "target": <rule/team and property to adjust value for, example: "rules[<minSkill>].referenceValue">, "steps": [{ "waitTimeSeconds": <length of 1st wait period before relaxing rule>, "value": <new value> }, { "waitTimeSeconds": <length of 2nd wait period before further relaxing rule>, "value": <new value> }] }] }

Rule Set Schema for Large Matches

Use this schema when creating a rule set to build matches of greater than 40 players. If the maxPlayers values for all teams defined in the rule set exceeds 40, then GameLift processes all requests that use this rule sets under large-match guidelines.

{ "name": <descriptive label, string>, "ruleLanguageVersion": <must be "1.0">, "playerAttributes":[{ "name": <unique name for player attribute to be used by matchmaker, string>, "type": <attribute data type, allowed values are "string", "number", "string_list", "string_number_map">, "default": <value to use when no player-specific value is provided> }], "teams": [{ "name": <unique label, string>, "maxPlayers": <max players allowed in team>, "minPlayers": <min players required in team>, "quantity": <number of teams to create with this team definition> }], "algorithm": { "balancedAttribute": <name of player attribute, data type "number", to use when grouping players >, "strategy": <must be "balanced">, "batchingPreference": <choose between "largestPopulation" (default) or "fastestRegion"> }, "rules": [{ "name": <unique label, string>, "description": <descriptive label, string>, "type": <rule type, must be "latency">, "<type-specific property>": <property expression, must set value for "maxLatency"> }], "expansions": [{ "target": <rule/team and property to adjust value for, example: "rules[<rule name>].maxLatency">, "steps": [{ "waitTimeSeconds": <length of 1st wait period before relaxing rule>, "value": <new value> }, { "waitTimeSeconds": <length of 2nd wait period before further relaxing rule>, "value": <new value> }] }] }