thepaul-t / wyml Goto Github PK
View Code? Open in Web Editor NEWMy first mod...
License: BSD 4-Clause "Original" or "Old" License
My first mod...
License: BSD 4-Clause "Original" or "Old" License
On Quilt 1.18.2, WYML and Chisels & Bits together causes a crash. Removing WYMl or C&B fixes the issue.
https://bytebin.lucko.me/LEfb5pO5Ow
also visualstudio really doesnt like the comments in the generated jsons
When WhyYouMakeLag is installed on the server clients that lack it are unable to connect to the server.
"Failed to connect to the server" "Failed to synchronize registry data from server, closing connection" "Your client is missing the following mods, install these mods to join this server:" ... WhyYouMakeLag 1.1.4
Is there a true need for the clients to also have this mod? If it isn't shipped with a mod pack it can be a real hardship for less technical users to modify a mod pack. Worse if it's also installed on end user machines does the config need to be provided as well? That moves the goal posts from actual hardship to likely never worth doing.
architectury-1.24.35-forge
enhancedcelestials-2.0.9-1.16.5
wyml-1.1.0-forge
Can start the game, but crashes when entering the world.
Can it be compatible by modifying the config?
crash-2021-11-23_11.29.05-server.txt
FTB OceanBlock
1.3
https://spark.lucko.me/NPNruWhWhB
TPS has decreased quite a bit due to WYML mod encountering exceptions upon calling the WYMLRandom.get() method. Perhaps this method could be optimized? Or maybe for some reason WYMLRandom is being called a lot more than usual?
Not sure, I think I noticed it started happening after using inControl mod to block spawns of squids, then removing it. I could provide a world download.
TPS would be higher for the amount of players but now is noticeably lower.
WYML/common/src/main/java/net/creeperhost/wyml/WYMLRandom.java
Lines 13 to 35 in 2185c39
Too many lines in log. Maybe in debug level? Need reduce.
[22Dec2021 21:29:50.831] [pool-3-thread-1/INFO] [net.creeperhost.wyml.WhyYouMakeLag/]: Cleaned up caches, removed 0/0 Chunk SpawnManagers and 0/0 block spawn caches. [0]
[22Dec2021 21:30:00.832] [pool-3-thread-1/INFO] [net.creeperhost.wyml.WhyYouMakeLag/]: Cleaned up caches, removed 0/0 Chunk SpawnManagers and 0/0 block spawn caches. [0]
[22Dec2021 21:30:10.831] [pool-3-thread-1/INFO] [net.creeperhost.wyml.WhyYouMakeLag/]: Cleaned up caches, removed 0/0 Chunk SpawnManagers and 0/0 block spawn caches. [0]
[22Dec2021 21:30:20.831] [pool-3-thread-1/INFO] [net.creeperhost.wyml.WhyYouMakeLag/]: Cleaned up caches, removed 0/0 Chunk SpawnManagers and 0/0 block spawn caches. [0]
[22Dec2021 21:30:30.831] [pool-3-thread-1/INFO] [net.creeperhost.wyml.WhyYouMakeLag/]: Cleaned up caches, removed 0/0 Chunk SpawnManagers and 0/0 block spawn caches. [0]
[22Dec2021 21:30:40.833] [pool-3-thread-1/INFO] [net.creeperhost.wyml.WhyYouMakeLag/]: Cleaned up caches, removed 0/0 Chunk SpawnManagers and 0/0 block spawn caches. [0]
...
[22Dec2021 21:29:16.069] [Worker-Main2/ERROR] [net.minecraft.loot.LootTableManager/]: Couldn't parse loot table wyml:blocks/jungle_fence_gate
com.google.gson.JsonSyntaxException: Expected name to be an item, was unknown string 'wyml:jungle_fence_gate'
at net.minecraft.util.JSONUtils.func_219793_a(SourceFile:127) ~[?:?]
at java.util.Optional.orElseThrow(Unknown Source) ~[?:1.8.0_311]
at net.minecraft.util.JSONUtils.func_188172_b(SourceFile:127) ~[?:?]
at net.minecraft.util.JSONUtils.func_188180_i(SourceFile:135) ~[?:?]
at net.minecraft.loot.ItemLootEntry$Serializer.func_212829_b_(SourceFile:55) ~[?:?]
at net.minecraft.loot.ItemLootEntry$Serializer.func_212829_b_(SourceFile:40) ~[?:?]
at net.minecraft.loot.StandaloneLootEntry$Serializer.func_230421_b_(SourceFile:151) ~[?:?]
at net.minecraft.loot.StandaloneLootEntry$Serializer.func_230421_b_(SourceFile:129) ~[?:?]
at net.minecraft.loot.LootEntry$Serializer.func_230423_a_(SourceFile:86) ~[?:?]
at net.minecraft.loot.LootEntry$Serializer.func_230423_a_(SourceFile:74) ~[?:?]
at net.minecraft.loot.LootTypesManager$Serializer.deserialize(SourceFile:83) ~[?:?]
All exceptions
https://gist.github.com/SettingDust/9f16cb38308eb4ac11fd8e5bbc1042da
When server is running and there weren't any players for much time and when i join to the server then server does not respone and crashes. I saw that this happen when one or more chunks are force loaded.
Crash report: https://pastebin.com/masdPdFs
I looked some into code of both mods and found this lines responsible for this crash:
WYML:
Hello Paul,
I came accross an issue with WYML installed where chunks would generate/load very slowly. I was using a dev install of Plexiglass Mountain with a full updated modlist, stripping mods in batches of 20 to find the issue.
WYML miraculously made it to the end, with around 15 mods remaining after removing a lot of them. When I took out WYML, I noticed a significant improvement in chunk loading/generation.
All important visual information is on ticket FTBTeam/FTB-Modpack-Issues#1245 where I compare with/without WYML installed, with videos.
If you check the "tip" of where the chunks currently are loading/generating, you'll notice the difference right away.
Is this something WYML could influence and would it be fixable? I've attached spark reports from the videos to help further.
Having chunk generating at full speed would help the modpack's experience a lot, and this might affect the DW20 1.18 modpack too.
Let me know if I can be of any help!! Maybe to help you test builds if you need a helping hand
Thanks in advance :D
Re #26 , It should be possible to improve the performance of servers while foregoing direct client intractable items. If paper bags are disabled, the should not be registered and the mod should not advertise as part of the required server mods. This might become even more important as other features, overhauls, and optimizations improve the server performance for packs that don't happen to ship with this mod included and/or for evaluating multiple options to fix poor server performance without breaking changes / coordination among end users.
java version: 1.8.0_241
mc version: 1.16.5
forge 36.2.19
wyml-1.1.1-forge.jar
architectury-1.25.36.jar
performant-1.16.2-5-3.77m.jar
What happens:
Floating entities don't go into your inventory.
What should happen:
Entity pickup.
Oddity:
If there is already a floating entity when you enter the game, that will go into your inventory (just nothing newly created)
Steps to reproduce:
Load game with the above mods installed
Drop or break anything which results in floating entities.
Stare sadly at the unattainable items.
Edit: Just to answer this question ahead of time... I tested this at spawn and 200 blocks away. Same results.
Issue explained in: FTBTeam/FTB-Modpack-Issues#821
Another user has from testing found it works when disabling WYML
This mod seems to override the Torchmaster Mega Torch mod. An example is in the latest FTB Oceanblock modpack, you can place the Mega Torch down in a dark area and back up enough for mobs to spawn. When this mod is removed/disabled from the pack the Mega Torch works correctly.
Server simply won't start...
crash-2021-11-20_15.27.13-server.txt
If normalize pushing is set to true and you have a small pen and I think more than 24 animals (default entity cramming amount), the animals that are in excess will not collide with the rest and they will just take damage and die.
This can happen if you breed animals for example, one player of the modpack FTB Plexiglass Mountain once reported this to me with that image:
I managed to replicated this, here is an example with WYML's normalize pushing on, with exactly 30 pigs:
And here is an example of the normal collisions happening when the setting is turned off, with also around 30 pigs:
I do not know if this is intended by design, but I wanted to make sure it was known at least in case you see it as a potential issue! I've turned off normalize pushing to fix it for now
There's some items we don't want to despawn in the world, and it seems WYML can't possibly check the multitude of ways items set themselves to not depsawn. Could you maybe add a ignore list to the config file so we can add items like Botania's mana tablet, and AE2 fluix seeds from despawning.
We have the issue of that Terralith (Biome mod) changes the spawn counts of vanilla mobs from like 4 to 8 ( So double the count of originals )
I tried changing all the limits from 8 to 4 in the minecraft.json But still seeing random groups of 6-8 mobs spawn when flying around, but I am also seeing groups of 4 so not really sure whats going on
minecraft.json : https://pste.me/v1/paste/dYLSSlrAu84/raw
Hello, in FTB Plexiglass Mountain I think I've found an issue with WYML. This was the case on the beta server but also my personal server for my folks.
Basically mobs will stop spawning at some point, and a player will report that to me. What is weird is that it always happened when only one player is online. Today I've seen the conversation between two of my players (their names have been changed), here's how it went:
[17:24:14] [Server] Player John disconnected (Disconnected)
[17:24:18] [Server] Player Bob disconnected (Disconnected)
[17:24:29] [Server] Player John connected
[17:27:45] [Server] Player John disconnected (Disconnected)
[17:28:01] [Server] Player John connected
[17:36:31] [Server] Player Marilyn connected
[17:36:55] John: seems like no monsters spawning so enjoy
[17:37:00] Marilyn: oh
[17:37:24] Marilyn: interesting but isnt it daytime? or you mean its completely broken
[17:37:35] John: no natural spawning underground
[17:38:11] John: it's been like 10 min in caves no spawning
[17:41:22] John: oh it seems they've returned
[17:41:33] John: i guess you bring them back
[17:41:49] Marilyn: ah well
The config is this:
// The minimum amount connected players to enable pausing
"MINIMUM_PAUSE_PLAYERS": 2,
After John and Bob disconnected, the player count was 0. When John joined back, the player count was 1.
From that chat log, as soon as Marilyn joined, mobs started appearing again.
I have WYML's config to pause for 5 seconds at most and return to normal spawn rates after 50% of spawn checks succeed.
I have seen this before and there is InControl on the server. InControl spawns some custom mobs that aren't affected by WYML. When this problem happens, you can see InControl mobs on the map (Resource Creepers, Nasty Skeletons) but all the other mobs which are controlled by WYML don't show up. Therefore with my sightings and me being aware of what config I have, I think this is a bug within WYML's pause mechanism.
Versions:
Forge: 40.1.31
Minecraft: 1.18.2
WYML: wyml-forge-1.18.2-1.1.3a.jar
Full config file: wyml.txt
I think to work around this I'll put the minimum pause players to 1, this should fix it for now.
Thanks in advance for looking into it!
For a while now untamed wilds has had an issue with stabilizing their entity count. Recently the dev have done a bit better job with it but it still struggles on the server side and I would love if WYML could be more compatible with it!
The reason I'd love if WYML could take care of untamed wilds spawn is for various reasons but mainly because I love how well WYML does its job. The ticket on their github #4 was posted months ago and still has not had a solution for it since.
I've also taken the time to list all the mob ids so it could hopefully be a bit easier for the WYML team to address this issue and hopefully add better compat for it? Best regards, Cixon!
WATER_AMBIENT(s)
untamedwilds:aardvark
untamedwilds:arowana
untamedwilds:football_fish
untamedwilds:giant_clam
untamedwilds:giant_salamander
untamedwilds:shark
untamedwilds:softshell_turtle
untamedwilds:sunfish
untamedwilds:trevally
AMBIENT_CREATURE(s)
untamedwilds:bear_black
untamedwilds:bear_blind
untamedwilds:bear_brown
untamedwilds:bear_cave
untamedwilds:bear_panda
untamedwilds:bear_polar
untamedwilds:bear_spectacled
untamedwilds:bear_sun
untamedwilds:bigcat_cave_lion
untamedwilds:bigcat_jaguar
untamedwilds:bigcat_leopard
untamedwilds:bigcat_lion
untamedwilds:bigcat_marsupial_lion
untamedwilds:bigcat_puma
untamedwilds:bigcat_snow_leopard
untamedwilds:bigcat_tiger
untamedwilds:boar
untamedwilds:hippo
untamedwilds:hyena
untamedwilds:large_snake
untamedwilds:newt
untamedwilds:rhino
untamedwilds:snake
untamedwilds:tarantula
untamedwilds:tortoise
Right now according to my research, WYML does something that prevent the mod TorchMaster from preventing mob spawning correctly, its not something the mod author can change on his side see here Xalcon/TorchMaster#165 and it was confirmed once WYML is removed from FTB OceanBlock the TorchMaster starts to work like it should and prevent mob spawning in a big radius (usually 64 blocks around the TorchMaster location). Please can you do something about this.
What does the mod provide? What does it optimize?
I feel like 8.75% of the thread is more than it should be using
Spark
https://i.imgur.com/UoV9T4d.png
Default configuration from FTB Oceanblock
wyml.json
{
// Set the max amount of spawn tries base rate
"MOB_TRIES": 4,
// Set to true to multiply base rate by online player count
"MULTIPLY_BY_PLAYERS": true,
// Replace Mojang magic number (pow2) with this
"MOJANG_MAGIC_NUM": 17.0,
// Spam your console and make performance terrible...
"DEBUG_PRINT": false,
// Downscale the Mojang Magic Number by the online player count
"DOWNSCALE_MAGIC_NUM": true,
// If downscaling enabled, do not allow below this value
"DOWNSCALE_MAGIC_NUM_MIN": 10.0,
// Amount of nano seconds to wait for a task (Mojang default is 100000), thread locking uses the futex[https://man7.org/linux/man-pages/man2/futex.2.html] syscall on linux, causing a lot of syscalls when the value is too low
"TASK_WAIT_NANOS": 5000000,
// Enable Minecraft dataFixerUpper (enables you to upgrade worlds between Minecraft versions), disabling this stops the big ram spike at server start when loading existing worlds [ENABLE THIS IF YOU HAVE ANOTHER DFU CHANGING MOD!]
"ENABLE_DFU": true,
// Force Java garbage collector to run once the levels have been generated or loaded the first time (Frees up memory after the server is initially started)
"ENABLE_GARBAGE_COLLECTION_LOAD": true,
// Ensure the tick loop does not run repeatedly, waits until the next tick is due (reduce cpu usage on hardware)
"NORMALIZE_TICKS": true,
// Allow pausing of spawns in specific chunks
"ALLOW_PAUSE": true,
// Allow pausing of chunks claimed using FTB Chunks
"ALLOW_PAUSE_CLAIMED": false,
// Allow pausing of force chunk loaded chunks
"ALLOW_PAUSE_FORCED": false,
// At what what percentage of failed spawns should we then pause spawning in a chunk
"PAUSE_RATE": 65,
// How long to pause spawning if pause spawn failure rate reached
"PAUSE_TICKS": 1800,
// At what what percentage of successful spawns, after we pause spawning, should we resume spawning
"RESUME_RATE": 10,
// At what what percentage of failed spawns should we then pause spawning in a chunk in claimed chunks
"PAUSE_CLAIMED_RATE": 80,
// How long to pause spawning if pause spawn failure rate reached in claimed chunks
"PAUSE_CLAIMED_TICKS": 150,
// At what what percentage of successful spawns, after we pause spawning, should we resume spawning in claimed chunks
"RESUME_CLAIMED_RATE": 4,
// The minimum amount of attempted spawns of a type in a chunk before we allow pausing
"PAUSE_MIN": 256,
// Allow slowing of spawns in specific chunks
"ALLOW_SLOW": true,
// Maximum spawn requests per chunk per tick based off average spawn rate in sample spawn rate
"MAX_CHUNK_SPAWN_REQ_TICK": 12,
// How long to stay in slow mode after spawn rates are under control
"SLOW_TICKS": 600,
// How many ticks to sample (and average) spawn rates over
"SAMPLE_TICKS": 5,
// How many ticks to remember if we fail spawning in a block position
"SPAWNLOC_CACHE_TICKS": 400,
// How many ticks to store a SpawnManager for a chunk after it's last update
"MANAGER_CACHE_TICKS": 600,
// Disable this once you are happy with the configs you have and their impact on memory. This will print how many SpawnManagers and SpawnCaches we have at once, every 10 seconds.
"CLEAN_PRINT": false
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.