#folia-help

1 messages ¡ Page 27 of 1

primal oyster
#

Sure

#

new Thread(()->

manic quarry
#

I would be more concerned about oreobfuscator

opal spoke
#

so right now is this good?

primal oyster
#

No it's not good

opal spoke
#

😢

manic quarry
#

enabling players to get bundles probably introduced like 9999 dupes

primal oyster
#

Is your map pregen?

opal spoke
#

im using a old version folia because my plugin do not support new version

manic quarry
#

are you good?

primal oyster
#

I asked him

viral stone
#

I mean, those thread settings are basically irrelevant at this point

opal spoke
#

regen for like 50k

manic quarry
#

they already said their map limit is 10mx10m

viral stone
#

The issue is that they have an region which is hurting

opal spoke
#

its fine its a spawn region

manic quarry
viral stone
#

then it's working fine

primal oyster
#

Then pregen your map

manic quarry
opal spoke
#

i already pregen my spawn region

#

i just want to know is my thread number goodenough

primal oyster
#

Yes, it's a suggestion for a better performance

opal spoke
#

and will it crash my server

primal oyster
#

Your spawn region has too many entities, it's laggy as hell

viral stone
#

does it contain the number of regions which are ticking?

manic quarry
#

just pregen 10mx10m bro bro

primal oyster
#

No you won't crash

viral stone
#

yes? then it's probably fine

primal oyster
#

And increase your thread to 24, see if you can get rid of those "20k" entities at your spawn point though..

manic quarry
#

if you want to fix the regions that have low tps, you might need to look into why are they that bad

viral stone
#

increasing to 24 is not going to help much

#

especially on windows

#

especially on a hybrid CPU

primal oyster
#

He has 100 regions

viral stone
#

Yes, and they're not using the full utilisation

manic quarry
#

yeah, that hybrid cpu is probably the worst thing there

primal oyster
#

In which some are likely consuming more than a thread only for themselves

manic quarry
#

e cores are fucking scam

opal spoke
#

oh

#

so a better idea is to change the cpu

#

whats the best cpu for folia right now

manic quarry
#

at least a good idea, those e cores are around 20% worse than a regular core

viral stone
#

well, other than your bad performing regions, your thing generally looks okay without any real actual context

opal spoke
#

ok so should i change the thread to 24 or not

viral stone
#

you only have 16 performance threads

primal oyster
opal spoke
#

a better performance is a better performance

primal oyster
#

24 will help.

opal spoke
#

and it will not crash my server?

primal oyster
#

but it won't fix your main issue

opal spoke
#

its fine

primal oyster
#

Why would it crash your server

opal spoke
#

idk

viral stone
#

it's not going to crash

#

just running into ecores is generally slower

opal spoke
#

ok then i change to 24

viral stone
#

you really need to make sure that your OS is updated, etc, etc

manic quarry
primal oyster
#

It doesn't make any difference

manic quarry
#

yes, yes it does

primal oyster
#

Yes sure

primal oyster
#

30k entities at a performance core vs a regular core

#

It's a lot better to have a region at 140mspt else than 110mspt

opal spoke
#

so at lest this is better than 12 threads am i right

primal oyster
viral stone
#

I mean

#

they're swerve balling adressing the actual real issues here

#

but, okay

opal spoke
#

ya because i cant really fix that main issue

primal oyster
#

But please get rid of the mass amount of entities

#

Why not?

opal spoke
#

so at least i can get a slightly better performance

primal oyster
#

Why do you need almost 30k entities there

opal spoke
#

idk player put them there

manic quarry
#

I would just add most entities to that one option that prevents loading of more than x of entity type in a chunk

#

can't recall exact name

primal oyster
#

I thought that was for saving

opal spoke
#

and iwill lower the spawn limit

manic quarry
#

but I'm willing to bet noone would notice if only say 25 entities loaded instead of 50 next time they laod the chunk

primal oyster
#

You should at least try to know why they need entities there

manic quarry
primal oyster
#

More than ever it's likely someone just spamming entities or just your mob caps like crazy.

manic quarry
#

next time they load the chunk there's less entities

#

it;s 100% someone spamming entities

#

there's now way natural spawning would get to that point

primal oyster
#

It could be farms

#

His sim is high, someone who knows how to build farms could really spam

#

But you know, he said it's a spawn point, who would build one close to a spawn point.

manic quarry
#

it's an anarchy server

#

people probably just trying to make it lag there

opal spoke
#

😢

#

i cant tract the specific location

#

folia dont support entity detection

primal oyster
#

if you had spark you'd see the chunks

opal spoke
#

do spark support newest folia?

manic quarry
#

there's folia branch out there

#

I used to use it like 2 months ago

primal oyster
#

It works good

opal spoke
#

where can i find folia branch spark

digital cedar
#

On the spark repo.

opal spoke
#

this one right

#

thx

wooden wraith
#

I’m currently checking out dedi’s for an event server, but the issue is that I cannot find a suitable CPU

#

As most high end ones stop at 16
Cores

#

For high cpu scores

viral stone
#

Well

#

you either pick high core count or high single perf performance

wooden wraith
#

Like a Ryzen 9 series cpu?

viral stone
#

not sure what you're asking there

primal oyster
#

also if you're checking redis, check datapacket out.

#

what kind of map size are you going to have on the event?

opal spoke
#

for folia which cpu is better, 14900K or Dual epyc 7k62

viral stone
#

depends on gamemode/player spread

opal spoke
#

anarchy SMP

viral stone
#

NUMA isn't exactly supported, however

#

idk what that entails in terms of player layout

#

like, if you have players close to one another, using a web server CPU is going to have regions hit their limit fairly fast

#

but, let you have more regions, because more cores

#

high perf desktop CPUs let you have regions able to tolerate more stuff going in them at the price of being able to tick less at once

opal spoke
#

more regions

primal oyster
#

its all about the player count and spreadness.

opal spoke
#

hmm

viral stone
#

well, just having more cores isn't going to magically make your players spread out more

primal oyster
#

example:

viral stone
#

Please read the readme

primal oyster
#

I can get this running on a 7713P (this map is 50000x50000), but I can't get this to run fine on a 7950x or 14900k

#

so you have to account for if you're going to have A LOT of regions or if you'd rather have less regions, all that depends on your performance tests as well

#

i'd never recommend using a 14900k unless you're just running pufferfish without any entiteis and the event is just pvp

#

outside of that it's not worth using it

opal spoke
#

thats true

#

so folia do not work well on duel cpu?

primal oyster
#

It's a mysterious environment.

#

I wouldn't expect it to work properly

viral stone
#

NUMA is not supported, so there is expected to be a small performance hit due to syncronisation across CPUs

opal spoke
#

okay so the best solution for now is 7950x right

#

wait 7713P

viral stone
#

there is no best solution

#

it's going to depend on your needs

opal spoke
#

okay

viral stone
#

and what you want to favour

#

at the end of the day, a region is pretty much its own little server

#

running those on a web CPU means that you're going to run into perf issues with individual regions fairly fast if you start having people building close together

#

on the other side, high end desktop CPUs have much less cores available, so overall, you're not able to support as many regions, but if you have a lot of players within individual regions going crazy, etc, those regions won't bottle down as fast

livid crag
#

cant wait for pedro to get those new hardware for test Kappa gonna need you to run a chunky pregen and see the numbers too

primal oyster
# opal spoke okay so the best solution for now is 7950x right
  • How large and HOW WELL spread out my players are going to be on the world
  • Will I have a lot of entities per region, or this is mostly intended as just a normal thing, without too much overhead
  • Will people build lots of farms in my server that will affect the performance
  • After testing bots on my event map, with my algorithm/function to spread out players, how many regions did I get, do expect to handle more?

Do I really need an AMD With more cores CPU?

And the most important question:
Am I using Folia because I want to be fancy, or am I actually seeing the big benefit here?

opal spoke
#

so if im having trobule with this one specific region, 14900k is better right

viral stone
#

well, as I said earlier, your biggest issue is the number of entities

primal oyster
#

no cpu will get you a miracle

#

accept that

opal spoke
#

🙏 okay

viral stone
#

but, well, going to a web CPU is generally going to make that region perform worse

opal spoke
#

i see

#

is my java flag good enough

primal oyster
#

64gb for 130 players

opal spoke
#

im using Shenandoah

#

and how much RAM should i allocate

#

for like 150 player

primal oyster
#

but they dont have it

#

i managed to cap that 7713p with that performance test

livid crag
opal spoke
#

should i allocate less RAM?

primal oyster
#

it's not going to make your MSPT -30

#

you do it if you think you don't need those 64 gbs

#

you want a serious talk

#

the seriouis talk is

#

get rid of those 20k entities

opal spoke
#

😢

primal oyster
#

no cpu will make you a miracle (at least on 2024)

#

Thats it

#

youre just gonna be wasting yours and everybody elses time by asking teh same thing over and over again

#

you got almost 30k entities in a single region and god knows what they are/for what

#

thats it

#

end of story

opal spoke
#

could that be possible causing by per player mob spawn

lucid thistle
# opal spoke for like 150 player

If you're expecting 150 players, I'm not sure why you're considering these enormous CPU count servers. A normal paper server can handle 80 to 100 just about. Making some simple assumptions that a region is equivalent to a server, you can handle that player count with just two regions - you don't need an enormously high thread CPU

primal oyster
#

add spark

#

generate a profiler

#

find the coords of the chunks

#

tp there

#

done

opal spoke
#

okay

#

i just want to know the optimize RAM allocation strategy for folia

#

its nothing to do with my 30k entity

primal oyster
#

you dont need to

#

you have 130 players

lucid thistle
# opal spoke anarchy SMP

If you're having issues with players not spreading out, you could create / find a plugin that spawns players in a random location over an enormous area, forcing natural spreading out. (assuming this is acceptable for an anarchy server)

primal oyster
# primal oyster

I had 128GB of ram allocated to this here,
just keep your 64GB if it doesn't affect you

opal spoke
#

okay

primal oyster
#

you'll likely not ever need more than 64gb, thats lots of bytes for you to use, and if you endup using, then congrats

wooden wraith
# viral stone depends on gamemode/player spread

Its a blend of SMP and factions. Where mostly players are spread out but there might be a peak of players in one location(but not all) at a certain point during the event(Like a claiming war etc)

viral stone
#

then you probably wanna lean more towards desktop CPUs rather than web server CPUs

wooden wraith
#

So a high performing 16c/32t

keen carbon
#

I am running 100 GB RAM for 60-70 players, but there are huge farms, I use all settings such as simu and distance at default and the world is endless.(30m) random teleport teleports them up to 500 thousand blocks.

primal oyster
#

depends on what you do with it

#

it'll usually not do any damages depending on the GC you use as well

#

It's better to have than to lack

wooden wraith
#

Say I have an event server, 500 players online at once max. Where one region will at one time only contain 150 players at a maximum(general approximation).

Now with a 16c/32t Ryzen 9 7950X3D
64Gb of ram. I also want to host a Live bluemap(pre genned) and a simple Postgres Database

#

Is that feasable

daring nimbus
#

the region with 150 players will run about the same as a Paper server would run with 150 players. So likely not great, depending on what they are doing exactly

#

ideally, reduce the amount of players in one region further

wooden wraith
#

Well going for 5 “factions”

#

With around 100 players each

#

Also will optimize as you’d optimize paper

#

I do not need most vanilla features

#

It has SMP elements

daring nimbus
#

if each faction has its own "homeland" or something, you could try to make that bigger so that each faction has multiple Folia regions

wooden wraith
#

But not that many

#

We aim for a large map

#

And have some fast travel feature for the gameplay

#

But there will be instances where 2 “factions” fight over certain territories

#

So it will be concetrated to a certain extend at peaks

daring nimbus
#

that sounds pretty cool. But especially then I would try to limit the amount of players in a single region somewhat, or disable additional stuff in the regions with the fights (like, all entities). Because in PvP low/unstable region TPS will be more noticable of course

wooden wraith
#

Ye

#

Mobs are not needed during such an “event”

#

Like you will have claiming days(during certain hours)

#

And just more “regular” smp days

#

To optimize for single region performance I’ll figure it out

#

And find good gameplay “excuses”

#

But its mostly about the additional postgres and bluemap server running on the dedicated machine

daring nimbus
#

No idea about Bluemap, but Postgres will depend on what that DB is actually doing. by itself it shouldn't be that bad

wooden wraith
#

Is 13 high performance cores enough

daring nimbus
#

Not really

wooden wraith
#

Because most high end machines with desktop cpu’s do not have more then 16 cores total

#

And I definitely need high performance cores

daring nimbus
#

Keep in mind there are also chunkloading and netty threads that will see some heavy use with that many players. The Folia tests ran on Epyc CPUs for that reason

wooden wraith
#

Do epyc cpu’s pack a punch for single region peak hours

#

At most we’ll spend around 200€ a month for a dedicated

#

As this event will run for about 3 weeks

daring nimbus
#

They just have more cores, single-core performance might even be slightly worse

wooden wraith
#

And we are also aiming for some sponsors

wooden wraith
#

Keep in mind no chunk gen & stuff like villages, strongholds and most survival elements except for the fact of being in survival mode are disabled

#

And we can even limit entities during peak events

#

Like no drops

daring nimbus
#

Issue is you are kinda in uncharted territory, there aren't that many people running Folia at such a large scale. the 7950 is an amazing CPU, I would only worry about the core count

viral stone
#

single core synthetics put many of the epycs on par with like 10 year old i7s

#

only synthetics so not the full picture

#

but, well, it's in that area of "it explains a bunch of how they act"

wooden wraith
#

Would a modern epyc cpu

#

Work for a single high activity region

daring nimbus
#

I would probably go with the 7950, but run BlueMap and that database on a separate machine

#

that seems like the easiest and safest solution

viral stone
#

Once again, epyc's single core perf is comparable to 10 year old i7s

wooden wraith
#

Should I keep like 1 core for the OS and stuff?

daring nimbus
#

yeah keeping a bit of space for the OS and unexpected load makes sense

wooden wraith
#

Primarily

#

I just do a basic SSH console

#

No pterodactyl

#

No other apps

daring nimbus
wooden wraith
#

And luckily I can optimize allot

#

As there are only a couple of external plugins

#

WorldEdit, WorldGuard, LuckPerms, BlueMap, Litebans

#

And maybe ProtocolLib and Geyser/Floodgate

#

So no bloated mess

#

And after that custom made plugin to do like everything since I don’t trust most public plugins to be thread safe

#

Say I go for 500 players(which highly likely won’t be reached at most times as its the maximum amount we’ll allow)

#

5 for netty threads, 3 chunk system io, 3 and then 4 for for ticking cores

#

But then again, the paper test ran on an epyc cpu which single core performance is much lower then mine

#

So I can probably scrape some additional cores

viral stone
#

yea, but they had player spread

wooden wraith
#

I’ll also have player spread

#

Like if I knew for certain my players will be at one location at a time, I’d never go for folia

#

For the netty cores the higher boost clock might just allow for less cores needed at all

primal oyster
viral stone
#

when you have 150 players in a region, that's not spread

wooden wraith
#

Pretty, I think for going with a 15kx15k map

primal oyster
#

^

#

15k x 15k is very small.

wooden wraith
primal oyster
#

a single goliath is 50k x 50k

viral stone
#

Well, yea

#

but, you basically can't optimally deal with both, essentially

#

you're likely going to have to tilt one way

primal oyster
#

dont do that

#

if you're talking about tick threads 4 is too little

wooden wraith
#

Look, for the peak hours of players being in a single ticking region, I can deal with it

primal oyster
#

4 threads is too little.

wooden wraith
#

I can also go for 90 players per “faction”

wispy moat
#

What is the current Folia version please?

primal oyster
#

check github

wooden wraith
#

making the total possible player count go to 450

wispy moat
primal oyster
#

you're not going to handle 450 players on 4 tick threads

wooden wraith
#

Meaning that peak players in a single region roughly will be 125

primal oyster
#

thats not how it works

#

The map doesn't create regions based on your world border

#

you can't just assume your map will have 4 regions

#

just because you have "4" factions

wooden wraith
#

Then, back to my original question

primal oyster
#

Folia creates/deletes/merges regions based on your view distance and the grid exponent.

wooden wraith
#

Most high end desktop cpu’s

#

At a maximum have 16 cores

primal oyster
#

IF you expect to handle 450 players,
go with an EPYC, customize the code of folia for region creation/merge so you get the change to at least have more regions on your 15k x 15k

#

is the 15k total or -15k to 15k

wooden wraith
#

The 15kx15k is not final

daring nimbus
#

only concern with an epyc would be the amount of players in a single region imo

primal oyster
#

I mean, since you're already going with folia, just write a custom code that your mobncaps can be lowered if the region has lots of players yk

#

dynamic options per "mass mspt usage"

wooden wraith
#

Map size won’t matter for the gameplay as I can introduce fast travels that supports the “events” lore

primal oyster
#

can you write code?

wooden wraith
#

Of course

primal oyster
#

ok

wooden wraith
#

I write most code myself

primal oyster
#

then go benchmark

#

thats where you get your answer

#

real-test scenario

wooden wraith
#

But just in case, what kind of cpu still has high single core performance(in case a single region might end up doing allot of work)

#

but has more then 16 cores

#

Since the netty io, chunk io and workers take up quite a bit

viral stone
#

pretty much none afaik

#

there is no demand for that kind of performance on the desktop

#

only really servers

viral stone
#

and pushing cores that hard is not worth it for the TDP capacity of server racks, or the energy efficency curve

inner swift
#

Maybe the new threadrippers

primal oyster
#

7713P and 7950x

#

the threaddripers are perfect

#

but you're likely not finding them anywhere for "cheap"

#

AT ALL

#

These things cost almost half of a tesla or something like that

inner swift
#

I wonder if it's even viable to find them at all lol

primal oyster
#

you're not getting one rented for less than like $2k/month

primal oyster
#

bare config on their website look it up

#

its like $2k and something min monthly

#

they even got dual 9754's

primal oyster
#

best

#

of the best

#

of the best bets

#

is to actually run a performance test my friend

viral stone
#

snake oil, but..

primal oyster
#

thats the real only way

#

lmao

#

we used the 7713Ps

#

check that one out

#

the threaddriper 7995 there

#

shows some real work

viral stone
primal oyster
#

@inner swift

#

^

#

buy a threaddriper for your desktop

#

its only like 50k BRL or something

#

CHEAP MAN! 😳

viral stone
#

Yea, that threadripper is pretty on par for single thread perf with recent intel and AMD desktop CPUs

primal oyster
#

just can't really find it mostly anywhere sadly

#

maybe in a couple of years

viral stone
#

wait longer enough and they'll be throwing them out with the entire rack

primal oyster
#

fgsand

wooden wraith
#

How can I test the netty io load

#

Without needing 500 players

#

Because since a desktop cpu single perf is higher

#

Maybe need less cores for netty

primal oyster
#

no

#

if you want 500 players you need more threads than just 4

wooden wraith
#

Mhh, you know what, I’ll go for 300 players

#

Its the first time throwing such an event(altho from a past client I do have experience with the managing part)

#

4 “factions” with 75 players each or smth

#

For future iterations if it gets popular enough

#

Can always opt for better hardware

livid crag
#

Id take Pedro’s advice seriously. He’s one of the few people who actually have experience running network of over 2000 people.

wooden wraith
#

I will

#

@primal oyster If you won’t mind I’d like to take our convo to dms

primal oyster
#

pay me

#

30 trillion dollars

keen carbon
#

me watching conversation

primal oyster
#

are you eating a hamburguer

#

and you dont even offer half?

#

...

livid crag
#

People offer their experience for free because they like the community. Going in DM sounds way more serious than it is doing it publicly rieThumbsUp

primal oyster
#

its about folia

#

its all knowledge and opinions

#

what i tell you may help someone and what someone else says here might help me at some point

#

it's like that saying

keen carbon
#

It's really interesting for me to hear this conversation from an experienced person like Pedro.

primal oyster
#

"when you're not paying - you're the product"

primal oyster
#

if you can start lower without ruining teh experience

#

it sounds like a better idea

#

but i still keep my suggestion

keen carbon
livid crag
#

|| if Pedro was experienced, he wouldn’t delete that DB… ||

primal oyster
#

if you can run performance tests on it with the "exact setup" then sure

#

^

#

being too speedy makes mistakes happen

arctic tapir
primal oyster
#

L Pedro

#

lmao

arctic tapir
#

also

wooden wraith
#

Lmao

arctic tapir
#

fuck you

primal oyster
#

dont tell me i deleted your 2 billions

#

his dirt house is gone 😳

wooden wraith
#

Well to be fair, I wish to go in more detail for what I am going to do

primal oyster
#

you can't go here?

#

there's mostly only devs

#

i doubt theres any configuration weirdo looking at this channel

wooden wraith
#

Have this whole concept

#

And will probably bloat this chat

primal oyster
#

more than often details make a huge diference on the solutions

wooden wraith
#

I can keep out more specific details, and focus on the technical details probably then

primal oyster
#

yeah

#

no need to explain the fun

#

just give numbers and metrics

wooden wraith
#

Let me grab me laptop

fair merlin
tacit tartan
fair merlin
#

If it's not directly help related.

#

Very very very few people have the time or interest to give help over DMs.

wooden wraith
#

I mean, I won’t even find it strange if they never release public build jars for folia

#

I can see that go wrong in an instant

primal oyster
#

maybe in the future

wooden wraith
#

Especially last couple days where I see how much thread safety I have to take into account

primal oyster
#

but explain more about the details and metrics

wooden wraith
#

Not only the schedulers

primal oyster
wooden wraith
#

Well for this iteration I don’t have a running build yet

primal oyster
#

whats the detais and metrics

wooden wraith
#

its more the idea

#

I hope to be able to do a proof of concept somewhere next week

#

When certain features are developed

#

Let me write a nicely formatted message

primal oyster
#

alright

#

put numbers on it please

#

lots of numbers

wooden wraith
#

Event Server

Main premise, it is a blend of SMP/Factions which will last around 3 weeks.
You got 4 factions each consisting of 75 members, which will have their own "homeland".
The goal is to "colonize" the most territories but not just amount but do it tactfully as certain territories have certain resource/gameplay advantages.

To colonize a territory you have to be with your team inside a "nexus" of that specific territory and the last faction standing claims that territory for the day(Not able to claim every day hence the "peak hours").

What this will mean technically is, that at most you'd have arround 100 players around a nexus at once(Taking into account that for the gameplay it is not a smart idea to have the entire faction defending/attacking one territory at once since their others might be attacked by the other factions).

fair merlin
wooden wraith
#

Also you can have a full war between 2 factions, in which both will probably split up into 2 groups and go to each others "homeland" nexus, but this will be a less resource intensive event due to the fact the total will end up being 75 in a single region max roughly

fair merlin
#

Since you aren't looking for actual help with a Folia server.

#

We'd rather keep this channel open for folks who may

primal oyster
#

he's talking about using folia

#

he's explaining the idea of what hes gonna use it for

#

but if you really care about that message here we can go in dms no problem

#

i dont mind

wooden wraith
#

It is primarily about technical advice

fair merlin
#

What sort of advice are you looking for? It might be helpful to outline that

wooden wraith
#

Well generally, cpu and core allocation

#
  • recommended map size/distance
#

And maybe possibly about stabilty + couple of 3rd party plugins I intend on using

primal oyster
wooden wraith
#

Most of the times ye

primal oyster
#

a nexus is basically like a "chunk"?

wooden wraith
#

Uh you can see it that way

#

Its a concentrated point of player activity

primal oyster
#

in terms of math

#

what kind of distance between players are we talking about there

#

do you know if you can have more than 1 region per "nexus"?

#

the reason im asking is because if a nexus is a chunk, and most of the people will always be playing there, you're better of with a 7950x.
but if you can have players spread out more across your map, a cpu with a good single core but more cores sound better suitable

wooden wraith
#

I plan to spread it out so that there aren't too many nexuses inside a certain distance of eachother

#

Well, during normal activity, players may be spread out more

primal oyster
#

if it doesn't affect your game, having the same faction with "multiple" nexus would be better for perfomrance since your chances of having more regions increase

wooden wraith
#

The nexuses only really matter during "claiming days"

#

or "war days"

#

other then that, general player activity will be lower

#

and folk will be spread out more

primal oyster
#

one of the kind of "solutions" that you can possibly work is, you can somehow classify "areas" close to the nexus as required for high performance, meaning maybe you can have a lower mobcap or so

primal oyster
wooden wraith
#

Thats a good solution, mobs won't really add to the gameplay anyways during those "peak hours"

primal oyster
#

it really depends if they're gonna be doing farms etc there or if it's mostly for combat

#

you can try to create a mechanic in your game where you kind of force them out of the nexus to grind for resources, that way you use more of the actual Folia goal

#

therefore e.c = > regions

wooden wraith
#

That is the goal

#

during the "grace period" or in general when no big events are happening

primal oyster
#

for the CPU, i think a 7950x will do the job there

wooden wraith
#

players will be doing more SMP stuff

primal oyster
#

you should pre-gen your entire map though

wooden wraith
#

Oh def

#

we are going for a custom map

#

based on the theme and lore of the event

primal oyster
#

yeah sure thats alright

#

simulation distance is the same

#

if you can dynamically modify the simulation distance

#

you also get more performance too

wooden wraith
#

well generally speaking, mobs won't be such a huge aspect of the gameplay

#

as there is no goal of going to the ender/nether those will be disabled in its entirety

primal oyster
#

the simulation distance still matters too

#

since it ticks chunks

#

most of the "fluid etc logic" is kind of there

#

if you can reduce those on peak hours without affecting the major of it, then you're good

wooden wraith
#

But with the 300 player cap

#

will 16 cores be enough(for the dedi)

primal oyster
#

Yeah, a 7950x will do the job

wooden wraith
#

keeping one core for OS

primal oyster
#

you dont really need to run math like that though

#

your netty threads have to be "somewhat increased" from the basic

#

and your tick threads still have to be the focus

#

You need room for ticking more regions even if on peak time you don't have as many

wooden wraith
#

6 cores for ticking?

primal oyster
#

don't go into the route of like "reserving cores"
5 cores for ticking
3 cores for netty

#

don't do that

#

That's math that doesn't apply to real-life

wooden wraith
#

I should let folia figure out what to use the cores for

primal oyster
#

it's "basic" but it doesn't work that way exactly

#

no

#

don't let folia figure out by itself

#

it'll not be good

#

i'll move this to dms

fair merlin
#

But obviously feel free if that's what you prefer

primal oyster
#

ill doi it here then

#

@wooden wraith

#

with 300 players or os it's nice ot have netty at 6 or more if you can, now the part of teh chunk here

#

if your map is actually pregen and youre not abusing view distance you can have your chunk io at 1 and your workers at 2 or the opposite, you can check the code to see what both do, just make sure youre using NVME and a good one so you get a good low latency on speed meaning fast reads,
make sure you don't use linear formats for reducing disk usage or caching with those thread counts unless you write your own format (ex: https://github.com/DonutNetwork/Blog/blob/main/WORLD.md)

wooden wraith
#

I assume I have to fork folia

primal oyster
#

now the ticking threads, usually people tend to make a simple math here, 1 core = 2 threads and that's what you assign there, this is nice, but be careful with this, the math doesn't apply so much because you're actually parking the threads targetting a specific nano time on the future, so le'ts say you have 33 regions but you got 24 threads, likely some of them will run behind at some point if at least one of your regions is already taking up more performance/resources than the others, and this will screw your MSPT

#

you don't have to

#

like I mentioned

fair merlin
primal oyster
#

if you WANT TO use a format like that then you make sure to read the md i sent because you'll get into latency/performance on loading chunks if you keep the basic linear format with a low thread count, and also extra memory usage for no reason really (you can see details why there)

fair merlin
#

You're probably much better off just using the default format.

#

Especially for a one-off event.

#

And especially if you aren't familiar with / haven't used any alternates before.

primal oyster
#

Now, there's something that happens (not sure if it still does.)

#

it's from the paper chunk system,
it's a task called ChunkLoadTask

#

this task, is supposedly to run ONLY in io threads, yet it doens't follow this rule exactly on all cases.

#

so a "performance" patch you can have, which will likely reduce your mspt usage here if players are loading a bunch of chunks most of the times is to have a (isTickThread) and re-route the void schedule() to the IO thread, this will likely avoid you doing IO on the region threads, which will likely save you even spikes too - worth doing because you are not keeping what we call low number of players per region.

wooden wraith
#

Mhh helpful info

wooden wraith
primal oyster
#

source code.

fair merlin
primal oyster
#

but you first confirm it happens to you

fair merlin
#

You shouldn't need whatever fix that is.

primal oyster
#

but I heard it happens on 1.20.4+ (some dev told me when I asked)

#

didn't confirm myself

#

i will do that when i get to work on the new project im on

#

maybe ill report that on paper

fair merlin
#

Yeah if Jake is using 1.20.6 source that shouldn't be an issue.

primal oyster
#

so thats been fixed?

fair merlin
#

There's a shitton that's been fixed since 1.20.2

primal oyster
#

IO sync?

fair merlin
#

Among other things.

primal oyster
#

well if thats so then thats awesome

#

but confirm to be sure 🙂

#

once its running you cant reload classes hahahaha

wooden wraith
#

Well I am aiming for a 1.21 release

#

not too sure about the current development cycle

#

as spigot is taking its neat time coming up with a solution to fix the Material enum without actually fixing it

wooden wraith
primal oyster
#

we have our own updating systems

#

but yes i do restart JVM from time to time

fair merlin
#

You'll want to stick to 1.20.6 for now.

wooden wraith
#

Well, remotely soon is off the table

#

as allot of stuff needs to be done still

#

All I have now, is an almost ported plugin that ran on a Paper 1.19 server for a client who initially did such an event

#

but since this is my own project this time, and since I am using Folia(Meaning allot of public plugins wont work)

#

There are allot of gameplay features that need to be coded b4 its done

#

And ready to officially start

#

For a fact I only started coding just about 1,5 weeks ago

primal oyster
#

well thats scary

#

specially for thread safety

#

im sure youll turn out to be a genius

wooden wraith
#

I am not the only dev

#

the other organizer who I am doing this with

#

also has allot of java programming experience on the hood

#

we both started programming in java for MC like 8 years ago

primal oyster
#

@wooden wraith also, @livid crag mentioned leaf fixed the chunk load task issue

#

so dont bother on that

wooden wraith
#

Neat

muted glacier
#

What is asyncscheduler and why can't you use bukkitscheduler and what are these commands about?

primal oyster
#

holy bro

#

you want a movie or what

inner swift
#
  1. The async scheduler is for tasks that can happen on a separate thread from the rest of the game
  2. Because the BukkitScheduler could interact with global state, since Folia has localized state, this has to be adapted to run in the correct contexts to interact with this state. For example, to interact with an entity, you can use the entity scheduler so that you'll be in the right context (the entity's region thread) to interact with its state
  3. https://minecraft.wiki/w/Commands
