#server-plugins-read-only
1 messages · Page 18 of 1
they said source will take a while after release for legality stuff
I don't think so?
"We will provide server source code access within several months, once we're legally ready to do so"
well, officially yeah, but server is going to be released without obfuscation
you can decompile, read and recompile
yeah but thats a decompilation not source
you can read the .class files as they are in the project
yes by decompiling
its not releasing source 😭
xd
its getting src yourself
better be on gittea 😭
Yeah them releasing code as intellectual property and you opening recaf are different
Your decompilation won't include the comments and maybe doculentation they will release along with the source
It's not, class files strip local identifiers, comments, and decompilers use their own formatting, not the original formatting
we need the build.gradle
Actually does the server have any deps?
wha
Hopefully it doesn't
My guess is no dependencies, but depending on how riot/original dev team went on the server development.
Riot probably only interfered with the cpp ver
If it has deps it'd be annoying to build, in which case getting the build files would be nice
I don't see a world where it has zero external dependencies, I would be surprised it it doesn't use netty even tbh
Build Hytale Server Speedrun
Actually I haven't used java in a while, what is inside it's standard lib and I can import without deps
Surely it has basic tcp/udp network code in it?
Yes, it does, but it's not the easiest to build off of and you save a *lot* of time and effort by using something like Netty or Spray
Already covered by java dot net and java dot io packages so at least the network part is covered
if i had to guess, probably netty
If they didn't reinvent the wheel as well I would say Netty. But even if we have to build it, usually Gradle/Maven are really quick
I don't see why, all u really need is listen on a port, accept conns in a loop, spawn a green thread to handle the conn, then read/write raw bytes
What does netty do that makes this easier
netty is already used in production everywhere and its fast
why make a car from scratch when people already make it
- If the car sucks
- For learning
- So if something goes wrong with ur car, u can fix it yourself
if something goes wrong its user fault 😭
In the most part yes, listen to a port for different packages. But reinventing the wheel from 0 and trying to do what already a framework as Netty do is just waste of resources and time.
and netty is open source
hopefully they integrate cryptocoins somehow
No? Car mechanics exis
??? 😭
If you want to build a car from 0, the time it takes to build it and the cost would be really far from buying a car or asking the fabric to produce one for you.
For cars maybe, but for code it's not always the case
if it does they are shipped with the executable and you can just hard link to them
This has 0 explanation for what netty does that is useful compared to built-in java
For building from source
netty been tested to hell for a decade
yes
its enough for a game server 😭
Handles TCP framing for you
Handles the connection lifecycle for you
Handles backpressure for you
Has an optimized event loop that's been battletested for a decade (Minecraft client and server uses Netty)
It's buffer management is extremely efficient (it's effectively magic to me though)
Tons of builtin codecs, though most of them aren't useful for something like this
etc
Yes, you will learn how to make a car (code) , but it wont have all the reliability of a car designed by experts on focusing only the car (in this case, developers focues only on a framework for Network). You would reach the reliability of Netty one day, but after some insane time to build something that, well, already exists. Unless your solution is better than Netty, which I dont say is imposible, it would justify the effort. But even with the justification, the time to pull that off from 0 would ate Hytale development
So did the java built-in net package (whatever that is)
you wont believe how netty works
In very simple and complex applications you can get away with using the builtin NIO, sure, but you don't gain anything at all and will reinvent like 40 wheels
I think you are mixing concepts here, Java net package gives you the tool to do it from 0. Netty gives you already all the structures, backplate, algorithms and everything that you need for the network server that you want to build, and guess what? Netty uses Java nio package
So mostly for more packet management that is optimized? How does the interface differ from NIO? If it manages back pressure and stuff, I assume it needs some knowledge on the packet format (so it can distinguish between 2 separate packets)?
nio doesnt optimize, thats why netty exists
I rolled my own packet framer in go, it's not that hard and only took a day or two to implement, for back pressure I just dropped packets once a queue was full, alternately I could've also blocked but in my case dropping was the better choice
ok but for a game running on a mass amount of clients/servers, it's better to use something you already know won't cause problems
i.. i'm not even going to bother, really, lol
"i made a packet framer so everybody should" is the argument
No? I have no argument, I am just trying to understand why would someone use that
so you can make the thing you want
not waste time on the network behind the thing you want
Why even use a processor honestly
why would someone buy a cpu when you can make your own
Precisely what I'm getting at vops you get it
What protocols do your packet framer support? Is it thread safe? Against an already developed packet framer, is it better in performance? Could you warranted that your solution is ready for live production environment? What about the support? Does it have documentation available?
It doesn't take that long, so it's mostly a tradeoff between complexity vs benefit it gives, and I haven't used it, so I didn't know about the benefits (so I asked and Lilian answered)
Hold my transistors there
how long does it take to ensure that its compatible with all users, safe from exploits, etc
Netty being developed since 2004
why dont just build another framework and you have 24 frameworks competing
Whos older Netty or Kyren?
JSON and msgpack, and can be expanded easily, it's just the 2 that made the most sense for my project, yes the entire protocol is documented, it is thread safe
And I was running it on my own vps running the server for the project
I didn't compare perf with anything else bcz I had no reason to, but it can probably scale to 1k+ connections (I don't have that many users, so I can't know for sure)
It's what I used for data serialization
thats so different from what was asked though aint it

🍿
Now I was of the impression that they had implemented hot reloading, even for mods. Is that true?
says so in the modding wiki
That's nuts. I can't wait to try it out.
though im not sure how official or confirmed the wiki is
but iirc its knowledge base from QnA and other posts, blogs and comments
Something tells me that the JVM is relied heavily on in order to get hot reloading for mods. Windows processes don't usually like it when you start rewriting their instruction RAM midway through. But with the JVM, it's much more forgiving since it's all technically data-driven.
i mean you can already hot reload stuff pretty well when making stuff for fabric
If they use netty for the server, it'll be very interesting. The quic codec of netty is still in incubator state. I guess Hytale will battletest that part.
evening all
Do we know what protocol servers will support already?
No, only that it'll be QUIC-based
Thanks. Need to start planning these updates for my server list site. 😅
There's like 20 people making automation projects. I hope we all can just work on a few good ones
Battle royals are more fun though
The server software will come with the release right?
Yes but the source won't be available at launch yet, that will follow some months later
Will the backend still use Java?
Yeah
Thanks!
I don't get this. Why would they do this. To torture me?
Using java?
exactly
What would you prefer?
Well I assumed they would use c# since they claimed to have used it to build the game. So why the second language that is similar to c# but worse in every way at least I can think of it?
The client is written in C#, but the server in Java
I honestly think Java is the best option we could’ve gotten, so many Minecraft mod and plugin developers can start creating content from day 1
+1
Well I disagree here. Introducing old stuff into a new project just because many people have started to enjoy their torture chamber does not sound fun to me.
But I see your point.
what thing from java is exactly painful for you?
To be fair if the base is java you are free to use Kotlin instead of java and I would argue that kotlin is even better than C# for most people
"old stuff"? Java is very much still in use, also outside of Hytale. But eh, you can also use alternative JVM languages like Kotlin (which I use personally).
Java came out 5 years before C#, and they're so similar anyway. I really don't get the argument. It might be personal preference, but they're practically twins.
Well apart from some personal preferences, mainly the tooling is painful for me.
Wooowww, okay I dont want to start a programming language war. But java has by FAR the best tools and ecosystem of all the programming langauges (maybe js is better, if npm was not there)
And like I said there is still Kotlin which can be used
Intellij has one of the nicest debuggers i've seen
Every language is a tool, pick the best tool for the job.
There is a huge difference between them nowadays, C# has passed java in terms of programmer friendliness but java is catching up since they commited to do 2 releases per year
But some features are still lacking, like where is my null safety?
Another thing is that there's plenty of existing large plugins that are built to be platform-agnostic (e.g., LuckPerms) so porting something like that to Hytale wouldn't be impossible
You're always free to create your own server implementation in C# or whatever language you prefer later on.
yes by far
maven my beloved
I am disgusted
And profiling tools
were not in java 8 stone ages
I feel like they're still pretty similar. Both are missing some features the other has, but I'd agree they're both great languages. If you ask me, it's just personal preference.
Why though? What specifically do you dislike about it?
I don't prefer the choice of Java over C# either but it's perfectly logical why they chose it
id say i dont care.
as long as its a language which is readable (not rust or python) i will write in whatever i need to
give me cpp modding
I suppose nothing would be stopping you from making your own JNI+JVMTI based FFI ;p
I would prefer the server to be written in Haskell, so that I can justify taking a 10 year course in Monads, but you can't have everything 🙁 /s
Give it some time, there'll probably be plenty of community server implementations or something like "Skript"? eventually. 
god my message just got censored and i dont see what couldve triggered it
cyrillic symbols are. for real?
🤣
anyway, i forgot what i was saying
right.
server being written in java saves us the unbearable reality of most gaming servers - windows servers.
and while c# can be compiled for linux, the process is much less versatile compared to what java offers
something makes me doubt itll come out as a ready to use docker image either
You will be fine
A ready to use Docker image would be nice, but is indeed unlikely. Though dockerizing something is usually not too big of a deal.
Pterodactyl egg will be out on day 1 by the studio or the community so don't worry about deploying it
Someone will probably have a docker image and pterodactyl/pelican egg made in an hour of its release lol
pterodactyl bad bruh
I have 0 coding experience outside of making user lookups in Neopets. How do I get up to speed in a half and a half.
Effectively every managed hosting service within the Minecraft community uses pterodactyl or a fork of it as true as that may be
Try to understand java basics and then learn OOP
Hey guys, any official docs available yet?
Not yet
Nope, the game has not yet released
thanks
It'd be pretty similar to Minecraft modding, learn java and then spigot plugins, I think "Kody Simpson" on YouTube has both a java and a spigot series u can watch
Although spigot is Minecraft specific, Hytale will most likely have a similar API with event listeners, runnables, etc
I wouldn't worry at all about OOP (and imo it's a bad way to program)
What do you suggest?
Wdtm
Like don't you follow any patterns when you are coding
Yes, my own patterns, not some random arbitrary patterns that don't even work
I imagine it's going to be a lot of figuring out
Alright
Java is OOP. It's not optional. 👀
But Kyren is right, find whatever works for you, whether that's YouTube or a book, and start learning the basics.
Learning Minecraft plugin programming will almost certainly benefit you for Hytale.
I fail to see how you cannot do OOP when you use an OOP language :p
Writing Java without using a class is quite difficult
Thanks a ton!
static abuse
🤭
Yandere 2.0
I guess OOP has very overloaded terminology, so let me clarify
OOP for me is
- Inheritance/interfaces
- "Design patterns"
- Polymorphism over switch statements and enums
- Over abstracting to hide details

