# Configuration file

cape {

    aevitas {
        # Defines the chance that food-level increasing effects will happen on a specific cape-effect-cycle/tick [range: 0.0 ~ 1.0, default: 0.01]
        S:aevitasFeedChancePerCycle=0.01

        # Defines the food-level that is 'fed' to the player per cape-effect-cycle/tick [range: 0 ~ 5, default: 1]
        I:aevitasFoodLevelPerCycle=1

        # Defines the amount of saturation that is 'fed' to the player per cape-effect-cycle/tick [range: 0.0 ~ 5.0, default: 0.1]
        S:aevitasFoodSaturationPerCycle=0.1

        # Defines the amount of health that is regenerated per cape-effect-cycle/tick [range: 0.0 ~ 4.0, default: 0.04]
        S:aevitasHealPerCycle=0.04

        # Defines the chance that the aoe will search for a plant to turn into another plant. [range: 0.0 ~ 1.0, default: 0.2]
        S:aevitasPlantTransformChance=0.2

        # Defines the multiplier if the aoe will happen at all [range: 0.0 ~ 1.0, default: 1.0]
        S:aevitasPotency=1.0

        # Defines the radius (in blocks) for the aoe effect. [range: 1.0 ~ 32.0, default: 10.0]
        S:aevitasRange=10.0
    }

    discidia {
        # Sets the multiplier for how much of the received damage is converted into additional damage [range: 0.0 ~ 100.0, default: 1.0]
        S:discidiaMultiplier=1.0
    }

    evorsio {
        # Defines the Range of the death-AOE effect of when a mob gets killed by a player with this cape on. [range: 0.5 ~ 50.0, default: 4.0]
        S:evorsioDeathAOERange=4.0

        # Defines the multiplier how much of the dead entity's max-life should be dealt as AOE damage to mobs nearby. [range: 0.0 ~ 10.0, default: 0.5]
        S:evorsioPercentLifeDamage=0.5
    }

    armara {
        # Defines the maximum amount of immunity-stacks you can overall charge up. [range: 1 ~ 30, default: 3]
        I:armaraImmunityStacks=3

        # Defines the ticks you need to wear the cape until you get a immunty-stack that prevents 1 attack/damage-hit you'd take. [range: 1 ~ 10000, default: 300]
        I:armaraRechargeTicks=300
    }

    lucerna {
        # If this is set to true, particles spawned by the lucerna cape effect will also highlight spawners nearby. [default: true]
        B:lucernaFindSpawners=true

        # Sets the maximum range of where the lucerna cape effect will get entities (and potentially spawners given the config option is enabled) to highlight. [range: 12.0 ~ 512.0, default: 36.0]
        S:lucernaRange=36.0
    }

    fornax {
        # If a player burns while wearing the cape, this toggles if blocks below him then melt (true) or not. (false) [default: true]
        B:fornaxBurningMelt=true

        # Sets the multiplier for how much damage you take from fire damage while wearing a fornax cape [range: 0.0 ~ 1.0, default: 0.4]
        S:fornaxFireDmgMultiplier=0.4

        # Sets the multiplier for how much healing the player receives from the original damage when being hit by fire damage. [range: 0.0 ~ 5.0, default: 0.4]
        S:fornaxFireHealMultiplier=0.4
    }

    pelotrio {
        # Defines the chance of a spectral axe spawning that's chopping logs and leaves for you for a bit when you break a log or leaf. [range: 0.0 ~ 1.0, default: 0.8]
        S:pelotrioChance_Axe=0.8

        # Defines the chance of a spectral pickaxe spawning that's mining for you for a bit when you mine a block. [range: 0.0 ~ 1.0, default: 0.8]
        S:pelotrioChance_Pickaxe=0.8

        # Defines the chance of a spectral sword spawning that fights mobs nearby for a bit when you attack a mob. [range: 0.0 ~ 1.0, default: 0.5]
        S:pelotrioChance_Sword=0.5

        # Defines the damage the sword does per attack [range: 0.1 ~ 32.0, default: 4.0]
        S:pelotrioSword_Attack=4.0

        # Definies how long an axe is going to need to break a leaf or log [range: 1 ~ 100, default: 2]
        I:pelotrioTicks_Axe=2

        # Definies how long a pickaxe needs to break a block [range: 1 ~ 100, default: 4]
        I:pelotrioTicks_Pickaxe=4

        # Definies how many ticks are at least between sword attacks the sword makes [range: 1 ~ 100, default: 6]
        I:pelotrioTicks_Sword=6
    }

    mineralis {
        # Sets the highlight radius in which the cape effect will search for the block you're holding. [range: 4 ~ 64, default: 20]
        I:mineralisHighlightRange=20
    }

    octans {
        # Defines the amount of health that is healed while the wearer is in water. Can be set to 0 to disable this. [range: 0.0 ~ 5.0, default: 0.01]
        S:octansHealPerTick=0.01
    }

    horologium {
        # Defines the cooldown for the time-freeze effect after it triggered (should be longer than duration!) [range: 40 ~ 70000, default: 1000]
        I:horologiumCooldown=1000

        # Defines the duration of the time-freeze bubble [range: 40 ~ 50000, default: 180]
        I:horologiumDuration=180

        # Defines the range of the time-freeze effect [range: 4.0 ~ 64.0, default: 20.0]
        S:horologiumFreezeRange=20.0

        # Defines the chance for the time-freeze effect to trigger when being hit [range: 0.0 ~ 1.0, default: 0.8]
        S:horologiumTriggerChance=0.8
    }

    bootes {
        # Defines the maximum flare count the player can draw with him. [range: 2 ~ 8, default: 3]
        I:bootesMaxFlareCount=3

        # Defines the chance per tick that a new flare following the wearer is spawned. [range: 0.0 ~ 1.0, default: 0.005]
        S:bootesTickSummonChance=0.005
    }

}