primal oyster
#

lmao

muted glacier
primal oyster
#

ill let you answer

viral stone
#

scoreboards are disabled in folia as they're global state

primal oyster
#

!wiki

tawdry gullBOT
#
Folia

Folia is a fork of Paper that adds multi-threaded region support. Many plugins will require updating to support Folia. There is no ETA for publicly available builds.

For more information:

Folia will:

  • NOT be backported to older versions <1.19.4
  • NOT be merged into Paper
  • NOT be ported to Fabric nor Forge

Stay tuned to #announcements for any further info about releases.

primal oyster
#

@muted glacier there some good information on the wiki and details

muted glacier
muted glacier
viral stone
#

probably not

muted glacier
#

ok, thanks for your help

solar relic
#
[23:41:09 WARN]: Region Scheduler Thread #2: Did not shut down in time
[23:41:09 WARN]:        at java.base/java.lang.Object.wait0(Native Method)
[23:41:09 WARN]:        at java.base/java.lang.Object.wait(Object.java:366)
[23:41:09 WARN]:        at java.base/java.lang.Object.wait(Object.java:339)
[23:41:09 WARN]:        at Spartan.jar//com.vagdedes.spartan.abstraction.e.a.a(SpartanPlayer.java:587)
[23:41:09 WARN]:        at Spartan.jar//com.vagdedes.spartan.utils.minecraft.world.d.H(GroundUtils.java:313)
[23:41:09 WARN]:        at Spartan.jar//com.vagdedes.spartan.utils.minecraft.world.d.a(GroundUtils.java:192)
[23:41:09 WARN]:        at Spartan.jar//com.vagdedes.spartan.abstraction.e.a.h(SpartanPlayer.java:376)
[23:41:09 WARN]:        at Spartan.jar//com.vagdedes.spartan.functionality.i.d.a(MovementProcessing.java:53)
[23:41:09 WARN]:        at Spartan.jar//com.vagdedes.spartan.functionality.i.d.a(MovementProcessing.java:39)
[23:41:09 WARN]:        at Spartan.jar//com.vagdedes.spartan.listeners.a.a(Shared.java:121)
[23:41:09 WARN]:        at Spartan.jar//com.vagdedes.spartan.listeners.a.g.b(Event_Shared.java:41)
[23:41:09 WARN]:        at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.execute(MethodHandleEventExecutor.java:40)
[23:41:09 WARN]:        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:77)
[23:41:09 WARN]:        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)
[23:41:09 WARN]:        at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54)
[23:41:09 WARN]:        at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:126)
[23:41:09 WARN]:        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:615)
[23:41:09 WARN]:        at net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1624)
[23:41:09 WARN]:        at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29)
[23:41:09 WARN]:        at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66)
[23:41:09 WARN]:        at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:56)
[23:41:09 WARN]:        at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$2(PacketUtils.java:102)
[23:41:09 WARN]:        at io.papermc.paper.threadedregions.EntityScheduler.executeTick(EntityScheduler.java:173)
[23:41:09 WARN]:        at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1636)
[23:41:09 WARN]:        at io.papermc.paper.threadedregions.TickRegions$ConcreteRegionTickHandle.tickRegion(TickRegions.java:407)
[23:41:09 WARN]:        at io.papermc.paper.threadedregions.TickRegionScheduler$RegionScheduleHandle.runTick(TickRegionScheduler.java:404)
[23:41:09 WARN]:        at ca.spottedleaf.concurrentutil.scheduler.SchedulerThreadPool$TickThreadRunner.run(SchedulerThreadPool.java:525)
[23:41:09 WARN]:        at java.base/java.lang.Thread.run(Thread.java:1583)```
#

how can i solve this issue

finite hinge
#

Uninstall spartan

#

Or go ask them to fix whatever is going on

solar relic
#
[23:47:18 WARN]:        at spark-1.10.60-folia.jar//me.lucko.spark.bukkit.folia.FoliaWorldInfoProvider$FoliaChunkInfo.getEntityCounts(FoliaWorldInfoProvider.java:120)
[23:47:18 WARN]:        at spark-1.10.60-folia.jar//me.lucko.spark.common.platform.world.WorldStatisticsProvider.groupIntoRegions(WorldStatisticsProvider.java:108)
[23:47:18 WARN]:        at spark-1.10.60-folia.jar//me.lucko.spark.common.platform.world.WorldStatisticsProvider.lambda$getWorldStatistics$0(WorldStatisticsProvider.java:55)
[23:47:18 WARN]:        at java.base/java.util.HashMap.forEach(HashMap.java:1429)
[23:47:18 WARN]:        at spark-1.10.60-folia.jar//me.lucko.spark.common.platform.world.WorldStatisticsProvider.getWorldStatistics(WorldStatisticsProvider.java:51)
[23:47:18 WARN]:        at spark-1.10.60-folia.jar//me.lucko.spark.common.platform.PlatformStatisticsProvider.getPlatformStatistics(PlatformStatisticsProvider.java:197)
[23:47:18 WARN]:        at spark-1.10.60-folia.jar//me.lucko.spark.common.sampler.AbstractSampler.writeMetadataToProto(AbstractSampler.java:196)
[23:47:18 WARN]:        at spark-1.10.60-folia.jar//me.lucko.spark.common.sampler.async.AsyncSampler.toProto(AsyncSampler.java:224)
[23:47:18 WARN]:        at spark-1.10.60-folia.jar//me.lucko.spark.common.ws.ViewerSocket.processWindowRotate(ViewerSocket.java:117)
[23:47:18 WARN]:        at spark-1.10.60-folia.jar//me.lucko.spark.common.sampler.AbstractSampler.lambda$processWindowRotate$0(AbstractSampler.java:152)
[23:47:18 WARN]:        at java.base/java.util.concurrent.CopyOnWriteArrayList.bulkRemove(CopyOnWriteArrayList.java:925)
[23:47:18 WARN]:        at java.base/java.util.concurrent.CopyOnWriteArrayList.bulkRemove(CopyOnWriteArrayList.java:917)
[23:47:18 WARN]:        at java.base/java.util.concurrent.CopyOnWriteArrayList.removeIf(CopyOnWriteArrayList.java:900)
[23:47:18 WARN]:        at spark-1.10.60-folia.jar//me.lucko.spark.common.sampler.AbstractSampler.processWindowRotate(AbstractSampler.java:147)
[23:47:18 WARN]:        at spark-1.10.60-folia.jar//me.lucko.spark.common.sampler.async.AsyncSampler.lambda$rotateProfilerJob$0(AsyncSampler.java:153)
[23:47:18 WARN]:        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
[23:47:18 WARN]:        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
[23:47:18 WARN]:        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
[23:47:18 WARN]:        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[23:47:18 WARN]:        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[23:47:18 WARN]:        at java.base/java.lang.Thread.run(Thread.java:1583)
[23:47:18 WARN]: Caused by: java.util.concurrent.TimeoutException
[23:47:18 WARN]:        at java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1960)
[23:47:18 WARN]:        at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2095)
[23:47:18 WARN]:        at spark-1.10.60-folia.jar//me.lucko.spark.bukkit.folia.FoliaWorldInfoProvider$FoliaChunkInfo.getEntityCounts(FoliaWorldInfoProvider.java:113)
[23:47:18 WARN]:        ... 20 more```
#

