Last week I setup a server with thermos and essentials plugins, all looks good until I found some slightly tps drop. So I decided to change the essentials plugin to mod version to see if it works better, with the help of @quasi shadow it finally works and the server shows better tps performance, which I was looking for.
All the information about FE can be found on the wiki:https://github.com/ForgeEssentials/ForgeEssentials/wiki
#Forge Essentials works better than thermos + essentials plugins in my opinion
232 messages · Page 1 of 1 (latest)
any option to yeet plugins is a good one
until RFG gets forge buildable, the platform remains extremely difficult to update IIRC
Good to know. Also, another thing that helps TPS is to use a script to manage autosaving.
I built this script for my GTNH server specifically cause I noticed TPS spikes and discovered that the autosave was causing the spikes.
GTNH-2.3.0\ForgeEssentials\JScripting
// Primitive AutoSave FEJscript
//
var saveInterval = '300000';
setInterval(function()
{
var hiddenChatSender = Server.getServer().doAs(null, true);
Server.runCommand(hiddenChatSender, 'save-on');
Server.runCommand(hiddenChatSender, 'save-all');
setTimeout(function() {
Server.runCommand(hiddenChatSender, 'save-off');
}, 5000);
}, saveInterval);
var hiddenChatSender = Server.getServer().doAs(null, true);
setTimeout(function() {
Server.runCommand(hiddenChatSender, 'save-off');
Server.runCommand(hiddenChatSender, 'save-all');
}, 30000);
Server.chatConfirm('AutoSave Script Loaded!');```
doesn't java 19/17 versions fix autosave?
additionally there is any way to migrate essentials data to forgeessentials?
Good question, I am not sure. This was implemented long before Java 17. I don't really know if Java 17 would make this unneeded. As for migrating data, no, that would not be something that is possible. Keep in mind that FE is not designed as a clone of essentials but was build independently.
However, you can set up text formatting to look the same as your essentials version but it requires manual setup work with groups, etc.
Same with permissions, any groups that you have in bukkit will need to be replicated in FE's permission module.
I do agree, having a migration script would be nice, I just don't have the time anymore to make one.
i don't have ridiculously permissions apart super simple one, just i have some users that exceeds 100 homes but i will figure that out myself :D thanks for answers
Alright, fair.
One thing to keep in mind is homes are treated differently in FE. The design is that there is one home and then a set number of personal warps. (default max is 10)
functionally they behave the same.
FE stores personal warps in the World\FEData\json\PersonalWarp folder. Format is a json object.
ex:
{
"warp1": {
"dim": 0,
"pitch": 54,
"yaw": -270,
"xd": 250.5,
"yd": 100.0,
"zd": 120
}
}```
I'm using ftb mods to set homes up to 1000 and it has no conflicts with FE
fair
I prefer to stick with FE pwarps since they can be defined at a per group basic.
ex: Member group gets 10 warps, donator group get 100 warps
yeah FE is indeed more flxible
As for converting to FE, I would say up to the person and the server needs. And of course don't forget Crucible (a more up to date thermos) as a potential option.
FE is a great mod but it isn't the only option.
I think it would be possible to migrate data but you would have to build your own migration script to convert homes into pwarps.
i'm just no pay-to-win server/network and groups may benefits for someone else however everyone get equal chance. Thanks with additional informations i'm surely can apply some knowledge to format properly.
Yes, that was just an example but I agree with you. We don't need pay to win stuff (and mojangs eula doesn't like that stuff either).
@timid fulcrum
I tried Crucible+FE and my server performance went better again
Fair, just remember, FE isn't fully compatible with Crucible yet and not all things are expected to work.
Keep in mind when I tested FE with crucible 5.0 a while back it didn't work and that was why I made updates in 1374. I had it working in an earlier commit but someone had a PR that suggested a more robust way to detect for crucible but it didn't work and broke 1374.
I have heard that it works in the most recent crucible version but be aware that the there is a mixin collision that doesn't show up until you try to log in.
Since 1373 doesn't have any of my crucible fixes, I would not expect it to work and it might kick the player when you log in.
Basically, when I mentioned Crucible, it would be Crucible + Bukkit Essentials instead of Pure Forge + FE. FE is not designed to work with bukkit and doesn't have any integrations into bukkit permissions currently. Right now the goal is for it to not crash when loaded but it is not recommended for that environment yet.
Thank you for your suggestion, at least for now I don't see any unwanted bugs yet as we don't use the log in function. Hopefully we could see some more useful updates of Crucible and FE in the future❤️
NP. With the most recent dev build it is no longer crashing but it not recommended unless you wish to use the multiworld feature.
which version of crucible you went, i'm using gtnh thermos fork to work
I'm using the newest version
Do you have any issues with auto-save TPS spikes with latest crucible?
I didn't intentionally to check it as my server TPS is almost keeping at 20 right now, but I did used the auto-save scripts above provided by Spacebuilder2020
@quasi shadow I somehow get a new crash report while launching Crucible with FE
Check your start script. This looks like the error you get if the healer override property is not set.
-Dnet.glease.healer.patch_stage=POSTINIT
Also, keep in mind that 1373 doesn't support Crucible and when testing with older versions did not work at all due to a conflicting patch as well as conflicting libraries. It is a miracle it even works at all on reflux!
Got it, I guess I have to wait for the later fixes🥲
Fixes are out there, you just have to grab them from the dev-builds section.
It is interesting that FE doesn't crash with reflex but I imagine it might crash when you add a plugin...
It's still crashed and this is the crash report
Turn on safemode in your main.cfg! That code hasn't been removed yet since Cauldron is not officially supported yet.
Cauldron support is very new and we didn't support it at all in the past.
I have updated the code so it gives you more information. For now It will still require enabling safe mode but it won't print out a nasty message anymore!
Looks like I successfully launched the server, it shows lower tick durations compare to the forge server.
But the TPS is close but not be able to reach 20
xD
it's jumping up and down fast
Btw, check your libraries and make sure they look like this! #help message
If you add plugins and it loads in the hibernate jars normally it could crash things.
FE no longer needs the other libraries in the library folder since they are part of the fat jar but they may still be around as artifacts from 1373.
yea, basically undo the stuff you did to make it work with 1373
Cause FE will load everything in that folder even if it is no longer needed
and if plugins are loaded, cauldron might load it's own hibernate jar.
Crucible has it's own hibernate jar
And if FE's jar is in there, it could conflict with Crucibles jar
in older versions it would crash at boot
Got it
I think they must have updated it to not load the jars right away
but there is the still risk of a collision with FE's jar there
wait there's a file name playerlogger.h2
that is fine
it's 12.3 GB
that is your block logger
12 gb sounds big though
have you been doing a lot of block edits
like worldedit?
breaking and placing blocks
I didn't I guess
basically, the player logger logs every action a player makes
can I turn it off?
yes
it is a module
main.cfg
also, if you wish to start fresh, just delete the file while the server is off and it will start a fresh log
player logger works best if you are running a larger server
cause you can find out what happened
.i.e. player griefing a base, or an active transformer blowing up!
It's okay my server is just a small private server
fair
I kept it on mine so that we can find out if something greg went bump in the night
but yea, easy to disable
yeah I just disabled it
cool
feel free to delete the playerlogger files
and if you need it in the future, feel free to ask me for tips on using it
one thing you can do is do /pl lookup range 32 action blockDetonate to find any explosions within a 32 block radius
turning player logger off should have a small performance impact but not much cause it is already very efficent.
My players have found it useful to sleuth out the cause of an cascading explosion (active transformers). (turns out the wireless module went boom and blew up the entire network)
But yes, I agree it is overkill on a small server. (like mine, only about 3 active players on a whitelisted server)
does the playerlogger files reset over time? I think it's acceptable if it resets
I don't think so, however, it is incremental so 12 GB sounds like you had something making a lot of block edits.
I think on my server it is 15 gb right now
How long have you had FE on your server. I thought you only installed it the other day?
yes
logDuration = config.get(CAT, "log_duration", 0, "Days to keep data saved in the database. Set to 0 to keep all data indefinitely.").getInt();
like one or two days
here we go
log duration
it is a config option
by default it is forever but you can adjust it
PlayerLogger.cfg?
yes
also, perhaps disable player position logging or make it less frequent
by default it logs position every 5 seconds
let's give it a test^^
Cool
that should give you a little bit of a logger so you can check if something went bump in the night
but as far as logging, it basically logs everything (similar to prism) and can rollback areas as well.
So overall Crucible gives me a lower tick durations and CPU usage, but the TPS keeps jumping up and down in a very small area like 19~22
I also got this keeps spamming in the console xD
xD
Basically, Crucible is good if you wish to add plugins
otherwise you are better to not use it
I feel they have gone a long way to make it more compatable
But I personally go the pure forge route
I see, I guess I'll go the forge route too
don't know if java19 gives more TPS support xD
To be honest, I haven't noticed much of a difference
I think anywhere between 19 - 20 on average is good with GTNH
yeah it's indeed playable
Keep in mind that I have a server running on an i9 11900k and it still has TPS spikes from time to time.
My server is running on an i5 13400
Given the crazy stuff that those guys have been doing on it, I feel 44 ms is good...
xD
But yes, that was why I wrote that script cause I discovered the biggest spikes were during the autosave period
so, I adjusted it to save every 5 minutes
I then discovered that when saving was turned off, it didn't unload chunks
so that is why it also turns saving back on for a short period
is the script automatically loaded? I did put it in the JScripting folder
there's only a ZPM~UV base and a steam age base on my server xD
yes, it autoloads and prints out a message to the console. If you see that message it loaded.
But I don't know if it is fully compatible with crucible.
best way to check is to wait 5 minutes and see if it saves
Also, here is the start script I use to start the server. (it is a bit modified from the default with basic crash detection)
#!/bin/bash
export PATH="/cygdrive/e/Java/jdk-17.0.6+10/bin:$PATH"
java -XshowSettings -version
trap 'echo -e "\nCtrl-C Suppressed!" >> status' SIGINT
trap 'echo -e "\nStopping Server! (SIGQUIT)" >> status; ./stop.sh Panic' SIGQUIT
trap 'echo -e "\nStopping Server! (SIGTERM)" >> status; ./stop.sh Panic' SIGTERM
while true
do
if [[ -z $(ls ./crash-reports/) ]]
then
echo "Starting Server!"
else
if (grep -q "cpw.mods.fml.common.LoaderException: java.lang.NoClassDefFoundError: org/apache/commons/lang3/" ./crash-reports/*) || (grep -q "Could not initialize class org.apache.commons.lang3.StringEscapeUtils" ./crash-reports/*) || (grep -q "at codechicken.lib.world.WorldExtension.unloadChunk(WorldExtension.java:52)" ./crash-reports/*) || (grep -q "at net.minecraft.world.chunk.NibbleArray.func_76582_a(SourceFile:26)" ./crash-reports/*)
then
mv ./crash-reports/* ./old-crashes
echo "Known Crash Detected, ignoring..."
echo "Continuing in 5..."
for i in 5 4 3 2 1
do
echo "$i..."
read -t 1 -r -s -N 1 && [[ $REPLY == 'q' ]] && exit
done
else
echo "Server Crashed, exiting."
echo "Please delete / backup your crash reports and start again!"
exit 2
fi
fi
rm box_restart
java $MEMOPTS -Dnet.glease.healer.patch_stage=POSTINIT -Dfml.readTimeout=180 @java9args.txt nogui
echo "If you want to completely stop the server process now, press q before the time is up!"
echo "Rebooting in:"
if [ -f box_restart ]
then
rm box_restart
exit
fi
for i in 5 4 3 2 1
do
echo "$i..."
read -t 1 -r -s -N 1 && [[ $REPLY == 'q' ]] && exit
done
echo "Rebooting now!"
done```
wow this is huge
do you think java19 is helpful to server TPS?
I do want to try it too
Doesn't hurt...
oh..
Haven't really noticed an increase
I see
But TPS was already 20
yeah could only wait and see
I think Java 17/19 is good regardless since it is more modern
But I feel that the biggest gains are on the client
it launches a lot more faster?
I think so
it seems to launch a bit faster
[12:38:50] [Server thread/ERROR]: Command tp registered twice
So yes, a bit faster
Keep in mind though for Java 17 you will need to update to 2.3.0
there was a lot of stuff they did under the hood to make it compatable.
nah.. I have to pass 2.3.0 at least for now cuz I heard they nerfed a looot of stuff even time x64
I'll update if there's some new features or machines that can really luring my mind xD
fair
I only updated cause the guys who are active wanted me to update
(Also, I had to update FE so it was compatible with Java 17)
I am personally in LV so the updates don't really effect me much.
yes, also I have most lost interest for minecraft
Same, most of my teammates are all gone from the server
from this huge grinding pack*
xD
yes, I have a few folks who are crazy at GT grinding...
I just don't have time for it much
agree.. spending like several hundred hours setting in front of the monitors is also not that healthy TvT
xD... I think one guy works on his base when he is at work during meetings...
lol
But I get the sense that those meetings are the type of meeting that are not productive and a waste of time
As for 2.3.0, my recommendation is to wait until 2.3.2 has been deemed stable.
2.3.0 has a few bugs but 2.3.1 has more
@simple gust crucible already have their own autosave feature, make sure you use that one instead FE
does have some advanced rollback features eg, rollback items dropped by user (let say griefer)?
No, those features were never implemented. (there are todo's for dropItemEvent but it was never implemented).
Probally closer to core protect to be honest but it does log every block including entire tile entities.
prism is doing pretty okay apart restoring gregtech things..
yes, I think Prism has always been very good! FE is really for pure forge to be honest. I question sometimes why I made it work on thermos.
As for player logger, Prism was one of the inspirations a long time ago that caused me to submit a bunch of PRs to FE to improve the player logger. This ultimately ended up with a command that did the lookups based on a criteria and filter instead of just having a clock that only showed changes to a specific block. I would still agree that Prism is better but the intent at the time was to provide a function that was pure forge without the need for plugins.
I ended up not using it a lot cause the server owner where I was staff a long time ago first decided to replace Prism with Core Protect and then to switch to pure forge (Forge Essentials)
I ended up being the one to figure out how to set up FE and then some how managed to become part of the FE dev team... 
Not really the correct place to post this but as it is about forge essentials I was hoping to get some help with installing, I did what was posted in the screenshots renaming gtnhmixing and using 1373 version but the server seems to crash part way through startup. I have tried both java 19 and java 8 version but to no avail so was hoping to be able to get some help in this regards.
Ask this in #help
I have done this but with only a select few people able to help the message just gets swept over and lost in the world of #help
No worries, it’s not super urgent just someone on server is crying he can’t tpa.
What GTNH version are you on?
@dire swan what version of GTNH are you on and what errors are you getting? Post a snippet and I might have a solution.
For Java 17, you will need to use one of the 1.7.10 dev builds (available on FE's discord or downloadable from github actions) since there isn't a good built on curse yet but 1373 should work fine on Java 8.
Currently running v 2.3.0 from what I can see it is the same error on java 8 and java 19 although there isnt much info to it. It looks like the buildcraft mods errored with forge essentials.
I will try installing a dev version on java 19 and see what happens now though
Actually not sure thats the java 8 report. I tried a fresh install on java 8, all I did was install gtnh server j8 version, tested it worked. Installed a fresh version of forgeessentials 1373 and changed the gtnhmixins to start with 00
Does look like a different error
yes, this looks like the healer error. (second one). First one looks like Java 17... for that you will need an updated dev-build available from FE's discord.
Add this flag to your start script. -Dnet.glease.healer.patch_stage=POSTINIT
No offense but there no way your timings better then crucible / thermos lol
don't get me wrong vanilla forge is the way to go
but no one can claim to all of us large servers your getting better timmings then us 😛
This is towards the OP about better performance hehe.
And so Spacebuilder you know I love you this has nothing to do with you, I'm just talking about all these hacked horrible performance methods that should not exist yet they do and they help even though they should not ;P
fair enough. I would agree. It shouldn't have a significant difference in performance and the gap is probally worth it to get more functionality on a big server.
FE is more for smaller servers but powerful enough that with a lot of manual customization you can get something close to a bukkit server with lots of plugins.
Yup, I think FE decently optimized, it's more of the tile entity crap and all the hacks of thermos/crucible lol. That being said I know GTNH slowly trying to enhance GTNH itself to make it better so someday hopefully we can throw all that away.
xD, true
With FE, I think it would be cool for it to play well with bukkit just for compatibility reasons and cause I got tired of people coming into the discord asking why FE doesn't work with their bukkit solution, making it work with bukkit is not a high priority. I have other things I want to focus on first like the new discord bridge module I am working on...