crafting {
    # Set this to false to disable the chance to get a 2nd crystal when growing a max-sized one in liquid starlight. [default: true]
    B:canCrystalGrowthYieldDuplicates=true

    # Set this to false to prevent the lookup and registration of oreblock -> ore dust recipes on the grindstone. [default: true]
    B:grindstoneAddOreToDustRecipes=true

    # Set this to false to disable that liquid starlight + lava occasionally/rarely produces aquamarine shale instead of sand. [default: true]
    B:liquidStarlightAquamarine=true

    # Set this to false to disable crystal + stardust -> Celestial Crystal cluster forming [default: true]
    B:liquidStarlightCelestialCrystalCluster=true

    # Set this to false to disable Rock/Celestial Crystal growing in liquid starlight. [default: true]
    B:liquidStarlightCrystalGrowth=true

    # Set this to false to disable Crystal Tool growth in liquid starlight [default: true]
    B:liquidStarlightCrystalToolGrowth=true

    # Set this to false to disable that liquid starlight + water produces ice. [default: true]
    B:liquidStarlightIce=true

    # Set this to false to disable the functionality that wood logs will be converted to infused wood when thrown into liquid starlight. [default: true]
    B:liquidStarlightInfusedWood=true

    # Set this to false to disable that liquid starlight + lava produces sand. [default: true]
    B:liquidStarlightSand=true
}


data_persistence {

    files {
        # Defines if the persistent client-data usage/storage should be used. If set to false, it'll store the data in a pack-related directory (subfolder 'astralsorcery' in the same directory as /mods, /config, ...) [default: true]
        B:active=true

        # Defines if the persistent data loading & saving should be enabled for knowledge_fragments (saved in file knowledge_fragments.dat) [default: true]
        B:active_knowledge_fragments=true
    }

}


entities {
    # Defines how common ***ambient*** flares are. the lower the more common. 0 = ambient ones don't appear/disabled. [range: 0 ~ 200000, default: 9]
    I:EntityFlare.ambientspawn=9

    # If this is set to true, occasionally, a spawned flare will (attempt to) kill bats close to it. [default: true]
    B:EntityFlare.killbats=true
}


general {
    # Defines the length of a day (both daytime & nighttime obviously) for the mod's internal logic. NOTE: This does NOT CHANGE HOW LONG A DAY IN MC IS! It is only to provide potential compatibility for mods that do provide such functionality. [range: 100 ~ 2147483647, default: 24000]
    I:dayLength=24000

    # If set to 'true' anything that prevents mobspawning by this mod, will also prevent EVERY natural mobspawning of any mobtype. When set to 'false' it'll only stop monsters from spawning. [default: false]
    B:doesMobSpawnDenyAllTypes=false

    # If set to 'true', the player will receive an AstralSorcery Journal when they join the server for the first time. [default: true]
    B:giveJournalAtFirstJoin=true

    # If this is set to true, Rock-Crystal-Ore may be silk-touch harvested by a player. [default: false]
    B:isRockCrystalOreSilkHarvestable=false

    # List any number of modid's here and the aevitas perk & mineralis ritual will not spawn ores that originate from any of the mods listed here. [default: [techreborn]]
    S:oreGenBlacklist <
        techreborn
     >

    # Whitelist of dimension ID's that will have special sky rendering [default: [0]]
    S:skySupportedDimensions <
        0
     >

    # Defines how much the 'sharpened' modifier increases the damage of the sword if applied. Config value is in percent. [range: 0.0 ~ 10000.0, default: 0.1]
    S:swordSharpenedMultiplier=0.1

    # IF a dimensionId is listed in 'skySupportedDimensions' you can add it here to keep its sky render, but AS will try to render only constellations on top of its existing sky render. [default: ]
    S:weakSkyRenders <
     >

    shooting_stars {
        # Set to true to make shooting stars do a little explosion where they land [default: true]
        B:doExplosion=true

        # Set to false to disable shooting stars from spawning [default: true]
        B:enabled=true
    }

    debug_logging {
        # Set to true to enable this logging category. Only do this if you have to debug this section of code! May spam your log HEAVILY! [default: false]
        B:PERKS=false

        # Set to true to enable this logging category. Only do this if you have to debug this section of code! May spam your log HEAVILY! [default: false]
        B:STRUCTURE_MATCH=false

        # Set to true to enable this logging category. Only do this if you have to debug this section of code! May spam your log HEAVILY! [default: false]
        B:TREE_BEACON=false
    }

}


##########################################################################################################
# lightnetwork
#--------------------------------------------------------------------------------------------------------#
# Maintenance options for the Starlight network. Use the integrity check when you did a bigger rollback or MC-Edited stuff out of the world. Note that it will only affect worlds that get loaded. So if you edited out something on, for example, dimension -76, be sure to go into that dimension with the maintenance options enabled to properly perform maintenance there.
##########################################################################################################

lightnetwork {
    # NOTE: ONLY run this once and set it to false again afterwards, nothing will be gained by setting this to true permanently, just longer loading times. When set to true and the server started, this will perform an integrity check over all nodes of the starlight network whenever a world gets loaded, removing invalid ones in the process. This might, depending on network sizes, take a while. It'll leave a message in the console when it's done. After this check has been run, you might need to tear down and rebuild your starlight network in case something doesn't work anymore. [default: false]
    B:performNetworkIntegrityCheck=false
}


machinery {

    treebeacon {
        # Defines the chance that the block harvested is going to break per random-selection tick. The higher the value the lower the chance [range: 20 ~ 2147483647, default: 1400]
        I:BreakChance=1400

        # Defines the amount of blocks the treeBeacon can support at max count [range: 1 ~ 4000, default: 600]
        I:Count=600

        # Defines the chance that a drop is generated per random-selection tick. The higher the value the lower the chance. [range: 1 ~ 2147483647, default: 4]
        I:DropsChance=4

        # Percentage, how hard the speed limiter should slow down production of the tree beacon. 1=max, 0=no limiter [range: 0.0 ~ 1.0, default: 1.0]
        S:EfficiencyLimiter=1.0

        # Defines the Range where the TreeBeacon will scan for Tree's to grow. [range: 4.0 ~ 64.0, default: 16.0]
        S:Range=16.0
    }

    multi-ore {
        # This value defines how high the chance is after 'guaranteedBlocks' has been reached that the block-respawner despawns. The higher this number, the more unlikely it is to despawn. [range: 1 ~ 2147483647, default: 100]
        I:chanceDespawn=100

        # This value defines how often the block can be broken and will 100% respawn again. [range: 0 ~ 2147483647, default: 550]
        I:guaranteedBlocks=550

        # This defines how often an ore will be generated instead of a stone. The higher the number the more rare. Set to 0 to have it never generate ore, only stone. [range: 0 ~ 2147483647, default: 2]
        I:oreChance=2
    }

    chalice {
        # Defines the Range where the Chalice look for other chalices to interact with. [range: 4.0 ~ 64.0, default: 16.0]
        S:chaliceRange=16.0
    }

    fountain {
        # Sets the offset where the vortex-point for the vortex-prime is at relative to the fountain block. [range: -64 ~ -4, default: -4]
        I:VortexOffset=-4
    }

    tileacceleration_blacklist {
        # The classes for tileentities to be blacklisted from AstralSorcery's tile acceleration mechanics. Fully define a class or a package above it. Separated by '/' [default: [appeng], [raoulvdberge.refinedstorage]]
        S:ClassesOrSuperPackages <
            appeng
            raoulvdberge.refinedstorage
         >
    }

}