spark gives this error

#

and i am getting time out after 30-60 seconds

inner swift
#

We can't fix plugin issues

solar relic
#

i asked for just to make sure it is a plugin issue

fair merlin
opal spoke
#

i check the spark and there are no region shown entity

livid crag
#

I have a feeling that you don’t know how to read the report. Can you share the actual report than a screenshot?

livid crag
#

We do not do DM support here, it looks like you aint even using our software and we also dont support cracked server.

opal spoke
#

okay

abstract trellis
#

Is there any way to install datapacks?

#

I downloaded it but can't use the function command

#

Is there any way to use it?

wooden wraith
#

Are the worldedit and worldguard folia forks functional

#

?

#

Or are they not thread safe

thorny ivy
thorny ivy
wooden wraith
#

Well they technically do not fail

#

World edit did work to an extent

#

But it working, doesn’t mean its stable

thorny ivy
#

If you don't trust it look at the code to convince yourself or don't use it.

latent brook
fierce knotBOT
latent brook
#

please help

viral stone
#

This channel is for help with folia

#

for support with puffer, you'd need to use their discord

wooden wraith
#

Are aikars flags recommended for folia?

inner swift
#

¯_(ツ)_/¯

#

You can try, but ultimately you'll have to watch your GC performance and adjust

#

