Default Spawners
There are a few default spawners that come with Lycanites Mobs. If you want to edit a deafult spawner you must set “loadDefault” to false or delete it from the JSON otherwise your changes will be overwritten every time the game loads up, the same will also happen if you have invalid json.
Animal
This is designed to replicate the vanilla CREATURE random spawner which slowly spawns animals overtime. This is currently disabled by default while it's being tested but can be enabled if using another mod that breaks vanilla spawning.
Animal Chunk
This is designed to replicate the vanilla CREATURE chunk spawner which spawns peaceful mobs on newly generated chunks. This is currently disabled by default while it's being tested but can be enabled if using another mod that breaks vanilla spawning.
Beast
This is designed to replicate the vanilla MONSTER random spawner which spawns mobs in dark areas. This is currently disabled by default while it's being tested but can be enabled if using another mod that breaks vanilla spawning.
Sky
Spawns flying mobs randomly in the sky and on the surface (where the sky is exposed). Disabled in the Nether by default.
Skyhigh
Spawns flying mobs randomly in the sky but at a really high y level. This spawns Djinn by default. Disabled in the Nether by default.
Storm
Works the same as the Sky spawner but only during a storm (with or without rain). Set to Overworld and Twilight Forest only by default.
Lunar
Works the same as the Sky spawner but only at night during a full moon. Set to Overworld and Twilight Forest only by default.
Underground
Spawns mobs randomly underground (Where the sky is not exposed).
Water
Spawns mobs randomly underwater.
Water Animal
Spawns generally peaceful mobs randomly underwater at a very slow rate, similar to the Animal spawner.
Water Animal Chunk
Spawns water mobs in newly generated chunks, similar to the Animal Chunk Spawner.
Waterfloor
Spawns mobs randomly on the ground underwater.
Lava
Spawns mobs randomly in lava. Ignores biome.
Ooze
Spawns mobs randomly in ooze (blue ice-lava). Ignores biome.
Fire
Spawns mobs randomly from fire (there must be a few blocks of fire witihn the area). Ignores biome.
Frostfire
Spawns mobs randomly from frostfire (there must be a few blocks of frostfire witihn the area). Ignores biome.
Portal
Spawns mobs randomly from Nether Portal blocks. Ignores biome and dimension.
Ore
Spawns mobs randomly when ore blocks are broken by the player. Ignores biome.
Tree
Spawns mobs randomly when blocks that are part of a tree are broken by the player. Ignores biome.
Crop
Spawns mobs randomly when crop blocks are broken by the player (farm likes like wheat, vines, melon and pumpkin stalks). Ignores biome.
Glowstone
Spawns mobs randomly when glowstone blocks are broken by the player. Ignores biome.
Death
Has a low chance of spawning a mob when a non-undead mob is killed by the player. Ignores biome.
Undeath
Has a low chance of spawning a mob when an undead mob is killed by the player. Ignores biome.
Chaos
Slowly counts up when Elementals are killed, when triggered for a third time it spawns a mob (the Argus by default). Resets every Minecraft day. Ignores biome.
Sleep
Has a low chance of spawning a mob when the player attempts to sleep at night. This used to be spammable in the old system but now has a 10 minute cooldown per player. Ignores biome.
Darkness
Disabled by default. This is a special spawner that randomly ticks when a player in standing in a dark area, it first gives chat warnings and eventually if the player doesn't return to the light, it spawns a mob on them. Ignores biome.
Fishing
Has a low chance of spawning a mob when the player fishes up an item. Ignores biome.
Explosion
Has a chance to spawn mobs from explosions (of a strength of 4 or greater by default). Ignores biome.
Nether
Spawns mobs randomly on the ground in the Nether. Ignores biome, Nether only.
Nether Sky
Spawns flying mobs randomly in the air in the Nether. Ignores biome, Nether only.
Creating Custom Spawners
You can create as many custom spawners as you like, though if you add a lot of spawners with very high block search ranges and rapid ticks you could slow the game down, however you can use conditions to filter down when spawners should activate a lot and save on a good amount of performance. You could have 100 custom spawners but if their conditions means only 3 of them are actually running at the same time then the performacne should be great.
To create a new spawner, simply add your Spawner JSON file to the “config/lycanitesmobs/spawners” folder. You can use the command “/lm spawners reload” when in game to reload all spawners allowing you to test on the fly! There is also a “JSONSpawners” debug option in the lycanitesmobs-general.cfg file which will enable a lot of logging to the console if you need it, though errors should always show up in the log and shouldn't crash the game, instead the broken spawner is ignored.
Spawners are made up of 5 sections, the base Spawner properties, Spawn Conditions, Spawn Triggers, Spawn Locations and Mob Spawns.
You can always copy a default spawner and repurpose it instead of writing a new one from scratch too, just be sure to change the name or only one of the spawners will load!
You can also edit default mob events as well as add your own in “config/lycanitesmobs/mobevents”. See the Mob Events section for more info.
Each property uses a specific data type, please look up how JSON works if you don't know: Spawners JSON
Base Properties
There are several base properties, some are required, everything else has a default value.
string name
This is a unique name for your spawner, try to avoid spaces and other special characters, names are not case sensitive so I recommend sticking to all lower case. Required.
string sharedName
This is a non-unique name used to assign this spawner to creature/group configs. For example the 'water' and 'water chunk' spawners both have a shared name of 'water' so that any creature configs that use the water spawner use both spawners. Optional.
bool loadDefault
This is only used by the default spawners and must be false or not present in the JSON to prevent the spawner from being overwritten when the game loads. You can simply leave it out of your custom spawners. Default false.
bool enabled
Set to true to use these spawner or false to disable it, needed for disabling default spawners and handy for custom spawners that you want to disable but not delete. Default true.
int conditionsRequired
Determines how many Spawn Conditions must be met. If set to 0 or less then Spawn Conditions all are required. Default 0 (all).
int triggersRequired
Sets how many times any Spawn Trigger must activate (per player) before a wave is spawned. Please look at the Darkness Spawner to see this in action. Default 1.
array[object] triggerCountMessages
You can add a chat message for specific Trigger counts, these can be lang file entries. Please look at the Darkness Spawner to see this in action. Default empty.
int count
The trigger count for this message. Required.
string message
The chat message to send to the player, this can be typed out in full here or can be a lang file key (recommended). Required.
string multipleLocations
Determines how a Spawn Location is chosen if there are more than one defined. Can be: “order” (first location that can find a spawn point), “random” (picks a random Spawn Loction and just uses that) or “combine” (gets spawn points from all Spawn Locations). Default “combine”.
int mobCountMin
The minimum amount of mobs to spawn each wave. Default 1.
int mobCountMax
The maximum amount of mobs to spawn each wave. If less than or equal to the minimum this is ignored so you don't need to set this for fixed mob counts. Default 1.
bool ignoreDimensions
If true, this Spawner will ignore all mob dimension checks (not Spawn Condition checks), this bypasses the checks in Mob Spawn entries as well as Mob Configs. Default false.
bool ignoreBiomes
If true, this Spawner will ignore all biome checks, this bypasses the checks in Mob Spawns and Mob Configs. This is recommended if your Spawner should never care about biome as it saves on checks for performance. Default false.
bool ignoreCollision
If true, this Spawner will ignore mob collision checks, this may cause mobs to become stuck and suffocate but is useful for smaller mobs, required Spawners that have a Block Break radius set (see blow) and good for noclip mobs (like the Phantom). Default false.
bool ignoreLightLevel
If true, this Spawner will ignore light level checks, this bypasses the checks in Mob Spawns and Mob Configs. This is recommended if your Spawner should never care about light levels as it saves on checks for performance. Default false.
bool ignoreGroupLimit
If true, this Spawner will ignore group limit checks, this bypasses the checks in Mob Spawns and Mob Configs. This is recommended if your Spawner should never care about group limits as it saves on checks for performance. Default false.
int groupLimitRange
The range of how far (in blocks) this Spawner should check for surrounding mobs of the same type for the group spawn limit, don't go too high with this and rapid spawners or you will get lag. Default 32.
bool ignoreForgeCanSpawnEvent
If set to true, the Forge Can Spawn Event is fired but its result is ignored, use this to prevent other mods from stopping the spawn via the event. Default false.
bool forceNoDespawn
If true, mobs spawned by this Spawner will not naturally despawn. Default false.
bool chainSpawning
If true, actions caused by the spawner will attempt trigger additional spawners. Default true.
bool enableWithoutMobs
If true, this Spawner will act as enabled even if it can't find any mobs to spawn, useful if you just want to use trigger messages, etc. Default false.
string eventName
If set, this is the name of the mob event that must be active, otherwise this Spawner is always active. Use this for mob event spawners. Default “” (empty).
int blockBreakRadius
If set, when a mob is spawned, blocks in the radius around the spawned mob will be destroyed (0 would break only the block the mob spawned at). Spawners like the Ore Spawner use this. Default -1 (no block breaking).
array[Spawn Condition] conditions
A list of Spawn Conditions that this Spawner will check. Default empty (Spawner will always work).
array[Spawn Triggers] triggers
A list of Spawn Triggers that will attempt to start this Spawner. Default empty (Spawner will never start, so should have at least 1 Trigger to function).
array[Spawn Location] locations
A list of Spawn Location that this Spawner will use to get spawn positions from. Default empty (Spawner will never be able to Spawn anything so should have at least 1 Spawn Location).
array[Mob Spawn] mobSpawns
A list of Mob Spawns that this Spawner will pick mobs to spawn from on top of mobs that have this Spawner's name as a Spawn Type in the configs. Default empty (Just use spawns added via the config).
Spawn Locations
Spawn Locations are used to decide where to place the newly spawned mobs relative to the Trigger Position (this is decided by the Trigger and is usually the player position or broken block position).
Shared Properties
array[int] rangeMin
The minimum xyz range in blocks from the trigger position to spawn mobs from. This must be an array of 3 integers. Default [0, 0, 0].
array[int] rangeMax
The maximum xyz range in blocks from the trigger position to spawn mobs from. This must be an array of 3 integers. Default [0, 0, 0].
string sorting
When multiple spawn positions are found, this determines how they are sorted before spawning mobs at them. Can be “random”, “near”, “far”. Default “random”.
Base Type
Base can be used as a type for a simple location, be it random near the player or precisely on the trigger position. Block based Spawners such as the Ore Spawner use this with everything at default settings to spawn a mob where the block was destroyed.
Block Type
The block type finds locations that are a specific block. The Lava and Fire Spawners use this. For larger areas such as those used by the Animal or Water Spawners, the Random Type is much more effcient and has additional features.
array[string] blocks
A list of blocks to filter by. Use block ids like “minecraft:air”. Default empty.
string listType
Determines if the blocks list is a blacklist or whitelist. Default “whitelist”.
bool surface
If true, positions that can see the sky are allowed. Default true.
bool underground
If true, positions that can not see the sky are allowed. Default true.
int blockCost
If set, this many of the spawnable blocks must be found. The fire spawner uses this so that it only spawns when there is a lot of fire blocks near each in one area. Default -1 (no cost).
int requiredBlockTypes
If set (above 0), this is the amount of each block in the blocks list must be found. See the mineshaft spawner as an example where by default it requires 4 planks, rails and webs. Default: 0 (disabled).
Material Type
This works the same as the Block Type but filters by Block Material instead of specific blocks. This uses the properties that the Block Type uses but with the materials property instead of blocks.
array[string] materials
A list of block materials to filter by. Default empty.
Random Type
This is a very efficient and more advanced location that works better for broader areas like on the world surface, in caverns, underwater, etc instead of specific areas like pockets of Lava or Ooze. This uses the properties that the Block Type uses with additional properties.
int limit
How many random positions to find. Try not to find more positions than the mob spawn limit of the Spawner as they are just unused it's just a waste of processing. Default 32.
bool solidGround
If true positions require a solid walk-able block underneath rather than being able to float in the air/water. This is ideal for land based spawners as well as for spawning mobs on the bottom of the ocean, etc. For flying mobs you'll want this to be false or they'll all spawn on the ground. Default false.
double easyDifficultyRangeScale
This scales the x and z range values by this amount when on Easy or Peaceful Difficulty. Default 1.5.
double normalDifficultyRangeScale
This scales the x and z range values by this amount when on Normal Difficulty. Default 1.
double hardDifficultyRangeScale
This scales the x and z range values by this amount when on hard and above Difficulty. Default 0.5. Spawn Triggers Spawn Triggers are what make a Spawners start and are based on various game events ranging from random ticks to certain blocks being broken, etc.
Each type of Spawn Trigger has its own properties, some properties are shared mongst different types.
Shared Properties
string type
The type of Spawn Trigger this is, if the type is not recognised, then it is ignored. Can be one of the listed types below in lowercase, no space, Ex: “ore”
int count
How much this influences the Spawner's trigger count by, usually just 1. If 0 this Trigger will instead completely reset the count, if negative it will reduce the count. See the Darkness Spawner for this in action. Default 1.
double chance
The Chance of triggering where 1 is 100%. Can be 0.0-1.0. Default 1.
array[Spawn Condition]
A Spawn Trigger can also have it's own list of Trigger-specific Spawn Conditions that are only checked for this Trigger. See the Darkness Spawner for this in action. Default empty.
int conditionsRequired
Determines how many Spawn Conditions must be met. If set to 0 or less then Spawn Conditions all are required. Default 0 (all).
World Type
This Trigger fires every world tick and is good for generic random spawners as well as timed spawners that spawn mobs all over the world. 20 ticks = 1 second.
int tickRate
How many ticks between trigger attempts. Default 400 (every 20 seconds).
bool useWorldTime
If true, rather than every “tickRate”, it is instead when the world time is equal to the “tickRate” set, good for trigger at an exact time every world day. Default false.
Player Type (Formerly Tick Type)
This Trigger fires every player tick and is good for generic random spawners as well as timed spawners that revolve around each player. 20 ticks = 1 second.
int tickRate
How many ticks between trigger attempts. Default 400 (every 20 seconds).
int lastTickDistanceMin
The minimum distance the player must be away from the last tick position. Default -1 (ignored).
int lastTickDistanceMax
The maximum distance the player must be away from the last tick position. Default -1 (ignored).
bool useWorldTime
If true, rather than every “tickRate”, it is instead when the world time is equal to the “tickRate” set, good for trigger at an exact time every world day. Default false.
Block Type
This Trigger fires when certain blocks are broken by the player.
bool playerOnly
If true, only players can activate this Trigger, fake players are not counted as players. Default true.
bool onBreak
If true, the Block Break event will activate this trigger. Default true.
bool onHarvest
If true, the Block Harvest event will activate this trigger. Default true.
bool onPlace
If true, this Block Place event will activate this trigger. Default true.
array[string] blocks
A list of blocks to filter by. Use block ids like “minecraft:air”. Default empty.
string blocksListType
Determines if the blocks list is a blacklist or whitelist. Default “whitelist”.
array[string] blockMaterials
A list of block materials to filter by. Use the material name like “wood”. Default empty.
string blockMaterialsListType
Determines if the block materials list is a blacklist or whitelist. Default “blacklist”.
string silkTouch
How to react to blocks broken with or without silk touch. Can be: “ignore”, “require” or “deny”. Default: “ignore”.
int fortuneMin
The minimum fortune that the harvester must have. Default: -1 (ignore).
int fortuneMax
The maximum fortune that the harvester must have. Default: -1 (ignore).
Ore Type
This Trigger fires when ore blocks are broken by the player.
Extends Block Type
This type uses the same properties as the Block Type.
bool ores
If true, ores (ore blocks that drop as blocks as well as coal and monster egg) will trigger, if false they wont. Default: true.
bool gems
If true, gems (ore blocks that drop as items excluding coal and monster egg) will trigger, if false they wont. Default: true.
Tree Type
This Trigger fires when blocks that are part of a tree are broken by the player. This searches for log blocks and then searchs up and to the side for leaves blocks.
Extends Block Type
This type uses the same properties as the Block Type.
Crop Type
This Trigger fires when crop blocks are broken by the player. This searches for vines, planted farm plants like Wheat as well as Melon and Pumpkin stalks.
Extends Block Type
This type uses the same properties as the Block Type.
Mix Type
This Trigger fires when water and lava mix to form a solid block.
Extends Block Type
This type uses the same properties as the Block Type where the block to filter by is the block that is formed from mixing the water and lava (stone, cobblestone or obsidian). I later plan to make this more customisable.
Sleep Type
This Trigger fires when the player attempts to use a bed at night. If the Trigger is successful (passess random chance, but does not check if a mob actually spawns), the player is stopped from sleeping.
Extends Block Type
This type uses the same properties as the Block Type where the block to filter by is the bed block that was used, handy for reacting to beds from other mods such as adding in 'safe beds'.
int cooldown
How long (in ticks) until this trigger can be started again, this is done per player. Default 1200 (10 minutes).
Kill Type
This Trigger fires when the player kills another mob.
array[string] entityTypes
A list of entity types to filter by, can be: “UNDEAD” (zombies, phantoms, etc), “UNDEFINED” (most mobs), “ARTHROPOD” (insects, arachnids, etc). Default empty.
string entityTypesListType
Determines if the entity types list is a blacklist or whitelist. Default “whitelist”.
array[string] entityIds
A list of entity ids to filter by, you can get a mob's id from the creature page, but it usually follows a pattern like: “mountainmobs.jabberwock” or “minecraft.zombie”, modded mobs may also work. Default empty.
string entityIdsListType
Determines if the entity ids list is a blacklist or whitelist. Default “blacklist”.
Fishing Type
This Trigger fires when the player fishes up an item. This has no special properties of its own.
Explosion Type
This Trigger fires when an explosion occurs. Usually there is no player object involved with this so any player conditions will make the spawner fail.
int strength
How strong the explosion has to be to trigger this spawner. Default 4 (TNT's strength).
array[string] entityTypes
A list of entity types to filter by for explosion starters, can be: “UNDEAD” (zombies, phantoms, etc), “UNDEFINED” (most mobs), “ARTHROPOD” (insects, arachnids, etc). Default empty.
string entityTypesListType
Determines if the entity types list is a blacklist or whitelist. Default “whitelist”.
array[string] entityIds
A list of entity ids to filter by for explosion starters, you can get a mob's id from the creature page, but it usually follows a pattern like: “mountainmobs.jabberwock” or “minecraft.zombie”, modded mobs may also work. Default empty.
string entityIdsListType
Determines if the entity ids list is a blacklist or whitelist. Default “blacklist”.