McJtyMods / RFTools

A set of blocks and items to help with RF in general. Currently contains a Dimension Builder, Teleportation System, Shield System, RF monitor, an RF network debug tool and an automatic crafter
MIT License
228 stars 88 forks source link

RFT Dimensions freezes server after changing the config #1157

Closed Ocaff closed 4 years ago

Ocaff commented 7 years ago

So, me and my friend tried to make the config so that it has a 100% chance of picking the specific parts we add with dimlets. but after changing the config, the unrealized dimension will load up to 99%, and then freeze the server. (It also freezes singleplayer) Anyone know how to fix this?

Ocaff commented 7 years ago

Configuration file

##########################################################################################################

dimletconstruction

--------------------------------------------------------------------------------------------------------

Dimlet construction related settings

##########################################################################################################

dimletconstruction {

Maximum RF storage that the dimlet workbench can hold

I:dimletWorkbenchMaxRF=32000

# RF that the dimlet workbench needs for extracting one dimlet
I:dimletWorkbenchRFPerOperation=200

# RF per tick that the the dimlet workbench can receive
I:dimletWorkbenchRFPerTick=80

# Amount of ticks needed to fully absorb a biome essence
I:maxBiomeAbsorbtion=5000

# Amount of blocks needed to fully absorb material essence
I:maxBlockAbsorbtion=128

# Amount of ticks needed to fully absorb a feature essence
I:maxFeatureAbsorbtion=5000

# Amount of liquid blocks needed to fully absorb liquid essence
I:maxLiquidAbsorbtion=128

# Amount of injections needed to get a fully absorbed mob essence
I:maxMobInjections=10

# Amount of ticks needed to fully absorb a terrain essence
I:maxTerrainAbsorbtion=5000

# Amount of ticks needed to absorb the correct time
I:maxTimeAbsorbtion=10

}

##########################################################################################################

dimlets

--------------------------------------------------------------------------------------------------------

Dimlet related settings

##########################################################################################################

dimlets {

Rarity factor for level 0

D:level0=500.0

# Rarity factor for level 1
D:level1=250.0

# Rarity factor for level 2
D:level2=150.0

# Rarity factor for level 3
D:level3=90.0

# Rarity factor for level 4
D:level4=40.0

# Rarity factor for level 5
D:level5=20.0

# Rarity factor for level 6
D:level6=1.0

}

##########################################################################################################

general

--------------------------------------------------------------------------------------------------------

Dimension related settings

##########################################################################################################

general {

Behaviour when sleeping in an RFTools dimension: 0 = do nothing, 1 = explode, 2 = set spawn

I:bedBehaviour=0

# How much stronger mobs should be if spawned in a dimension with the brutal mobs dimlet
D:brutalMobsFactor=5.0

# If this is enabled then the dimension builder needs a correct owner before you can create dimensions with it
B:dimensionBuilderNeedsOwner=false

# If this is enabled the /rftdim safedel <id> command will also delete the DIM<id> folder. If false then this has to be done manually
B:dimensionFolderIsDeletedWithSafeDel=true

# RF per tick/per block for the dimension screen module
I:dimensionRFPerTick=6

# How much of the tick cost of the world is applied to the PFG cost, as a ratio from 0 to 1
D:dynamicPhaseCostAmount=0.05000000074505806

# If this is enabled then a dimension editor can delete a dimension that is owned by the same player as the dimension editor's player. This works by sending over a block of TNT
B:editorCanDeleteDimensions=false

# Enable the dimension builder recipe.
B:enableDimensionBuilderRecipe=true

# Enable dynamic scaling of the Phase Field Generator cost based on world tick cost
B:enableDynamicPhaseCost=false

# The chance that you get a dimlet parcel when killing an enderman. Set to 0 to disable
D:endermanDimletPartDrop=0.019999999552965164

# The maximum amount of dimensions per player. This requires that dimensions are build with an owned builder (dimensionBuilderNeedsOwner must be set). -1 means no maximum
I:maxDimensionsPerPlayer=-1

# The maximum amount of dimlet parts you get out of a dimlet parcel
I:maxParcelContents=6

# The minimum amount of dimlet parts you get out of a dimlet parcel
I:minParcelContents=3

# If this is enabled (non-craftable) owner dimlets are required to construct dimension tabs. This is useful on servers where you want to limit the amount of dimensions a player can make
B:ownerDimletsNeeded=false

# If this is enabled then regular players can delete their own dimensions using the /rftdim safedel <id> command
B:playersCanDeleteDimensions=false

# Randomize the seed when the dimension is created
B:randomizeSeed=false

# If this flag is true the player will respawn in the rftools dimension when he dies (unless power runs out)
B:respawnRfToolsDimension=false

# The RFTools dimension provider id (-1 means try to find one automatically)
I:rftoolsProviderId=-1

# Dimension to respawn in after you get kicked out of an RFTools dimension
I:spawnDimension=0

# How much stronger mobs should be if spawned in a dimension with the strong mobs dimlet
D:strongMobsFactor=2.0

# Set this to true if you want to make sure RFTools can only create void dimensions
B:voidOnly=false

}