10 levels of inheritance is indeed a nightmare, but composition (through interfaces) is not so bad. Design patterns are quite useful to structure your code, but you don't have to use all of them all the time, sure.
Things that make coding more scaleable and efficient = bad
I don't have to do all these things in java, java encourages OOP, but u can write code without these
you have misconception of what is oop
like i totally agree that factory builder factory is a joke in a context of minecraft plugins
From my experience it makes them less scalable and less efficient, especially if we r talking efficient in terms of performance, virtual functions r slow(er)
I think that's the common definition I have seen others use, if u just mean a function that has a specific class as the first argument and u can do foo.bar() then that's fine
How many times are you calling? I’ve experienced negligible impacts to performance. Then again I don’t normally do large projects in Java.
That's just overengineering. Java is still OOP no matter how you write it.
Look up "clean code horrible performance" if u want to see the performance aspects, but honestly ppl who use java are not really concerned about this level of perf
Programming with only OOP in java has made me a considerable brain rewiring
we live in an age where people throw hardware at optimization problems anyway
What's overengineering? (As in what r u referring to)
I'd say even 1 level is bad enough to personally never use inheritance
Also composition is just adding a field, it's not related to interfaces
Some design patterns are reasonable sometimes, but thinking in terms of them is usually bad (instead do stuff the straightforward way and let patterns emerge on their own)
The things you listed. Forcing design patterns, deep inheritance, and excessive abstraction is overengineering. But that's not what OOP is, that's just bad OOP. You can use objects simply without all that bloat.
Maybe i did not understand what you wanted to say. If so, i apologize. 😄
I don't really agree with this take personally, it is a bit short-sighted. I have written plenty of Java in the past 10 years or so, if I didn't use any "OOP" or design patterns, I would argue that the maintainability of the software I wrote would be much worse. Design patterns were created for a reason, but you should use them where they make sense. And you don't have to create 10 levels of inheritance to structure your code "properly". I personally try to stay clear from inheritance, but sometimes it suits a use-case quite well.
^ Agreed
Yea I think we mostly agree, it's just that I am more extreme
I never use inheritance
I only rarely use interfaces
I don't create stupid stuff like singleton/factories etc
I don't base my architecture on design patterns (but some may emerge naturally)
I basically never private a field and I only wrap with getters and setters if there is a concrete need
My man, hytale server code will be design pattern massacre. I hope you can stand it.
Personally design patterns makes my job much easier but you don't have to follow them
That's fair, if it works for you and you can maintain it, go for it.
Source isn't available yet so not sure where u got it from
Also so does Minecraft, but it doesn't leak that much to the API itself, at least not in ways that are overly annoying, and I can still write my own code the way I want so I am fine with it
This, not every problem requires a design pattern as a solution, but some problems have really good fits for them
Yeah I'm just saying if you ever want to inspect it
Ye scrolling through factories and hierarchies and jumping to virtual functions ain't gonna be fun, but not much I can do
Thanks for the chat. Good night y'all.
Add LuckPerms
Port Luckperms, don't just 'add' it. LuckPerms is perfect as-is.
And if Hytale has a permission system, mod it away for LuckPerms...
I really want to see some alternate Fast-Travel like plugins.
Give me rail systems that let you 'time-skip' / teleport the players far ahead.
Give me Stargates.
Give me Nethers.
Give me Mounts.
Give me Flying.
Give me Flight Points from WoW.
Give me Valheim like portals.
Such an open design space.
Give "elegant objects" a read over. It really highlights some of the ways that OOP was misinterpreted.
I don't agree 100%, but funnily some of the Java 20-25 validation features work really well with it.
The various talks are a little bit crap, but once you understand the core message, and are willing to use more abstract objects and violate the SRP principal, you can end up with some really elegant code with it, even if tightly coupled.
Will we be able to run servers on the 13th?
yeah
Do we know if hytale plans on staying compatible with the latest releases of Java for the future or will it stay Java 25 and not update with Java updates? Cause minecraft is only on Java 17 i think
How do we know?
Simon has said servers will be available but the source wont be for a few months
Minecraft has moved with Java versions, I see no reason why Hytale wouldn't do the same.
Besides, Java is backwards compatible, so newer versions of Java can run older compiled jars
So we can’t make plugins nd stuff?
In the "Hytale Is Saved" blogpost: "Modding: Available at launch. Run your own servers and create custom content."
We can but we will just have to decompile the jars most likely
They're very focused on letting people create plugins and servers from day 1
They've said they're relying on it to build the community and popularity of the game
I can attest that im gunna be using a near professional level team for hytale for my server development
Im going todo my best to make a awesome experience for everyone
what kinda stuff you guys planning on working on?
Well I'd love to give the idea but I don't want people formulating ideas made by professional game designers xd
oh there's gonna be a lots of competition
But im including technoblade into the lore itself
Thats the only hint im giving ya
I predict my server will have around 5k users ish
The highet end around 25 k
confident huh
Yeah
fair enough
it will be interesting as to how many players will one server instance be able to handle
A server would need to be beefy if its early
The games not optimized so the server costs ain't gunna be cheap
but I kinda doubt this very first early access version will be able to handle 5k players... I think 1k is already too many
Yeah
The stuff I have to build is also massive
I have terra form the entire continent
Pain
Who knows maybe the server is optimized to use multi-core cpu
the client seems to be somewhat optimised based on the videos, so it's not out of the question that the server could also be
Btw I also recommend "OOP the 35 year mistake" talk, really interesting to see the historical way OOP emerged
Also I'd love to talk about my thoughts on EO, should we take it to DMs? Idk if this channel is only Hytale tech or if it's fine to talk here about programming in general
I mean there were talks here about stuff like databases so it might be fine if u prefer to continue here
can't dm you due to your discord messaging settings
R u sure? It might be y bcz DMs r open, let me check
this doesn't sound like a good idea
Hey i got a quick question i got a seperate pc im going to run my hytale server on (its gonna be on linux os) does this matter or should i do it in windows im not too into making my own server so trying to figure it out before the game is out
As long as your linux machine can run Java, and have the required ports open for the network part, you shouldn't worry about it
ah bet thanks goat
yea ive seen tutorial's of people using AMP hosting thing and i wonder if thats worth but i think the hytale server thing has to be added to it
or the game not sure how it works tbh lol\
Are there gonna be ways to transfer people between instances like on Minecraft?
Perhaps like /transfer or Velocity?
I believe they will be using transfer packets, dont know much about the deeper details but not the same as in minecraft
Since this is going to be the very first version and the whole side of minigames has been put on hold for some time, I don't think there will be for the first few years
Not really "necesary". You can rent a VPS outside a "gaming host" provider and configure it yourself to run any game server that is available following their deployment steps
AMP is a one time payment i believe and i can just run it off my other machine which is what im trying to do
I'm pretty sure there's gonna be companies hosting servers for Hytale. (Not sure about AMP specifically tho)
yea im sure there is but id rather not pay monthly since i have a extra machine for it just gotta set it up
I mean, if it helps you setting the server go for it, but not really necessary for hosting it
There are steps to request new games for AMP, I just looked it up its on their page
oh nice i would assume that we would have to wait for release to get it added tho
Its as tribute lol
To respect the guy
Yeah I think ur right. You'll need to create a "Issue" on their GitHub repository. But they can't add something if its not there yet.
Why would u need many implementations for a database? All u really need is a way to execute SQL queries
I don't unit test much, only rarely for hard stuff that took a few iterations to nail, but I do stuff like golden testing for other things
And I do very rarely use interfaces, only when writing a library where I want to allow the user to provide me with functions I can call, otherwise in most cases I just use an enum and a switch statement
You don't need unit tests for everything
Correct
So don't write unit tests for your interface database or vehicles and the problem is solved
U r never going to need multiple DBs at the same time, so u can just wrap it behind ur own db, and then u can switch DB.connect() to Maria.connect() or SQLite.connect() etc
Drivable is kinda a bad example and very contrived but even if u go with it, u can just have a Vehicle class, with an enum indicating which vehicle it is, then just a single drive() where u do a switch on the enum, ignoring the perf benefits of avoiding a potential branch miss due to the virtual call, I prefer grouping by action (driving) than by data (class)
you select the best one for you -> when it doesn't work for you anymore you swap -> dont sit and add multiple database support for 50 different stuff
And good night! I'd respond tomorrow
As someone who is just picking Java back up after 10 years this is all so fantastic to watch lol
So if i make economy plugin, am i gonna force everyone to use sqlite since singleplayer players probably dont know what mysql is, or many server owners. Are planning on coding java without inheritance, interfaces and other stuff u said? The vehicle thing might have been bad example i guess
Whos gonna explain 12 year old kid that he needs mysql so his plugin he downloaded will work
^
Also the switch case would get huge, but i guess thats just preference, might be fine
✋🏻
Im confused on what your question is
Which part, alex was just wondering why i dont force 12 year old players to use mysql for their mods, i would rather give them option to use it if they want and default to sqlite or something so they would have plug and play mod
why can't i download
I don't wonder, i'm wonderful
Since server owners might prefer something other than sqlite, mayby mariadb with redis or something for their network
If its a mod then Id imagine SQLite is just the standard, and for a plugin thats inteded for a server itd need to be a MySQL or MariaDB database depending on your preference as a developer, however some plugins allow for both
Yes thats the point, give them the options for different use cases
It just depends on what your goal is ig
Ofc
im gonna be honest: im glad that Hytale is going to release next year because I'm going to see family next month and I don't wanna be focused on work
if hytale becomes as big as it sounds like it it's going to be hard for me to take breaks
Oh nice:)
a lot of people are, keep in mind if the game came out christmas week, the plugins don't even exist yet, people should have the time to spend time with their loved ones before what's about to happen, happens
Gn!
yeah fairly standard to hide the database (and your choice of library) behind some interface to not couple your business logic to it; and don't confuse this with OOP
How you guys plan to implement Partys? Websockets?
what kind of parties are you talking about? what do they have to do with websockets?
Minigame Network Parties. Cross Server stuff
websockets can make sense for cross-server communitcation. But I would probably do the sync via database events
Yea I guess that would Work aswell, but when I think about stuff Like Party Chat I think websockets might be the better solution?
You can also go for Kafka or RabbitMQ ^^
Seems super overkill
"U r never going to need multiple DBs at the same time" I've seen many times companies use 2-3 DBs if that be for splitting up clients or more smart such as using Clickhouse+MySQL+MongoDB as each has pros and cons depending on the type of data. Easy example would be I've got a HytaleMetrics project and that uses MySQL but also SingleStore.
Why store Stats for example in Mongo, that should be ClickHouse but you want logs in say MySQL and more dynamic storage in Mongo. While I doubt Minecraft servers for example go to that extreme [some do] I would never say never.
The only DB you’ll ever need is Postgres
Document store, queues, relational, it does it all
We're looking into Kafka but def overkill for 98% of servers. I'm looking to use it personally for my Jarvis-like project so all my devices can share and pass instructions around.
are we getting a server jar on release?
should be available in the launcher, forget where I saw that.
Good point. And also most projects I've seen start with db abstractions eventually use some specific feature of the database or have queries that don't translate well.
yes
sqlite :D
Sqlite is amazing. Cloudflare built their edge DB on it
I agree! I’m planning to use ClickHouse + MySQL soon for a venture. Though in the past I just used SingleStore.
It is normal in companies to operate 2 databases, one for OLTP and another OLAP purposes.
intwestin
i like it mainly cuz u can deploy on a different host machine a lot easier, which has been good for plugin dev in minecraft
I like sqlite as well it seems to be the most portable
I've preferred it over MySQL or mariadb in the work I've done
i usually use sqlite and redis
Hi! Is there any information about the server release? I mean we can download/run dedicated servers on day 1?
Idk who but someone made a vid on day 1 servers
yes
Thx, I found the answer in the Q&A channel
TUNG TUNG TUNG SAHUR
Yea exactly, just use SQLite
But if u really need to use psql or MySQL or whatever, worst case u just change the implementation
U can do "interfaces" without interfaces, u can have a EconomyData class which has .connect .close .execute SQL or whatever, then it calls an actual db API, if u switch a DB u just touch that class, if u want runtime choice for some reason, then just add a switch (or an interface) later, when u do need the scale that SQLite doesn't work at
Also about switch getting huge, writing the same signature in each class is probably more typing, but in any case, typing isn't a huge issue and java is already very verbose
But if i release plugin for people do i tell them just to edit the source code if they want to have other db than sqlite?
why wouldnt i give them the option to choose
We are talking about Java, and denying interfaces and inheritance ect is very weird
I would not use SQlite for production server... It Is not capable to handle concurrent query as well as other RDBMS due to its very simple locking mechanism
My point was there is no point in switching, after u choose MySQL, unless u run into scaling issues, u r gonna stick with it
But also u r probably not going to hit the scale where storing one thing in a standard SQL db is going to be problematic where u need a dedicated specialized db, like u r probably not collecting as many analytics as Tesla or anthropic do, and personally I'd rather not take on that complexity, but u do u
@sterile dove :-DD
Bcz that's added complexity, for both the dev and the user, the user probably doesn't even know what a db is, let alone their difference, and SQLite would scale enough for most stuff, don't plan for "what if", if someone asks u to add psql bcz SQLite is too slow for them, then send them a version with psql or add it as an option
Servers will be available since 1st day of release? I mean, there will be a guide on how doing one, adding plugins, etc?
Server jar yes, but no source/guide
Source will "come in a few months due to legal reasons"
oh okay tyy
yes but lets say i make bank plugin and i want it so normal players can use it, but i also want multi server support, do i code the same plugin 2x? have 2 jars only so the other jar can have mariadb and other sqlite
That makes no sense, nobody does that and shouldn't thats what config's are ment for you can choose which to use sqlite or mariadb
Coding 2x and having 2 jars is not the same, and sure u can make it a config, but again, only if there is actual need
U can also use SQLite as a multi server DB
ofc there is actual need
How? You cant access from Two different machines its Just an isolated process running on a single file
ur saying basicly that luckperms should only have 1 database implementation? and have 10x jars for all other types they support
It would be just bad design
U just need some glue code that takes network requests on some port, execute the SQL and returns the results
Unless u need a distributed db which is something else entirely
and u think 12 year old avg player can do that?
psql and if someone complains you call 'skill issue' and block them
No? But u think they can setup a psql db? Also no, it's something the dev takes care of
The thing is, some people make plugins for the community and not just for themselves
I don't see how that's different
Yeah I dont think that would work... What about transactions? You gonna code them also? That would take lot of time Just use a RDBMS at this point..
no they cant setup it thats why u give them option to choose
Also using sqlite as remove database makes no sense, just choose some actual remote db which was made for it
It's a "learning experience" and "growth opportunity" in linkedin terms for the kids to learn databases
I am sure there is probably an existing network thing for SQLite?
Also an alternative is u transmit the thing u wanna do instead of SQL, like storeBankInfo or whatever, and then internally it starts a transaction
Setting up pgsql Is also super Easy why should a server owner worry about it?
I guess luckperms is just bad design since they allow sqlite and remote databases
I think its good, but u can disagree
No, my point was never this, it was don't do it unless someone actually requests it
how about.. do as you like and think makes sense and learn from mistakes
The thing is if you make plugin like luckperms and you use ur sqlite remote database system for some reason, people are gonna ask why? and how to setup it, if u have only reqular sqlite(wont work cross-servers) people are gonna ask for remote db support, if u have only remote db they are gonna ask for sqlite because they dont know how to setup remote db. Some things are obvious
Yeah, eventually you will change if the requirements changes, really depend on your target server population.
20 players server are really different from 1k player server and they need different solutions
Ye developing plugins for thousands of people is way different than to ur friend group
thats why config's exists
Yeah except the reason why they have it is because they have multiple inhouse applications (each with their own application server) which requires a database and then they setup another database instead of mixing databases :)
You don't want to treat a 20 player server different from a 1k player server by a lot because you want to make it scalable at the end of the day
you never know when a surge of users/players join the server and suddenly it crashes or it can't receive connections or everything lags
if your server planned and built for 20 people suddenly jumps to a thousand, the db setup of a plugin is the least of your problems
Is it?
I could def crash the whole server lol
But u couldn't, it all depends how its made
I can make a server for 1 player and u cant crash it only because it uses sqlite
You literally said I can't and then say it depends on how it's made 😭
You guys have never flooded anything and it shows
Anyone here that don't think it's possible has never had a job within IT infrastructure and it shows 🤣
sure, i load player settings from sqlite to map, how do u crash it
that wasnt the point
Yeah makes sense
if i design a server for 1 player and it uses sqlite u say u can crash it because of it
Do your infra then let me join your server lets see how long you wanna handle the plugin the way you're doing it
anything is possible in IT... there are a lots of systems that shouldn't be working today but they still are... so yeah, the IT world is full of surprises
so I have sqlite for player settings, when server starts it loads the settings into the memory, why is that so easy to crash? because its sqlite?
surely you dont only fetch from it but store in it
well in this case it also depends what player settings you're loading, if it's only a currency change for example it's not gonna work
yes
the more information it holds and the more changes it requires in the database the easier it is
so what u mean to say if something is designed for small player amount doesnt mean u can definitely crash it, and that was the whole point of this
Ok let’s be real here. You’re def not making a plugin for “small player amount” you’re making a plugin because you want a feature in your server
If your first thought process is to design a plugin for small “amount of players” you’re doing something wrong
Also if it’s designed to only handle 10k concurrent actions because you assumed it would only handle 20 players, then yes :)
Hey let’s take RuneScape as an example because you like it, do you think they have multiple of databases for their needs? They have 200k players on osrs rn
I think ur missing the whole point
Do you think they have more than 3?
so instead of sqlite i should always have something like redis and mariadb?
but having millions of users with sqlite, i wouldn't recommend it
I mean I store a large database in SQLite rn
Just user accounts: 3m rn
I do recommend honestly it looks pretty as well
So i guess u missed the whole point, u said u can crash any server which isnt designed for big corporations basicly
idk why argue about something when its pretty obivious that u don't need to design every system to handle millions of users
It doesn’t matter because it’s how you handle it, I’ve crashed my own companies application server because of how the fetching of data worked between servers (just an example) which I had to solve
it does matter
Ok so your plugin is gonna fetch the data and store every action sent (changes) and when I send 3m packets in seconds you gonna handle it perfectly fine right?
I dont think that big companys use cloud for 0 reason, they want speed, high availability, scaling, u think they would be fine with 1x mariadb and 1 server ?
You realise the reason they use cloud is so their cost is minimised because it wouldn’t be cheaper and they rather pay someone else so they don’t have to take the blame if something happens? Or because they aren’t expert in that field but the company is supposed to be
its designed to be used by millions
🤦♂️
Ok im done arguing this doesnt make sense:D Im just getting ragebaited
It’s like talkin to a wall that doesn’t understand what plugin design really is about
Go design your plugin for 20 users, every plugin you have gonna have a database 🔥
Thats quite legacy, a lot now have the same web servers (lb) queue servers etc just separate databases. The database side is for security but also scaling. I can host by default say 100 clients on db1 then a massive client alone on db2 and keep adding that way, you can indeed also partition, shard etc etc - You are 100% valid tho I’ve seen a lot of “each client is separate in all ways” approach 🙂
Yeah it’s legacy asf but it’s used to this day in a lot of big companies because of how easy it is (though now they also prefer API)
As you said it’s for scaling
To put myself to shame, I actually did this once.. 😂 Many many years ago I think it was a minecraft plugin and I was maybe 17 at the time (29 now) I didn’t want to deal with mysql etc so i slapped in a way to handle it all with Google Spreadsheet and it worked but holy hell it was slow! (also bad rate limits haha)
Agree, we forgot to mention a lot do it for each company because they are in branch hell when a client wants a specific feature haha.
I think it was when i used Skript and it had an addon for sheets 😂 Not my finest moment as a young lad haha
Now u get it:)
Blame makes sense, also lack of expertise, bcz the cloud is really not performant and buying hardware is way cheaper than the cloud (see DHH for example)
It's mostly convenience/not knowing there is a better alternative
Cloud turned out to be bad expensive for a lot of companies that followed the hype train sadly!
I only work for big companies but there is never a full cloud solution, it’s in-house and cloud
Well not going full cloud is the smart decision
CSS only
Not doing anything in the cloud is the best/cheapest
can do ui's with xaml possibly
Renting will always be more expensive than owning
Shouldn't cloud basically provide fast access worldwide and prevent traffic to the original server but if it fails fallback to the original server?
I mean that's the whole idea behind it, isn't it? 😄
DHH mentioned! sorry, I saw that I couldn't handle it
I got 15 servers in my apartment, that’s my cloud 🔥
I cant remember if it was you i replied to at like 4am about this and maybe started this mysql debate.. Sorry if it was!
To be clear however everyone should take this sort of discussion as a learning debate. I grew up as a developer feeling like i needed to always be right and know all, instead you need to be open someone always knows more and is better so utilise those skills and learn because some day you’ll be better than them. Mucho love!
relatable
chineeze minipcs go brrr
I rent a VPS just bcz my internet is terrible, I have 16 cores and 64gb ram, can easily dedicate 4 cores and 8gb to match my vps, but 5mbps upload ain't cutting it
It's always comparing rely on a company vs rely on employees.
If you got bad luck and all of your engineers are ill or whatever, good luck with your infrastructur 😄
i pay 9$/month for gigabit (both way gigabit btw)
Ask amazon, cloudflare and microsoft about reliability recently 😂 Cloud is great for a lot of reasons but something is only worth the cost you pay for it. In most cases a dedicated or vps from somewhere is perfectly fine than using amazon.
But then you might be have a different bad luck and the entire data center catches on fire and burns down... bye bye your data
The best I can get I think is 1gbit download and 0.2gbit upload, still like 40x my current one, once I upgrade to fiber optics
Yeah, I'll host my own service on my machine, but content stuff will be forced to be on CDN for sure
That's not how cloud services work x)
upload limits are artificial
Huh wdym
Dude I wish, I’m moving to them right now slowly. All of my servers are rack😭
Yeh I got a 10Gbps link
i cant send images here to show my rack
but i only got one 4u supermicro chassis there for my NAS
take a wild guess
Customers are fine when your server goes down because your cloud provider is having problems since then half the Internet is also going to have a problem. But when your self hosted server is down and nothing else is, then it's an issue.
As a customer I'm not fine when my stuff goes down because of amazon is down and I lose money
That's why I don't use them, my uptime is 100% since I began using my own servers
Well in my case I also have 2 links so if an ISP goes down I have another one
Then any service you use to make money shouldn't rely on Amazon which isn't the case for most companies
If you use your own network, it's not important, cause u basically can get all players data from the nametag.
Probably good if you want to handle hub servers and tell the other server how the player looks like on the hub server
I wish we had the server API so I could make some plugins already 😭
Probably isn't accessible because of all the changes they are making which would make the current version useless
When API coming out? Or any viewable server structure for that matter
No one knows, just gonna assume around early access release
Do you know what language the plugins will be programmed? This is my first time in modding, but I have a lot of experience in software development.
Java
They will be .jars. if you're familiar with Minecraft, you'll understand them easier
Java is good for me, do you think starting to do minecraft moding will help to have more experience for the day Hytale comes out?
Definitely
I doubt it, I guesse just learn java or persue your java knowledge as hytale will have a different lib.
Another idea that came up with, is it possible or common for the Java code to request other microservices in other languages like Node.js?
I suggest a server plugin instead of modding. modding on minecraft is kind of convoluted in my experience
I think you can, but I don't know how any of that stuff works personally
No reason it shouldn’t be possible. Communication would just happen over web sockets, http, or whatever other protocol you want to communicate with the microservices
Thank you very much, it helps me experience. When they announced Hytale, I was starting college and I could not program. Nowadays I am a programmer, and I developed a very popular and large SaaS in Argentina, but my experience in modding and video games is nil hahaha, I wish I could collaborate in the community, as I dreamed of as a teenager. Thank you all!
It will be necessary to try and see if it is viable.
I don’t see why it wouldn’t be. I’m planning on writing a plugin to communicate with my own website. Written in Nodejs
100%. I'm currently prototyping my mod as a Minecraft paper spigot plugin to test all features. But make sure that your mod feature code is strictly decoupled from Minecrafts code so you can basically port over without huge modifications. I'm writing a npc dialogue framework that ill port over to hytale once EA launches
Does anyone know if Hytale is going to make a C# bridge for plugins? (I mean we could do that likely) - I just wanted to know if C# would be an officially supported language. 😄 (Best of both words)
Doesn't look like it currently. All modifications will be through java server side and or visual scripting as of now
I don't think it makes sense to create bindings for other languages except perhaps for performance reasons.
My reason is I highly dislike Java and find .net just to be a purly better, faster, and modern framework.- There is no real reason rather than preference.
You can still use other JVM languages
Java and C# r basically the same lol
This is true, but its not Java that is the issue, its the JVM system as a whole. - I find it archaic and lacking. I have built up a substantial amount of libraries due to my work as a game developer. And feel a binding would be a very useful way to utilize my past built systems rather than porting them. 😄 - But as Kyren states, they are essentially the same language, totally different paltforms that power them.
I think bindings would kill any potential performance gain you could possibly get by C# anyway.
What's wrong with the JVM? it's actually a really well made system
But idk if C# is considered more performant as a whole. What JVM lacks are primitive structures. Maybe someday we will be able to use valhalla
C# VM is probably less optimized, but in any case he probably wants it for the existing stuff he wrote there
Correct, nothing is wrong with the JVM, I just don't prefer to write in JVM based languages as I have years of investment in the .Net platform - Due to them being very similar bindings would not be that difficult. But the VMs work differently. So you can't directly compare the two without considering the ways it can be optimized, such as C# unsafe and pointers and AOT - (Which negates the entire .Net platform any how but is able to get very close to C++)
So correct, it is all pure preference and not a pure technical reason. They can accomplish the same.
Java can also do AOT, any jit VM can
Also I am with you, I would rather write cpp (or C)
Or why not PHP am i right
At least single reason for C++?
?
Why would you prefer C++
You can always write your own c# server since all the code is open
the only thing it has to do is conform with the client protocol
Yeah, that my plan. I just didn't want to if they already had plans.
I see
I prefer writing C but if it's for games (which Hytale is) operator overloading from cpp is really helpful for math
I just hope they add C++ and Java compatible plugins
But basically every other cpp feature is just garbage
Many languages have operator overloading or similar mechanics
kyren I swear I've seen you in the zig server, I'm going to be writing a zig server implementation
U can use JNI to call foreign functions
Kotlin for instance
I talked there a few times yes, once even with Bill and Lerno
I can also run Java bytcode with C# as well, unsure which would be best, to be fair just writing a C# server is likely the easier way. 😄 - Just more to do.
Yes but kotlin isn't great, doesn't have the control of C
Rust
Rust is complete garbage and is the opposite of what I want
Not sure what do you mean by "control of C"
But rust has cool names! 😄
I think you can probably native aot your C# code and use jni for the interface as well
Then I probably don't understand what are you trying to achieve
Custom allocators, access to pointers, struct layouts, stack structs etc
Then answer would still be rust
Well, I disagree. Rust and C++ have their places. - Rust has type safety, C++ has a massive list of battle tested lbraries. Operationally very similar.
Rust sucks with custom allocators, doesn't let u raw access to pointers (without unsafe), doesn't let u control struct layouts and is overall trash
In terms of something like hytale and most real applications I can't imagine why would you need or maybe want to do this
"modern" cpp sucks almost the same as rust, bcz rust is basically based on "modern" cpp
Rust has its place, and I'm saying this as someone who uses zig daily
As I understand if you simply enjoy punishing yourself it's ok 😄
It's place is spreading propaganda
Hey, I have met only one other person who uses Zig 😄
I try and separate the language from the community. Those things you mentioned aren't super important if you aren't doing anything at a super close to the machine
like writing a plain old webserver
Now u know 3 (well I used to use zig)
Haha the one thing you point out is operator overloading. Have u used c++ :3
Did you forget about templates, constexpr, consteval, coroutines, lambdas.
U r running the code u write on a machine, it's important to be aware of it and how it works
Also the language itself is just pointless imo, it's very much not "blazingly fast" and not really a low level lang, so if u want low level control, there are better langs, if u want FP stuff use ocaml or elixir, so it really doesn't have a place
The main reason it's so widely adopted is mostly due to the propaganda for stuff like safety
Yeah I'd still choose to use gleam or elixir for anything that needs to be scalable
All of these are bad, with the exception of lambdas if they had better syntax and were literally just an anonymous function and exception of very simple templates as a way to do static dispatch generics
Ah yea you can’t trust this guy btw
With all due respect, do you even like writing code? You seem to dislike almost every language and every programming language aspect? :p
Classic example of c++ is too hard for him
I mean I can understand why they stick with Java tbh. Java has a huge extensive base with a large community and I can imagine that most Minecraft modders that are coming to hytale will love to stick to their language they already know. That will give modding a huge boost especially in the early days. And the best of all is that the java code only runs server side so the c# client can run as optimally as possible not like in Minecraft. I love it tbh
I am unsatisfied with the current space of languages, and I am in the process of creating my own, clearly I am not the only one (see zig, Odin, Jai, C3)
The fact I am unsatisfied doesn't mean I don't use languages, currently I use C for my compiler, and go for simple scripts
Yea so you like the butt simple languages that hardly have anything powerful
When it comes to compiler logic
"an idiot admires complexity, a genius admires simplicity"
Good one
I personally would expect from language that it either compiles or gives me error and not that it puts undefined behavior everywhere
Also look at Jai's metaprogramming, it's fairly sophisticated
That's like the most madeup and dumb quote I've ever heard lmao😭
As soon as you said constexpr and consteval and templates suck. I just know you can’t be trusted and you speak out of ur cheeks
I need to go to eat, but when I finish I can criticize C as well, it has plenty of flaws
Didn't even ask for reasoning lol
It's same with C++. You can write code that compiles differently and has different output just by applying different compiler optimization
Does the compiler catch this
T *thing = (T*) malloc(sizeof(T));
Because it's ub
I think C++ would be a lot better if -Werror and -pedantic were default
Also -Wall -Wextra
To sum it up I would say that C++ might be good for some smaller low level tasks where you need direct memory management. For all other applicstions you would prefer some more reliable language.
Because there's people that don't compile with those and I have to use their code (my colleagues) and I have to spend ages fixing it up
why is this ub
The constructor hasn't run so it's in an undefined state
But you can still use it as if it was a normal pointer to T
I think that turning on all warnings and pedantic should catch it but I'm not sure
ah, i get that but 99% of the time malloc is used in c++ its from c ports with pod structs, got confused lol
yeah it would be legal if T was a pod but we can't tell
There are many undefined behaviors you cant take track of. Such as dereferencing null pointer
I think that's why the C memory functions are banned in some C++ code based since they sidestep the language, so you have to use new or in place new
And other pointer operations
I just wish the C++ standards committee was better, why did it take so long to allow for std::optional<T&>, because it would alleviate a lot of pointer passing
That's the thing. C++ can be written safely (with very good knowledge). Rust is written safely by design
Yeah it's easy to write safe C++ now which is nice
I wouldnt say that writing larger app without undefined behavior is easy
Oh right gotta use sanitizers too along with all the flags
Another example could be integer overflow that almost noone checks and results in ub
Terry Davis said that, the guy who created templeOS and HolyC
I know terry davis. But that doesn't make the quote any better, if not, even more stupid😭
U said it was madeup
It sounds made up because its dumb 😭
Why is that UB?
constructor doesn't run and according to the big C++ abstract virtual machine that means it's UB since it's in an undefined state
That's why I use C, cpp has so many stupid stuff, but I guess it'd work even if I compile as cpp, as long as I don't use constructors
But for a game operator overloading is really nice for vector math
yeah as long as its a pod it's okay (I think?)
Ye which is basically all my structs
Sorry not abstract virtual machine, just abstract machine, which is partially outlined in the cppcon 2019 doc
Hello everyone, I would like to know what resources are currently available to developers who are interested in creating plugins, mods, and servers.
Do we have access to a beta version to start development, or do we have to wait until 13 January?
Apart from the fact that it will be in Java, do we know anything else about the underlying technology line entities or how the game works?
Is there a guide or resource you can share with me?
Any information would be appreciated. I would like to be able to create a server with my own plugins and mods. Im creating a team for that 🙂
The game has not yet released. As such, we will most likely have to wait until January 13 to get started. No guides yet, no docs.
But hytale isent built on Java no?
The server is, the client is C#
Yea I figured ty
Precisely, from what I read in the forum, it is
client in C#
server in Java
so if i want to make mods i will need to code in c#?
hmmmmmm so it will be 100% server side?
Yes
100%
C is flawless 😎
FFM is way more cool and fancy and way nicer to use as well
So what plugins planning on making when it comes out?
I'm writing my own backend
Oh nice, didn't know about it
Explain
Yea you don't have to write any glue code anymore you can just bind directly to a dll or so
I never used either, but heard from a friend that JNI is annoying, so good thing there is a better way
What about calling java functions from C so I can interact with Hytale?
Upcalls work yes
Although I'd probably not bother and just write java, at least for a while
It kind of depends on what you are doing to be able to get good performance but it is something you can do
At the very least it's an indirect call, so it should be fine, java anyways has lots of virtual calls which r worse due to branch misses
Well, the tricky part is making sure you're not interacting with the java heap on the native side so the gc can still run
guys, who can help or explain me how to using and creating plugins on a server if it real
Vsem salam
What do you exactly mean ?
I want to ask how and where I can create or install plugins on a Server
No resources yet on Hytale API.
What is a Hytale API?
how do u plan that on a game that isn't released?
Honestly just start making your mod in Minecraft now if u don't want to wait
And then port your code to hytale
oh thanks but I don’t know how
Since Minecraft and hytale both use Java, you can basically copy paste your code, that's not bound to Minecraft itself, from your Minecraft plugin to hytale.
I know that they using they old engine in c++
No the old engine is in c# and mods are in java. The new engine was c++
So that means c++ can’t do anything with game that been realised soon, yes?
Yes, c++ won't be available in hytale that will release
C# for client and Java for Server sided mods
Ok thanks
And what's your source on C# mods?
There will be no Client mods
oh now I get it, my bad, ive written it in a way where you could think that there are client mods xd. My bad. Only Java Server Side mods will be available + visual scripting
All good I was just thinking if I was wrong
website states it
Where exactly
huh? No?
One community, one client: We want to avoid a fragmented ecosystem where every server requires a different modded client. For that reason, we don't intend to support any client mods. The client should remain stable, secure, and consistent, while servers provide the creativity and variation.
(on the blog post about modding)
exactly
^ what he said
correct me if am wrong but everything we will edit in the game using only serverside right ?
ALL the modding/plugins are handled by the server, yes.
I was also just starting out, so I logged in to see if there was any more information besides the old post on the official forum. I've sent you a friend request. Can you accept it? For speak more about this
Just ask about it
You will use tools they provide to modify assets and then use Java to make plugins that will make these assets more alive & valuable.
But we will always find a way ofc
I originally wanted to send this as a private message, but since it makes more sense to share it here, I’m posting it openly.
I’m a software developer and I’m currently putting together a small team to create a Hytale servers once the game releases. I wanted to ask you if you might be interested in joining, but I’d also like to extend the invitation to anyone else who’s passionate about development and Hytale modding.
Our vision is to create a server full of original mini-games, as well as bring back some forgotten Minecraft classics that were popular back in the day but never reached their full potential due to Minecraft’s own limitations. The idea is to give those concepts a fresh twist, adapt them to Hytale’s systems, and also build brand-new game modes on top of that.
If you’re interested in being part of this project or want to know more, feel free to contact me! I’d be happy to talk. 👋
No I'm working over 50 hours a week I don't have time lmao
Nah
But may I ask why you want to find a way to tamper with the client? With so many tools we are provided and plugins being able to mod at core. Why? What benefits do you get from wanting to tamper with the client?
And if you mean stuff like "optifine" and such the game is already gonna be optimized
No problem, anyone interested in participating should write to me 🙂
Speaking for my friend group here man
There are plenty of reasons, client side modes that don't effect the server are extremely common in mc
Stuff like changing the UI, to showing extra info (like exact armor damage UI) or things like added hotkeys etc
On the other hand - I might not want players to use different UI features on my server. Best solution would be to give both options via the server config.
It would not surprise me if modding the client will be prohibited (possibly backed by the ToS/EULA). But maybe the Hytale team don't want to go that far to outright ban modifying the client. Though if I were a server host, I might not want people with modified clients to join my server (because modified clients might mean hacks/cheats)
When you think about it, that's a very "Minecraft" way of doing things. No multiplayer game clients will let you modify the game, at least not easily
Mods that add armor damage or added hotkeys should already be included if it's necessary
Are there any German-speaking developers in this channel who are interested in an RPG server project? We provide the server and offer a fully developed concept.
I don't think they will bring some kind of kernel anticheat for this
No, that defeats the entire point, if I want my UI to be blue instead of red or whatever, the servers wouldn't want to add that, if it's a purely visual client side thing, it shouldn't be on the server
I don't think so either, at least not from the start.
I don't think modding client is that easy because it's not made in unity and they are using QUIC for communication but possiblities are infinite
They can't really know, ppl will do it either way, for both good and bad reasons
Sure, people will undoubtedly mod the client in one way or another.
Unless you are making a cheat client you won't need it
I think it is best if people didn't, and if the server is in charge. If I think of certain RPG multiplayer servers in Minecraft, if they had the ability to do beyond what trickery they currently do with texture / data packs, the amount of creativity would be through the roof.
You could join one server and be in an RPG, and without any changes to your client, you can join another server and be in a third-person top-down dungeon crawler or something (if that is still possible from what we saw in the trailer). Really makes servers be able to offer completely different experiences.
Yup
They already said they won't prohibit it, but they're not exactly making it easy to do
This already exists, see wynncraft
And actually one of the best uses for client side mods is for these servers, for example one of my mods reads scoreboard UI and renders a custom hud for mama/health/shield
And u can expand it to show proper icons for cooldowns etc
Well I didn't want to name any servers, but I did think of that one indeed. But the great part is that the server can change the UI in the client, so no need for these kind of mods in Hytale.
Depends how much it can do that, I doubt it can do stuff like change individual pixels or render shaders
Maybe not, question is if you would need to control individual pixels or if building blocks like status icons, GUIs, menus with buttons, etc. would be enough to also still keep it "Orbis/Hytale"-themed. But I think for this it's a case of wait and see.
And again, u may want to change ur hearts position client side for all servers, I don't want all servers to do that
Maybe? I wouldn't see a reason to modify these kind of things on the client because it might clash with whatever custom UIs and content is delivered by the server. But I guess that is up to people deciding to run client-side mods.
It’s alr this guy @prisma agate has bad takes anyways
I don't speak German, but can I add you for the server thing?
Hi, could someone involved in the project let me know if there's any information about plugins yet, any info for the developers?
Ah yes let's disregard all my opinions just bcz I think cpp sucks (which is a very common opinion btw)
Unfortunately, no concrete information yet. Assumed that this will come when the game launches on January 13.
modding blog on website tbh
I see more neovim configurations on your github than actual code
Language dev hasn’t written an interpreter even
Can’t trust this guy
Correct, I moved from it to gitea
I have in fact did it 3 years ago, currently working on a compiler
Not all my repos r public
Sure sure
Trying to disregard my credibility just makes u look weird, but u do u, I don't really care, but this way of behaving won't get u far
Have a good night!
Just gotta let em know to take what you say with a grain of salt. You have horrible points
okidoki tty
It's entirely possible the client has been designed to accommodate this
We don't know the extent of their scripting yet
Part of it, yes. But there will be a part that will be private on the server. We would like to be able to contribute early on to creating a strong community and support other people who want to develop with open source as much as possible.
I'm interested in helping :b
I sent you a friend request so we can get organised
There is a post about it on the blog
hytale(dot)com/news/2025/11/hytale-modding-strategy-and-status
dms
I am interested in working with you
Perfect, I sent you a friend request just like I did to nopox 🙂
Do people ever use an ORM for their sqlite files in Minecraft plugins? Or do most people just write the raw sql
I recommend that you always use ORM to use the database whenever possible
For saving the database?
To abstract yourself from the database
Ohh yeah
I’m pretty sure that the devs have already stated they’re making as much of the UI server side as possible (though it might not all be at EA launch)
I @'d you in the discussion channel I can't forward it here, the hytalemodding site has details on everything so far
Though now that I’ve read through the convo that point has already been made and you disregarded it…
Will plugins be written in C++, or Java? or maybe both?
Java
.jar files
ah alright, sweet.
Java.
ORM if the operations are not that complicated and performance is not an issue. Sometimes an ORM will generate some complex queries and to “fix” that you would need to start writing more heavy configuration in your ORM declarations
@vale fog I tried to send you a DM, but it was blocked. I sent you a friend request instead. I'm interested in the project.
Most ORMs are pretty bad, they feel more like hacks than actual end-to-end support. The only ORM I've ever worked with that actually felt native was EF from .NET. Imo, the biggest point in favor of ORMs is the type safety, at least in the Node.js world.
Not pretty bad as they abstract one of the most important parts of working with data. It helps on the no worries about querys part, but relying everything into an ORM will cause some crazy bad performance on complex operations. Even debugging ORMs operations is not the best thing to do
So, while it helps the developer, it brings some other work to do in the development process and affect the performance of the final application
Though for a game plugin, could not be as bad depending on the purpose of the plugin
I mean, yeah, ORMs are useful, but it's more out of necessity than because they're well designed. They're better than nothing. Anyway, I doubt we'll have ORM support in Hytale. It's more likely that we'll be able to hook events into API requests instead. That would make the admin side language agnostic, since server owners could build their own tooling however they want.
I've never liked ORM or just object serialization in general
Fair, I only use them for type safety and because migrations are easier.
Bro's what I can use Hytale API?
And what about the language of the Hytale server version, guys?
how are you already a professional hytale modder?
What is the software language of the Hytale API and how will it be used?
That’s completely false Lol it’s Java not Java script
You’re wrong? It’s pretty obvious what I said
You need to know Java to make any plugin in hytale
did they confirm it for the old engine or the new engine?
so you need to know javascript for modding?
yeah thats all i needed to know
Please read the dev blog, you need to know Java
i should clarify, thats all i needed to know that he is bsing
Rage bait used to believable lol
Uh understand, I know Java and JavaScript. Thanks for helping.
Understood, thanks bro.
Where is this?
That's good, but probably still limiting like no control over individual pixels/shaders but per server vs per client is a huge difference, there is a need for both
It's java
Its not
It’s just rage bait ignore
its laravel
It's cobol 💀
Banktale
its Cobra programming language
Cap, HYTALE is written in java backend c# frontend
kotlin
5/5
Hello!
I just saw your request, I accept you now 🙂
Hello Rocky, would you be interested in participating in the project I mentioned above to create one of the first servers? We are recruiting people
You realize he's a troll
So Nitrado is planning to build some base plugins for other mod developers to use.
In terms of distribution for dev purposes, what would you folks prefer? Maven central + github releases?
It seems so, but by asking him what he knows how to develop and if he is interested in helping, I have nothing to lose.
I thought I read somewhere that they could be distributed within the game itself
I'm talking for development purposes, if you'd use one of our plugins as a library for example
Maven repo for sure
Github releases might be useful for server owners if they are standalone mods
Imma be honest, I've had waaay too many issues with Maven and/or Gradle. Sometimes adding the API library manually is better for me rather than having to deal with weird errors from Maven/Gradle. Speaking from Minecraft plugin and mod making experience
I hear that. We'll try to have some examples up but just pulling the jar from a github release would always be an option
As someone who hasn't been in the Java ecosystem for several years I'm primarily wondering if Gradle is worth supporting. It seems a bit.. obscure.
Of course gradle is worth supporting
Maven truly sucks lol, and gradle is flexible and more powerful than almost every other build tool in programming
See that's why I'm asking here x)
The impression I had gotten was "Gradle is always listed in the examples alongside maven but nobody actually uses it"
It’s definitely much more common now than maven
Or it’s growing to be, xml just sucks and gradle is mega powerful
Interesting. My perception might be skewed because of big enterprises that still use maven, maybe simply because that's what they always used.
But mod devs might lean more towards the newer, cooler stuff
Yea perhaps but even big enterprises are swapping to it since they have custom build logic and need better speeds
Cool. Thank you that really helps.
Oh yea and don’t listen to anything that @prisma agate guy says
Take what he says with a grain of salt
Oh I listen to what everybody says, doesn't mean I make my decisions based on any single voice 
Oh Gradle is definitely more common now
Especially the one with kotlin backend
Maven and Gradle are both not the easiest to use compared to stuff like NPM. But Gradle is alright once you get it working.
In the Minecraft ecosystem, I don't see Maven being used that much anymore, most things are Gradle now. Probably because of things like the paperweight userdev Gradle plugin, making it very painful to do any kind of plugin development with Maven. Considering that a lot of people here might be coming from plugin development in Minecraft, I'd imagine Gradle once again becomes the go-to build tool.
[note making noises]
I wonder if it's going to be possible to hack together some kind of dev environment with Aspire.
What even is Aspire? The one I know is C#
I am not familiar with something called Aspire
To put it simply, it's a tool that makes local development easier (at least for me it does that).
The idea is essentially:
git clone
aspire run
and you should have a local dev version up and running of whatever it is that you're trying to run locally. Here it could be running the Hytale server instance locally with your own plugin or plugins.
I guess Gradle can achieve the same with custom plugins
it absolutely can, it just depends on what you're developing. If it's something small I'm sure Gradle will be enough for majority people. But if you want to do more than that then there's potential benefit from using Aspire instead.
I think I will be developing more than just a simple plugin, that's why I will be looking into the possibility to create an Aspire dev environment
Maybe? I don't know Aspire so I cannot compare it to what Gradle can or cannot do.
Sounds interesting though
Can you link Aspire (replace . with dot)?
Unfortunately links cannot be posted here
I have very little experience with Gradle so I can't really compare it either
Reading a little about Aspire I'm putting "Hot Module Reload" on my list because that would be huge, independent of build tool
aspire(dot)dev
Ok thanks
Oh nice, I was planning to do my own hot reload, but if something exists that's cool
It is C# only, not java
Intellij already has hot reload
weeeeeeell, not exactly true
Oh welp, guess I gotta do my own reload
I don't use IntelliJ
Seems to be a Microsoft product, so not really Java-friendly
It is free, might aswell
I used to use it, switched to a different editor that I prefer
I guess this is one of these functionalities that many people would need so these are things we're considering to throw onto the Nitrado GitHub
What do you use now?
Everything else failed to resolve my project properly
I'll make mine open source probably so people can just use it if they want
I use Neovim btw
Arch too? 
I am helix + arch user but not for java (helix not for java)
NixOS but I no longer like it, but Linux yes
I used to use IntelliJ for quite a while even after switching to nvim, but it's too heavy and doesn't have my customizations
I've been a long-time IntelliJ user. It has everything that I need, and I don't really bother too much with highly customizing my IDEs because that only creates maintenance overhead.
And lately I started experimenting with disabling some LSP features, so not having the great IntelliJ LSP/integration isn't such a huge deal for me
On big projects LSP is a must for java
I think for Kotlin there is now a LSP being worked on by JetBrains too, independent of IntelliJ
Though that was mostly aimed at VS Code
I have massive plugin with multiple nested submodules
I possibly cant remember all the APIs
For navigation yes, I specifically experimented with disabling inline diagnostics (and only seeing errors when compiling) which I find less distracting, and also disabling auto completion
Although for java I'd probably stick with auto completion just bcz it's verbose, or I might make snuppets
jdtls just cant cope with it
How do you force it to use build.gradle?
Wdym? I just compile it using the gradle cli
I use a nvim plugin that does some configuration stuff for it to work
There is nvim-jdtls and nvim-java, I think I use the jdtls one, u can look at my dotfiles if u want at git(dot)Kyren(dot)codes/kyren223/dotfiles
I use jdtls too
Oh I see the issue it just reads build.gradle
But not the submodules since it does not use settings.gradle at all
Well IntelliJ idea it is 😄
yeah I use jdtls
Yeah that is eclipse's language server
oh I use it in neovim 💀
This game can not come out fast enough, Im ready to build a server
Well it is the only working java LSP that is open source.
Interesting
But it just sucks compared to IntelliJ's thing
Mainly in speed but also in features
Speed was fine for me, but I have a Ryzen 9 9950x and haven't worked on huge projects
And jdtls on Neovim feels way more smooth than IntelliJ, which is very heavy/slow
It used 50GB of ram on my plugin
With Ryzen 7 5700X
Seems like some sort of mem leak
No the project is just that big
Seems kinda crazy for a plugin, what was the plugin about?
I can dm if you want? 😄
jdtls using 50gb of ram 🤨
It was with vscode at that time and gradle extension
R u sure it wasn't due to vscode?
Could have been
And sure u can dm me
I alr did 😄
Probably was vscode lol
Or the gradle plugin injecting too many deps
We can't open the server until the server software is released. When will the software be released?
This isn't minecraft
If a server is to be opened with a plugin, server software is required. This is not something to be praised in Minecraft.
With the launch they will share server files
It's only a thing in minecraft because there's no official support
thanks
I'm sure it will be here too
They're giving support for mods and plug-ins. There won't be a need for 3rd party software
if that's the case, that's good
Will mod and plugin creators have to get their mod verified or something? wouldnt want to play a mod that looks good and then its really bad and buggy or inappropriate
Idk
There are people saying they will blacklist P2W servers but I don't know how true is that. You would need to go and experience if a server is bad or not I guess
I think for the very first early access they're likely gonna go with a trust system rather than requiring verification system
you can install any plugin you want on your server, but if you want your server to appear on the server list you'd probably need to get verified somehow. Silkey said:
We will let the community handle this. You will be able to use CurseForge, Modrinth, etc. to discover mods. We want to bring it into the game in the future but we need more time
with regards to publishing mods
Theoretically speaking I want to believe you will be able to play any server just by entering the right address but if a server owner wants to have their server discoverable then it's likely going to have to be verified. That I think is very reasonable to do, imo
I hope the plugin API is as fully thought at as the SpigotAPI, seems like the spigot api really provides you with everything you need to create plugins
Probably will be better than spigot
We will be fine anyways, having an official modding APi is better than 99% of other modding experiences (unity modding is always chaotic)
That would be great
I would probably also bet on that early on the API is going to be changing a lot so stuff might be breaking until it gets figured out what works best
yeah wouldnt be surprised
im going to try and be one of the first servers out there, but we will see if thats even viable
Most likely isnt going to be on launch
The devs said it themselves
What this means for you right now:
You will run into limitations due to missing editing capabilities. Certain aspects of client behaviour are not yet exposed to the server. Some tools and systems are rough, inconsistent, or painful to work with. Modding maturity is wildly uneven depending on what you want to build.
Now for the blunt part: we are behind where we want to be.
We are missing years of development time that we now need to compress into months. There are gaps in our tools, our documentation, and the ways systems are exposed. Some features exist only because they were hacked together during prototyping and never polished.
Just have realistic expectations
Ah
hytale(dot)com/news/2025/11/hytale-modding-strategy-and-status
It will improve over time they even said the UI library is going to be swapped in the near future
In theory there are probably going to be two options when you're going to want to make a feature that doesn't seem to be easily possible: Either you wait for it to be easily possible, or you do the hard and dirty work to make it possible but expect it to break with updates.
I think intially there will be a lot of breaking changes
@random magnet Am I right or should we expect most API to be stable and just some parts rapidly developing?
Does he actually respond?
Not sure if he will
99% of the people who use gradle don't use any of the features it offers. Gradle in itself is a programming language and likes to break upon newer java release. Maven is more rock solid since it's just a config file.
Actually will there even be an API at all? if we have the entire server source we can just directly add stuff
If you want to maintain a fork, yeah
But you probably want to just extend based on the public API
When I originally asked the question I hadn't fully realized that gradle just pulls from maven repositories so I guess there isn't really a concept of "supporting Gradle" other than, idk, build setup examples
There will be
Otherwise we will have cancerous source mods
U don't have to maintain a fork as long as u create ur own classes, so when the server updates it doesn't conflict with ur code
Gradle supports maven repository so yeah you just upload your mods on a maven repo and it's good for both Maven and Gradle
Or there should be*
We have technology
We don't need to be distributing patch files
That is literally extending the public api then
I mean mixins in MC mod dev is really useful, there is a ton of reasons why you would want to change existing code/behaviour of stuff
And with Hytale it'd be way more straightforward, bcz u can edit the actual code (no need for weird injections)
I'm talking pre mixin, pre forge
same concept but for the client
Mixin is better than editing source files directly
I disagree, it's just more work,and if ur changes are small it's not a huge deal to maintain a fork
The issue isn't on the developers end, it's on the users end
You aren't going to ask a user to manually merge 10 different forks together
User as in server owner?
Actually how does Hytale plan to do that? bcz there is afaik no system where u just drop jars and only use the Hytale server as a "library"
My impression was u need to build the jar urself with whatever additions, so to combine multiple stuff u would need some mod loader
You don't need one persay
So for combining multiple mods u will still need a mod loader like spigot/forge/fabric for managing and loading plugins
No
Hytale will have an existing thing that does that?
The jvm can already do that for you
Yes but u need to write some code to ask it to load modules
No, just change your launch script
Wdym? can it load multiple jars, and if it can, then how would u have things like their own main for initalization? (akin to onEnable/onDisable)
That's an API decision
You just call your entrypoint or something
Or it goes through directory to find jars
There is a lot of ways to do it
Ye sp u need something to do the managing of plugins, to call their start/end functions, or load any from a directory etc
Which is what I call a mod loader, which either is builtin into Hytale, or the community will need to make one (fairly easy to do)
Or you just run your jar entrypoint and register yourself to the game
It can be done this way, it doesn't have to be
That is the better way to do it, but not required
The alternative wouldn't really allow for multiple plugins
Do you know of any recognized repositories on GitHub about good practices for creating plugins in Minecraft?
Why not?
It would
There needs to be some code that allows the plugins code to run
Static initializer blocks:)
You just launch your entrypoint and register yourself into the game
What is so hard about it?
Oh right those exists, so I guess as long as u load all jars into the same space it'd work fine
I may be confused, but are you asking how are plugins read into Hytale/pluggable games?
It's definitely a terrible way to do things, but it is possible
Ye if Hytale already has something like spigot that manages plugins (reading jars from a directory, then loading them into the environment, then calling their onEnable/onDisable so they can start)
Or if not, then the community will probably make one
If not, I will strap my loader onto hytale because it's awesome:)
Tbh that onEnable pattern is awfull please just call the constructor
Yes, any plugin system must provide contracts and implementation methods so you know what to add to your plugin and the app knows and can execute your plugin - It is a portable entry point.
If they support plugins like they say they do they will provide an API giving us the implementations for a basic functioning plugin.
Having it be a singleton is a bad pattern, but they kinda had to bcz they want every plugin to have it's own instance so they can manage it
Is it open source? I was planning to make one, but I might just yoink yours
I don't think this would work? Unless I'm missing a piece to what you're saying; the jvm (hotspot, at the very least) doesn't run clinit until initialization iirc, which would require something to interact with the class in some way outside of it just being loaded
What is a singleton in it?
An Object Oriented Programing concept that defines a class to be the sole instance of that class
Like a static class
No, I know but where is singleton used in paper api?
You replied that onEnable has something to do with singletons, I dont get that.
A stupid "design pattern" where instead of having a class with static methods, u have a class but u only make one instance of it (so it's the same, except it's more code)
The MyPlugin extends JavaPlugin is a singleton, there can only be one instance of it
Difficult to say. Most API is stable but in the first few months I do expect us to break things more than usual in order to quickly repair crashes.
Most systems are pretty stable but as the code based ages through the initial storm, we will need to figure out our policy on code changes that may prevent mods from functioning.
Static methods do not work for statful applications, which is where singletons are used for things such as manager patterns.
Well hello there 
I would say that is necessary
Would there be a "loader" that loads multiple jars from a directory (similar to spigot) or will the community need to make one?
The server has a Plugin system already built in - in fact the server uses that Plugin system itself as quite a significant amount of code is organized into that to keep the codebase clean.
We are still transitioning things over but our aim is a high degree of modularity to allow server operators to customize their server beyond anything seen before.
Oh so the base game is a plugin?
Glad to hear yall are dogfooding your own systems!
Hello slimey can I ask some questions in dms if you don't mind .
Awesome so it's builtin already, so no wars for forge vs fabric fs spigot vs paper etc
Is there native built-in sharding?
That sounds like the way Factorio does it where they have a game engine with mod support and the actual game is a mod for that game engine so anything the base mod does can be replicated by any mod
The base game may not be a full plugin, but it is likely they use much of their system for many of the base game systems.
Speaking as someone who had to support all of the different modding frameworks and game versions for Minecraft... I couldn't be happier about how Hytale is doing things x)
That also means u can have forks for ur server for extra control, but u can still use plugins normally, which is great
I honestly couldn't imagine why or how they could do it any other way, considering they are developing for moddability - Most games who have modding in mind develop for modding.
Working on a hytale server looking for Dev's testers and other positions as well.
Do we have any information about Hytale's API for modding for now ? Any documentation or other ?
We are not there exactly. We still have a bunch of things hardcoded in some areas. Some things are supposed to move from the core into a Plugin etc. We have systems which are in a prototype stage and others haven't been touched in years and just work as stable. The whole thing is a bit of a mess right now and only the source can tell you the details
There will not be documentation. You will get the source on release and in EA we can use the decompiled jar.
Oh, ok, so we will get this on january 13th ?
Yeah
But would it be realistic to think that eventually it would be best to move as much as possible from hardcoded to adjustable in a plugin?
Yes, the moment you get the game you can make a server and start modding.
Oh, perfect !
Is there native built-in sharding?
just wondering, what graphics api does hytale use for rendering? is it like minecraft where it's opengl or is something else like vk or dx used?
I need to know how many players I can expect to fit
Hello can I ask some questions in dms if that's cool
I would rather say as much as reasonable because pulling out some things from the core would just lead to over-abstracting things and then it would become harder to work with. We will strike a balance but I have no idea yet what we will end up with.
In case there is not the dev of MultiPaper and ShreddedPaper would be interested in making one for you. I can get you in contact with him if you want
It's in java or c# ? cuz i know that in the past, some people talk about c#
Looking for people to join development of a server looking for people to test people to develop and other roles as well .
Is the jar (until source is available) will be obfuscated? or will stuff like class/function names will be as is? (and also local vars?)
They said no obfuscation
java server, c# client
No single world sharding built in. You can use a transfer packet and portals to connect multiple servers together and send players between them but there is no sharding at the moment.
Hello slikey i am a server developer and my plans regarding hytale I want to ask some questions if that's fine with you can we talk in dms.
I am not accepting friend requests at this moment, sorry. If you have questions please ask them publicly
I am guessing you are not interested in adding that into the base game right?
So I assume this means no "worlds/dimensions" (nether, end, custom)? there is only one world per server?
That's different. There is multiworld support already, we use it for the base game.