Giter VIP home page Giter VIP logo

wyml's People

Contributors

cloudhunter avatar covers1624 avatar gigabit101 avatar jake-e avatar latvianmodder avatar thepaul-t avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

wyml's Issues

Should be Server only - 1.1.4 forge - Currently required on Client as well as dedicated Server

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.

Sudden TPS lag from WYMLRandom.get() exceptions

Modpack

FTB OceanBlock

Modpack version

1.3

Log Files

https://spark.lucko.me/NPNruWhWhB

Describe the bug

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?

Steps to reproduce

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.

Expected behaviour

TPS would be higher for the amount of players but now is noticeably lower.

Screenshots

image

Additional information

public static void generate(int min, int max, int total)
{
WYMLRandom.total = total;
curRandom = ThreadLocalRandom.current().nextInt(min, max);
randoms = new int[total];
CompletableFuture.runAsync(() ->
{
for (int i = 0; i < (total - 1); i++)
{
randoms[i] = ThreadLocalRandom.current().nextInt(min, max);
}
return;
});
}
public static int get() throws Exception
{
if (current >= total) throw new Exception("Too many randoms!");
int rand = curRandom;
curRandom = randoms[current];
current++;
return rand;
}

Spam after started

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

Why no fence gate when load loot table?

[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

Crash between WYML and RoadRunner

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:

@Overwrite
public void waitForTasks()
{
Thread.yield();
LockSupport.park(name);
}

RoadRunner:
https://github.com/MaxNeedsSnacks/roadrunner/blob/b64b781d1ca2c104664fd4277ce050b22128ce3b/src/main/java/me/jellysquid/mods/lithium/mixin/world/chunk_access/ServerChunkManagerMixin.java#L200-L207

[Bug]: Chunks load very slowly when the mod is installed

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

[Feature] [Improvement] Server side only mode with paper-bags disabled (not even registered)

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.

Floating entities won't pick up [MC 1.16.5] [Forge] [Mod conflict]

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.

debug.log
latest.log

Edit: Just to answer this question ahead of time... I tested this at spawn and 200 blocks away. Same results.

Overrides Torchmaster Mega Torch

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.

Animals can die if normalize pushing is true

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:
image

I managed to replicated this, here is an example with WYML's normalize pushing on, with exactly 30 pigs:

normalize_pushing.mp4

And here is an example of the normal collisions happening when the setting is turned off, with also around 30 pigs:

vanilla_collisions.mp4

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

Enhancement Request: Add an ignore list for ITEM_DESPAWN_TIME

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.

SpawnRules

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

Spawn values in plains.json from Terralith:
image

Fandom wiki page values:
image

No mobs controlled by WYML spawn on server at all

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!

[1.16.5] [forge] Add compat with Untamed Wilds spawn - WYML doesn't handle it well.

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!

mob ids:

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

[Issue to be fixed] Support for the TorchMaster mod for the FTB OceanBlock pack

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.

Is this right?

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
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.