Other garbage collectors than G1 may make sense

pseudo meadow
#

how do you know if bukkit plugins will be compatible?

fair merlin
#

They have to specifically be built for Folia support.

#

So if they don't say they're compatible, they aren't.

pseudo meadow
#

even ones which dont directly interact with regions? i could understand crates or something but what about /spawn or something similar?

fair merlin
#

They have to be built to work on Folia, so they won't run by default, no.

naive fable
#

Crates would be something which would work with little modifications, /spawn would requrie more work

knotty egret
#

java.lang.NullPointerException: Cannot read field "captureTreeGeneration" because the return value of "net.minecraft.world.level.Level.getCurrentWorldData()" is null What exactly could be causing this error?

viral stone
#

Accessing world state outside of the tick threads

fierce knotBOT
fierce knotBOT
little sable
#

clone repo C:\

viral stone
#

use WSL, windows is cursed

inner swift
#

I wouldn't do special characters in the path

C:\Users\Артём\Folia

fierce knotBOT
viral stone
#

like, different tooling, but, first result for googling that garbled output

clever magnet
#

Trying to use local-built folia-api.jar as dependency in gradle project. The following error occurs. With online repository everything works fine. How to fix this?

carmine brook
#

Try adding mavenlocal repo

clever magnet
#

like this? doesn't work 😦

