Spawn Distribution Plus
Configurable wild-dino level distribution for ARK: Survival Ascended.
Configurable wild-dino level distribution for ARK: Survival Ascended.
Find better wild dinos without forcing every spawn to be high level
Spawn Distribution Plus is a server-side ArkAPI plugin that gives you control over how wild dino levels are distributed. The supplied profile uses four configurable level bands, with support for vanilla behavior, a Ragnarok-style profile or your own percentages and ranges.
It also handles non-standard level layouts safely, supports map and dino-specific overrides, and falls back to ARK's original roll whenever a layout can't be changed safely. No client mod download is required.
Important: The plugin affects new wild-dino level rolls. Existing dinos keep their current levels. After changing a distribution, use your normal wild-dino wipe process and allow a fresh population to spawn before judging the result.
Plugin features
- Official, Ragnarok and Custom distribution modes.
- Readable Low, Mid, MidHigh and High percentages that must total 100.
- Configurable base-level ranges for the standard four-band layout.
- Map and dino overrides with case-insensitive substring and wildcard matching.
- Optional exclusions and special apex weighting rules.
- Safe handling of Aberration-style and other valid non-standard level layouts without rewriting their native ranges.
- Optional uniform custom minimum and maximum levels using an explicitly configured level step.
- Wild-dino level reports with name, level, count and an optional blueprint column.
- Runtime statistics for modified rolls, exclusions, invalid layouts, failures and vanilla fallbacks.
- Transactional configuration reloads: an invalid reload leaves the previous working settings active.
- Configurable command names with admin-only player access enabled by default.
Default settings
- Plugin state: Enabled.
- Distribution mode: Ragnarok.
- Band chances: 33.333333% Low, 26.666667% Mid, 23.333333% MidHigh and 16.666667% High.
- Base-level ranges: 3-5, 9-12, 17-20 and 26-30. These are ARK engine indices, not displayed dino levels.
- Non-standard layouts: Compatible weights are applied while native ranges are preserved.
- Custom min/max generation: Disabled.
- Reports: Enabled for all wild levels, with blueprint output disabled.
Commands
dinolevels [name filter] (Chat, Console and RCON) - Writes a grouped wild-dino level report. An optional name filter creates a smaller report such as "dinolevels rex".
currentsettings (Chat, Console and RCON) - Shows the active map, mode, normalized chances, configured base ranges and override counts.
reloadspawns (Chat, Console and RCON) - Validates and reloads "config.json". Invalid settings leave the previous working configuration active.
spawnstats (Chat, Console and RCON) - Shows roll, modification, exclusion, fallback and failure counters.
Player chat and console commands require server admin access by default. RCON commands remain protected by your server's RCON authentication. Changing a command name requires a full server restart.
JSON:
{
"ConfigVersion": 2,
"General": {
"Enabled": true,
"DebugLogging": false,
"LogConfigOnStartup": true
},
"Commands": {
"RequireAdmin": true,
"LevelList": "dinolevels",
"LevelSettingsList": "currentsettings",
"Reload": "reloadspawns",
"Stats": "spawnstats"
},
"CustomLevels": {
"Enabled": false,
"Min": 1,
"Max": 150,
"LevelStep": 0
},
"Distribution": {
"Mode": "Ragnarok",
"RewriteCanonicalRanges": true,
"ApplyToNonCanonical": true,
"ReverseApexWeights": true,
"ApexWeightMultiplier": 1.0,
"BandChancesPercent": {
"Low": 33.333333,
"Mid": 26.666667,
"MidHigh": 23.333333,
"High": 16.666667
},
"BaseLevelRanges": [
{ "Min": 3, "Max": 5 },
{ "Min": 9, "Max": 12 },
{ "Min": 17, "Max": 20 },
{ "Min": 26, "Max": 30 }
],
"MapOverrides": {},
"DinoOverrides": {}
},
"ExcludedDinoBPs": [
"Titanosaur_Character_BP",
"Dino_BP2"
],
"ApexDinoBPs": [
"Carcha_Character_BP",
"Gigant_Character_BP",
"Quetz_Character_BP",
"BionicQuetz_Character_BP"
],
"Safety": {
"MaxWeightEntries": 64,
"LogEveryNthFailure": 1000
},
"Reports": {
"Enabled": true,
"MaxActors": 500000,
"MinimumLevel": 1,
"MaximumLevel": 0,
"IncludeBlueprint": false
}
}
Use this when you want the plugin and reporting commands loaded without changing wild-dino level distribution:
JSON:
{
"Distribution": {
"Mode": "Official"
}
}
This gives each of the four configured level bands the same relative chance:
JSON:
{
"Distribution": {
"Mode": "Custom",
"BandChancesPercent": {
"Low": 25,
"Mid": 25,
"MidHigh": 25,
"High": 25
}
}
}