technical:defaultspawners

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 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).

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 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.

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).

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.

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.

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).

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.

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.

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).

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.

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.

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.

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.

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).

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”.

This Trigger fires when the player fishes up an item. This has no special properties of its own.

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”.

  • technical/defaultspawners.txt
  • Last modified: 2020/03/27 08:50
  • by tehmadtitan