patreon {
    # Enables/Disables all patreon effects. [default: true]
    B:enablePatreonEffects=true
}


perk_levels {

    level {
        # Sets the max level for the perk tree levels. [range: 1 ~ 100, default: 30]
        I:levelCap=30
    }

}


perks {

    gem {
        # If this is set to true, the same type of modifier (e.g. maxhealth) can roll multiple times [default: false]
        B:gemAllowDuplicateTypes=false

        # If this is set to true, a modifier may roll to be 'more'/'less' instead of 'increased'/'decreased', depending on the configured chance (see ChanceMoreLessModifier) [default: false]
        B:gemAllowMoreLessModifier=false

        # If this is set to true, a modifier may roll negative instead of positive, depending on the configured chance (see ChanceNegativeModifier) [default: false]
        B:gemAllowNegativeModifier=false

        # Defines the chance the gem can roll a 3rd modifier. The lower this chance, the rarer. [range: 0.0 ~ 1.0, default: 0.2]
        S:gemChance3Modifiers=0.2

        # Defines the chance the gem can roll a 4th modifier. A 3rd modifier MUST be rolled before and the chances are independent of each other. The lower this chance, the rarer. [range: 0.0 ~ 1.0, default: 0.05]
        S:gemChance4Modifiers=0.05

        # If 'AllowMoreLessModifier' is set to true, this defines the chance a given modifier may be 'more'/'less' instead of 'increased'/'decreased'. [range: 0.0 ~ 1.0, default: 0.1]
        S:gemChanceMoreLessModifier=0.1

        # If 'AllowNegativeModifier' is set to true, this defines the chance a given modifier may be negative instead of positive. [range: 0.0 ~ 1.0, default: 0.25]
        S:gemChanceNegativeModifier=0.25

        # List of weighted modifiers the gem may roll. Format: 'modifier=weight' [default: [astralsorcery.attackspeed=2], [astralsorcery.expgain=1], [astralsorcery.armor=8], [astralsorcery.projectileattackdamage=8], [astralsorcery.dodge=2], [astralsorcery.movespeed=8], [astralsorcery.critchance=4], [astralsorcery.reach=4], [astralsorcery.meleeattackdamage=8], [astralsorcery.allres=2], [astralsorcery.compat.thaumcraft.runicshield=2], [astralsorcery.critmulti=4], [astralsorcery.maxhealth=12], [astralsorcery.liferecovery=2], [astralsorcery.harvestspeed=2]]
        S:gemWeightedModifiers <
            astralsorcery.attackspeed=2
            astralsorcery.expgain=1
            astralsorcery.armor=8
            astralsorcery.projectileattackdamage=8
            astralsorcery.dodge=2
            astralsorcery.movespeed=8
            astralsorcery.critchance=4
            astralsorcery.reach=4
            astralsorcery.meleeattackdamage=8
            astralsorcery.allres=2
            astralsorcery.compat.thaumcraft.runicshield=2
            astralsorcery.critmulti=4
            astralsorcery.maxhealth=12
            astralsorcery.liferecovery=2
            astralsorcery.harvestspeed=2
         >

        ranges {
            # Defines the lower bound an 'decreased' modifier can roll. Value is in percent (-0.01 means 1% decreased, -0.1 means 10% decreased, ...) [range: -1.0 ~ 0.0, default: -0.08]
            S:Decreased_Higher_Bound=-0.08

            # Defines the lower bound an 'decreased' modifier can roll. Value is in percent (-0.01 means 1% decreased, -0.1 means 10% decreased, ...) [range: -1.0 ~ 0.0, default: -0.05]
            S:Decreased_Lower_Bound=-0.05

            # Defines the lower bound an 'increased' modifier can roll. Value is in percent (0.01 means 1%, 0.1 means 10%, ...) [range: 0.0 ~ 1.0, default: 0.08]
            S:Increased_Higher_Bound=0.08

            # Defines the lower bound an 'increased' modifier can roll. Value is in percent (0.01 means 1%, 0.1 means 10%, ...) [range: 0.0 ~ 1.0, default: 0.05]
            S:Increased_Lower_Bound=0.05

            # Defines the lower bound an 'less' modifier can roll. Value is in percent (-0.01 means 1% less, -0.1 means 10% less, ...) [range: -1.0 ~ 0.0, default: -0.08]
            S:Less_Higher_Bound=-0.08

            # Defines the lower bound an 'less' modifier can roll. Value is in percent (-0.01 means 1% less, -0.1 means 10% less, ...) [range: -1.0 ~ 0.0, default: -0.05]
            S:Less_Lower_Bound=-0.05

            # Defines the lower bound an 'more' modifier can roll. Value is in percent (0.01 means 1%, 0.1 means 10%, ...) [range: 0.0 ~ 1.0, default: 0.08]
            S:More_Higher_Bound=0.08

            # Defines the lower bound an 'more' modifier can roll. Value is in percent (0.01 means 1%, 0.1 means 10%, ...) [range: 0.0 ~ 1.0, default: 0.05]
            S:More_Lower_Bound=0.05
        }

    }

    root_aevitas {
        # Sets the exp multiplier exp gained from this root-perk are multiplied by. (So higher multiplier -> more exp) [range: 0.0 ~ 1024.0, default: 1.0]
        S:Exp_Multiplier=1.0
    }

    root_vicio {
        # Sets the exp multiplier exp gained from this root-perk are multiplied by. (So higher multiplier -> more exp) [range: 0.0 ~ 1024.0, default: 1.0]
        S:Exp_Multiplier=1.0
    }

    root_armara {
        # Sets the exp multiplier exp gained from this root-perk are multiplied by. (So higher multiplier -> more exp) [range: 0.0 ~ 1024.0, default: 1.0]
        S:Exp_Multiplier=1.0
    }

    root_discidia {
        # Sets the exp multiplier exp gained from this root-perk are multiplied by. (So higher multiplier -> more exp) [range: 0.0 ~ 1024.0, default: 1.0]
        S:Exp_Multiplier=1.0
    }

    root_evorsio {
        # Sets the exp multiplier exp gained from this root-perk are multiplied by. (So higher multiplier -> more exp) [range: 0.0 ~ 1024.0, default: 1.0]
        S:Exp_Multiplier=1.0
    }

    key_stone_enrichment {
        # Sets the chance (Random.nextInt(chance) == 0) to try to see if a random stone next to the player should get turned into an ore; the lower the more likely [range: 2 ~ 4000000, default: 70]
        I:Chance_To_CreateOre=70

        # Defines the radius where a random position to generate a ore at is searched [range: 1 ~ 35, default: 3]
        I:Effect_Radius=3
    }

    key_mending {
        # Sets the chance (Random.nextInt(chance) == 0) to try to see if a piece of armor on the player that is damageable and damaged can be repaired; the lower the more likely [range: 3 ~ 6000000, default: 800]
        I:Repair_Chance=800
    }

    key_growables {
        # Sets the chance (Random.nextInt(chance) == 0) to try to see if a random plant near the player gets bonemeal'd; the lower the more likely [range: 1 ~ 1000000, default: 3]
        I:Growth_Chance=3

        # Defines the radius around which the perk effect should apply around the player [range: 1 ~ 16, default: 3]
        I:Radius=3
    }

    key_lastbreath {
        # Defines the damage multiplier you get additionally to your normal damage when being low on health (25% health = 75% of this additional multiplier) [range: 1.0 ~ 32.0, default: 3.0]
        S:Damage_Increase=3.0

        # Defines the dig speed multiplier you get additionally to your normal dig speed when being low on health (25% health = 75% of this additional multiplier) [range: 1.0 ~ 32.0, default: 1.5]
        S:HarvestSpeed_Increase=1.5
    }

    key_disarm {
        # Defines the chance (in percent) per hit to make the attacked entity drop its armor. [range: 0.0 ~ 1.0, default: 0.05]
        S:DropChance=0.05
    }

    key_lightning_arc {
        # Sets the chance to spawn a damage-arc effect when an enemy is hit (value is in percent) [range: 0.0 ~ 1.0, default: 0.6]
        S:Chance=0.6

        # Defines the damage-multiplier which gets added to the damage dealt initially. [range: 0.1 ~ 64.0, default: 0.75]
        S:DamagePercent=0.75

        # Defines the amount of times an arc will repetitively chain between the mobs and deal damage after initially spawned/triggered [range: 1 ~ 128, default: 3]
        I:DamageTicks=3

        # Defines the distance for how far a single arc can jump/search for nearby entities [range: 0.2 ~ 16.0, default: 7.0]
        S:Distance=7.0
    }

    key_chain_mining {
        # Defines the base chance a chain is tried to be built. [range: 0.01 ~ 1.0, default: 0.2]
        S:ChainChance=0.2

        # Defines the maximum length of a single break-chain. [range: 2 ~ 20, default: 4]
        I:ChainLength=4
    }

    key_bleed {
        # Defines the base chance a bleed can/is applied when an entity is being hit by this entity [range: 0.01 ~ 1.0, default: 0.25]
        S:BleedChance=0.25

        # Defines the duration of the bleeding effect when applied. Refreshes this duration when a it is applied again [range: 5 ~ 400, default: 60]
        I:BleedDuration=60
    }

    key_rampage {
        # Defines the duration of the rampage in ticks. [range: 10 ~ 40000, default: 100]
        I:Duration=100
    }

    key_cheat_death {
        # Once the potion effect gets applied, it'll take at least this amount of ticks or a server restart until it can be re-applied by this perk [range: 1 ~ 2147483647, default: 1000]
        I:CooldownPotion=1000

        # Once the potion effect gets applied by any of the triggers, this will be used as amplifier of the potion effect. [range: 0 ~ 32, default: 0]
        I:PotionAmplifier=0

        # Once the potion effect gets applied by any of the triggers, this will be used as tick-duration of the potion effect. [range: 1 ~ 2147483647, default: 600]
        I:PotionDuration=600

        # If the player takes damage equals/higher to the amount of damage configured here, the potion effect will apply in case it isn't on cooldown. [range: 1.0 ~ 100.0, default: 6.0]
        S:ThresholdDamage=6.0

        # If the player drops below this value of health, the potion effect will apply in case it isn't on cooldown. [range: 0.0 ~ 20.0, default: 4.0]
        S:ThresholdHealth=4.0
    }

    key_no_armor {
        # The multiplier that is applied to damage the player receives. The lower the more damage is negated. [range: 0.05 ~ 1.0, default: 0.7]
        S:ReductionMultiplier=0.7
    }

    key_spawn_lights {
        # Defines the radius around the player the perk will search for a suitable position. [range: 2 ~ 10, default: 5]
        I:RadiusSpawnLight=5

        # Defines the rate in ticks a position to spawn a light in is attempted to be found near the player. [range: 5 ~ 100000, default: 15]
        I:SpawnLightRate=15
    }

    key_void_trash {
        # The list of items to delete when dropped by a player with this perk. Damage/metadata value is optional and 'any' damage value is matched if omitted. Format: <modid>:<name>(:<metadata>) [default: [minecraft:stone:0], [minecraft:dirt], [minecraft:cobblestone], [minecraft:gravel]]
        S:DropList <
            minecraft:stone:0
            minecraft:dirt
            minecraft:cobblestone
            minecraft:gravel
         >

        # Chance that a voided drop will instead yield a valuable random ore out of the 'perk_void_trash_replacement' configured ore table. [range: 0.0 ~ 1.0, default: 2.0E-4]
        S:DropRareInstead=2.0E-4
    }

}