hexed ice
#

you can publish your own dev bundle to your maven local if you made any changes that you want to use

clever magnet
#

oh, ok. ty

calm fable
#

so now that paper 1.21 is out can we expect 1.21 folia within a month or so?

hexed ice
#

you can expect it eventually

loud crescent
#

paper is not stable yet and there is no eta for folia

calm fable
#

so youre saying theres a chance
😄 awesome

crude moat
#

hey we are thinking of developing our relaunch of our RP server on Folia, because of the better world handling and not everything being on one thread.
Before doing that I would like to just double check if Folia would benefit us:

We have a fairly big map: 500x500 blocks and it could expand.
We use lots of armorstands for vehicles and stuff like custom furniture etc.
Most of our plugins are custom (except stuff like worldedit, worldguard)
Our current player count is peeking at about 60 and we expect that to increase once we have the big relaunch

calm fable
#

500 x 500 would be just 1 region?

crude moat
#

it groups 1,024 chunks in one region?

arctic tapir
#

they're not minecraft regions

calm fable
#

1 region is roughly 2048x2048 blocks i believe

#

threaded region no?

wicked mantle
#

Folia regions have no set size

viral stone
#

the default settings generally require around 1.5k blocks between players to hopefully form seperate regions

crude moat
#

ah okay so would we have a big benefit from using folia then? since that would not happen on our map