##########################################################################################################

machines

--------------------------------------------------------------------------------------------------------

Machine related settings

##########################################################################################################

machines {

Maximum RF storage that the dimension builder can hold

I:dimensionBuilderMaxRF=10000000

# RF per tick that the dimension builder can receive
I:dimensionBuilderRFPerTick=50000

# Maximum RF storage that the dimension editor can hold
I:dimensionEditorMaxRF=5000000

# RF per tick that the dimension editor can receive
I:dimensionEditorRFPerTick=50000

# Maximum RF storage that the dimlet workbench can hold
I:dimletWorkbenchMaxRF=32000

# RF that the dimlet workbench needs for extracting one dimlet
I:dimletWorkbenchRFPerOperation=200

# RF per tick that the the dimlet workbench can receive
I:dimletWorkbenchRFPerTick=80

# Maximum RF storage that the energy extractor can hold
I:energyExtractorMaxRF=50000

# RF per tick that the energy extractor can send
I:energyExtractorRFPerTick=1000

}

##########################################################################################################

mobs

--------------------------------------------------------------------------------------------------------

Mob related settings

##########################################################################################################

mobs { I:Bat.chance=10 I:Bat.maxentity=20 I:Bat.maxgroup=8 I:Bat.mingroup=8 I:Blaze.chance=20 I:Blaze.maxentity=20 I:Blaze.maxgroup=4 I:Blaze.mingroup=2 I:CaveSpider.chance=100 I:CaveSpider.maxentity=60 I:CaveSpider.maxgroup=8 I:CaveSpider.mingroup=8 I:Chicken.chance=10 I:Chicken.maxentity=40 I:Chicken.maxgroup=4 I:Chicken.mingroup=3 I:Cow.chance=10 I:Cow.maxentity=40 I:Cow.maxgroup=4 I:Cow.mingroup=3 I:Creeper.chance=100 I:Creeper.maxentity=60 I:Creeper.maxgroup=8 I:Creeper.mingroup=8 I:EnderDragon.chance=4 I:EnderDragon.maxentity=4 I:EnderDragon.maxgroup=2 I:EnderDragon.mingroup=1 I:Enderman.chance=20 I:Enderman.maxentity=20 I:Enderman.maxgroup=4 I:Enderman.mingroup=2 I:Endermite.chance=6 I:Endermite.maxentity=10 I:Endermite.maxgroup=4 I:Endermite.mingroup=2 I:EntityHorse.chance=10 I:EntityHorse.maxentity=40 I:EntityHorse.maxgroup=4 I:EntityHorse.mingroup=3 I:Ghast.chance=20 I:Ghast.maxentity=20 I:Ghast.maxgroup=4 I:Ghast.mingroup=2 I:Guardian.chance=8 I:Guardian.maxentity=7 I:Guardian.maxgroup=3 I:Guardian.mingroup=1 I:LavaSlime.chance=50 I:LavaSlime.maxentity=30 I:LavaSlime.maxgroup=4 I:LavaSlime.mingroup=2 I:MushroomCow.chance=10 I:MushroomCow.maxentity=40 I:MushroomCow.maxgroup=4 I:MushroomCow.mingroup=3 I:Ozelot.chance=5 I:Ozelot.maxentity=20 I:Ozelot.maxgroup=3 I:Ozelot.mingroup=2 I:Pig.chance=10 I:Pig.maxentity=40 I:Pig.maxgroup=4 I:Pig.mingroup=3 I:PigZombie.chance=20 I:PigZombie.maxentity=10 I:PigZombie.maxgroup=4 I:PigZombie.mingroup=2 I:Rabbit.chance=10 I:Rabbit.maxentity=20 I:Rabbit.maxgroup=4 I:Rabbit.mingroup=3 I:Sheep.chance=10 I:Sheep.maxentity=40 I:Sheep.maxgroup=4 I:Sheep.mingroup=3 I:Silverfish.chance=6 I:Silverfish.maxentity=10 I:Silverfish.maxgroup=4 I:Silverfish.mingroup=2 I:Skeleton.chance=100 I:Skeleton.maxentity=60 I:Skeleton.maxgroup=8 I:Skeleton.mingroup=8 I:Slime.chance=50 I:Slime.maxentity=30 I:Slime.maxgroup=4 I:Slime.mingroup=2 I:SnowMan.chance=50 I:SnowMan.maxentity=30 I:SnowMan.maxgroup=4 I:SnowMan.mingroup=2 I:Spider.chance=100 I:Spider.maxentity=60 I:Spider.maxgroup=8 I:Spider.mingroup=8 I:Squid.chance=10 I:Squid.maxentity=40 I:Squid.maxgroup=4 I:Squid.mingroup=3 I:Villager.chance=10 I:Villager.maxentity=20 I:Villager.maxgroup=4 I:Villager.mingroup=3 I:VillagerGolem.chance=20 I:VillagerGolem.maxentity=6 I:VillagerGolem.maxgroup=2 I:VillagerGolem.mingroup=1 I:Witch.chance=10 I:Witch.maxentity=20 I:Witch.maxgroup=1 I:Witch.mingroup=1 I:WitherBoss.chance=5 I:WitherBoss.maxentity=5 I:WitherBoss.maxgroup=2 I:WitherBoss.mingroup=1 I:Wolf.chance=10 I:Wolf.maxentity=20 I:Wolf.maxgroup=4 I:Wolf.mingroup=3 I:Zombie.chance=100 I:Zombie.maxentity=60 I:Zombie.maxgroup=8 I:Zombie.mingroup=8 I:default.chance=6 I:default.maxentity=10 I:default.maxgroup=3 I:default.mingroup=1 }