recipes {
    # If this is set to false, the luminous crafting table recipe that'd require 'light shining at a crafting table' is disabled. [default: true]
    B:LightProximity-Altar=true

    # If this is set to false, the resonating wand recipe that'd require 'light shining at a crafting table' is disabled. [default: true]
    B:LightProximity-ResonatingWand=true
}


rendering {
    # Set to true to disable the festive textures/block models. [default: false]
    B:disableFestiveBlockTextures=false

    # Defines how close to the position of a particle/floating texture you have to be in order for it to render. [range: 1 ~ 512, default: 64]
    I:maxEffectRenderDistance=64

    # Sets the amount of particles/effects: 0 = minimal (only necessary particles will appear), 1 = lowered (most unnecessary particles will be filtered), 2 = all particles are visible [range: 0 ~ 2, default: 2]
    I:particleAmount=2

    # If set to 'true' the mod will preload most of the bigger textures during postInit. This provides a more fluent gameplay experience (as it doesn't need to load the textures when they're first needed), but increases loadtime. [default: true]
    B:preloadTextures=true
}


retrogen {
    # WARNING: Setting this to true, will check on every chunk load if the chunk has been generated depending on the current AstralSorcery version. If the chunk was then generated with an older version, the mod will try and do the worldgen that's needed from the last recorded version to the current version. DO NOT ENABLE THIS FEATURE UNLESS SPECIFICALLY REQUIRED. It might/will slow down chunk loading. [default: false]
    B:enableRetroGen=false
}