wicked mantle
#

You'd have no benefit

#

Since you'd most likely only have 1 region

fossil vigil
#

500x500 isnt that big...

crude moat
#

but for lets say an SMP with unlimited world size it would have a decent benefit I am assuming?

arctic tapir
#

depends on how close players are to each other

wicked mantle
#

If the players are spread out, yeah.

crude moat
crude moat
loud crescent
#

surely you mean 500x500 chunks?

#

500 blocks is tiny

crude moat
#

no, lemme double check how big it actually is. uno momento

finite hinge
#

500x500 doesn't sound that weird for an RP server, it'd be like a city build or something

#

Paper would run it faster than Folia though

loud crescent
#

i guess but that is like 30 chunks idk

#

i dont see it

primal oyster
#

500 blocks os nothing 💀

crude moat
#

okay so I was misinformed, its actually 1700x1700 +/- a bit

finite hinge
#

Still not enough, that's going to be 1 region so Folia will just be a slower less functional Paper

loud crescent
#

Lots of armor stands etc shouldn't put huge strain on the server

#

client might have a rough time tho

primal oyster
#

there's another experimental software called shreddedpaper, try that

#

you're on your own.

loud crescent
#

no

#

dont use that

#

see if you actually have perm problems before thinking about this anymore

arctic tapir
#

yes

#

LuckPerms

loud crescent
#

do some research 😭

#

this took me 10s to find

#

it's still experimental and they're posting updates about it in their discord when there are updates

primal oyster
#

literally

#

whats the point of saying dont use that

loud crescent
#

not sure how to say it in a nice way but multipaper is just not very good!

#

he can use it if he wants, but there's no support here and i personally wouldn't recommend it

#

free world tho i dont care ^_^

primal oyster
#

yeah

#

I tried it and shredded paper is not multipaper but sure

#

this isnt about it it was just a suggestion

#

his event he does what he wants

#

im gone

loud crescent
#

It's the same thing as far as I know, just the 1.20.6 version

arctic tapir
#

this isn’t really the place to recommend random software

naive fable
#

When making servers with special reqirements its not important that the solution is good, but that is works. But yes multipaper is kinda hacky

arctic tapir
#

“kinda”

loud crescent
naive fable
#

well it does run

#

Most of the time

primal oyster
#

can't expect scalable software to work out of the box when 0.0001% of the actual community will use it.

loud crescent
#

It's just not made very well and plugin incompatibilities are much harder to see, there's no explicit compatibility like on folia and they just shim the methods with very strange behaviour

primal oyster
#

it's all a matter of how much you want to use it and how far you're willing to go

#

you can't expect a non-fully funded scalable software on minecraft to be open source and still have a huge documentation about everything unless whoever is doing plans on making it a big thing

#

it's just how life is.

loud crescent
#

sure, but just because they're doing their best doesn't mean it should be recommended :')

primal oyster
#

well if someone asks for experimental software othat they can use on specific projects and folia doesnt fit

#

ill always recommend what i think its a worth shot

#

#general - like everyone wants, here isnt a place for it anymore

#

but its over

#

@crude moat folia isn't for you if your event will be less than 3-5k blocks and well spread, you're likely still not gonna benefit with this setup as well, regions have merging functions and view distance, bit shifting here takes place, you're better off running raw paper at this

zinc vortex
#

I'm trying my best, can you recommend me

livid crag
#

The topic has already be dead. Let’s keep this channel about Folia.

solar relic
#

how much player can i contain in a single region with a 5900x

#

with 20 TPS

arctic tapir
#

You'll need to do your own testing

inner swift
#

Up to some less than Paper

#

Potentially getting smaller as you get more regions,, it highly depends

pseudo meadow
#

what do you use for permission and chat management in fiola?

loud crescent
mystic furnace
#

what does the grid-exponent do bc i tried experimenting with math to gain the min amount of chunks per thread but after some time the exponent didnt do what it should be doing or im understanding something wrong with this

#

and yes i also changed world sizes bc i thought the grid was relative to the world size

primal oyster
#

What the

viral stone
#

higher numbers mean more distance is required between players iirc

primal oyster
#

Are you crazy

#

Yeah

mystic furnace
#

like
World Size: 25000 (in server.properties)
exponent: 14

expected: the world is split so that a region is about 2,3 chunks ig

primal oyster
#

Grid exponent does >> exponent

#

That's like

#

I don't even know how many there

viral stone
#

regions are dynamicically sized and placed

primal oyster
#

That's 2^14 ?

#

For a single region

viral stone
#

it doesn't split the world up

#

please read the readme

mystic furnace
#

