#server-plugins-read-only
1 messages · Page 119 of 1
hey, wanted to check in. Has there been any break through on how to effectively make nameplates colored without generating glyphs?
not yet from what ive been trying hopefully in the future they make it easier
I'm hoping what's dropping on march 3rd with curseforge is either the source code or some proper documentation
Is there a mod that bypasses the firewall error that most people get when joining others?
hi, i{
im trying to login with a device to run a server using the docker image, but all the time im getting an error from credentials or somekind of auth error, i check my account and it has the game profile, and im able to play the game, but i cant make my server start
did you solve it?
Is there a easier way to replace all block recipes instead of manually duping every block?
What is the the filler data in BlockSection represent? I'm unable to quite grasp at its use
there's a mod called rtchanger which can do it from a config, or you can look inside the main.class of that mod and see how they do it (loop over CraftingRecipe.getAssetMap().getAssetMap())
exact error?
Whats the proper way to like teleport a player but after lets say 5 seconds? And make sure it cancels when he moves or something
Do they actually need to be items? Why not use a block that distributes items. Could use collision like portals to trigger item pickup. You could control logic of the blocks placement, creation, and destruction easily
It's for SkyWars so no, that wouldn't work haha. Thanks though
Not sure what that is, but there's no reason that i can actually think of where this wouldn't work. Blocks don't necessarily need collision, and can be made to function exactly the same as an item
Yes, when players die, their items drop
Players need to be able to see the items
Isn't that behavior a functioning event? I'm pretty sure there's mods intercepting that for stuff like bodies. Which are a storage, which can be visually manipulated.
I guess I'm saying that you can very likely utilize some smoke and mirrors for a solution that isn't very janky feeling
I think the only way to prevent pickups for some players would be to remove the pickup component from items and create a custom one
I'm saying you shouldn't use the items, you should find a solution that does the same gameplay dynamic, without using items. Such as preventing the item drop, and making it a storage placement that contains the items, or a block placement, that holds item data, and spawns particles, until a player who can pick it up steps on it, and the block gives the player the items
Something like that is easy to pull off in a convincing manner
Players will want to see the items dropped though. The only way this could be done with your solution is to create a chest with items, but then a chest would be spawned every time a player drops an item as well
I guess I don't know the game you're talking about well enough to give a more dialed in methodology, but this is the kind of solution id probably mess with rather than fighting the games systems
I'll likely just end up creating a new pickup system
I'm hoping that we see things like that improved upon in the codebase soon. Like the ability to persist metadata through items created on block destroy. :<
Which id think they're going to want to add for stuff like upgraded tables
Yeah, they definitely need to improve some things
It’s early accès guys they have build the game and server you see in few month they will improve it for sure but they have probably better to do rn
does anyone know how to detect if a plugin is loaded -- specifically for soft depend with Luckperms atm
Can't you just list it in your mod's manifest? Oh, soft-depend
Yes but theres parts of the code I dont want to run if that plugin is loaded
The easiest way would be a try-catch block that tries to access a luckperms class, and returns in the catch block upon class def not found exception
is there a way to prevent player from opening inventory? or prevent player from pressing tab? or changing the button that opens the inventory? I tried cancelling the packet that gets sent from client but it doesn't work, the inventory still opens up when press tab
yeah doing this for now even though its like basically evil lol
horrific way to implement but it works so thanks 👍
You could use the adapter pattern as well, 2 different implementations of an interface which defines the basic operations you need, and the instance you instantiate is based on whether a random luckperms class exists - then you save it in your plugin as a field and dependency-inject it where necessary
No the problem is we cant check if the classes exist in the regular way
What's the issue with Class.forName?
the only way is to make a call and have it fail.
The way I mentioned also relies on that
Thats basically what I'm doing then you just made it sound like there was an actual way to search my bad
Like ```java
// ...
try {
Class.forName("luckperms class");
return new LuckPermsImpl();
} catch (e: Exception) { // Tighten this down to classdefnotfound, idr the exact name
return new BasicImpl();
}
yeah i know
I mean if you do that early in your plugin, store the result in memory and give access to that trough a slim nice function.
You only have to do the exception checking once.
No
yeah thats no issue but still not as clean as avoiding a try catch
send me dm
It's java, you should be glad its not a AbstractFactoryBuilderBuilderFactoryBuilder in nested try catch loop that you have to specifiy trough maven dependency injection.
I have excepted that in java (specially enterprise) one have to invision try catch logic as their own special prefered if else in many cases.... :/
has anyone managed to create a custom Window and open it? I keep getting errors saying "no such method" when using player.getWindowManager
Can you give us your code and the console logs?
`public class QualityWindow extends Window {
public QualityWindow() {
super(WindowType.Container); // Basic container style
}
@Override
public JsonObject getData() {
JsonObject data = new JsonObject();
// This JSON will be sent to the client
data.addProperty("title", "Hello World!");
data.addProperty("capacity", 9); // Number of slots
data.addProperty("message", "Greetings from your server mod!");
return data;
}
// Called when the window is opened
@Override
protected boolean onOpen0() {
return true;
}
@Override
protected void onClose0() {
// Cleanup if needed
}
}`
` @Override
protected void execute(
@Nonnull CommandContext commandContext,
@Nonnull Store<EntityStore> store,
@Nonnull Ref<EntityStore> ref,
@Nonnull PlayerRef playerRef,
@Nonnull World world)
{
Player p = store.getComponent(ref, Player.getComponentType());
assert p != null;
// Create the window
QualityWindow window = new QualityWindow();
// Open it for this player
p.getWindowManager().openWindow(window);`
[2026/02/14 08:48:33 SEVERE] [CommandManager] Failed to execute command test for T4NKUP com.hypixel.hytale.logger.sentry.SkipSentryException: java.util.concurrent.CompletionException: java.lang.NoSuchMethodError: 'com.hypixel.hytale.protocol.packets.window.OpenWindow com.hypixel.hytale.server.core.entity.entities.player.windows.WindowManager.openWindow(com.hypixel.hytale.server.core.entity.entities.player.windows.Window)' at com.hypixel.hytale.server.core.command.system.CommandManager.lambda$runCommand$0(CommandManager.java:290)
try clientOpenWindow
same thing, [2026/02/14 08:56:55 SEVERE] [CommandManager] Failed to execute command test for T4NKUP com.hypixel.hytale.logger.sentry.SkipSentryException: java.util.concurrent.CompletionException: java.lang.NoSuchMethodError: 'com.hypixel.hytale.protocol.packets.window.UpdateWindow com.hypixel.hytale.server.core.entity.entities.player.windows.WindowManager.clientOpenWindow(com.hypixel.hytale.server.core.entity.entities.player.windows.Window)' at com.hypixel.hytale.server.core.command.system.CommandManager.lambda$runCommand$0(CommandManager.java:290)
Wait I see your issue you're not passing the right arguments
.openWindow requires the arguments of Ref<EntityStore> ref, Window window, Store<EntityStore> store
Hmm, the function only takes a Window though, public OpenWindow openWindow(@Nonnull Window window) { maybe I am on a different server version than u?
Yeah must be
try with the arguments i said if that doesnt help no clue
I haven't just reading docs and my intellij references
How do I get the PlayerComponent from a playerRef? `PacketFilter filter = PacketAdapters.registerInbound(
(PlayerPacketFilter) (PlayerRef player, Packet packet) -> {
if (packet.getId() == 204) {
}
return false;
}
);`
Ref<EntityStore> entityStoreRef = playerRef.getReference();
Player player = entityStoreRef.getStore().getComponent(entityStoreRef, Player.getComponentType());
ok ty. I also have to execute it on world thread
i wish they would give more freedom for modders to change the inventory UI. I open up a custom page when I listen for 204 packet but there is a weird flash delay because the client automatically opens inventory page before opening mine
What would be the right approach to only allow building in a world for specific players? Or like interacting with chests and stuff?
If you want the pre-release, you have to add -patchline pre-release. More info at https://support.hytale.com/hc/en-us/articles/45326769420827-Hytale-Server-Manual
@sonic cargo why did you take down HyzenKernel? People were actively using it
im running my server from a hosting website
Then you need to ask them for help with it
now that a new version is out i am unable to connect to the serveer as its out of date because my game is on new one and server on old
i cant update it because they havent realeased the updated files for servers
new version is only pre-release for now
Does anyone know how to set dropdown entry in a DropdownBox dynamically through Java?
Please visit the following URL to authenticate:
https://oauth.accounts.hytale.com/oauth2/device/verify?user_code=Df3yRgKy
Or visit the following URL and enter the code:
https://oauth.accounts.hytale.com/oauth2/device/verify
Authorization code: Df3yRgKy
downloading latest ("release" patchline) to "2026.02.06-aa1b071c2.zip"
[================================== ] 68.0% (969.6 MB / 1.4 GB)
See the downloader on their website is for the 6/02, not todays release
That's the launcher version, not the game version
look below the PLAY button in the launcher
that's the current release version
2026.02.06-aa1b071c2
the new update will come on tuesday
guys
I'm trying to find how to access an entity (a mob or something) when left clicking on it with an item. Can anyone give me a direction where i could find documentation about that (it doesn't even have to doc, i can check the decompiled code, but idk where to look).
When you say, access, how do you mean?
Idk
like get a hold of its id (idk if there is such thing)/damage it/ teleport it/ anything really or get a ref to it and go from there. I want to figure out what info i could get from it so i can know what's possible.
Hi, i am trying coding mods for my server. I am rly new in this and i try to add multi language support, but i cant find how i get the right language of the player client.
You should read up on interactions. Looking up the shear item would be a good one and sheep. Since ypu can sheer sheep and get wool it needs to interact with the item the creature and create a new item.
But interactions in general.
Oh, that's a great idea
I'll look into it..
TY :>
You just send Message.translation() strings and the client will automatically use the selected langugage if it's available in your translation files
Guys i downloaded hytale and its stuff but i cant play it it says i didnt purchase it when i go to the launcher can you give me someway to fix it
i have proof
Contact customer support
I am getting an error "Unrecognized VM option AOTCache=HytaleServer.aot". I am using the command "java -XX:AOTCache=HytaleServer.aot -jar HytaleServer.jar --assets Assets.zip". I am using a Raspberry PI 5. I have java 25 temurin installed
Are you sure the version being used is 25? Maybe /usr/bin/java is pointing to a different executable. Do java --version
java -version
openjdk version "25.0.2" 2026-01-20 LTS
OpenJDK Runtime Environment Temurin-25.0.2+10 (build 25.0.2+10-LTS)
OpenJDK 64-Bit Server VM Temurin-25.0.2+10 (build 25.0.2+10-LTS, mixed mode, sharing)
since you are on a rasphi i guess we talk linux? maybe you need to type: -XX:AOTCache=./HytaleServer.aot
if its in the same directory ofcourse
hello guys !! Quick question about Hytale Server API:
Is there a way to open external URLs in the player's browser directly from a Custom UI button click?
I can use Message.link(url) for chat messages (works great), but I can't find an equivalent for UI buttons.
Looking for something like:
Player.openUrl(String url)- Or a UI command to trigger browser opening
Is this possible, or is chat-based linking the only option?
Thanks!
It's not necessary. If they're in the server dir it's fine to not include ./ (since they're launching the server without a relative path, it's safe to assume they are in the server dir)
@haughty jolt at worst case you could remove that argument, the aot cache isn't vital - it just speeds up launch times a little
i personaly had also the problem that it would not register the .aot without the ./
thas why i'm suggesting it
Eh, I guess it's worth trying since it's such a minor change
it would appear I am not current enough
java -jar HytaleServer.jar --assets Assets.zip
Error: LinkageError occurred while loading main class com.hypixel.hytale.Main
java.lang.UnsupportedClassVersionError: com/hypixel/hytale/Main has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up
The last part seems to be missing? That would tell you which version is currently being used
I will get that resolved thanks
java -jar HytaleServer.jar --assets Assets.zip
Error: LinkageError occurred while loading main class com.hypixel.hytale.Main
java.lang.UnsupportedClassVersionError: com/hypixel/hytale/Main has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0
That's java 17 I believe?
I am going to check my install and see if there are old links to 17 because that was installed before I updated
Try whereis java
You could explicitly use the java executable from the java 25 installation if you're lazy to clean up too
whereis java
java: /usr/bin/java /etc/java /usr/share/java /usr/share/man/man1/java.1.gz
I will do a cleanup 🙂
thanks for the help
Hey guys I'm using the plugin template but it doesn't seem like the mods are being loaded in the dev server
Any ideas?
Which plugin template are you referring to?
Goddamn being blocked for links
github dot com HytaleModding plugin-template
nvm figured it out
hello guys !! Quick question about Hytale Server API:
Is there a way to open external URLs in the player's browser directly from a Custom UI button click?
I can use Message.link(url) for chat messages (works great), but I can't find an equivalent for UI buttons.
Looking for something like:
Player.openUrl(String url)
Or a UI command to trigger browser opening
Is this possible, or is chat-based linking the only option?
Thanks!
thanks everyone who helped me with codecs yesterday, my lootcrate plugin actually works so well now, everything gets safed into config json and you can modify the json live on server with commands i made
okay there appears to have been an oversight, i add the same item again instead of update its values, whoops
Last time I heard a talk about aot caches there were some limitations.
- Same OS
- Same cpu architecture
- Similar Java version
You could generate your own AOT cache if you want, too
Would suggest banning ign "Mantas" to avoid server crashes - @lusty patio
Feel free to contact me if you need a UUID.
Hello Togeter, is it Posibble to talk witch one of teh creators
is there something wrong with the server it keeps giving me an error
Creators of what?
from hytale
If you want to provide feedback or make a bug report you can do so on https://accounts.hytale.com/feedback , or with the button at the bottom right of the pause and main menu in the game
it`s not fotr that
Then why? They don't interact here. What's your question?
i cant connect anymore
What's the error?
Look at the server logs though
You're trying to connect to someone else's server? We don't know... Try to find the server admins and ask them. Hytale does not host or control player servers.
Ah thank you 😃
Small thing for my sanity... added a shortcut to ctrl+shift+b to trigger a build.
Hello, I'm working on a custom interface plugin. I've created a button and I'm trying to make it so that when a player clicks this button, the server executes a LuckPerms command (via the console) to promote the player. Could someone explain how to do this? Thanks
idea for a new mod/plugin
The plugin consists of adding doorbells/intercoms;
a button (that can be placed next to doors) associated with the player who places it (in the future, it could be possible for the player to decide on other owners of the doorbell)
once this button is pressed, it emits a sound (a game sound, unmodified sound, or an audio file that can only be customized by the server founder) for a certain number of blocks* and at the same time a notification appears in the game (to the player who placed the doorbell) saying “{player name} rang the doorbell”
*It would be cool (but complex) if, once the bell is placed, the plugin could detect the player's entire building and play the sound only there, but it would be complicated and could be used to create problems.
In the future, it could be integrated with Discord. (perhaps using existing plugins).
I have other ideas for plugins/mods (I still don't understand how to call them on Hytale, mods or plugin someone call mods into plugin and otherwise).
Is there anything like Margin in UIs?
Hello does anyone know why loading this UI causes "Failed to load CustomUI documents" when starting world?
Group {
Anchor: (Width: 500, Height: 500);
LayoutMode: Top;
Padding: (Full: 20);
Background: #1a1a2e(0.95);
Label #Title {
Anchor: (Width: 300);
Text: "Essence Generator";
Style: (FontSize: 24, TextColor: #ffffff, Alignment: Center);
}
Group { Anchor: (Height: 16); }
Group {
Padding: (Full: 20);
LayoutMode: Top;
ProgressBar #EssenceValue {
Value: 20;
Min: 0;
Max: 64;
}
Group { Anchor: (Height: 16); }
TextButton {
Anchor: (Height: 40, Width: 150);
Text: "Create Orbs";
}
}
}
This one works fine:
Group {
Anchor: (Width: 500, Height: 500);
LayoutMode: Top;
Padding: (Full: 20);
Background: #1a1a2e(0.95);
Label #Title {
Anchor: (Width: 300);
Text: "Essence Generator";
Style: (FontSize: 24, TextColor: #ffffff, Alignment: Center);
}
}
in the client logs it should have a better detailed message about what in the ui file failed. fyi
open diagnostic mode from settings general bottom
diagnostic mode doesn't do much if they crash out while loading into the world does it?
it shows the where is the problem
underscore95/hytale-ui-docs
on github
ok great stuff, I wil lread through it, thanks
anyone know the arg to accept early plugins when launching a server
Is there a way to redirect a player to a url?
with a world gen mod how can i change the sky ?
Last week ended beautifully with steady orders and confirmed payments, and today being Valentine’s makes it even more special. Grateful for every single customer. 💘
it was --accept-early-plugins
Hey quick question. Do AssetImage in uis support url? or just fiels?
hello guys !! Quick question about Hytale Server API:
Is there a way to open external URLs in the player's browser directly from a Custom UI button click?
I can use Message.link(url) for chat messages (works great), but I can't find an equivalent for UI buttons.
Looking for something like:
Player.openUrl(String url)
Or a UI command to trigger browser opening
Is this possible, or is chat-based linking the only option?
Thanks!
Does anyone know how Hytale mod updates work? I have several community mods on my server, how do I update them? Do I just delete the old .jar, install the new one, and then after starting the server it takes care of the rest?
yup
there's a few mod manager plugins i've looked into but haven't experimented with but yes, you download the updated mod and just replace the old one and restart
Remove the old bottle and add the new one, and that's it? Or do I need to delete the configuration folder as well?
If the ui elements that are part of common ui , you have to add common ui to the file realtive to the root of the ui folder, and also reference commonui when declaring them i think.
what happens to this.keyStringOptArg.get(commandContext) when the optional arg is not provided? is it just an empty string, null or smth completly different?
Took a look at the get command. it will return.
Object defaultValue = defaultValueArgument.getDefaultValue();
nope, leave the config unless you want to wipe it
but yes
Quicky question, we cant make custom keybinds yet right
public class StructoryCreateEventPre extends EntityEventSystem<EntityStore, UseBlockEvent.Pre>{
public StructoryCreateEventPre() {
super(UseBlockEvent.Pre.class);
}
@Override
public void handle(
int i,
@Nonnull ArchetypeChunk<EntityStore> archetypeChunk,
@Nonnull Store<EntityStore> store,
@Nonnull CommandBuffer<EntityStore> commandBuffer,
@Nonnull UseBlockEvent.Pre event)
{
HyStructory.log("Test");
}
@Nullable
@Override
public Query<EntityStore> getQuery() {
return Archetype.empty();
//return PlayerRef.getComponentType();
}
}
I've registered this system but no output on console if i use blocks
Did you start the server trough gradle/maven/idea, did you connect to the server and not just start or join an existing world?
Did the server produce any errors or warnings when starting beyond the default ones
Nvm, i was keeping doing mvn clean and not packaging
But, beside packet injecting, is there a way to intercept generic Right click on blocks or air ?
Realize there are few things I dislike more than UI layout declaration work.
whats the difference between a page and a window? from the unofficial docs it seems like they do the same t hing
Hey quick question. Do AssetImage in uis support url? or just files?
How are large playercount servers handling right now? Last I checked people are using insane amounts of memory
m
what ip??
ip typically stands for "internet protocol" or sometimes intellectual property
okey
I don't think so. At least I couldn't find anything when looking. I would like to be wrong though.
There is a "okey" mod on curseforge that does O binding but thats just that. sadge
Is this a known bug with hytale when adding worlds or what? cause the exact same code to load worlds works 90% of the time then just randomly removes the world on creation
[Server] [2026/02/14 19:58:28 INFO] [SimpleClaims|P] Registered world: IronMine
[Server] [2026/02/14 19:58:28 INFO] [SimpleClaims|P] Registered map for world: IronMine
[Server] [2026/02/14 19:58:28 INFO] [Universe|P] Removing world exceptionally: IronMine
[Server] [2026/02/14 19:58:28 INFO] [World|IronMine] Removing individual world: IronMine```
rn my solution is to just monitor the world manager for 5 seconds after a world is created and recreate it if it doesnt stick which is weird because itll just run the exact same thing again and then work
Are custom dimensions currently possible with plugins?
yes
Easily so.
^
Has anyone had issues with .png and .ogg randomly breaking for their mod and causing the client to crash with a null reference error?
2026-02-14 14:08:43.9389|ERROR|HytaleClient.Application.Program|System.NullReferenceException: Object reference not set to an instance of an object.
at HytaleClient!<BaseAddress>+0x586263
at HytaleClient!<BaseAddress>+0x3e0034
at HytaleClient!<BaseAddress>+0x5c88b3
at HytaleClient!<BaseAddress>+0x66e86e
at HytaleClient!<BaseAddress>+0x687c47
at HytaleClient!<BaseAddress>+0x6877ec
at HytaleClient!<BaseAddress>+0x1289397
Server boots no error but the users client crashes when they attempt to load in
has anyone been able to dynamically generate ui elements such as buttons at runtime and dynamically set event handlers on them?
Quick question, i try to build a UI shop, but is it possible to importe urlImage to display him directly in the interface ?
lol, has anyone tried using chatGPT for help in modding? it straight up just conjures fake classes/methods.. AI is dangerous. People believe everything it says even when it lies to you
So i created a few items in my dedicated server, and when the server restarts, it like wipes the items from the game, in my hotbar it says "Invalid Item" and in the asset editor its still there, but to get it to work again in game, i have to reset the texture of the item.
What am i doing wrong?
anyone know the method for getting a block from a coordinate? "getBlock(xyz)" I saw it before but now I can't remember where its at. World? ChunkUtil? >_<
real quick does anyone know the permission for using /tp world default ?
OP
without op? with over a permission plugin like etherealperms?
one second my game keeps crashing....
my client cant even get onto my server anymore and i think it has something to do with my last issue
hytale.command.teleport.world
also the teleport command in general is in the Creative permission group
@opaque cape I am using your Server Jump mod and getting some errors. Can I DM you to t-shoot?
Sure
i figured out how to change the interactions for blocks so they behave like minecraft. instead of pressing F you and just left/right click to open door, etc

O primeiro login dos jogadores no meu servidor está dando em baixo do spawn e caindo no limbo, alguém sabe o que pode ser? já tentei de tudo
Is there a way to mount a player on an entity without overriding the entity's AI/role, so the entity moves the player instead of the other way around?
Yes, this also happens with me and i had the same solution. Great minds think alike
lol makes sense
giving with etherealperms this permission ends in "You dont have the permission for that command"
Is an official developer API documentation coming any time soon? im sick of studying this Server jar for hours hoping to find the one method i need
public class PlaceBlockEventSystem extends EntityEventSystem<EntityStore, PlaceBlockEvent> {
public PlaceBlockEventSystem() {
super(PlaceBlockEvent.class);
}
@Override
public void handle(final int index, @Nonnull final ArchetypeChunk<EntityStore> archetypeChunk, @Nonnull final Store<EntityStore> store, @Nonnull final CommandBuffer<EntityStore> commandBuffer, @Nonnull final PlaceBlockEvent event) {
Ref<EntityStore> ref = archetypeChunk.getReferenceTo(index);
PlayerRef playerRef = store.getComponent(ref, PlayerRef.getComponentType());
if (playerRef == null) {
event.setCancelled(true);
return;
}
var worldId = playerRef.getWorldUuid();
if (worldId == null) {
event.setCancelled(true);
return;
}
}
@Nullable
@Override
public Query<EntityStore> getQuery() {
return PlayerRef.getComponentType();
}
}
Any idea why i get this error?
java.lang.NullPointerException: Cannot invoke "com.hypixel.hytale.component.query.Query.validateRegistry(com.hypixel.hytale.component.ComponentRegistry)" because "query" is null
at com.hypixel.hytale.component.ComponentRegistry.registerSystem(ComponentRegistry.java:674)
at com.hypixel.hytale.component.ComponentRegistry.registerSystem(ComponentRegistry.java:663)
at com.hypixel.hytale.server.core.plugin.PluginBase.setup0(PluginBase.java:389)
at com.hypixel.hytale.server.core.plugin.PluginManager.setup(PluginManager.java:757)
at com.hypixel.hytale.server.core.plugin.PluginManager.setup(PluginManager.java:236)
at com.hypixel.hytale.server.core.HytaleServer.boot(HytaleServer.java:373)
at com.hypixel.hytale.server.core.HytaleServer.<init>(HytaleServer.java:331)
at com.hypixel.hytale.LateMain.lateMain(LateMain.java:54)
at com.hypixel.hytale.Main.main(Main.java:43)
How can it be null if playerRef is like a build in ref no ?
I register it in setup like this
this.getEntityStoreRegistry().registerSystem(new PlaceBlockEventSystem());
hello, I'm having trouble getting the hot reload feature to work with intellij idea and the hytale docs plugin, because if the server is running the plugin won't build/overwrite the last version, how can i fix that ?
Hello, I'm having trouble with an error in my UI. When I claim via my UI, my game crashes and I get a UI error that says “balanceamount,” but I can't find where the error is.
guys how do u do hotreload for ui development?
Hey,
is someone using MySQL to store data of your java project?
And if so, have you also had issues with the SQL Connector?
Simple Claims is using SQL Lite
You can checkout their source code. I also just did because i wanted to see how they implemented their permission system for claims
Ahh okay, thank you. I guess I should switch because it's a nightmare trying to figure things out with MySQL. Many version incompatibilities :)
Any one knows why PlayerRef.getComponentType() is not registered in the setup override?
How would i go about creating a new category in an existing workbench, as when i try to overwrite the existing workbench, and interact with it, my client just crashes
hi, where can I publish my art?
What to do when you have a small location where it's permanently stuck in a weather effect?
It's like in a rectangule not even close to the size of a chunk, but been raining there since yesterday and server restarts commands such as weather reset and change, do nothing.
i saw that the only channel is community-art but it won't let me post anything
I have an issue after event binding when the handleDataEvent occurs the Eventdata I bind is null. If anyone has examples of their s working it would be appreciated.
We have official docs for Custom UI markup, NPCs, and worldgen. They're on Hytalemodding,dev. It's coming out bit by bit currently
@west elk the bit on the account was some bizarre timeout from their API, the next day it was all fine btw
I'm happy to hear that 🙏
now I have smaller mysteries to resolve, like why is there 20 blocks where it's permanently raining D:
I can't get my custom background to work when using appendInline. The same path works fine in my ui file. Any ideas
Has anyone found out how to create a catagroy under a workbench without overriding the workbench its self?
how do i set a block to air?
it's Empty
I was already working with your site but it’s Not detailed enough for the things I need it for now, I’ll just hope that the Hypixel Team soon releases a documentation as they already promised to do so in a Q&A
How do i add event systems to all worlds?
@Override
protected void start() {
this.getEntityStoreRegistry().registerSystem(new PlaceBlockEventSystem());
this.getEntityStoreRegistry().registerSystem(new BreakBlockEventSystem());
this.getEntityStoreRegistry().registerSystem(new DamageBlockEventSystem());
this.getEntityStoreRegistry().registerSystem(new PickupItemInteractEventSystem());
this.getEntityStoreRegistry().registerSystem(new DropItemInteractEventSystem());
this.getEntityStoreRegistry().registerSystem(new InteractEventSystem());
return;
}
This doesnt seem to apply to instances or something or am i missing something ?
Thanks for sharing.. can confirm this was my issue as well xd
is there any way to detect if user opened chat with enter-key?
From what I saw I dont think so
Hey, I have one more question because when I open doors, pick berries, or cut down trees in the world, it tells me that I don't have permission. I know mb with permission and need add.
unlucky
Is it possible to disable to loose items on death ?
Yeah, in the Death config of GameplayConfig
Can i set that viacode or how do i set that? Via worldConfig?
asset editor
GameplayConfig is defined per world
so you can make a new gameplayconfig for your world that has the default one as a parent and just overrides the death config
I cleaned up the java issue. The is up and running but how do I join the server to run the /auth login device command?
I keep getting denied saying the server isn't authorized
That needs to be run from the actual terminal the server is running on, unless you have a control panel that does it for you
OMG i feel stupid lol thank you
Don't forget to run the /auth persistence Encrypted command so it saves it between reboots!
Perfect I am in like Sin 🙂 thank you so much
now to see how well the pi can handle this game lmao.
Can anyone tell me how to get rid of the "does not specify a target server version. You may encounter issues, please check for plugin updates." message? It only happens with my packs, not my plugins. Using the same server field with * doesnt work.
I see, the wildcard is being phased out
In your manifest.json , you can add "ServerVersion": "2026.02.11-891910c77", or whatever exact version.
Use an other Component ?
All system is active on all world
is there any protection plugins disable pickup block in cf
Hi everyone, any tips for building good UIs/Pages? Any documentation or websites to help with this?
Anyone know what block event would be for lava touching water and making cobblestone? or how that is handled off the top of their head and wanna point me in the right direction so i dont have to go and do a bunch of searching?
oof i gotta make a whole new fluid ticker, alright will do lmao
Whats the proper way to give a player the required permission to execute a command ?
"1b515282-db5d-4dc1-8ccd-1357bbb99d59": {
"permissions": [
"skytale.admin.world.join.skeletondungeon",
"simpleclaims.edit-party",
"skytale.admin.gameworld.join",
"essentials.warp",
"skytale.admin.world.join.default",
"skytale.island.create",
"skytale.island.invite",
"com.skytale.stwms.skytale-stwms.command.gameworld",
"skytale.lobby",
"essentials.kit",
"simpleclaims.accept-invite",
"skytale.island.home",
"skytale.player.menu",
"skytale.admin.hub",
"com.skytale.stwms.skytale-stwms.command.world",
"skytale.island.accept",
"simpleclaims.party-leave",
"potato.abbreviations.command.hub",
"essentials.tpa",
"simpleclaims.claim",
"skytale.admin.world.leave",
"skytale.admin.world.list",
"com.skytale.stwms.skytale-stwms.command.is",
"skytale.admin.minigame.join",
"skytale.admin.world.join.dungeonhub",
"simpleclaims.create-invite",
"hyskills.command.togglebar",
"simpleclaims.unclaim",
"skytale.admin.world.join.mineportalhub",
"skytale.island.leave",
"com.skytale.stwms.skytale-stwms.command.minigame",
"skytale.admin.world.join",
"skytale.admin.lobby",
"skytale.admin.world.join.forest1",
"essentials.tpaccept",
"skytale.hub",
"skytale.admin.world.join.mine1",
"skytale.island.templates",
"simpleclaims.create-party",
"skytale.island.setspawn",
"hyskills.command.toggle",
"essentials.msg",
"com.skytale.stwms.skytale-stwms.commands.minigame",
"hyskills.command.skills",
"com.skytale.stwms.skytale-stwms.command.lobby",
"simpleclaims.claim-gui",
"com.skytale.stwms.skytale-stwms.command.givemenu"
],
"groups": [
"OP",
"Adventure",
"Creative"
]
}
public CreateCustomWorldCommand(
@Nonnull String name,
@Nonnull String description
)
{
super(name, description);
requirePermission(HytalePermissions.fromCommand("pluginName.customWorld.create"));
}
And i have in my permission json given the player the pluginName.customWorld.create
oh thats what you mean my b
but when i try to execute it it says command not found. I checked the plugin it loaded but the user still cant use it
Only when user is op it works but why?
this.requirePermission("skytale.admin.world.createdungeon");
Ahh wait the permissions are in group and not in permissions list
you dont need HytalePermissions.fromCommand()
Has anyone tried creating their own .ui files? Have you noticed missing declarations from the Common.ui file?
also sometimes if the command has no arguments it wont let you set a custom perm and you literally have to use the default perm
"com.skytale.stwms.skytale-stwms.commands.minigame",
Oh ok. Btw whats the point of adding com.skytale at the beginning? Skytale probably the name but whats teh com for? Is it just default for something
com.author.author-plugin.commands.command
The author is Skytale cause thats the server name, the plugin is named stwms
stands for Skytale World Management System, but honestly it does a lot more than that now, it just runs my whole server
I saw that there are permission groups and then permissions right? Do you have a custom permission group for your plugin ?
actually idk i think im just following proper naming convention im not certain you have to do com.author.plugin, i think its just whatever your plugin directory is past main
C:\Users\Administrator\Desktop\Hytale-Example-Plugin\src\main\java\com\SkyTale\STWMS
past java sorry
\com\SkyTale\STWMS
Do you make your plugin automatically give permissions to users? Like when they first join for example?
does anyone know where Common.ui and Sounds.ui are located when designing custom UI files? The ones being loaded are missing a whole bunch of declarations
I use luck perms for assigning perms and making roles, but i do create custom perms for all my commands that let me, the ones with no arguments dont let me make custom perms for some reason though and i never cared to dive deeper cause i can just use the default perms for those
how do you use /fill with a fluid
@pulsar oak if you're talking programmatically, it's like this. The main thing is that fluids aren't their own blocks, they are components on any block
ok im kinda really tired and forgot i was in the server-plugins channel 😭 i meant with cmds/ingame
Anyone have a working dedicated server update script? I run the built in commands and it will not update.
SOU BRASILEIRO BUSCO ALGUEM QUE POSSA ME AJUDAR COM UM BUG NO SERVIDOR TODA VEZ QUE TENTO JOGAR COM AMIGO DA ERRO NO FIREWALL OU DIZ QUE ELE PODE ESTAR OFILINE SENDO QUE ESTOU EM CALL COM ELE NO MOMENTO , JA TENTEI TODAS AS SOLUÇOES DO YOU TUBE MAS NADA DA CERTO SE ALGUEM PUDER ME AJUDAR POR FAVOR MANDE PV
I AM BRAZILIAN AND I AM LOOKING FOR SOMEONE WHO CAN HELP ME WITH A SERVER BUG. EVERY TIME I TRY TO PLAY WITH A FRIEND, IT EITHER GIVES A FIREWALL ERROR OR SAYS HE MIGHT BE OFFLINE, EVEN THOUGH I AM ON a CALL WITH HIM AT THE MOMENT. I HAVE TRIED ALL THE SOLUTIONS ON YOUTUBE BUT NOTHING WORKS.
The default permission group had a bug that wiped it every time the server restarted last time I checked
Using the adventure perm group is the easiest way to assign default perms
Hello, I am looking to detect two mods at startup so that I can see if they are on the server and notify the server manager to warn them that a dependency is missing. Does anyone know how to do this?
You can add them as a dependency so the server will not load a mod if one is missing
Actually, it's not really mandatory since it's just incompatible with some mods, so I wanted to post a message specifically warning about the mod in question.
but I figured out how to do it
Fair haha a lot of the work around people have found conflict
You could try to load a class from those mods with Class#forName in a try-catch block, it will throw a classdefnotfounderror if it doesn't exist
If it doesn't throw you can proceed and post your message
use the asset editor, create a new liquid from a liquid, change apperance properties, set what block is created when this liquid comes in contatct with another liquid. done.
Where do i safe custom world instances? I know that in assets / instances there are fiels but how can i make that my plugin has custom ones and it should be added to the assets stuff
wild i didnt even think of doing asset overides
Is it possible to spawn a particle that lives as long as its deployable?
heloo, how can i disable this? _Shadow has left Lobby/Hub Floating Island
How to remove "<Player> has left <World name>" when a player leaves a world / disconnects ?
such as -> Akirabane has left Default
@full sleet via a packet filter like this 👆
I know I asked it before, but have anyone figured out a way to reduce the start time for the server in debug?
How long is your startup tn
6 minutes
Do we have a List of all Default Hytale Modules?
"Dependencies": {
"Hytale:I18nModule": "*",
"Hytale:BlockStateModule": "*",
"Hytale:BlockModule": "*"
},
Seen this in one of Slikeys example Mods. And since I'm currently having Load Order Issues on one of my mods I probably need to reference a Default Hytale Module but don't know which one.
like 2 seconds in release.
Okay now that is crazy, what did you put into the setup Phase?
How can I make a plane entity fly? Where in the asset editor can I change settings so the plane entity can fly, or is there some other way?
it's just two command. showing a ui that have no additional internal logic.
this.getCommandRegistry().registerCommand(new MyUICommands.OpenMyHudCommand("OpenMyHud","OpensMyHud"));
this.getCommandRegistry().registerCommand(new MyUICommands.OpenListEntitiesByComponentUICommand("OpenListEntitiesByComponent","ListEntitiesByComponent"));
I am considering, that either its the malware scanner seeing file changes when it writes the logs.
or something to do with console output.
since thats nutorious slow in windows when doing a lot.
but it logs the same stuff in release...
Guys
if i want to create a new component that saves data of type "Ref<EntityStore>", what Codec type should i use?
meaning, in the codec builder what should i type? (in the case of saving a 'long' var i use Codec.LONG...)
Does anyone know why after creating an instance and setting the uuid of the world it doesnt apply instantly instead only after server restart?
var loadingWorld = InstanceManager.CreateInstance(templateName, worldId, defaultWorld);
if (loadingWorld == null) return;
InstanceManager.TeleportPlayerToLoadingInstance(playerRef, loadingWorld, playerRef.getTransform().clone());
loadingWorld.thenAccept((world) -> {
var worldConfig = world.getWorldConfig();
worldConfig.setDeleteOnRemove(false);
worldConfig.setDisplayName(worldDisplayName);
worldConfig.setUuid(UUID.randomUUID());
worldConfig.setBlockTicking(true);
worldConfig.setPvpEnabled(false);
InstanceWorldConfig instanceConfig = InstanceWorldConfig.ensureAndGet(worldConfig);
instanceConfig.setRemovalConditions();
}).exceptionally((e) -> {
Logger.Error(e.getMessage());
return null;
});
Only when i restart the server im able to get the world by the actual id i set after creation why? ( WIth Universe.get)
If i remember correctly from an earlier post, the world wont have the uuid before its loaded, so in the accepted you would set the uuid for the worldconfig?
oh you do.
or i should just use another way to save a ref to an entity (let's i want to get a hold of the entity from a far using an item)
Yea it has a default uuid but when i want to set it to a different one it just doesnt work only after i restart my server.
Did you run.
WorldConfig.save(destinationConfigFile, worldConfig)
oh lol wait thats a thing ?
Whats the proper way to get the path of the existing world config
I just found InstanceEditCopyCommand, look trough that if it does something similar to what you need in general.
Ok. I edited the run script and removed gradle debugging and profiling, then it starts up roughly the same.
Was worried for a second that I would have to debug and develop this entire thing without being able to add breakpoints.
String path = "./universe/worlds/" + worldName;
Path filePath = Path.of(path);
WorldConfig.save(filePath, worldConfig);
Is this right? Because this didnt work
Hmmm. Like i said i just searched trough the code and found a exampel where they activly saved the file, but that could be because they are copying a world instance into a new one.
So maybe it's not the same. Sorry. Not sure. 🙁
🙁 Thats so confusing why it only updates the uuid after server restart
Maybe it has to do with how the world is referenced after that?
The world creation already feels like it would load the worldconfig to create an instance in your first call,
InstanceManager.CreateInstance(templateName, worldId, defaultWorld);
public static CompletableFuture<World> CreateInstance
(
@Nonnull String templateName,
@Nonnull String worldName,
@Nonnull World forWorld
)
{
var spawnProvider = forWorld.getWorldConfig().getSpawnProvider();
if (spawnProvider == null) return null;
var transform = spawnProvider.getSpawnPoint(forWorld, UUID.randomUUID());
if (transform == null) return null;
var instanceNameExists = InstancesPlugin.get().getInstanceAssets().contains(templateName);
if (instanceNameExists == false) {
Logger.Error("InstanceManager - CreateInstance - templateName doesnt exist");
return null;
}
return InstancesPlugin.get().spawnInstance(templateName, worldName, forWorld, transform);
}
They set the uuid inside the instancesPlugin which is from hytale itself
Yeah. I read trough it.
What they do is that they don't load a world when spawning the instance.
They load the world config file, when the world config file is loaded, they change the values they need, guid etc.
Then they trigger the loading of the world itself.
So you load a default world and the default world config, once the world is loaded you set the uuid for the world, but the world is already loaded, so it won't read any info from world config, before its restarted and load the worldconfig file next start.
They load a worldconfig, set the uuid for the world config, tell the world to load from the world config with the uuid they set.
The reason it works for you on restart is that, is when it will try to load world config files again.
That does make sense yea, do you have any clue if i could make it like so it instantly knows that the config has changed ?
ideas appreciated im actually abit lost
I could use the world name but i feel like thats not the right way 😄
Not trying to derail or come with a better solution.
What do you need the world uuid for?
I mean what is it that breaks due to the world uuid not being set?
I let users create worlds and map the worlds to the user by its uuid
so they create a world, but when they want to join by uuid it only works after restart
Ok that makes sense.
I also found like worldConfig.hasChanged and worldConfig.consumeChanged but it doesnt really do anything or atleast i dont understand that
I think it might be easy easy as using
InstancesPlugin.get().spawnInstance(instanceName, world, returnLocation);
instead of
InstancesPlugin.get().createInstance(instanceName,world,returnLocation);
create instance i think is ment to be for worlds you will have one of its configuration, so the guid won't be relevant before it saves and reload.
spawn instance is where you will have multiple version of a similar configuration, and you need to be sure the guid is set and you can do logic towards that.
Hey
I’m new to Java and currently developing a plugin for Hytale.
I’m trying to connect a SQL database (PostgreSQL or SQLite), but I can’t find any clear resources on how to properly do this with Hytale plugins.
Can I just use a standard JDBC driver?
Do I need to use Shadow to bundle the database driver?
Is there a recommended way to handle persistence in Hytale?
If anyone has experience with this or a small example project, I’d really appreciate it
Thanks!
Id recommend you to look to simpleClaims they use sql lite their repo is also opensource
I could not find creatInstance on that plugin
hmmm
right let me look, yeah thats protected my misstake.
no wait..
i have the git thanks !
No worries i also learned alot from their repo really good
That issue is actually depressing me. Im thinking about just switching to world name that will work for sure
Hmmm. InstancesPlugin.get().CreateInstance was what it said in the code you referenced to me so thats why i used the same. ^^
I can't find CreateInstance either
Ah yea that was my own wrapper
haha ok.
whatever ill just use the world name f it :/
In the end, as long as it works, it works.
Code running without sideffects that's resulting in your goal was the right code.
the duality of programming: wondering why something doesnt work and wondering why something works
anyone that can help me find out why i cant go in to my server after update
dont understand it did work just fine last week i was in and now it dont work its starts up and looks good but i cant join
Does anyone know if it is possible to see chunk borders in the world without a plugin ?
I get this error when joining the server
failed to load updated customui textures
border no, but you can see chunk position and find the chunk via the F7 button twice bottom right World Section Chunk Line and figure it out that way. But no physical border
Where can I find info about Hytale threading model? Is it one thread per-world or smth more advanced like grouped chunk or idk
Prob the best Youtube video for it: 3CC8aKxXVB8 (Can't post links sorry)
00:00 Introduction
01:24 Multi-Threading Basics
05:11 How Single-Threaded Game Servers Work
08:25 Hytale's Multi-Threaded Architecture
13:05 Thread-Safe and Non-Thread-Safe Methods of Hytale's API
17:30 How To Write Thread-Safe Code
22:28 Thread-Safe Hytale Patterns```
thx
how to create a list in a .json config file, I also need methods such as custom components, e.g. as I have done here
builder.append(new KeyedCodec<>("BackpackItem", Codec.STRING),
(data, value, info) -> data.BackpackItem = deserializeItems(value),
(data, info) -> serializeItems(data.BackpackItem))
.add();
CODEC = builder.build();
}
// Lista -> String: "miecz:5|zloto:64|luk:1"
private static String serializeItems(List<Backpack> items) {
if (items == null || items.isEmpty()) return "";
return items.stream()
.map(item -> item.getName() + ":" + item.getAmount())
.collect(Collectors.joining("|"));
}
// String -> Lista: "miecz:5|zloto:64" -> [{miecz,5},{zloto,64}]
private static List<Backpack> deserializeItems(String str) {
List<Backpack> items = new ArrayList<>();
if (str == null || str.isEmpty()) return items;
for (String pair : str.split("\\|")) {
int colon = pair.lastIndexOf(':');
if (colon > 0 && colon < pair.length() - 1) {
try {
String name = pair.substring(0, colon);
int amount = Integer.parseInt(pair.substring(colon + 1));
items.add(new Backpack(name, amount));
} catch (NumberFormatException ignored) {}
}
}
return items;
}```
has anyone ran into issues joining a server and the textures in the world won't load? npcs and items and even modded items are fine, map loads. all the blocks and everything is just black for some reason. doesn't happen on my machine but when I connect with another client. the other client is a mac but loads sp fine
do you mean list as in this?
{
"LootItemName": "Rock_Stone",
"RollWeight": 5,
"UnitWeight": 2,
"LootItemMinAmount": 1,
"LootItemMaxAmount": 5
},
{
"LootItemName": "Soil_Dirt",
"RollWeight": 2,
"UnitWeight": 10,
"LootItemMinAmount": 1,
"LootItemMaxAmount": 3
},
{
"LootItemName": "Soil_Grass",
"RollWeight": 2,
"UnitWeight": 10,
"LootItemMinAmount": 1,
"LootItemMaxAmount": 3
}```
definitely a mod thing, now to find out which
Whats the proper way to not allow commands while the player is in combat?
can i check for a component or something?
That's not what I mean.
"copper",
"silver",
"gold",
"platinum"
],```
Hi everyone! 👋
I’m working on a Gens / Tycoon-style server on Hytale and I’m looking for help or collaborations.
My goal is to build a server where players place different generators that produce custom items over time, sell those items, and progress by unlocking better generators, upgrades and limits (like max generators per player, boosts, etc.).
I already have:
- an economy system
- a basic spawner / generator base that I’m experimenting with
What I’m looking for:
- someone who can help create a generator mod (items generated every X seconds)
- or an upgrade system (generator boosts, limits per player, tiers, etc.)
- or any existing mod that could be adapted for a gens / tycoon server
If you’re a modder, or you have experience with Hytale mods and think your project could fit this kind of server, I’d be very grateful for any help or advice.
write to you on dm
i think thats still the same like mine just with strings instead of my custom thing
i can send the code i used you can copy the layout and see if its the same
That would be great, could you send it to me in a private message?
request send
I think so, but instead of using, for example, a string, you used a list with objects, at least that's how it looks.
yea i have custom class "LootItem" with a name and properties for my crate algorithm
Is there a way to make the player tp when touching/colliding with a block ?
hello, is there a way to get the the block the player is looking at ?
I believe there is a built-in command surpressor, just don’t know how to access it since they still didn’t provide any kind of API documentation
Yeah the term you're looking for is "raycast"
how to listen on left-click/right-click on block events?
Like PlayerInteractEvent of minecraft
you can use PlayerMouseButtonEvent
How can I make it so that when a player presses a button, the page reloads for all players who have it open?
What part of that are you struggling with?
- Reacting to a player's button press
- Keeping track of all currently open UI pages
I don't know what to call the update for these open pages.
Hello !
I'm looking to install a mod only on one world in one of my save files (so not at the server level, but at the world level).
Can you help me ?
You would need some sort of condition checking in your mod. Afaik there is no way to do it otherwise.
What is the "event" when i use a bow for example please ?
I don't think there is a field for worlds in manifest.json. What exactly are you trying to achieve? So you changed the moon asset and only want that to apply in a specific world?
The "event" is that the player is in this world XD
Yes, only in the specific world
I think this is achievable with WorldGen V2 but that wasn't your question, let me look into how to load packs in certain worlds only.
The a world do not run or load mods, the server does. So this is not possible. There is no concept of installing a mod for a world.
Either the server knows of the mod and can apply things to worlds, entities or chunks based on the mods design, or you don't.
There are clear ways to limit a mod to only do things to one world on the server, but thats different from what you are asking for.
I could be wrong.
No limit a mod to only one world is good too 🙂
But then do mod doing the changes would have to be designed in such a way.
Is there an API for Hytale to check the activity of the servers?
What is the moon asset you are trying to override? I haven't worked much with weather (which I think this is related to), but I can see if I can make it work like you want.
What activity?
Looks like the Moons are tied to weathers so technically you could create your own weather and then activate that weather only in that specific world.
server online status or players
Universe.get().getPlayerCount() for example
If you're talking about within a Java plugin? Or do you mean API?
RWBY's moon on curseforge 😉
I need a direct API, without any hosting.
Ok let me check what they override, one sec
Is a handheld item considered an entity?
If yes how can i get its ref to the entity store?
(For example if i right click using an item i want to add a component to the item)
Yeah so it overrides this:
Sky
MoonCycle
Moon_Crescent
Moon_Full
Moon_Gibbous
Moon_Half
Moon_New
This is used for Zone1_Sunny for example under Moons.
If you want per world you have to make a unique weather instead of overriding existing weathers like this mod does.
is there no way to fix mod validation on servers now?
as in like bypass older versions like before for pre-releases etc
Do you know how to make a custom weather @knotty wigeon or else I could help you with that?
Can you send the error message you got?
Mod NoCube:[NoCube's] Tavern failed to load. Check for mod updates or contact the mod author.
Mod Major:MajorDungeons failed to load. Check for mod updates or contact the mod author.'```
Those; and the Lootr mod continued to hold everything from generating in the server
anyone knows the hytale permission for using entity spawn? every source i find seems not to be accuratre and differs
Thank :p i have success with weather fonctionnality 😉
java.lang.ExceptionInInitializerError
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:467)
at java.base/java.lang.Class.forName(Class.java:458)
at ThirdParty(Lootr:Lootr)//noobanidus.mods.lootr.system.BlockSpawnerPreSystem.<init>(BlockSpawnerPreSystem.java:29)
at ThirdParty(Lootr:Lootr)//noobanidus.mods.lootr.LootrPlugin.setup(LootrPlugin.java:81)
at com.hypixel.hytale.server.core.plugin.PluginBase.setup0(PluginBase.java:392)
at com.hypixel.hytale.server.core.plugin.JavaPlugin.setup0(JavaPlugin.java:48)
at com.hypixel.hytale.server.core.plugin.PluginManager.setup(PluginManager.java:870)
at com.hypixel.hytale.server.core.plugin.PluginManager.setup(PluginManager.java:284)
at com.hypixel.hytale.server.core.HytaleServer.boot(HytaleServer.java:386)
at com.hypixel.hytale.server.core.HytaleServer.<init>(HytaleServer.java:344)
at com.hypixel.hytale.LateMain.lateMain(LateMain.java:56)
at com.hypixel.hytale.Main.main(Main.java:43)
Caused by: java.lang.IllegalArgumentException: Query in AndQuery cannot be null (Index: 0)
at com.hypixel.hytale.component.query.AndQuery.<init>(AndQuery.java:35)
at com.hypixel.hytale.component.query.Query.and(Query.java:50)
at com.hypixel.hytale.builtin.blockspawner.BlockSpawnerPlugin$BlockSpawnerSystem.<clinit>(BlockSpawnerPlugin.java:117)
... 13 more```
thats the lootr one
Happy you made it work
For Major Dungeons do you have the latest release (3 days ago)?
hi guys i have some problem i have created some weapon but i want to make it work in game when i click build gradle copy paste the jar file it shows there but when i activate the weapon mod dont show in game help 
Major Dungeons has "ServerVersion":"*" so it does not depend on a specific version - perhaps you are on a newer version where Major Dungeons does not work because of changed API or similar.
right; the issue is that before you can bypass versions for them to work still which you can still do in singleplayer apparently but it doesnt seem to be an option on dedicated servers
You should be able to do this with the asset editor by copying an existing item. But if you really want to bundle it with your plugin then make sure your manifest.json has IncludesAssetPack set to true.
includeAssetPackset to true alright i dont get it yet but will do more big brain research trial and error on it thank you big bro 
@graceful fog Sun asset not be change with weather func ?
so if anyone has the line of code in the config maybe that would work ?
Is it possible to somehow disable the appearance of destroyed blocks in BreakBlockEvent?
The sun does not seem to be a texture but rather a mixture of colors under the Colors properties
You could set the damage to 0 but then you wouldn't be able to break the block at all, not sure what you're trying to achieve?
Ok so Sun.png in Common/Sky is obsolete?
At least I can't find it in the asset editor, let me check..
Where do you find this Sun.png?
I want the player to be able to destroy the block, but I don't want any items to drop from it, like when you smash ore, it drops ore, but I want nothing to drop.
quick question, i try to display external image into a ui interface, is it possible or not pls ?
no, images have to come from an asset back. may be a different/separate asset pack, though
What are you developing anyway? you seem to know like everything about hytale
They manage one of the unofficial documentation sites IIRC.
oh interesting, which one?
Uh... It was hytalemodding dev, right @west elk?
It probably seems that way because I only respond to questions that I know the answer to ^^ (and some of them prompt me to research the answer)
I'm mainly just playing around and testing the limits based on the questions here because interesting questions inspire me to find the answers. Off and on, I'm doing some ui development for minigame stuff but that's about it. My main "playground" mod is just a mashpot of exploration (titles, ui, some worldgen experiments, testing how fluid components work, and so on)
Hey everyone, I understand what Hytale is trying to do, but its UI is really exhausting. I keep finding myself reading a new document every time. Is there a tool that could save us and make our work easier? Don’t say HyUI, because I’ve tried it and ran into a similar issue there as well.
Nah, just suffer through how it does UI like the rest of us. :_ )
Outside of HyUI I don't think much exists.
No, I'm not affiliated with any documentation site. I have one contribution to hytalemodding since it's open source but other than that, I just like recommending specific articles of them to people if the article fits the question
: |
Whoops. My bad then.
no worries :)
I think some people have made pretty bad decisions.
i don't think the current ui system is exactly permanent, at least certainly not in it's current implementation
oh dope okay
yeah forsure, only supporting one custom ui element is werid asf
Correct. they plan on completely removing it in favor of NoesisUI soon eventually. That will open up tons of possibilities
already better than minecraft scoreboards tho lol
and chest inventories 
we got some placeholders to get it out the door but it got out
@severe niche hey bud how do I change the range of the quickstacker block?
Has someone has been having problems with custom NPC´s? When I relaunch my server it logs Reference to unknown builder: My_Template, but it is a copy of Blank_Template
Anyone have more information on this? i cant find where to edit where fluids interact with each other in the asset editor
Hey! That's me. Alongside of our other projects, I also manage the documentation website including the unofficial and official documentation on therem
So sorry I assigned your achievements to another. My infinite apologies.
Nothing to apologise about, it's not about credit just that incase anyone here has any suggestions or issues with the website, it's better to ping me.
anyone managed to the SwitchActiveSlotEvent ECS event to fire? seems to me like its just broken and does not fire.
Unironically the goat
You cant even being to imagine how useful the Wiki is
And yes i call it Wiki lol
Out of nowhere, my UI started turning black. For example, when I send a sendAsset request, it updates, but sometimes it goes black. Does anyone know how to fix this?
Hey! Are there any good builders here who would be interested in creating something for my plugin?
yay i got HUD attached on player ready working with hotreloading
you think this would work with reloading gui files?
Im actually reloading .ui files
Accept DMs?
is hytale support custom font?
can anyone explain why setBlock causes entities to have no Ref yet PlaceBlockInteraction does? Is there some extra step needed to update blocks that are set rather than placed?
not yet
Is there a mod for height slider
i have done it guys i made a mode like kubejs in hytale
Anyone know how to fix this custom Ul MarkyPError
V2026.02.11-25536468e
N131
Pages/QuestPage.ui (21:149) — Could not find an expression named DisabledColor in document Common.ui
Hovered: (Background: Patchstyle(TexturePath: "./Common/Buttons/Tertiary_Hovered.png", Border: $C.@ButtonBorder), LabelStyle: (FontSize: 12, TextColor:
#06c9de, RenderBold: true, HorizontalAlignment: Center, VerticalAlignment: Center)),
Pressed: (Background: PatchStyle(TexturePath: "/Common/Buttons/Tertiary Pressed png", Border: $C.@ButtonBorder), LabelStyle: (FontSize: 12, TextColor:
#96a9be, RenderBold: true, HorizontalAlignment: Center, VerticalAlignment: Center):
Disabled: (Background: PatchStyle(TexturePath: "../Common/Buttons/Disabled.png", Border: $C.@ButtonBorder), LabelStyle: (FontSize: 12, TextColor: $C.@Dis abledColor, RenderBold: true, HorizontalAlignment: Center, VerticalAlignment: Center)),
Sounds: $C. @Buttonsounds, im in the latest pre release its stuck on my screen i cant do anything
Hey, is there any way to hide the held item via server plugin? In creative mode there is the "Hide Held Item" option but can i call it via plugin code? There is no HudComponent for the held item and player doesnt seem to have any "model" related methods to hide specific limbs/the held item.
can you send me your questpage.ui file ?
#server-plugins-read-only message
Does no one know a work around for this if so?
Where can i find that?
whats this error from a mod you using?
you want to play older versions?
I think so but i was fine 10 minutes ago then this just shows up i did i did try removing mods with uis or huds in them.
Hmm ill check mmoskillstree that had a ui
any mod you using has a quest?
Just MMOSkillTree
remove that and try again but possible mod wasnt updated to latest pre release
I see
Removed it but its still there
remove every mod add single single
Does anyone know of a mod that provides a web map that actually works? All the options on Curseforge seem abandoned with no author activity in a month and features not working.
Can anyone recommend a simple economy mod that supports a server shop NPC?
Hi, I searched up the term asset type and found your post, I am trying to make a custom asset, I've also found some other posts on the internet. On the other examples they create the WelcomeToastConfig.CODEC using a BuilderCodec and then in the .setCodec( they cast the WelcomeToastConfig.CODEC as a (AssetCodec). I ran into all sorts of issues doing it this way, then I tried a few other ways. Have you got a example of your asset file WelcomeToastConfig how you create the CODEC in there?
Hey when you create a UI page does anyone know where in the client directory it gets loaded? It must be in Game/Interface where Common.ui is right?
I guess it doesn't work that way.. I want to utilize the client UI images in my custom UI pages but I'm guessing they are loaded from a different directory
Yeah it doesnt but you can do what i did and just copy them into your mod then you can use their assets like the design of the buttons
I could but that would increase the server bandwidth a lot, each player would download extra copies of the images. I need to figure out which directory they are being called from so I can reference the already existing images on client
Hytale\install\release\package\game\latest\Client\Data\Game\UI\Textures
ya its weird, I can reference Common.ui and Sounds.ui but when I look in the client folder /client/Game/Interface where I THINK the custom ui pages are loading from I cannot access other stuff such as Common/Container.ui
Ahh I figured it out Dtap, its in the asset editor under Hytale:Common/UI 
but they dont have itemgrid styles for some reason >_<
Why does PermissionsModule reset all permission when i add a new group or something?
anyone know why attachedToType in ServerCameraSettings being set to NONE crashes the client? I dont want to attach camera to any entity, i just want to set the camera position to Settings.position and lerp to Settings.positionOffset
positionOffset seems completely unused, this is very counterintuitive
did you add diagnostics in settings and saw if there where any errors in the logs?
Also when you change the servers camera settings you are changing them for all clients that connect, since the client camera us the server camera settings, so there is probably things in the players cameras that need access to the players entity.
im sending the packet to individual players, would that still override the camera for all players? im not using the settings anywhere else
diagnostics were on but i cant check them if i crash. Maybe ill try other settings and see what the console says
Hmm, looks like the latest HytaleServer.jar changed some stuff with WindowManager. Is there a easy way to ensure your HytaleServer.jar file in IntelliJ stays updated?
Do you have the Script that runs Server from inttelij
I think that one has an Auto update but not sure
i dont. that sounds very useful, where can I find? 
Looking at the code, the first thing the playercamera setting does is loading the servercamera setting and use as a default, then it overrides those with specific camera settings based on any camerasettings on the player.
use the maven artifact for the server jar and use IDEA's run application configuration with your module's classpath, the jar will be there. You just need to pass in assets and ensure the working dir is correct @vocal kelp
this is client code?
regardless i dont really care about that , im pretty sure sending camera settings packets to one player will not affect the others. Im just wondering why the coordinate systems for camera are so jank and why I cant just use absolute coordinates
and why AttachToType.NONE even exists if all it does is crash the client
since you mentioned offset not doing anything, did you change the value for
cameraSettings.positionDistanceOffsetType?
All this said, why non crash is hard to say, could be that certain combinations of settings don't work well together, or that some logic that run on the camera expectes a target type with that specific config.
i used a german tutorial from a youtuber called "schloool", even if you dont understand it it should be sufficient to see what to do
it has a title like "hytale server in IntelliJ einrichten" or similar
ok thx man
The game contains far less default components than i expected.
Hello, if I want to create a component for block, to hold a custom value should i use Component<ChunkStore> or Component<EntityStore> ? Also, how do i connec this component to my custom asset?
Is this enough?
[...]
"BlockType": {
"BlockEntity": {
"Components": {
"EssenceTank": {}
}
},
[...]
"EssenceTank" is registered in my setup
Hey does anyone know if the Server code has a github? In the latest update Simon said they added "Anchor UIs" where we can insert custom UI code into the default client pages but I cant find where they are at in the server code.
You need to be sure if its the latest pre release or current he is talking about the update for and that your version match.
The jar for it should be the jar in that verisons folder, the sources i think can be pulled trough maven trough their url specifying the version you want the sources for as well.
But I am a bit unclear how to set that up and configured.
Also when he talks about he latest update he can be talking about the one coming, not necessary the one released.
ok
My understanding is that ChunkStore are for the blocks when they are part of a chunk but still need state information of some sort, like the water updating, or maybe bounce height from the mushroom block the player collided with, or the id of the container the (block) chest should open.
The EntityStore would be for when the item is loose in the world or in a players inventory, well essentially not part of a specific chunk.
Also each chunk seem to have its own component store. I think its for quicker update when the chunk gets a update call. The server specifiy what chunk to update, and that chunk have all the data it needs without needing to pull from shared data or larger lists between all chunks.
But someone could probably say if I am wrong in this.
i think the answer depends on what type of info your component is expected to define and when/how it needs to be accessed by the system.
ok, so for my case, when i place a custom block in world, and i want it to generate a resource using ticking system, it would be better to use chunk store
Anyone got any idea on creating an instance on those little damage markers but programmatically
I'm making a mining plugin and want it to show up when the user hits the block
Also how would I do something like a hologram?
for hologram you can spawn entity that is invisible and show its name or something?
Hmm, I feel like that is something that should be done in the client unfortunately. Perhaps you could try to spawn a custom particle image for damage.
Any chance theres a packet to tell the player they've damages something?
Maybe use the DamageBlockEvent
damage block doesnt cause the client to have hitmarkets
you can find all of the packets in com.hypixel.hytale.protocol.packet
packetregistry
but how to send only for players nearby
that parts not an issue

for one its only going to the player mining but if needed to be local players u can just compare radius' or players within the chunk and then send them the packet individually
I am stuck too (I'm not a java dev btw). I am stuck with the example I got online where they create the CODEC as a builderCodec and then when registering it they cast it as a AssetCodec and it fails on the cast. Where are you stuck?
what about UpdateEntityUIComponents? packet 73. it looks like there are some "combatText" fields
maybe you could fake something
I dont have a decompiled server jar sooo
ido doesnt need to be decompiled
dont see add as library
oh mb got confused I thought because my intellij search was showing up decompiled that the lib itself would be
Do you think DamageInfo packet is just the damage that the player has received or do you think its the damage they've done
dunno, just gotta create one, give it some dummy data, send it, and see how the client reacts to it
Is there a server list for this game?
Hmm, so a "Window" doesn't handle UI at all then? Its just used for container events and what you want to do is open up a CustomUI page with "PageManager.setPageWithWindows" instead?
how can i debug this error: Crash - Failed to parse or resolve document for Custom UI AppendInline command. Selector:
2026-02-16 20:01:57.9144|INFO|HytaleClient.Utils.SentryHelper|Sentry event captured: f2aeeef395df41e4bd2781136fd8d8e5
2026-02-16 20:01:58.9215|ERROR|HytaleClient.Application.Program|System.ArgumentNullException: Value cannot be null. (Parameter 'key')
at HytaleClient!<BaseAddress>+0xa9b501
at HytaleClient!<BaseAddress>+0x1165571
at HytaleClient!<BaseAddress>+0x30727f
at HytaleClient!<BaseAddress>+0x68e665
at HytaleClient!<BaseAddress>+0x59a653
at HytaleClient!<BaseAddress>+0x63b8e7
at HytaleClient!<BaseAddress>+0x653747
at HytaleClient!<BaseAddress>+0x6532ec
at HytaleClient!<BaseAddress>+0x120b717
--------------------
2026-02-16 20:01:58.9215|INFO|HytaleClient.Utils.SentryHelper|Sentry event captured: 5b4ea5001543433ebb61702574d30c50
%appdata%\Hytale\UserData\Logs then go to the latest one!
PacketHandler handler = playerRef.getPacketHandler();
com.hypixel.hytale.server.core.modules.entity.damage.DamageCause damageCause = new com.hypixel.hytale.server.core.modules.entity.damage.DamageCause();
com.hypixel.hytale.protocol.Vector3d vector3d = new Vector3d(targetPos.x, targetPos.y, targetPos.z);
DamageInfo damageInfoPacket = new DamageInfo(vector3d, Float.parseFloat(String.valueOf(damage)), damageCause.toPacket());
handler.write(damageInfoPacket);
I'm not windows user but i can find this path
post the code
they meant they found the logs ...
And u know if it's possible in the future version of interface GUI ?
No I don't know if/how it'll work with Noesis
Hey DaniDipp, do you think they already integrated Noesis? If you look into the client/Game/UI you can see a bunch of xaml files
Yeah they're already using it for a few thing and are working on migrating that to everything else
ahh crap, so no point in trying to learn the UI now then
depends on if you want to do any custom ui work over the next couple months ^^
the Noesis transition won't happen within the next few weeks, it's a big overhaul
imo the current system is still worth playing around with. there is currently no public timeline for the transition
geeze, i guess i will work on other parts in the meantime
How do I send a packet
player.getPacketHandler().write(packet);
please let me know if you figure it out. that sounds interesting
i mean the damage display when mining
I get an NPE
NPE?
null pointer exception
post your code, your packet is probably incorrect
a
How can i get this component in SimpleBlockInteraction?
@Override
protected void interactWithBlock(@NonNullDecl World world, @NonNullDecl CommandBuffer<EntityStore> commandBuffer, @NonNullDecl InteractionType interactionType, @NonNullDecl InteractionContext interactionContext, @NullableDecl ItemStack itemStack, @NonNullDecl Vector3i vector3i, @NonNullDecl CooldownHandler cooldownHandler) {
Ref<EntityStore> ref = interactionContext.getEntity();
Store<EntityStore> store = ref.getStore();
Player playerComponent = (Player)commandBuffer.getComponent(ref, Player.getComponentType());
PlayerRef playerRef = store.getComponent(ref, PlayerRef.getComponentType());
EssenceTankComponent essenceTankComponent = commandBuffer.getComponent(ref, EssenceTankComponent.getComponentType());
GeneratorPage page = new GeneratorPage(playerRef);
playerComponent.getPageManager().openCustomPage(ref, store, page);
}
EssenceTankComponent implements Component<ChunkStore>
It is registered in my plugin setup and its used in my custom asset .json file but i would like to display component data on UI but i cannot get component from commandBuffer since its expecting Component<EntityStore>
WorldChunk worldChunk = world.getChunk(ChunkUtil.indexChunkFromBlock(vector3i.x, vector3i.z));
Ref<ChunkStore> blockRef = worldChunk.getBlockComponentEntity(vector3i.x, vector3i.y, vector3i.z);
EssenceTankComponent essenseTankComponent = chunkStore.getComponent(blockRef, EssensTankComponent.getComponentType());
I think
the example i looked also did a
if (blockRef == null) {
blockRef = BlockModule.ensureBlockEntity(worldChunk, pos.x, pos.y, pos.z);
}
but that function is deprecated so maybe its not the right way.
Thanks, I will take a look
Has someone been able to implement a custom Action for NPC's?
It's on my list but haven't tried yet.
Does anyone know if it would be potentially possible to make a computer mod where you can build them and have screens and os with lua programming like opencomputers mod for minecraft?
Yes that's possible
Screens will probably be a bit tricky and require something hacky like nameplates of invisible entities to render text in the world though
Would be outta my knowledge then lol
Sadly when i do this, chunkComponent passed to page is null:
@Override
protected void interactWithBlock(@NonNullDecl World world, @NonNullDecl CommandBuffer<EntityStore> commandBuffer, @NonNullDecl InteractionType interactionType, @NonNullDecl InteractionContext interactionContext, @NullableDecl ItemStack itemStack, @NonNullDecl Vector3i vector3i, @NonNullDecl CooldownHandler cooldownHandler) {
Ref<EntityStore> ref = interactionContext.getEntity();
Store<EntityStore> store = ref.getStore();
Player playerComponent = (Player)commandBuffer.getComponent(ref, Player.getComponentType());
PlayerRef playerRef = store.getComponent(ref, PlayerRef.getComponentType());
WorldChunk worldChunk = world.getChunk(ChunkUtil.indexChunkFromBlock(vector3i.x, vector3i.z));
Ref<ChunkStore> blockRef = worldChunk.getBlockComponentEntity(vector3i.x, vector3i.y, vector3i.z);
EssenceTankComponent chunkComponent = world.getChunkStore().getChunkComponent(blockRef.getIndex(), EssenceTankComponent.getComponentType());
GeneratorPage page = new GeneratorPage(playerRef, chunkComponent);
playerComponent.getPageManager().openCustomPage(ref, store, page);
}
Whats an effective method for tying follow up code to an evt.addEventBinding trigger?
Do you have any other confirmation that your component is actually gets added to the chunk or block.
I mean beyond being in the json, do you get any logs or seen from break points that the component is created and added properly?
I can see it in asset editor
Ah. Then I have no idea. I have put of the component creation until i have more of the ui under control, so I haven't done the full codec declaration and all that stuff for a custom component yet, but thats where i would guess something goes wrong. Some information lacking on how to read the assetdata json that contains your component information, into the actual component object in the entity on the server.
anyone knows whats the use of this folder Hytale_Shop in mods folder that gets automatically generated
Maybe the unlocks based on the tier you bought the game at?
It is for the kweebec barterin Shop i think
It spawns in with only {shops = {}} or similar and i think if you trade with a kweebec (or other Shops later in the game idk havent played the actual progression) it will add stuff like what has been bought out and similar
Yep, it's the native ShopPlugin for Kweebec, Klops bartering
keeps track of their stock and refresh timers
Is there a list of Entity Components anywhere?
Guys
how do i retrieve a specific info from the meta data of an item?
(i have a key and i want to retrieve the data from the item via the metadata)
something like this?
var metadata = itemStack.getFromMetadataOrNull(new KeyedCodec<String>("linkedEntity", Codec.STRING));
(this item already has a metadata of key = "linkedEntity",)
The Codec in the call seems super scuffed
@fathom dune I got it working
@Override
protected void interactWithBlock(@NonNullDecl World world, @NonNullDecl CommandBuffer<EntityStore> commandBuffer, @NonNullDecl InteractionType interactionType, @NonNullDecl InteractionContext interactionContext, @NullableDecl ItemStack itemStack, @NonNullDecl Vector3i vector3i, @NonNullDecl CooldownHandler cooldownHandler) {
Ref<EntityStore> ref = interactionContext.getEntity();
Store<EntityStore> store = ref.getStore();
Player playerComponent = (Player)commandBuffer.getComponent(ref, Player.getComponentType());
PlayerRef playerRef = store.getComponent(ref, PlayerRef.getComponentType());
WorldChunk worldChunk = world.getChunk(ChunkUtil.indexChunkFromBlock(vector3i.x, vector3i.z));
Ref<ChunkStore> blockRef = worldChunk.getBlockComponentEntity(vector3i.x, vector3i.y, vector3i.z);
EssenceTankComponent essenceTankComponent = world.getChunkStore().getStore().getComponent(blockRef, EssenceTankComponent.getComponentType());
GeneratorPage page = new GeneratorPage(playerRef, essenceTankComponent);
playerComponent.getPageManager().openCustomPage(ref, store, page);
}
hmmm what did you change or do?
I think you Import the json using codec the Same way you Import configs, then operate on that variable
And then either safe it back or dont if you Just red
instead of
world.getChunkStore().getChunkComponent
I used
world.getChunkStore().getStore().getComponent
😅
well..
how do i do it properly?
Hello, i'm trying to do this :
ProjectileModule.get().spawnProjectile(
But i need the "CommandBuffer" but the world don't have a method "getCommandBuffer", even "CommandContext" dont have it and the player ref also. How can i get the "CommandBuffer" please ?
Interesting, Could it be that a chunk component then is a component that goes on the chunk as a whole...
Yeah i think chunk components are different types of components specific to chunk logic, and entityStore and chunkStore hold components for single entities or blocks
Generally the approach is codec is only used in a class to define how its safed
Then you use Config in your pluginmain to safe and there call the codec and load from json
yeah looking at it, its cleary adding a BlockComponentChunk in the example i am looking at.
While the getComponent would query the component on the actual block level.
Thats only a surface lvl Exploration tho, there is also a decent tutorial by a guy called "ali" or "alli"
On youtube
yea
~Save/Saved
does he have vids on the usage of Codecs?
Sidenote, codec is a word that comes from the shortening of Code/Decode.
Yes, the only one ive seen in Video Form so far
hytale-docs com is also what i used
hi, anyone know how rescue chunks brokens?
Hay anyone figures out yet if its possible to trigger something when a player interacts with a player?
Yes. Damage would be a obvious example.
Otherwise i would assume you just query for a playercomponent, or extend the interact logic to query for a playercomponent. Or more easily, added some generic component to all things you want to interact with and query for that.
In the sense of it being possible. can't give a specific exact example.
yeah damage obviously, i was more referring to the nativ interaction system (f) or simply right licking a player
One could create another interaction that is ContextualUsePlayerInteraction, change that the lookup from
public class ContextualUseNPCInteraction extends SimpleInstantInteraction {
NPCEntity npcComponent = commandBuffer.getComponent(targetRef, NPCEntity.getComponentType());
Player playerComponent = commandBuffer.getComponent(targetRef,Player.getComponentType());
Then add a component to the player or do other events that are relevant, is what i would assume works.
Okayy
Ty
Btw
It worked using this code 😅😅
Thats funny, for me thats a case "why does this not work. Hey it works. Why does this work?"
lol
yea i should prob check why it works :>
any working example of how to set a background texture path image from another folder than the UI file using commandBuilder?
isn't it just usting a relative path?
2 questions
-
Where do you all source your assets for mods if you need them? I saw the blockbench thing and plan to check it out but I was wondering if there are other places I should look before making net new assets.
-
When generating a prefab in the players world how do you get the dang thing to not spawn on top of the trees? I keep ending up with whole cities floating in the sky ...
thats probably a mistake in the configuration of the prefab, usually you define a floor (e.g. 3x3 area of grass)
does this line make sense then? uiCommandBuilder.setObject("#AvatarFramePlayer.Background", new PatchStyle().setTexturePath(Value.of(convertedPath)));
Where convertedPath = "../Pages/AnotherFolder/image.png" ( where image is located Common/UI/Custom/Pages/AnotherFolder/image.png)
And the ui file is in Common/UI/Custom/Hud/hud.ui
Has anyone used MultipleHUD and been able to explain to me why, for example, changing the value of a HUD element doesn't work when I use this library?
Yes, hytale uses java for mods like mc java edition, but only the server can be modded, and the term plugin/mod can be used interchangeably as there's not a clear-cut definition as there is in the minecraft side. Also, only the server is in java, anyhow
Is there a way to teleport the player when touching a block
its easier to do with interaction what you describe sounds like a movement base check if player is in certain coordiante bound
Hi, I am passing my custom component to the page i created and i am able to display values from that components in ui when interact with block. But i have a problem to make it live values, they update only if i close and reopenUI.
my custom component just acumulates values with EntityTickingSystem<ChunkStore> so it adds 1 to the value each second. How can i pass it to UI so it autoupdates?
How can I modify the stats of some mobs with my plugin, such as assigning levels to them that alter their health, damage, etc.?
Override their json files with the asset editor
Dynamically?
to do it dynamically, you'll probably want to look at the EntityStatMap component. That's responsible for keeping track of numeric values like healz
Thanks!!
Guys, do you happen to know what will change when the server update comes out tomorrow? Will we have to add any special strings or JAR files, or just update hytaleserver.jar/aot and the assets? Thanks.
dang y'all got fancy colors
If your plugin runs fine on the prerelease branch, you don't have to change anything

,
Does anyone know what the expected timeline is on adding dns SRV records to the game? Quite a few of us host on shared infra, not using the standard server port. Meaning we always have to add a port number to the server ip
Thats what teleporters do, just see the code

Hi, I'm currently working on an updated server patches derived from Hyfixes / Hyzen Kernel called ♻️ Refixes.
The first version of Refixes should work on Hytale Update 3 and the project page is currently pending on CurseForge.
Stay tuned!
What's the current state of Hytale Servers?
When browsing online server lists, I cannot find a single server with 100 players. Not even hypixel is open. Do we know what the plans for servers are? They seem kind of dead right now..
All my servers stopped working and now I can't log into my own world that i spent weeks on. They keep saying it's failing to boot. What does that mean? I removed all the mods and created a new world even. Nothing worked. It's been days and nothing has changed.
In practice SRV records have some reliability problems, entire ISP or school DNS servers don't support them. This feature is not on the backlog at this time.
What's the chances of us getting a plugin/modding showcase forum to match the rest of the new ones? 🙏🏼
heyo heyo! is there ant place I can find docs to manipulate the player's model? or it's still something not implemented/accessible for plugins/mods?
-# imma ask here too
Not any time soon since there isn't a proper C# library for DNS stuff that includes it. The workarounds would be to use ipv6, get a dedicated ip, or a separate server that's only responsible for referring connecting clients to your proper server via ip+port
I'm going to go the VPS route, thanks!
there are no real networks so far as the game is barely been out and is still early access
there are a few hobby projects, i know some youtubers plan some bigger things
Why is it not working?
I am trying to make so a message is sent in chat when the plugin is loaded.
```public static void onPluginReady(PluginSetupEvent event) {
FormattedMessage message = new FormattedMessage();
message.rawText =
"The plugin "" + event.getPlugin().getName() + "" is ready!";
Objects.requireNonNull(Universe.get().getDefaultWorld()).sendMessage(
new Message(message)
);
}```
Hello, how can i live update my ui label, lets say it displays a value and while ui is displayed value changes and i want that changeyo be updates to ui
I think you need to get playerRef and send message to the player
ho can i see the code?
could be that you need Message.raw, i think just Message require some kind of specific markup and structure as well.
Why can't I access a friend's server without using a VPN? What's the problem that I don't understand?
Do you know how I can get that information?
I tried looking for any kind of documentation on that but there is not.
get the hytaleserver.source.jar and add it to your sourcepath and looking trough the servercode.
Uh guys do you also have this bug with fragment instances where if you die .... You get the death message respawn TWICE and the second click has your health to 0 permanently until you die again?
legit not even creative mode is able to regen the health after that, it's either death or /heal
var uiCommandBuilder = new UICommandBuilder();
uiCommandBuilder.set("#MyValue.TextSpans", Message.raw("new value"));
myUi.update(false, uiCommandBuilder);
Well, I think I have already done that, but when I look in the Message Class and sendMessage function, I don't find anything that indicate me how it should be formatted.
i imagine it'll pick up more in a few months after more updates yea i'd been looking at servers to look play on too
in hypixel/hytale/protocol/formatedmessage.java
defines the structure and byte values and offsets atleast.
I'm always getting "[4.690s][warning][aot] The AOT cache was created by a different version or build of HotSpot" on my server, how can I fix it?
It's nothing to worry about. If you want to give the jvm a little boost, you can do a training run and generate an AOT cache for your environment. But in the majority of cases, it's really only a minor improvement and you can just not use their shipped AOT cache. Java's JIT will be just fine without it
I already read through this... but I don't understand anything.
I don't get it, what makes it so complicated to send a message in chat? 🤔
I personally would have made a Server.sendMessage(String message) function, would have been easier 🤣
Well sending a simple message is as easy as you say.
playerRef.sendMessage(Message.raw("Hud Hidden"));
To send to a specific player a specific message.
if you have a commandContext you can use that.
context.sendMessage(Message.raw("..."));
To send to the one who owns the context.
or as the one you specified to everyone.
world.sendMessage(Message.raw("..."));
to send to everyone in the world.
you just need to complicated it if you want special formating and colors and cursive stuff.
But or plain message it just sendMessage(Message.raw("The Message!")).
Someone knows a good tutorial to add blocks via plugins? I have tried with many and non of them works on my local host or on a world
Oh ok, that make much more sense.
I did't knew that Message.raw() would work, or even that it exsited.
How did you found that? Sry for such dumb questions, I just started making plugins.
do u guys also have blackscreen sometimes while teleporting between worlds?
tried everything, chunk preloading etc. i still get it sometimes
the plugin project example i used, used that one.
also the document at hytalemodding regarding plugin creation mentioned it, also reading trough the systems and command of existing code they are used a lot.
Has anyone found a way to add a new category to a workbench? everything iv tried just crashes my game when i interact with the bench
If anyone is interested too I have a AI agent and skills for hytale. It knows the entire API.
any example mods you can reference for a barebones kotlin setup?
what would that entale?
sharing all your private information with someones homebrewen AI solution. ^^
lol i just wanna know how to add a custom category to a workbench XD
guys i need your help im testing currently the pre-release with my server and the server starts up fine, my plugins are fresh builded its ready, on join i get the ui failed to load. is there a way to see excatly what ui error occoured?
i saw once for a glance a ui overlay lay with an error but then it went streight to connection screen. in the client log nothing to find except for the general message
Hytale-Mod-Agent on github, but yeah its good. Let me ask the ai..
How Workbench Categories Work
There are two sides to it:
1. Define categories on the bench itself
In the bench's item JSON (e.g., Bench_WorkBench.json:45-67), under BlockType.Bench.Categories, each category is an object with:
{
"Id": "Workbench_Survival",
"Icon": "Icons/CraftingCategories/Workbench/WeaponsCrude.png",
"Name": "server.benchCategories.workbench.survival"
}
Id — unique string identifier for the category (used on both sides)
Icon — path to the icon shown as a tab in the crafting UI
Name — translation key for the category name
The vanilla workbench has 4: Workbench_Survival, Workbench_Tools, Workbench_Crafting, Workbench_Tinkering.
Ok, thanks.
Now I need to figure out why it's still not doing anything, but you already adressed an issue so, thanks.
2. Assign recipes to the category
On each craftable item's JSON, in the Recipe.BenchRequirement array, you reference which bench and category the recipe appears under:
To add a new custom category
You would:
"BenchRequirement": [
{
"Id": "Workbench",
"Type": "Crafting",
"Categories": [
"Workbench_Survival"
]
}
]
Add a new category entry to your bench's BlockType.Bench.Categories array (either by overriding the vanilla bench or on a custom bench)
Create the icon image file at the specified path under Common/
Add the translation key to your lang files
Tag recipes with the new category ID in their BenchRequirement.Categories
For example, to add a "Hyforged" category to the workbench you'd add:
{
"Id": "Workbench_Hyforged",
"Icon": "Icons/CraftingCategories/Workbench/Hyforged.png",
"Name": "server.benchCategories.workbench.hyforged"
}
Then any item recipe that should appear there would include "Workbench_Hyforged" in its BenchRequirement.Categories.
No Java code needed — it's purely JSON-driven.
i have searched everywhere. does anyone know of a way to disable the fog. weather clear does not work. it whites out my screen to the point i can not see anything
I was thinking only mods exist and no plugins... What is the difference?
"Mods" is the umbrella term for two types of game modifications:
- Plugins (Java .jar files)
- Asset Packs, or just Packs for short (textures, models, sounds, behavior definitions in .json files, etc)
Mods may consist only of a Plugin (mechanic changes, commands, QoL, etc.), only of a Pack (new blcoks, mobs, cosmetics, etc.), or both!
this is still the same thing i was doing before, but the issue i run into is that it crashes the game, even if i make a 1:1 copy of the same bench touch nothing on it the game crashes
Yeah like on Minecraft
Mods = adding new stuff
Plugins = Editing what already exist
I was thinking hytale mods are Plugin/Mods combined 🤔
No, not exactly
plugins = logic alone , mods = logic + assets , assets = assets 🙂
(I turned the Ping off)
I want to know it too... Always after skipping a night with sleep I wake up and everything is full of fog on my Skyblock server... If anyone knows a command or mod to remove that fog I would like to have it :)
I have a link to my github in my profile if your interseted in checking out the AI agent, you can probably feed it your logs and to help you troubleshoot the issue
I dont fully "vibe code" but I definatly have it do the frameworking for me
sad part is, this is base game XD so i have 0 clue why i can just clone the bench to overwrite it
Yeah I had very similar issues. I would love to add buttons to the invintory screen. Im glad they added it to the map in update 3. But its still young so modifying some things may need to be a plugin.
says my index was outside the bounds of the array
I clone Zablas/Hytale-PluginStarter-Kotlin repo, personally but it's not too much different than the normal java setup
ERROR|HytaleClient.Application.Program|System.IndexOutOfRangeException: Index was outside the bounds of the array.
yeah it may be hard coded, you may need to add your own bench
the only error in there
that would be out right silly but i guess ill have to at this rate lol
yeah log it as a bug
iv seen other people add in there own though like warp book
as a new tab? I have not tried to add any crafted thing. I am making a plugin, so not much experience with the mod api
i have 0 clue lol, when i do what i normally do and snoop threw there mods to look at stuff and see how its built, i cant find anything and i only noticed cuz another mod Unified magic theroy tried to do this, but after the new update his mod broke, cuz it tampered with the benchs
The minecraft in hytale mod did that, its not hard through the asset editor
yea but im learning any time i use the Lang files from base game my game crashes
right under
"TranslationProperties": {
"Name": "items.TKI_Server_WorkBench.name",
"Description": "items.TKI_Server_WorkBench.description"
after i linked it correctly the bench stopped working but if i just slap any kind of word for a name in it, the bench crashes the game wont even open the window
nvm now its just crashing everytime... idk what i did diff that just broke the bench
and i keep just getting the out of bounds error every time... i need help...
ERROR|HytaleClient.Application.Program|System.IndexOutOfRangeException: Index was outside the bounds of the array.
This happens even when im trying to make my own bench or trying to edit an existing bench and i dont know what it even means but it is the only error being thrown
hey what do i need to put in the NPC Role to make them Invincible?
I cant do 999999 health because people could farm XP
iirc there's an invulnerability effect already, just apply it with infinite time
and if there isn't already, make an effect and add "Invulnerable": true to the definition
Finally got step one done. Can list all components in the engine.
Next step is to get all entites based on a given or combination of components with som filtering.
Depending on what you need you can create new items from asset editor in creative game mode, you can then base your block on already existing ones. If you want specific logic you need to write Java code but for just visual block you don’t need Java
The thing is i want to add ui too, and that needs Java code
And i don't know if it's common to merge asset editor with plugins
does the block need to be ticking?
No, just a basic block, that goes first
Read about interactions and customuipages
yes, recommended
you need java to register and create the page supplier for the ui page, then you add that as an interaction in the block definition. look at prefabspawner block for an example
That’s what I’m doing right now, I created custom SimpleBlockInteraction that displays ui and you attach it to asset
No, is... Not that :'(
Is there a way to remove client-side prediction for position but not for rotation?
Hi everyone! I created a mod called “True Backpack” and I’m running into an issue with the inventory UI button. From what I’ve found so far, it seems to be client-side only, which means I can’t update it in real time after the player equips the backpack. Is that correct?
Has anyone managed to update client-side status or something similar dynamically? Any guidance or tutorials I could follow would be really appreciated.
I think technically if you flicker their gamemode it will update that UI but I doubt that's what you want.
Are you recreating systems or what
That’s interesting, and we understand why changing the game mode affects the client side? I think using the game mode this way could potentially cause an exploit.
It could definitely cause problems. Aside from that there's no way to live update that window while it's open atm.
Thanks for the information
playerRefComponent.getPacketHandler().writeNoCache(
new SetGameMode(player.getGameMode())
);
For anyone who needed, this solve it, thanks a lot for the tip man!!!!
🤔 '
Might be unsafe in the long run to just send a ghost packet to the client to replicate a behaviour
Hi everyone,
I'm getting a UI compile error in the file:
Pages/UIGallery/UIGalleryPage.ui
Line 47:24
TextColor:$C.ColorDefault
I'm in pre-release
Does anyone know where I can retrieve the server name, MOTD, and max players from within the plugin API?
HytaleServer.get().getServerName();
HytaleServer.get().getConfig().getMotd();
HytaleServer.get().getConfig().getMaxPlayers();
hello how do i solve the part where some players are experiencing black voided world?
What mods do you have installed? We experienced that too, and had to uninstall some mods
major dungeons and 2 food packs
Food packs should be fine. Is it always one person who can't see the game because everything is black? Our issue was also tied to mods that added fragment worlds like Major Dungeons does (a Skyblock one and some kind of city of ruin one, both of which we had to remove). We had Major Dungeons installed already, but we suspect it's causing issues on its own.
we tried to remove and filter the freshly installed mods, seems like major dungeons could be the problem since its a fragment world
Well, test removing it, as items from it should still remain in inventories as a question mark object, and restore the mod if it doesn't fix the issue for the player affected, I think
we've concluded that major dungeons was the issue xD
Oh dang. I wonder why it was working for us but not you, yet adding other fragment world mods aftewards did cause the black view for a player (but only one so far)
Guys, how I can get interactions from hold items? item.getInteractions() returns something like this:
{Primary=*Interactions_Primary, Secondary=*Interactions_Secondary, Use=*Empty_Interactions_Use, Pick=*Empty_Interactions_Pick, SwapFrom=*Default_Swap, Wielding=Double_Jump}
I need to iterate interactions and check what Interaction type equals my type. Maybe it can be do easier?
probably their waiting for the major update from the game itself. so yea thank you tho
Is there a way to Teleport a player without affecting rotation? Just position? I need to keep teleporting a player but the player cannot rótate because in setting it everytime
Does anybody know why my permissions.json gets resettet everytime my plugin boots up?
public static void OnPlayerReady(PlayerReadyEvent event) {
Player player = event.getPlayer();
var playerRef = player.getReference();
if (playerRef == null) return;
var store = playerRef.getStore();
var ref = store.getComponent(playerRef, PlayerRef.getComponentType());
PermissionsModule.get().addUserToGroup(ref.getUuid(), HideoutPermissionGroups.User);
}
Just a guess. You’re adding the user to the group every time PlayerReadyEvent fires, so the server rewrites permissions.json on each boot.
Check first if the player is already in the group and only add them if they’re not.
Also make sure you’re using the player’s stable UUID, not a temporary/entity one.
We still searching people which want to work together on a network project server. 🙂
I mean i can do that but even if i do that it still removes everything else from the player
Yes, just reuse the player’s current rotation when creating the teleport transform.
If you only set the position, the rotation gets reset to default every time.
var tc = store.getComponent(ref, TransformComponent.getComponentType());
var rot = tc.getTransform().getRotation();
var t = new Transform(new Vector3d(x, y, z), rot);
var tp = Teleport.createForPlayer(targetWorld, t);
store.addComponent(ref, Teleport.getComponentType(), tp);
If not works, then I will reproduce it on pc later
I will check it again on computer thought this should work but need to reproduce 👀
public static void OnPlayerReady(PlayerReadyEvent event) {
Player player = event.getPlayer();
if (player == null) return;
UUID uuid = player.getUuid(); // use the stable player UUID
var perms = PermissionsModule.get();
// only add if the player is not already in the group
if (!perms.isUserInGroup(uuid, HideoutPermissionGroups.User)) {
perms.addUserToGroup(uuid, HideoutPermissionGroups.User);
}
}
The method getUuid() from the type Entity has been deprecated and marked for removalJava(67110265)
UUID com.hypixel.hytale.server.core.entity.Entity.getUuid()
what is Master0.ui I HAVE NOTHING IN MY UI FILES SAYING Master0.ui like what the flying f... it only happen since start of FEB what did they do to UI why is it happening and no one addressing a fix i search the whole discord and ppl just IGNORE THE PEOPLE ASKING WHAT DOES THIS MEANNNNNN I NON STOP RUN INTO UI ISSUES WHILE DEV AND NEVER AN AWNSER thats proper
like idk what they did but since feb UI issues have been NONSTOP random.. wiki outdated af
Agreed that docs are not updated
I think they're using Mintlify for the documentation SDK.
I dont know what i did.. but i think it just some Syntax
I also had few groups miss labeled but nothing to do with Master0.ui
it'd be nice to have some sort of documents to fallback onto with errors, or if they are gonna do patches or updates provide reason... dont just go online saying "we support modders and want your help" aka want help from big youtuber type ppl.. lol how I see it..
ok, fine but how does it work, i have a build method that builds the UI, then i have handleDataEvent that happens when i click or do something on UI. But i cant get it to work, I dont see any UI tick method that runs all the time
I put this
UICommandBuilder cmd = new UICommandBuilder();
cmd.set("#EssenceInfo.Text", "Essence: "+(int)essenceTankComponent.getCurrentEssence()+"/"+(int)essenceTankComponent.getMaxEssence());
this.sendUpdate(cmd, true);
Inside of handleDataEvent but it only updates if i click on button for example
Nah. setting up a core for a generic debugging ui for me moving forward, where i can quickly get details about entities and entity components in the world more dynamically to show.
The current one simply gives me the ability to quickly see what components actually exist according to the running game, to quickly know if a component i created got loaded corretly.
The next on is that I specify the components entities should have to be listed in a specific ui implementation, or the ability trough a setting to toggle if a component have to exist or not in a entity for it to be listed.
idk if it's right, but I've a hud I need to update so I keep a map of the players and their huds and then I can tick/update them externally.
don't see why it wouldn't work for pages and block entities (assuming essence tank is a block 😛 )
for hud i guess its fine, but my essenceTank is a block like you said, and UI is open with interaction.
yup, but the block is still ticking I assume
it is, the problem is that in interaction i call playerComponent.getPageManager().openCustomPage(ref, store, page);
so once the UI is opened i dont know how to update it
Register a event that your tick send when anything relevent is updated trough the block tick.
Use that event to trigger the ui update?
oh, interesting
That way you can avoid constant tick, and you don't have a hard coupling between the block tick and the ui logic.
you still need to pull the data obviously in the ui but...
public static final WeakHashMap<PlayerRef, YourPage> instances = new WeakHashMap<>();
public YourPage(@NonNull PlayerRef playerRef) {
super(playerRef, CustomPageLifetime.CanDismiss, Data.CODEC);
instances.put(playerRef, this);
}
public static void updatePage(PlayerRef playerRef) {
MyPage instance = instances.get(playerRef);
if (instance != null) {
UICommandBuilder uiCommandBuilder = new UICommandBuilder();
instance.updateStuffs(uiCommandBuilder);
instance.update(false, uiCommandBuilder);
}
}
call updatePage from the block tick, and w/e ref you'll need ofc.
Ill check that
anyone know how to call a custom function with the collisionEnter interaction?
speaking about ui, uiEventBuilder.addEventBinding(CustomUIEventBindingType.ValueChanged, selector, eventData, false); with Sliders, it's a bit janky? sliding up or down too fast seems to mess up the reported value / lag behind. hard to explain. it also has trouble hitting the upper and lower limits.
when holding player refs, remember to validate them before use, also, don't you need to add additional logic to clear them from the list if the player disconnects?
yea that was very quick sample code.
I expect they'll manage the cleanup and busy work
ah cool okay. An ecs entity debugger sounds very useful. You should make it also work for entities without network ids, models, or transformcomponent (not sent/visible on client). maybe a search function but im sure itll be great. I would love to see the progress you make on this.
Yeah the goal is any entity with the component(s) regardless. As long as there is any entity holding it.
There are som consideration for update frequency i have to consider as well as possiblity super shortlived components.
I mean update is whatever just update the query of the system with the filters in the UI and lets the system do all the work
Literally delayed entity ticking system with whatver freq u want and then update the query with an array of all comps you want. Just update an array of ref<ecstype> every tick and have the ui get the field. Im sure there is an easy way to get the system instance from the store
Kinda makes me wanna do it lmao
I dont understand how would i get playerRef in EntityTickingSystem<ChunkStore>
Hi, how can I create a player model preview in a UI page?
I tried using CharacterPreviewComponent, but it doesn't seem to work.
Is there another way to do this?
I mean you wouldn't, you would grab some sort of reference to the block (location?) and use that to lookup which player refs to update.
it's real late tho so idk if my advice is gonna get better or worse 😄
Yeah more in the sense i want a enum or field in my base declaration that defines if there is a refreshbutton, timed update, or if it should listen to events.
ok but like, ticking for block is separate from interaction
yea, so think through what you need and when you have it.
you need the player ref and a way to lookup that player from the block (i.e. location of the block) when you call some sort of future method.
so in your tryCreate cache the playerRef and the block location say with your instance and then later on you can use that block location in your tick without a direct reference to the player
in theory this has the added benefit of updating all players accessing the block (if there's multiple)
good morning
Mornin.
Hei everyone, can someone help me on where to start with modding documentation or something? I wanna create a mod but have no idea where to start. I can't find any info. Thanks!
The official hytalemodding website under documentation
Is there a way to render a character in 3D inside the GUI?
For example, I want to place five characters side by side. In Hytale’s default inventory menu, a single character is rendered, so I assumed it might be possible. However, I couldn’t find anything about it in the documentation.
can you send the plugin (Mod)?
Hey I’m looking for people to collaborate on Hytale server project mainly developers who can work on plugins and systems and builders who can create maps spawns and other builds.
Ok, i kindof got it to work. This is my page class:
public class GeneratorPage extends InteractiveCustomUIPage<GeneratorPage.EventData> {
public static final String LAYOUT = "Pages/GeneratorPage.ui";
private final PlayerRef playerRef;
private final Ref<ChunkStore> blockRef;
public static final HashMap<Ref<ChunkStore>, GeneratorPage> instances = new HashMap<>();
public GeneratorPage(@Nonnull PlayerRef playerRef, @Nonnull Ref<ChunkStore> blockRef) {
super(playerRef, CustomPageLifetime.CanDismiss, EventData.CODEC);
this.playerRef = playerRef;
this.blockRef = blockRef;
instances.put(blockRef, this);
}
public static void updatePage(Ref<ChunkStore> blockRef) {
var instance = instances.get(blockRef);
if (instance != null) {
EssenceTankComponent essenceTankComponent1 = blockRef.getStore().getComponent(blockRef, EssenceTankComponent.getComponentType());
var cmd = new UICommandBuilder();
cmd.set("#EssenceInfo.Text", "Essence: "+(int)essenceTankComponent1.getCurrentEssence()+"/"+(int)essenceTankComponent1.getMaxEssence());
instance.sendUpdate(cmd);
}
}
and i call updatePage() from my ticker system:
GeneratorPage.updatePage(blockRef);
Problem is it shows exactly the same value regarding block i interact with. I assume blockRef is unique to a specific block so when i add it as a key to my hashmap it should update only instance with the same blockRef
Do you text block with ```java so it displays the code better.
Hi, could you please advise me on how to connect Discord with the game Hytale?
I would like to see from Discord who joined and left the server, reply to messages, and track actions like who crafted or broke something — basically a full RCON console integration.
You'll need JDA/kord and make a bot of your own
verified 🙂
man hytale devs forcing everyone to be on the latest update gonna be a growing drama as bigger server projects rise, not letting servers stay on stable version for their project it's a constant never-ending pressure every month to catch up hm
Currently some methods are marked for removal by the server jar, if we resolve these issues would it indicate the pluins are compatible with the major update coming today? Or is it still too early to tell whether plugins will break on the newer version... (I am new to writing java plugins)
latest version is the most stable version
let's not repeat the blunder from the other block game™
"hey I made a cool mod/plugin"
"oh wow, does it support <insert a 15 year old version>?"
"no?"
"0 stars, it sucks, terrible"
That is the downside but look when you have big projects on a server, it gets to be extremely draining to be endlessly chasing the monthly hytale updates as that's what they announced they want to do.
write your mods in a way that makes them easy to update then
That will either be a server-killer where all it takes is server owner/dev to take break and the server has to shutdown,
that is a skill issue my friend
I don't think there's gonna be a lot of breaking changes. Also you should have a publish workflow set up on your Github CI to deal with uploading the plugins.
Not really when the devs change a few hundred IDs between patches, including functions
why doesn't your mod work on 1.9?
and that's not on the patch notes either you have modders decompiling the souce code finding out what changed
1.9 is late, try 1.7.10
lmaoooo
ik re-organization is needed obviously code-wise but some technical headsup 😄
game is early access, comparable to alpha status
Arnt they overhauling the entire ui and breaking things into smaller components?
it really does feel like alpha days again
of course there's gonna be massive changes. it's nowhere near stable for release
🥲 this hits so hard
to me like I am seeing the "honeymoon phase of modding" ending
there's so so so so so so many mods already unmaintained, now it's the "strong and resilient" that will rise up
it hasn't even began yet
big projects take time
I'm talking the one driven from the initial hype right. Now I see modders literally going back to minecraft waiting for hytale modding to mature enough
I personally just wait for the official docs, or at least the major part of documentation concerning interactions and entity tags
I mean by being easily moded 99.9% of mods will be abandoned either way.
Jared for example, he created several of the most popular ones, eyespy, etc, he already handed over his stuff to have others work on it
sounds reasonable enough, what's the issue
afak from my small look at hytale modding seems tobe alot more involved then minecraft modding, mc you can slap together something very quick in 5 lines and it will get the job done
But still being early access expecting locked apis and future proof functions is not likly.
hytale seems much more involved and requires a different way of thinking about how the game works fundementally (with ecs)
honestly I love how hytale modding works, it's basically a better version of spoutcraft with a lot more flexibility
I like to think that the devs are professional enough to support backwards compatibility
From the manual:
Current Limitation: Client and server must be on the exact same protocol version. When we release an update, servers must update immediately or players on the new version cannot connect.
Coming Soon: Protocol tolerance allowing ±2 version difference between client and server. Server operators will have a window to update without losing player connectivity.
yep I saw that, but the client-side immediate compatability is non-negotiable
if you run a server with a lot of custom work you've put in, you won't be able to take a break
it is very negotiable, that's usually how games work, version changes, both client and server get updated and they don't do hacky magic to unite the protocol
it's gonna every month, maintaining the mods, the bigger the project which splits further and further from vanilla, the worse it gets
that challenge you can't magically solve, just mitigate
the other block game™ is one of the few that has the issue of people demanding unreasonable version support
I will bet you will start seeing pressure of big servers wanting their custom launchers on fixed game versions, it's so predictable
There are prerelease versions to get stuff ready before it's out, similar to how snapshots work in the other block game™
±2 version difference is like weeks of break time
remember the big projects around are actually paying professional developers to develop & maintain their stuff.
that's cost dollah, hytale updates cost dollah
As in allowing people to stay on a version if they want sure.
Keeping multiple versions components, systems config files so people with out the energy to update dont have to. Hope that never happens.
Hope we never in code have to start branching on version functionality or call MovementComponent_464323 specifically since the other 30000 got small updates on the way.
I 100% get hytale devs do not want the split, but I am also seeing servers will not like this system long-term... It's endless work to keep a server running
What they said:
Eventually we want to move to a proper deprecation policy where we give mod makers time to understand when features are changing and try to keep backwards compatibility for as long as possible.
you will never be just "ok server is done, have fun", unlike MC where they close the version they built upon
Thats different.
Large space with deprecation and long as possible and just flat out backwards compatible.
It's endless work to keep a server running
that will happen regardless of what hytale devs do
it always happens, with any kind of server in any game
from who I spoke with they are rather concerned for this, so the custom work they are putting up is to intentionally stay as close to vanilla as possible, as to ease the issues on game updates
but that will also work against projects are big derails from the vanilla game, that's where minecraft modding achieved its most impressive mods, and those are the most version-locked mods as well due to the work it takes.
in hytale you can completely separate your components and systems from vanilla
To me this is the: Can't have the cake and eat it too scenario.
it will make updates easier, not harder
like I mentioned, writing stuff in a way that ties things down to existing logic that might change is generally not a great plan for the future
aka what I'd call a skill issue
I haven't had too much issues keeping my server up to date but I'm a lil picky about my 100 or so plugins lol
I hope so, when I pick mods my main factor is the modder behind the mod
the main issue for me right now is lack of established item/block tags, for example I can't easily find components that classify as inventories to quick stack into them, because each mod marks their blocks differently
when I see a mod last update a month ago and doesn't respond to bug reports and such, It's too risky
last update date is not really best spot to look at, if a mod is stable, it won't need updates. why fix something that works
I was literally sadpepe when I saw plushies breaking on the first pre-release haha
but the follow-up release got them to load without errors again
Add one wrapper between you internal logic and data from hytale and update work would be minimal.
ah that yes, but looking on comments and see people reporting issues and not seeing the modder respond that's my red flag, it's much easier to add mods than to remove mods without impacting the world
blocks, objects, can be cleaned up/patched, but entities and such will jinx it
oh just testing mods so to know what is working or not, not waiting for release in a few hours to know which mods will error ofc
wow some players are experiencing bugs while others are perfectly fine wth
BTW one bug that had me go crazy thinking it was some chunk error on server, was seeing spots of "permanent rain" for example that stayed like that for days
turns out it's client-side cache bugging out
definitely some things to work out, the thing that bugs me is every mod has a workbench
that happens in mc I think lol
it happens in mc when some plugin or mod (usually fawe) messes up your heightmaps, then rain goes through solid blocks
also the best of them still happened yesterday: Chicken coops. DO not ask what happens inside chicken coops because my chickens went in, next day they were bears 
Many things mess up mc :p
oh yeah, after update 2 my regular chickens emerged as desert chickens
logged to get insta killed like what the hell 20 bears doing in the chicken coop omg
cave rain!!!!
and then as we use a taming mod that enables naming & breeding them too.. The bears were actually tamed and that made EVERY agressive entity in the world automatically tame
the mere domino chain of that bug made me brain.exe kek
Isnt the popular taming mod near fully ai/llm coded
not sure isn't that the one 2 mods merged into one?
No idea sorry
One of the funniest things of modders getting bug reports is people posting the AI response recommending what to do to fix the issue lol
yea, that's why I didn't want to rush the taming/breeding on my server, it was obvious it was coming soon
modders really go banana's when they get an AI report of how their code is broken
it's really irritating, because in 95% of cases the ai is wrong
which is understandable becasue it's not a log on chatGPT that gets you good info, gotta give an AI much more context and setup than that.
Whenever have seen an ai touch my code it generally adds so many memory leaks the game would probably oom in 5 min
(Pov: people asking the agent things to backport to 1.20.1/1.21.1)
Tbh if a modder works with the right AI tool, those embed ones which are also $$$$, then you have something that can trully boost you up. Now doing it at a superficial level is problematic.
we have people over at purpur sometimes asking to port it for the other block game™ ver. 1.12
ah yes, let us port rideable dolphins on 1.12, makes sense
Llms are just statistical machines and their suggestion work by statistics. Does the wast majority of code on stack overflow contain amazing examples? Because thats the main source of data trained on.
You are absolutely right, the mod was indeed cooked. my previous viewpoint was just trying to please you based off onsided stack trace error.
You are absolutely right
👀
bro is llm
should have added ; & —
AI said: Java bad, upgrade to C++
Hypixel: traumatized stare
You can do some stuff better in c imo
it's so funny to me, because everyone who says that doesn't know what's running like 99% of their economy and airlines
yep, it'd prob make modding much harder tho requires higher skill set doesn't it?
When you require performance
spoilers: it's java
java is indeed that thing akin to minecraft: it's all about server ticks