ritual_effects {

    aevitas {
        # Defines the amount of crops the ritual can cache at max. count [range: 1 ~ 4000, default: 200]
        I:aevitasCount=200

        # Set to false to disable this ConstellationEffect. [default: true]
        B:aevitasEnabled=true

        # Set the potency multiplier for this ritual effect. Will affect all ritual effects and their efficiency. [range: 0.01 ~ 100.0, default: 1.0]
        S:aevitasPotencyMultiplier=1.0

        # Defines the radius (in blocks) in which the ritual will search for valid crops. [range: 1 ~ 32, default: 16]
        I:aevitasRange=16

        # Set the amplifier for the regeneration potion effect. [range: 0 ~ 32767, default: 1]
        I:aevitasRegenerationAmplifier=1
    }

    discidia {
        # Defines the max. possible damage dealt per damage tick. [range: 0.1 ~ 400.0, default: 6.5]
        S:discidiaDamageDealt=6.5

        # Set to false to disable this ConstellationEffect. [default: true]
        B:discidiaEnabled=true

        # Set the potency multiplier for this ritual effect. Will affect all ritual effects and their efficiency. [range: 0.01 ~ 100.0, default: 1.0]
        S:discidiaPotencyMultiplier=1.0

        # Defines the range in which the ritual will try to find entities [range: 2.0 ~ 64.0, default: 16.0]
        S:discidiaRange=16.0
    }

    armara {
        # Set to false to disable this ConstellationEffect. [default: true]
        B:armaraEnabled=true

        # Set the potency multiplier for this ritual effect. Will affect all ritual effects and their efficiency. [range: 0.01 ~ 100.0, default: 1.0]
        S:armaraPotencyMultiplier=1.0

        # Defines the radius (in blocks) in which the ritual will stop mob spawning and projectiles. [range: 1 ~ 128, default: 32]
        I:armaraRange=32

        # Set the amplifier for the resistance potion effect. [range: 0 ~ 32767, default: 0]
        I:armaraResistanceAmplifier=0
    }

    vicio {
        # Set to false to disable this ConstellationEffect. [default: true]
        B:vicioEnabled=true

        # Defines the radius (in blocks) in which the ritual will allow the players to fly in. [range: 1.0 ~ 512.0, default: 24.0]
        S:vicioRange=24.0

        # Defines the increase in radius the ritual will get per active lens enhancing the ritual. [range: 1 ~ 128, default: 16]
        I:vicioRangeIncreasePerLens=16
    }

    evorsio {
        # Set to false to disable this ConstellationEffect. [default: true]
        B:evorsioEnabled=true

        # Set the potency multiplier for this ritual effect. Will affect all ritual effects and their efficiency. [range: 0.01 ~ 100.0, default: 1.0]
        S:evorsioPotencyMultiplier=1.0

        # Defines the radius (in blocks) in which the ritual will search for blocks to break. [range: 1 ~ 32, default: 13]
        I:evorsioRange=13
    }

    horologium {
        # Defines the amount of tileEntities the ritual can cache and accelerate at max count [range: 1 ~ 4000, default: 30]
        I:horologiumCount=30

        # Set to false to disable this ConstellationEffect. [default: true]
        B:horologiumEnabled=true

        # Set the potency multiplier for this ritual effect. Will affect all ritual effects and their efficiency. [range: 0.01 ~ 100.0, default: 1.0]
        S:horologiumPotencyMultiplier=1.0

        # Defines the radius (in blocks) in which the ritual will search for valid tileEntities to accelerate [range: 1 ~ 64, default: 16]
        I:horologiumRange=16
    }

    mineralis {
        # Defines the amount of block-positions the ritual can cache at max count [range: 1 ~ 4000, default: 2]
        I:mineralisCount=2

        # Set to false to disable this ConstellationEffect. [default: true]
        B:mineralisEnabled=true

        # Set the potency multiplier for this ritual effect. Will affect all ritual effects and their efficiency. [range: 0.01 ~ 100.0, default: 1.0]
        S:mineralisPotencyMultiplier=1.0

        # Defines the radius (in blocks) in which the ritual will search for cleanStone to generate ores into. [range: 1 ~ 32, default: 8]
        I:mineralisRange=8
    }

    lucerna {
        # Defines the range in which the ritual will prevent mobspawning. [range: 2.0 ~ 2048.0, default: 64.0]
        S:lucernaDenyRange=64.0

        # Defines the range-increase that the ritual will get per additional lens focusing light back onto the pedestal [range: 2.0 ~ 2048.0, default: 64.0]
        S:lucernaDenyRangeIncrease=64.0

        # Set to false to disable this ConstellationEffect. [default: true]
        B:lucernaEnabled=true

        # Set the potency multiplier for this ritual effect. Will affect all ritual effects and their efficiency. [range: 0.01 ~ 100.0, default: 1.0]
        S:lucernaPotencyMultiplier=1.0
    }

    bootes {
        # Set to false to disable this ConstellationEffect. [default: true]
        B:bootesEnabled=true

        # Set the chance that an registered animal will be 'herded' if it is close to the ritual. [range: 0.0 ~ 1.0, default: 0.05]
        S:bootesHerdChance=0.05

        # Set the 'luck' when herding an animal for drops or related [range: -200.0 ~ 200.0, default: -5.0]
        S:bootesHerdLuck=-5.0

        # Set the chance that a drop that has been found from the entity's loot table is actually dropped. [range: 0.0 ~ 1.0, default: 0.01]
        S:bootesOverallDropChance=0.01

        # Set the potency multiplier for this ritual effect. Will affect all ritual effects and their efficiency. [range: 0.01 ~ 100.0, default: 1.0]
        S:bootesPotencyMultiplier=1.0

        # Defines the range in which the ritual will try to find entities [range: 2.0 ~ 64.0, default: 12.0]
        S:bootesRange=12.0
    }

    octans {
        # Defines the amount of crops the ritual can cache at max. count [range: 1 ~ 4000, default: 20]
        I:octansCount=20

        # Set to false to disable this ConstellationEffect. [default: true]
        B:octansEnabled=true

        # Defines the maximum default tick-time until a fish may be fished by the ritual. gets reduced internally the more starlight was provided at the ritual. Has to be bigger as the minimum time; if it isn't it'll be set to the minimum. [range: 20 ~ 2147483647, default: 500]
        I:octansMaxFishTickTime=500

        # Defines the minimum default tick-time until a fish may be fished by the ritual. gets reduced internally the more starlight was provided at the ritual. [range: 20 ~ 2147483647, default: 100]
        I:octansMinFishTickTime=100

        # Set the potency multiplier for this ritual effect. Will affect all ritual effects and their efficiency. [range: 0.01 ~ 100.0, default: 1.0]
        S:octansPotencyMultiplier=1.0

        # Defines the radius (in blocks) in which the ritual will search for water  [range: 1 ~ 32, default: 12]
        I:octansRange=12
    }

    fornax {
        # Defines the amount of block-positions the ritual can cache and melt at max count [range: 1 ~ 4000, default: 40]
        I:fornaxCount=40

        # Defines a multiplier used to determine how long it needs to melt a block. normal duration * durationMultiplier = actual duration [range: 1.0E-4 ~ 200.0, default: 1.0]
        S:fornaxDivisor=1.0

        # Set to false to disable this ConstellationEffect. [default: true]
        B:fornaxEnabled=true

        # Defines the chance (0% to 100% -> 0.0 to 1.0) if the block will be replaced with air instead of being properly melted into something. [range: 0.0 ~ 1.0, default: 0.0]
        S:fornaxFailChance=0.0

        # Set the potency multiplier for this ritual effect. Will affect all ritual effects and their efficiency. [range: 0.01 ~ 100.0, default: 1.0]
        S:fornaxPotencyMultiplier=1.0

        # Defines the radius (in blocks) in which the ritual will search for valid blocks to start to melt. [range: 1 ~ 32, default: 12]
        I:fornaxRange=12
    }

    pelotrio {
        # Set to false to disable this ConstellationEffect. [default: true]
        B:pelotrioEnabled=true

        # Set the potency multiplier for this ritual effect. Will affect all ritual effects and their efficiency. [range: 0.01 ~ 100.0, default: 1.0]
        S:pelotrioPotencyMultiplier=1.0

        # Defines the threshold at which the ritual will stop spawning mobs. If there are more or equal amount of mobs near this ritual, the ritual will not spawn more mobs. Mainly to reduce potential server lag. [range: 1 ~ 256, default: 40]
        I:pelotrioProximityCheck=40

        # Defines the radius (in blocks) in which the ritual will search for potential spawn points for entities. [range: 1 ~ 32, default: 12]
        I:pelotrioRange=12

        # Defines the per-tick chance that a new position for a entity-spawn will be searched for. [range: 0.0 ~ 1.0, default: 0.1]
        S:pelotrioSpawnSearchChance=0.1
    }

}