mb

primal oyster
#

No

#

It doesn't work like that

#

Region merges are determined by sections

#

The math of a section works with chunk x and z and bit shifting

#

The grid exponent is used for the bit shifting

#

It's >>

#

vanilla region formats use >> 5

#

That's 1024 entries

#

If you make the exponent 14 that's crazy huge

mystic furnace
#

so there is no way to like set a grid over the world and say that amount x of regions will be ticked by y amount of threads

primal oyster
#

No

mystic furnace
#

ah got it

primal oyster
#

There isn't by default

#

It's all dynamic

finite hinge
#

X amount of regions will be ticked by Y amount of threads, sure

#

You just don't get to control X

primal oyster
#

No grid

finite hinge
#

Or, well, you can influence it some with grid-exponent and game design

mystic furnace
#

will there be something in the future to manually set it to like play around and test stuff?

finite hinge
#

No

mystic furnace
#

mh

viral stone
#

Such a design breaks how folia works

finite hinge
#

You should read the rules of regions

viral stone
#

^^

tawdry gullBOT
#
Folia

Folia is a fork of Paper that adds multi-threaded region support. Many plugins will require updating to support Folia. There is no ETA for publicly available builds.

For more information:

Folia will:

  • NOT be backported to older versions <1.19.4
  • NOT be merged into Paper
  • NOT be ported to Fabric nor Forge

Stay tuned to #announcements for any further info about releases.

viral stone
#

the entire point is that regions do not have to deal with cross-interaction

finite hinge
#

click on "regionizing logic" in there, it explains why that question makes no sense

mystic furnace
#

thats where i got confused bc of my testing

finite hinge
#

You can't block regions from merging, that's why I said you misunderstood the fundamentals of how folia works

#

Blocking them from merging would immediately cause a crash

mystic furnace
#

So if entities are far away from each other if will use 2 regions instead of 1 correct? (or like more)

#

And the exponent tells it how far away the entities have to be to get a seperate region?

finite hinge
#

More or less, yeah

mystic furnace
#

So is the exponent expressed as an amount of chunks or blocks or a different thing bc i cant think of it as how it uses a plain number to determine a distance

#

bc it has to be something to be used in a expression

finite hinge
#

With the default setup if a player has no other player (or spawn, or a chunk loader, etc) within ~900 blocks of them they get their own region

finite hinge
#

grid exponent is the amount to shift in a rightward shift operation

#

Default is 2, yeah

mystic furnace
viral stone
#

it tweaks an aspect of the math which is used to determine how a region is grouped

finite hinge
#

Increasing the exponent makes regions larger, not smaller

#

It's already as small as it can go

mystic furnace
#

so as an example if i spawn 1k entites on platforms that are each 1k blocks away from eachother, they will all be in a seperate region?

#

and then all regions are split among the set thread amount ig

finite hinge
#

Entities don't load chunks so no, not really

#

It's about players, mainly

#

If you have entities on platforms 1k blocks from each other but have a player sitting in the middle 500 blocks from each they'll be in the same region because the player dragged them together via chunk loading

mystic furnace
#

there will be 1 player on each plattform too and nothing in between

viral stone
#

afaik it would be expected that those would be in different regions

mystic furnace
#

so it is garanteed ther is void between the platforms

finite hinge
#

It someone flies between them they'll merge and when that person leaves they probably wouldn't split back apart

#

You have to be further apart to split than you needed to be to merge

mystic furnace
#

no flying

#

trapped players xd

finite hinge
#

I'm just explaining the logic

mystic furnace
#

ik

finite hinge
#

Since you apparently won't read the link I gave earlier which answers these questions 😛

mystic furnace
#

u said 900 blocks

finite hinge
#

I don't want to do all the math for how you end up with about 900 blocks

#

It's based on the grid exponent and the regionizer logic

mystic furnace
#

i mean i will split the platforms about 3k blocks to be sure but u know what i mean

#

so it is garanteed to be seperated

#

thats the impotant part for this xd

#

btw can one thread be used in more regions and just be slower (bc of more load) or will it not work?

viral stone
#

yes

mystic furnace
#

ty

mystic furnace
viral stone
#

it's based on chunks

#

though, players are generally the only thing expected to be holding chunks

mystic furnace
#

thank you

#

but if a region is only ticked by one thread. why is it so that in the overworld i can only have about 4k entiteswith 100% util before tps break down and in the end about 6k with also never reaching 100% util? is this just because of the void or how is this possible

finite hinge
#

Different entities cost different amounts of CPU time

#

And their cost will somewhat be based on the terrain around them (pathfinding)

#

And the overworld has blocks ticking and such usually too

mystic furnace
#

then this difference is crazy high if it changes from 4k with 13TPS to 5,8K with 20TPS

viral stone
#

use a sampler

#

we cannot tell you

mystic furnace
#

yea i will ty

tawdry gullBOT
#

Paper 1.21 is still experimental due to following reasons:

  1. Several unapplied performance patches
  2. Waiting on anticipated experimental changes from Spigot
    Please subscribe to #announcement channel and wait patiently for updates!
There is no stable ETA

Updates to Paper do not have any sort of estimate for when they release, ever. Any and all updates will arrive when they are ready, and the only thing to do is wait for them patiently along with everyone else.

If you do decide to test the experimental builds, please make frequent backups.

proper saffron
#

Hello, just a short question, do you know if plugins like ViaRewind or ViaBackwards work with Folia?

fair merlin
proper saffron
#

yeah that makes sense, mb

grizzled karma
#

I'm wondering is there some way to get region's chunks exactly?

viral stone
#

the concept of regions is not exposed in the API

#

outside of iterating the loaded chunk list, if that's accessible

idle furnace
mystic furnace
idle furnace
#

😲

#

A Farm then?

tawdry gullBOT
#

Paper 1.21 is still experimental due to following reasons:

  1. Several unapplied performance patches
  2. Waiting on anticipated experimental changes from Spigot
    Please subscribe to #announcement channel and wait patiently for updates!
There is no stable ETA

Updates to Paper do not have any sort of estimate for when they release, ever. Any and all updates will arrive when they are ready, and the only thing to do is wait for them patiently along with everyone else.

If you do decide to test the experimental builds, please make frequent backups.

simple tundra
#

Just out of curiosity The disabled commands in folia are actually disabled features right? like there is no data packs?

primal oyster
#

No

#

They're still there

#

Most of them at least

#

It's the commands that aren't

#

Scoreboard and bossbar ik for fact it usnt

#

Reload shouldn't be used already anyways

#

And the team stuff isn't too

#

the world order can be done with API

#

Scoreboard can b done with packets

#

The functions at least for these two are there working

#

Scoreboard not so much but you can use something like fast board

simple tundra
wet arch
#

plugins have to specifically flag that they are folia compatible for them to load

tiny summit
#

it says in the github readme that every scoreboad things are broken

viral coral
#

scoreboard API is broken

#

scoreboard plugins that use packets for it will be fine

tawdry gullBOT
#

Paper 1.21 is still experimental due to following reasons:

  1. Several unapplied performance patches
  2. Waiting on anticipated experimental changes from Spigot
    Please subscribe to #announcement channel and wait patiently for updates!
There is no stable ETA

Updates to Paper do not have any sort of estimate for when they release, ever. Any and all updates will arrive when they are ready, and the only thing to do is wait for them patiently along with everyone else.

If you do decide to test the experimental builds, please make frequent backups.

lethal igloo
#

hey, i cloned folia on the github app, then after that I went to cmd and i did cd C:users on cmd, then i tried to compress then it fails, so i download git, now it says this error

daring nimbus
#

You must have git installed and available in your PATH in order to use paperweight

#

make sure Git is installed (not Github). If Windows, you may need to restart after installing git

lethal igloo
#

alright

finite hinge
#

Also put it in C:\Folia otherwise the patcher will fail because windows path limits are too small

willow moth
#