##########################################################################################################

power

--------------------------------------------------------------------------------------------------------

Power related settings

##########################################################################################################

power {

If the dimension turns out to be more expensive after creation you get a factor of the actual cost extra to the RF/tick maintenance cost. If this is 0 there is no such cost. If this is 1 then you get the full cost

D:afterCreationCostFactor=0.10000000149011612

# Difficulty level for the dimension system. -1 means dimensions don't consume power. 0 means that you will not get killed but kicked out of the dimension when it runs out of power. 1 means certain death
I:difficulty=1

# The internal RF buffer for every dimension
I:dimensionPower=40000000

# The zero level at which power warning signs are starting to happen. This is only used for lighting level. No other debuffs occur at this level.
I:dimensionPowerWarn0=6000000

# The first level at which power warning signs are starting to happen
I:dimensionPowerWarn1=4000000

# The second level at which power warning signs are starting to become worse
I:dimensionPowerWarn2=1000000

# The third level at which power warning signs are starting to be very bad
I:dimensionPowerWarn3=500000

# The level at which the teleportation system will consider a destination to be dangerous
I:dimensionPowerWarnTP=500000

# If this flag is true RFTools will freeze all entities and machines in a dimension when the power runs out
B:freezeUnpoweredDimension=true

# Percentage to add or subtract to the maintenance cost of all dimlets (100 would double the cost, -100 would set the cost to almost zero (complete zero is not allowed))
D:maintenanceCostPercentage=0.0

# Bonus dimlets can never get the maintenance cost of a dimension below this percentage of the nominal cost without bonus dimlets
I:minimumCostPercentage=10

# RF per tick that the phased field generator item will consume
I:phasedFieldConsumePerTick=100

# If true you will get some debufs when the PFG is in use. If false there will be no debufs
B:phasedFieldGeneratorDebuf=true

# In this range the PFG will keep entities active (set to 0 to disable this feature)
I:phasedFieldGeneratorRange=5

# Maximum RF storage that the phased field generator item can hold
I:phasedFieldMaxRF=1000000

# RF per tick that the phased field generator item can receive
I:phasedFieldRFPerTick=1000

# If this flag is true all spawns will be disabled in an unpowered dimension
B:preventSpawnUnpoweredDimension=true

}

##########################################################################################################

worldgen

--------------------------------------------------------------------------------------------------------

Worldgen related settings

##########################################################################################################