tools {
    # Sets the amount of damage reduction a player gets when being hit by a DE chaos-damage-related damagetype. [range: 0.0 ~ 1.0, default: 0.8]
    S:cape_chaosresistance=0.8

    # If this is set to true, charged crystals tools can revert back to their inert state. [default: true]
    B:chargedCrystalToolsRevert=true

    # After 'chargedCrystalToolsRevertStart' uses, it will random.nextInt(chance) == 0 try and see if the tool gets reverted to its inert crystal tool. [range: 1 ~ 2147483647, default: 80]
    I:chargedCrystalToolsRevertChance=80

    # Defines the minimum uses a user at least gets before it's trying to revert to an inert crystal tool. [range: 0 ~ 2147483646, default: 40]
    I:chargedCrystalToolsRevertStart=40

    # Defines the amount of stacks you have to get against the same mob until you reach 100% of the damage multiplier. [range: 1 ~ 200, default: 10]
    I:discidiaDamageStackCap=10

    # Defines the additional damage multiplier gradually increased by gaining attack-stacks against a mob. (Applied multiplier = damage * 1 + (thisConfigOption * (currentStacks / maxStacks)) ) [range: 0.0 ~ 200.0, default: 1.0]
    S:discidiaDamageStackMultipler=1.0

    # Defines the chance per mined block that the effect for holding an evorsio attuned resonating wand will fire. [range: 0.0 ~ 1.0, default: 0.8]
    S:evorsioAttunedWandEffectChance=0.8

    # Sets the max. hardness the exchange wand can swap !from!. If the block you're trying to "mine" with the conversion wand is higher than this number, it won't work. (-1 to disable this check) [range: -1.0 ~ 50000.0, default: -1.0]
    S:exchange_wand_max_hardness=-1.0

    # Sets the quick-charge cost for one usage of the architect wand [range: 0.0 ~ 1.0, default: 0.03]
    S:wandCost_architect=0.03

    # Sets the quick-charge cost for one usage of the exchange wand [range: 0.0 ~ 1.0, default: 0.002]
    S:wandCost_exchange=0.002

    # Sets the quick-charge cost for one usage of the grapple wand [range: 0.0 ~ 1.0, default: 0.7]
    S:wandCost_grapple=0.7

    # Sets the quick-charge cost for one usage of the illumination wand [range: 0.0 ~ 1.0, default: 0.5]
    S:wandCost_illumination=0.5

    enchantment_amulet {
        # Defines the chance to roll a 2nd-enchantment-manipulating roll on the amulet. Value defines a percent chance from 0% to 100%. Setting this to 0 also prevents a 3rd roll [range: 0.0 ~ 1.0, default: 0.8]
        S:chance2nd=0.8

        # Defines the chance to roll a 3rd-enchantment-manipulation roll on the amulet. Value defines a percent chance from 0% to 100%. [range: 0.0 ~ 1.0, default: 0.25]
        S:chance3rd=0.25

        # Defines the chance the roll will be +2 instead of +1 to existing enchantment/to enchantment/to all enchantments [range: 0.0 ~ 1.0, default: 0.15]
        S:chanceLevel2=0.15

        # Defines the chance the amulet-roll 'to all existing enchantments' will appear. [range: 0.0 ~ 1.0, default: 0.02]
        S:chanceToAll=0.02

        # Defines the chance the amulet roll 'to <encahntment>' will appear. (Don't mistake this for 'to exsting <enchantment>'!) [range: 0.0 ~ 1.0, default: 0.35]
        S:chanceToNonExisting=0.35
    }

}