Hi, when could you expect that 1.21 will be supported for folia?

viral stone
#

between now and the heat death of the universe

fiery bobcat
#

can i use this in folia?

viral stone
#

if it's not marked as supporting folia on their resource page, probably not

fiery bobcat
#

So are there any territorial plug-ins that support folia?

livid crag
#

That's on you to search if you decide to use Folia

#

most big server has their own resource to make custom plugins for it.

fiery bobcat
#

thanks for help~

obtuse basin
plain shuttle
#

Very nice to hear that!

pseudo meadow
#

how can i execute for every player on the server in fiola? or do i have to do it by each region?

idle furnace
#

Do a loop on online players, and depending on what you want to do, it.may be required to use the player shcheduler

young smelt
#

How much of an uplift in performance can i except from going to paper to folia? Im currently running paper 1.21 on a 28 core xeon server and its not running great. Will folia run much better on server hardware?

inner swift
#

Well, note that Paper plugins aren't compatible with Folia, unless the author explicitly made a version for it

#

It depends on your player spread, if you have many well separated groups of people so that regions have low load, you could benefit from it

#

Separated as in, if two players are less than <900 blocks away from each other, they will be in the same region (though you should leave good headroom for freedom of movement)

pseudo meadow
#

how do long range dog tps work with folia?

bold osprey
tawdry gullBOT
tepid bronze
#

do Aikars flags also work for folia?

solar relic
tepid bronze
#

aight

twin spindle
#

Hi, if I has r9 7950x, how much I need give server?
threads or core?

twin spindle
twin spindle
solar relic
#

as i said as much as you can

twin spindle
solar relic
twin spindle
solar relic
pseudo meadow
#

if a folia region crashes will the whole server crash?

tepid bronze
#

Honestly, that is an interesting question

#

You mean complete hard crash?

pseudo meadow
#

as in frozen for over two minutes or so (i have no idea if folia would kill the thread from not being responsive atp)

#

how does folia handle desyncs or lag between regions as well?

finite hinge
#

Folia itself won't crash at first but as regions try to merge with that one they'll go down and any plugin that tries to wait for something to run in that region will stall so eventually the server will be running but not usable

#

Although I think when it tries to merge with a dead one it might just kill the server?

pseudo meadow
#

well isnt that nice

livid crag
finite hinge
#

A region running at 5 tps won't bother the rest of the server at all

#

Just, again, when another region gets merged in to that one it'll slow down too and any tasks running in that region's context will run less often

pseudo meadow
#

what do you mean merged? my only guess is when an region is unloaded it gets merged into the "main" thread or something?

finite hinge
#

When two regions are within a certain distance of each other they become 1 larger region

pseudo meadow
#

ah

#

thanks

pseudo meadow
#

what should i use for the worldborder if folia doesnt have a worldborder?

loud crescent
#

I believe chunky border supports folia

#

but please if you're going to use folia learn how to do research

#

folia is really really not aimed at the average user

pseudo meadow
#

thanks for the concern

#

is there a standard flags list for folia? will aikars flags work? or do they matter at all?

loud crescent
#

you can use aikar flags

pseudo meadow
#

so something like this?

java -Xms40000M -Xmx40000M -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:ConcGCThreads=4 -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1HeapRegionSize=8M -XX:G1HeapWastePercent=5 -XX:G1MaxNewSizePercent=40 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1NewSizePercent=30 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -XX:MaxGCPauseMillis=200 -XX:MaxTenuringThreshold=1 -XX:SurvivorRatio=32 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar {{SERVER_JARFILE}} nogui

no clue if i should be removing anything from this or what i should actually set the concurrent gc thread count to

inner swift
#

Monitor your GC stats, look into what the different flags do, as well as different GCs

#

You'll have to tailor it to your server's needs if it doesn't work

loud crescent
#

papers flag docs have an explanation of what they do

cloud jetty
viral coral
#

this is not folia

#

ask luminol

#
  • offline mode
cloud jetty
#

🫣

#

Same thing on folia

tawdry gullBOT
#

It appears that you are running an offline-mode server. We, as a community, do not provide support for setups that bypass Mojang's authentication. You are on your own to solve any issues that arise. paperPls

loud crescent
#

damn u switched to folia and re profiled quickly

primal oyster
lucid thistle
#

Is there any way of having additional worlds (non-overworld, end or nether) in Folia - particularly any stock plugins that handle this?

inner swift
#

The supported way is datapack dimensions

#

The unsupported one, if it still works, the MoreFoWorlds plugin, or something along these lines

tepid bronze
#

Honestly, I see a wide open marked for new plugins just for Folia

cloud jetty
tepid bronze
#

@cloud jetty might be because of the multiple thousands of item frames and armor stands

inner swift
#

You've already been told your server is not supported

tepid bronze
inner swift
#

Offline mode, they also switched from a fork to get support

marsh mapleBOT
#

(6695a3f72597e56e6a6b7682) // @cloud jetty (@wattguy / 326322535430094858) has been warned by @jagged ether (451779815415218177)
Reason: We do not support offline mode

tepid bronze
#

offline mode with bungee though? Or can you use online more on bungeecord?

#

Never used bungee previously

jagged ether
#

or at least infers from configs panda_shrug

inner swift
#

Yeah, if you see offline mode in Spark it's safe to say auth is disabled

tepid bronze
#

Yeah uh, but they run on a BungeeCord network. If that works the same way as Velocity, then it still might go through an online-mode proxy? Or is that not how bungee works?

jagged ether
desert sleet
#

Hi, does folia really use most cores to activate other chunks? Or just one core per world

tawdry gullBOT
#
Folia

Folia is a fork of Paper that adds multi-threaded region support. Many plugins will require updating to support Folia. There is no ETA for publicly available builds.

For more information:

Folia will:

  • NOT be backported to older versions <1.19.4
  • NOT be merged into Paper
  • NOT be ported to Fabric nor Forge

Stay tuned to #announcements for any further info about releases.

inner swift
#

In general, it'll use up to a number of threads if you have enough regions
Regions aren't fixed in size, they get created if players are far apart enough

#

Had to edit, was badly written

covert topaz
#

I am really looking forward to the folia core of the 1.21 game version

granite harbor
#

I switched the world from paper 1.20.02 to folia and it's like this, how can I fix it, thank you very much

livid crag
#

Your datapack is likely not compatisble to folia due to how it is made

primal oyster
#

Don't open an issue

desert sleet
hybrid shore
#

Read about folia and you will know why

unkempt harbor
#

/aternos/ kekw

timid grotto
#

aint no way aternos is giving people adequate hardware for folia for free

tepid bronze
#

Just saying

#

If it makes a lot of sense, that is a different question.

timid grotto
#

you can run it on a 1 core cpu

#

but if your cpu isnt good enough then it will run worse than paper

lucid thistle
#

btw was looking for benchmarks but don't seem to exist, are modern 8 core or 12 core CPUs feasible for a folia server with player counts of 100 to 400 players, in a SMP world. Assume sensible spacing

#

I know this is not the official line so looking to see if anyone has tried it out

naive fable
#

With propper configs that would be possible

fleet rock
#

i tried compiled folia, but not work

arctic tapir
#

full log

rustic lava
#

had same issue

tulip swift
#

hello is there tutorial for making bukkit plugins work on folia?

twin spindle
#

all okey with tps?

#

what is better?

  grid-exponent: 4
  threads: 16```
for ``view-distance: 16`` and ``simulation-distance: 10``
daring nimbus
desert sleet
#

Cant wait for folia 1.21

frigid sleet
fossil vigil
#

@viral coral

#

oh there it goes

hardy ledge
#

You can't use Folia with mods right?

inner swift
#

You indeed can't

young burrow
#

amy idea when 1.21 is coming out

arctic tapir
#

no

young burrow
#

ill pay cash to expedite

arctic tapir
#

considering paper 1.21 isn’t even out of snapshot

#

lol

young burrow
#

oh ok