worldgen {

The height of the bedrock layer that is generated at the bottom of some world types. Set to 0 to disable this and get default bedrock generation

I:bedrockLayer=1

# Maximum height of the caverns. 0=64, 1=128, 2=196, 3=256
I:cavernHeightLimit=1

# The chance that you get a dimlet parcel in a dungeon chest
I:dimletParcelRarity=2

# The chance for a dungeon to spawn in a chunk. Higher numbers mean less chance (1 in 'dungeonChance' chance)
I:dungeonChance=200

# The maximum number of random dimlets that can be generated in rftools dungeons (set to 0 to disable this)
I:enableDimletsInRFToolsDungeons=2

# If true then item frames in rftools dungeons will contain dimlets. Otherwise they will contain dimlet parts
B:enableDimletsInRFToolsFrames=true

# Set this to true if you want terrains with dimlet 'normal' to generate like the overworld (i.e. amplified if the overworld is amplified)
B:normalTerrainInheritsOverworld=false

# Maximum y level for dimensional shard ores
I:oreMaximumHeight=40

# Maximum number of veins for dimensional shard ores
I:oreMaximumVeinCount=3

# Maximum vein size of dimensional shard ores
I:oreMaximumVeinSize=8

# Minimum y level for dimensional shard ores
I:oreMinimumHeight=2

# Minimum vein size of dimensional shard ores
I:oreMinimumVeinSize=5

# The chance that a non-stone block is selected for the main terrain
D:randomBaseBlockChance=0.30000001192092896

# The chance that a random biome controller is selected
D:randomControllerChance=0.4000000059604645

# The chance that an effect gets randomly selected in worldgen (poison, regeneration, ...)
D:randomEffectChance=0.10000000149011612

# The chance that extra specific mobs will spawn
D:randomExtraMobsChance=1.0000000000000000

# The chance that every specific feature gets randomly selected in worldgen (tendrils, caves, lakes, oregen, ...)
D:randomFeatureChance=1.0000000000000000

# The chance that random blocks are selected for landscape features (tendrils, canyons, ...)
D:randomFeatureMaterialChance=0.4000000059604645

# The chance that random fluid liquids are selected for lakes
D:randomLakeFluidChance=0.20000000298023224

# The chance that a non-water block is selected for oceans and seas
D:randomOceanLiquidChance=0.20000000298023224

# The chance that random fluid liquids are selected for liquid orbs
D:randomOrbFluidChance=0.20000000298023224

# The chance that random blocks are selected for extra oregen feature
D:randomOregenMaterialChance=0.20000000298023224

# The chance that special sky features are selected
D:randomSpecialSkyChance=0.5

# The chance that default time features are selected
D:randomSpecialTimeChance=0.5

# The chance that every specific structure gets randomly selected in worldgen (village, nether fortress, ...)
D:randomStructureChance=1.0000000000000000
# The chance that default weather features are selected
D:randomWeatherChance=0.800000011920929

# The chance for a volcano to spawn in a chunk (with the volcano feature dimlet). Higher numbers mean less chance (1 in 'volcanoChance' chance)
I:volcanoChance=60

}

Sorry for the wall of text, but i have no idea how to shorten it. this is the config.

McJty commented 7 years ago

Can you just list the settings that you actually changed?

Ocaff commented 7 years ago

The chance that extra specific mobs will spawn

D:randomExtraMobsChance=1.0000000000000000

The chance that every specific feature gets randomly selected in worldgen (tendrils, caves, lakes, oregen, ...)

D:randomFeatureChance=1.0000000000000000

McJty commented 7 years ago

I'll check this out later but it is likely that my calculations can't handle 100% chance

Ocaff commented 7 years ago

We did try 0.999999999999 aswell, same story. :/

McJty commented 7 years ago

Well that's equal to 1 for all practical purposes. You'll have to go lower

Ocaff commented 7 years ago

WHat number would you suggest trying to get the highest possible chance of getting what we want?

legodude17 commented 7 years ago

@Ocaff Maybe like 0.99?

Ocaff commented 7 years ago

Would 0.99 be much different that what stated above tho?

McJty commented 7 years ago

Well it would be different. The value above isn't as floating point isn't that accurate

Ocaff commented 7 years ago

Ill try that and get back to you then. the reason i tried with so many 9's was because we wanted to try and keep the amount of numbers the same as in the default config.

Ocaff commented 7 years ago

0.95 did'nt seem to freeze. so im guessing thats as close to a 100% ill get :p but yeah, then i know that 100% (1.0) is freezing the game.

MichaelHillcox commented 4 years ago

Thank you for taking the time to create this issue, as we're no longer supporting versions below 1.12, I'm going to go ahead and close it but if this bug seems to continue over to newer versions, please do report it again so we can investigate the issue further.