worldgen {
    # Defines the quality of the constellation paper item in loot chests. [range: 1 ~ 128, default: 2]
    I:constellationPaperQuality=2

    # Defines the rarity of the constellation paper item in loot chests. [range: 1 ~ 128, default: 10]
    I:constellationPaperRarity=10

    # By default, Astral Sorcery does not generate structures or ores in Super-Flat worlds. If, for some reason, you wish to enable generation of structures and ores in a Super-Flat world, then set this value to true. [default: false]
    B:enableFlatGen=false

    # Defines how many aquamarine ores it'll attempt to generate in per chunk. 0 = disabled [range: 0 ~ 2048, default: 64]
    I:generateAquamarineAmount=64

    # Defines how many marble veins are generated per chunk. 0 = disabled [range: 0 ~ 32, default: 4]
    I:generateMarbleAmount=4

    # Defines how big generated marble veins are. [range: 1 ~ 32, default: 20]
    I:generateMarbleVeinSize=20

    # If this is set to true, the world generator will try and spawn structures more evenly distributed by their 'ideal' distance set in their config entries. WARNING: might add additional worldgen time. [default: true]
    B:respectIdealStructureDistances=true

    # the Astral Sorcery-specific worldgen will only run in Dimension ID's listed here. [default: [0]]
    S:worldGenWhitelist <
        0
     >

    ancientshrine {
        # Set the BiomeTypes (according to the BiomeDicitionary) this structure will spawn in. [default: [MOUNTAIN], [SNOWY]]
        S:BiomeTypes <
            MOUNTAIN
            SNOWY
         >

        # Chance to generate the structure in a chunk. The higher, the lower the chance. [range: 1 ~ 2147483647, default: 140]
        I:Chance=140

        # Define an array of dimensionID's where the structure is allowed to spawn in. [default: ]
        S:DimensionWhitelist <
         >

        # Generate ancientShrine [default: true]
        B:Generate=true

        # Ignore Biome specifications when trying to generate ancientShrine [default: false]
        B:IgnoreBiomes=false

        # Ignore dimension-whitelist when trying to generate ancientShrine [default: true]
        B:IgnoreDimensionSettings=true

        # Set the maximum Y level to spawn this structure on [range: 0 ~ 255, default: 255]
        I:MaxY=255

        # Set the minimum Y level to spawn this structure on [range: 0 ~ 255, default: 0]
        I:MinY=0

        # Defines how high/low the surface in comparison to the structure can be to be seen as 'sufficiently flat' for the structure to spawn at the given position. [range: 1 ~ 32, default: 4]
        I:heightThreshold=4

        # Sets the 'ideal' distance between 2 structures of the same type. If the distance is lower, it's unlikely that the same type of structure will spawn,if it's higher it's more likely that this type of structure will spawn. Only has influence if the config option 'respectIdealStructureDistances' is enabled. [range: 1.0 ~ 16384.0, default: 768.0]
        S:idealDistance=768.0
    }

    desertstructure {
        # Set the BiomeTypes (according to the BiomeDicitionary) this structure will spawn in. [default: [SANDY]]
        S:BiomeTypes <
            SANDY
         >

        # Chance to generate the structure in a chunk. The higher, the lower the chance. [range: 1 ~ 2147483647, default: 140]
        I:Chance=140

        # Define an array of dimensionID's where the structure is allowed to spawn in. [default: ]
        S:DimensionWhitelist <
         >

        # Generate desertStructure [default: true]
        B:Generate=true

        # Ignore Biome specifications when trying to generate desertStructure [default: false]
        B:IgnoreBiomes=false

        # Ignore dimension-whitelist when trying to generate desertStructure [default: true]
        B:IgnoreDimensionSettings=true

        # Set the maximum Y level to spawn this structure on [range: 0 ~ 255, default: 255]
        I:MaxY=255

        # Set the minimum Y level to spawn this structure on [range: 0 ~ 255, default: 0]
        I:MinY=0

        # Defines how high/low the surface in comparison to the structure can be to be seen as 'sufficiently flat' for the structure to spawn at the given position. [range: 1 ~ 32, default: 3]
        I:heightThreshold=3

        # Sets the 'ideal' distance between 2 structures of the same type. If the distance is lower, it's unlikely that the same type of structure will spawn,if it's higher it's more likely that this type of structure will spawn. Only has influence if the config option 'respectIdealStructureDistances' is enabled. [range: 1.0 ~ 16384.0, default: 1024.0]
        S:idealDistance=1024.0
    }

    smallshrine {
        # Set the BiomeTypes (according to the BiomeDicitionary) this structure will spawn in. [default: [PLAINS], [FOREST]]
        S:BiomeTypes <
            PLAINS
            FOREST
         >

        # Chance to generate the structure in a chunk. The higher, the lower the chance. [range: 1 ~ 2147483647, default: 140]
        I:Chance=140

        # Define an array of dimensionID's where the structure is allowed to spawn in. [default: ]
        S:DimensionWhitelist <
         >

        # Generate smallShrine [default: true]
        B:Generate=true

        # Ignore Biome specifications when trying to generate smallShrine [default: false]
        B:IgnoreBiomes=false

        # Ignore dimension-whitelist when trying to generate smallShrine [default: true]
        B:IgnoreDimensionSettings=true

        # Set the maximum Y level to spawn this structure on [range: 0 ~ 255, default: 255]
        I:MaxY=255

        # Set the minimum Y level to spawn this structure on [range: 0 ~ 255, default: 0]
        I:MinY=0

        # Defines how high/low the surface in comparison to the structure can be to be seen as 'sufficiently flat' for the structure to spawn at the given position. [range: 1 ~ 32, default: 1]
        I:heightThreshold=1

        # Sets the 'ideal' distance between 2 structures of the same type. If the distance is lower, it's unlikely that the same type of structure will spawn,if it's higher it's more likely that this type of structure will spawn. Only has influence if the config option 'respectIdealStructureDistances' is enabled. [range: 1.0 ~ 16384.0, default: 512.0]
        S:idealDistance=512.0
    }

    treasureshrine {
        # Set the BiomeTypes (according to the BiomeDicitionary) this structure will spawn in. [default: ]
        S:BiomeTypes <
         >

        # Chance to generate the structure in a chunk. The higher, the lower the chance. [range: 1 ~ 2147483647, default: 20]
        I:Chance=20

        # Define an array of dimensionID's where the structure is allowed to spawn in. [default: ]
        S:DimensionWhitelist <
         >

        # Generate treasureShrine [default: true]
        B:Generate=true

        # Ignore Biome specifications when trying to generate treasureShrine [default: true]
        B:IgnoreBiomes=true

        # Ignore dimension-whitelist when trying to generate treasureShrine [default: true]
        B:IgnoreDimensionSettings=true

        # Set the maximum Y level to spawn this structure on [range: 0 ~ 255, default: 40]
        I:MaxY=40

        # Set the minimum Y level to spawn this structure on [range: 0 ~ 255, default: 10]
        I:MinY=10

        # Sets the 'ideal' distance between 2 structures of the same type. If the distance is lower, it's unlikely that the same type of structure will spawn,if it's higher it's more likely that this type of structure will spawn. Only has influence if the config option 'respectIdealStructureDistances' is enabled. [range: 1.0 ~ 16384.0, default: 192.0]
        S:idealDistance=192.0
    }

    smallruin {
        # Set the BiomeTypes (according to the BiomeDicitionary) this structure will spawn in. [default: ]
        S:BiomeTypes <
         >

        # Chance to generate the structure in a chunk. The higher, the lower the chance. [range: 1 ~ 2147483647, default: 140]
        I:Chance=140

        # Define an array of dimensionID's where the structure is allowed to spawn in. [default: ]
        S:DimensionWhitelist <
         >

        # Generate smallRuin [default: true]
        B:Generate=true

        # Ignore Biome specifications when trying to generate smallRuin [default: true]
        B:IgnoreBiomes=true

        # Ignore dimension-whitelist when trying to generate smallRuin [default: true]
        B:IgnoreDimensionSettings=true

        # Set the maximum Y level to spawn this structure on [range: 0 ~ 255, default: 255]
        I:MaxY=255

        # Set the minimum Y level to spawn this structure on [range: 0 ~ 255, default: 0]
        I:MinY=0

        # Defines how high/low the surface in comparison to the structure can be to be seen as 'sufficiently flat' for the structure to spawn at the given position. [range: 1 ~ 32, default: 0]
        I:heightThreshold=0

        # Sets the 'ideal' distance between 2 structures of the same type. If the distance is lower, it's unlikely that the same type of structure will spawn,if it's higher it's more likely that this type of structure will spawn. Only has influence if the config option 'respectIdealStructureDistances' is enabled. [range: 1.0 ~ 16384.0, default: 2048.0]
        S:idealDistance=2048.0
    }

    glowstone_flower {
        # Set the BiomeTypes (according to the BiomeDicitionary) this structure will spawn in. [default: [MOUNTAIN], [COLD]]
        S:BiomeTypes <
            MOUNTAIN
            COLD
         >

        # Chance to generate the structure in a chunk. The higher, the lower the chance. [range: 1 ~ 2147483647, default: 2]
        I:Chance=2

        # Define an array of dimensionID's where the structure is allowed to spawn in. [default: ]
        S:DimensionWhitelist <
         >

        # Generate glowstone_flower [default: true]
        B:Generate=true

        # Ignore Biome specifications when trying to generate glowstone_flower [default: false]
        B:IgnoreBiomes=false

        # Ignore dimension-whitelist when trying to generate glowstone_flower [default: true]
        B:IgnoreDimensionSettings=true

        # Set the maximum Y level to spawn this structure on [range: 0 ~ 255, default: 255]
        I:MaxY=255

        # Set the minimum Y level to spawn this structure on [range: 0 ~ 255, default: 0]
        I:MinY=0

        # Set this to true and the decorator will ignore the spawn-condition if snow is/can fall in the area. [default: false]
        B:ignoreSnowCondition=false
    }

    rockcrystals {
        # Set the BiomeTypes (according to the BiomeDicitionary) this structure will spawn in. [default: ]
        S:BiomeTypes <
         >

        # Defines how rarely Rock crystal ores spawn. The higher, the more rare. [range: 1 ~ 40, default: 15]
        I:CrystalDensity=15

        # Define an array of dimensionID's where the structure is allowed to spawn in. [default: ]
        S:DimensionWhitelist <
         >

        # Generate rockcrystals [default: true]
        B:Generate=true

        # Ignore Biome specifications when trying to generate rockcrystals [default: true]
        B:IgnoreBiomeSpecification=true

        # Ignore dimension-whitelist when trying to generate rockcrystals [default: true]
        B:IgnoreDimensionSettings=true

        # Defines the blockstates that may be replaced by rock crystal ore when trying to generate a rock crystal ore. format: <modid>:<name>:<meta> - Use meta -1 for wildcard [default: [minecraft:stone:0]]
        S:ReplacementStates <
            minecraft:stone:0
         >
    }

    marble {
        # Defines the blockstates that may be replaced by marble when trying to generate marble. format: <modid>:<name>:<meta> - Use meta -1 for wildcard [default: [minecraft:stone:0]]
        S:ReplacementStates <
            minecraft:stone:0
         >
    }

    aquamarine {
        # Defines the blockstates that may be replaced by aquamarine shale when trying to generate aquamarine shale. format: <modid>:<name>:<meta> - Use meta -1 for wildcard [default: [minecraft:sand:0]]
        S:ReplacementStates <
            minecraft:sand:0
         >
    }

}


