#server-plugin
1 messages · Page 5 of 1
okay nvm, finally figured that out to "#Navigation[i] #NavigationButton[1].Text", took a while
Does anybody know if its possible to download an image on the server in display it to the client while the server is running ?
Or does the image itself has to be present when building the plugin ?
images needs to be present when building the plugin.
The exception to the rule are soem mods that made custom image object out of a quads per pixels, and in turn send color info per pixel from what i understand it, and even in that case it won't work as a image in any other context than where that object is displayed. As in you cant use it on a item or character or in the ui unless you create a custom ui object working on the same principle.
anyone already used SeparatorAnchor within TabNavigationStyle? im trying to create a gap between tab buttons but can't get it to work
It’s possible, by requesting clients to rebuild their CommonAssets. You can have a look at how HyUI is doing it
Do we have anything like propagation in UI elements? Like if I click on a text button inside button is there a way to catch event as the parent one?
❤️
Do we know when the new UI frame work will be ready?
NoesisGUI its called for hytale
What does shared mean in the stats? {
"InitialValue": 0,
"Min": 0,
"Max": 0,
"Shared": false,
"ResetType": "MaxValue",
"Regenerating": []
}
Hey, I've seen the documentation on conditions, instructions and especially the JSON configuration around it. Now what I don't really understand is how to add a new condition to a NPC programatically. And I don't really get how a new instruction can be linked to a condition. I've added a new condition class, implemented its utillity/simplicity and registered it but I don't really get the next steps. Is there a simple example available out there to link a condition to a NPC or add a set of instructions with actions? Sorry, not that a simple question
How do nested states work?
Does anyone know how to add additional values to Interactio beyond just the type, so that the plugin can read from the JSON file which Interactio is being executed?
Group #Root
{
Group #Normal
{
Group #Normal
{
}
Group #Random
{
}
Group #Weight
{
//Actual Insert Point
}
}
Group #Random
{
Group #Normal
{
}
Group #Random
{
}
Group #Weight
{
}
}
Group #Weight
{
//Expected Insert Point
Group #Normal
{
}
Group #Random
{
}
Group #Weight
{
}
}
}
uiCommandBuilder.append("#Root[0] #Weight", "PageToInsert");
When i run this command it should insert a page into the #Weight group but instead it chooses the group further up so my question is how can i insert a ui element into the Expected Insert Point?
By not repeating the names or be clearer with the depth somehow.
Since you have multiple elements named #Weight, "#Normal", #Random, I guess you assume that the look up will do width first search to find out where the id you provide is located.
By the problem in question it seems like the UI do a depth first search, "children before sibling elements or distance" and first hit wins and that would be
#Root -> childelement -> #Weight
not
#Root -> #Weight
I guess you could try maybe #Root[0] Weight[0] or Weight[4] if it counts all instances of #Weight as on list of index but not sure that will work, haven't looked up how the ui look up works exactly,
but the best course of action might be to see if you can sneak in a breakpoint or similar in the code or search for how the lookup logic actually works.
could be that the name lookup like selectors in html supports other signs that change the meaning maybe spaces means search freely but id only separated by the actual hashtag would make it focus in child instead of depth #root[]#Weight but i haven't tried.
Best course of action is probably as i said read trough the code and see if there is any description of how the selector logic works or experiment and try to figure it out
response to you, just had to cut up the message to try to get around the "advetisement rules" since i use a raw hashtag in the text and had no ¤"¤%&& idea what it thought was advertisment sales.
beeing more specific with names is unfortunately not gonna work unless i completely auto generate the uis depending on how much debt i need
#Root[]#Weight unfortunately throws a error
I will test your idear with the depts first search
going through code looks like my best option
thx for giving me a few more idears
I did look trough the code and it seems like the selector logic is handled client side, and i didn't find any exampel of anything doing a deeper select i hope you have better luck.
I'm having the issue where the server won't start because my plugin is throwing the exception that queries cannot be made with null component types, but the component types that are throwing null are TransformComponent and UUIDComponent
of course, those are from hytale it self. under what conditions could they be throwing null?
Common Conditions for Null Component Types
Premature System Registration: If your plugin attempts to register a system or run a query in the onEnable or setup phase before the server has finished loading the standard library of components, those component types may still be null.
Missing or Corrupted Dependencies: If the server JAR is corrupted or if you are missing a required core dependency in your development environment (e.g., the Hytale server JAR is not correctly added as a compileOnly dependency in your build.gradle), the plugin may fail to resolve these internal classes at runtime.
Archetype Validation Issues: An exception like ComponentType in Archetype cannot be null can occur if a system tries to interact with an entity archetype that hasn't been properly defined or has been corrupted during a world-loading process.
Command Buffer Race Conditions: If a plugin or system creates multiple conflicting commands (such as removing a component twice in the same tick), the second command may hit a validation check where the component is already missing or considered "null" in the current entity context.
from what i can tell they should be initialized from the moment EntityModule#setup() is called which i would think is done before any additional custom plugins
judging from the logs EntityModule is being loaded before my plugin
i would assume that my server JAR is corrupt or wrong somehow. i do notice that when i installed hytale i didnt get a copy of HytaleServer.jar so i couldn't actually start any worlds. i had it installed manually with hytale-downloader from the hytale docs
would that be wrong? is there a better approach?
That would be better asked on the modding discord
yeah hytale modding has its own discord.
Is it possible to use the neosisgui already or no?
Because all UI files are currently deprecating no?
I don't think so because they haven't made the major swap yet that's what your talking about the swap to the new gui program
does anyone know what the following error means and how to resolve it? (heavily altered because it would be considered advertising by the bot otherwise)
[PluginManager] Failed to load pending classpath --- from 'HytaleServer jar' Failed to load manifest file!
IOException: Unexpected character: 68, 'h' expected ','!
Yea! Ok thanks, do we have any info when that might happen? Any time frames?
Sounds like your json file is corrupted
manifest.json probably a plugins manifest
id go through all plugins manifest and check if you dont have a typo
or that you are not referencing a source jar with everything striped out.
oh ok alright, so it doesnt like gradle placeholders it seems
thats what broke it, server actually boots now and isnt failing to load assets either
i replaced the whole manifest.json with a generic one and manually entered the details instead and that seemed to work
thanks guys!
yeah probably some gradle/kotlyn step that did the active replacement before use.
"MinValueEffects": {
"TriggerAtZero": true,
"Interactions": {
"Interactions": [
"Stamina_Bar_Flash",
"Stamina_Broken_Check",
{
"Type": "ChangeStat",
"Behaviour": "Set",
"StatModifiers": {
"StaminaRegenDelay": 99999
}
}
]
}
},
Does anybody know how i can say it should set it to max instead of putting the number 9999 in there which would basically also put it to max
Thats inside the stats.json
Also when you define an effect duration via the asset editor for example a debuff, How would you extend or shorten theduration of that effect ( dynamically ). Any one experience with that?
Either it has support for it trough another beahvior or you need to create another Behavior like a "Behavior": "Max" instead of "Behavior":"Set"
oh i can create a behavior?
public class EntityStatsSetCommand extends AbstractTargetEntityCommand {
the ChangeStatInteraction creates a command that executes toward the given entity. that calls the function i mentioned above.
So you would need to register more commands, and
public class ChangeStatInteraction extends ChangeStatBaseInteraction {
the current change stat behavior i limited to
public enum ChangeStatBehaviour {
Add(0),
Set(1);
so you probably need to create a custom enum and interaction change to use instead.
you can create anything.
Ok, ill check that out thanks!
Btw, where can i see all the DamageResistences an entity has applied? Through his armor and his buffs and stuff?
Does anyone know how to turn off the plugin and asset notification so that I don't get a message every time I join saying that an asset pack has an older version?
Does anybody know if its possible to add vertical scroll in .ui files, Ive looked through docs and their seems to be some Scroll types but I cant get them to work.
Yep: LayoutMode: TopScrolling
Content has to exceeed conainer height
https://hytalemodding.dev/en/docs/official-documentation/custom-ui/layout#topscrolling
ok its def possible ive got it to work
yep thats what i used thanks!
There is almost 0 to none documentation on how the DamageResistance stuff works, did anybody know any secret sources? 😄
Does anyone here have any experience with custom recipes for custom machines? I'm digging through (somewhat broken and mangled) source code trying to figure this out. I see processing bench, Crafting Recipes, not really sure what i'm looking for or how to piece this all together. Does anyone have an example they could point me towards?
benches and recipes? it's all done in JSON. The recipe is part of the asset model.
is there any mod to fix the tent and banner bottom parts not need support? ive looked myself and didnt see any, im hoping somebody may have seen something like that
can just override the assets and change the support requirements
Hello. How do I set a player flying / set walk speed in a plugin? What methods are available on the Player class? Please
may i ask if the update checkers are still stable despite its last updated 2 months back?
last stable update was Tuesday, February 17, 2026, at 10 am EST
Attach effect using "Particle System" in Bone "R-Attachment" / Right Hand help?
WHats the plugin called which opens a new ui when pressing alt ?
JEI Lumenia?
Is it possible that multiple plugins create custom huds and all displayed ? or no ?
yeah, multihud or auto multi HUD are used for multiple custom huds as far as I know
is there a way to make itemslot change the background or tint when selected/pressed?
Group #ChainSlotHighlight1 {
Anchor: (Full: 0);
LayoutMode: Full;
Background: "ChainSlotHighlight.png";
Visible: false;
}
ItemSlotButton #ChainSlot1 {
Anchor: (Width: 64, Height: 64);
LayoutMode: Full;
Padding: 2;
ItemSlot #ChainSlot1Item {
Anchor: (Full: 0);
ShowQualityBackground: false;
ShowQuantity: false;
}
}
Ive done does but it doesnt seem to work even when i set it visble by default
Is there any event that detects the camera change?
like onmovement from minecraft?
I'd like to know if the camera triggers any event when switching between first-person and third-person views, so I can run a script when the player presses the "V" key. This could be a key-based event or a trigger that activates when the camera changes.
I don't think the cameramanagercompoent send any event on change, but you can go the way of intercepting and changing packets.
The packet for setServerCamera is packet id 280.
We did talk about the player camera before and there might be edgecases, and setting a lot of parameters to null actually means reseting to default camera settings on the client.
But no way to detect the key press itself, and i think first third person camera might even be fully triggered client side. But not sure.
As in there are camera view settings for third person view but the server is never triggering a setServerCamera command for third person view. So either the player sets it and the server recieves a packet with the camera settings involved, or the server knows nothing about it at all.
My idea was that every time he pressed the "V" key, the camera would switch to third-person view, so it would never be in first-person view and would allow him to use the "C" key normally.
But I don't have any events that are triggered when the camera is changed or keybinds are used.
anyone know how to create a damage event? the docs im following doesnt seem to be accurate
Hello, the prefab interaction from the item/item/block,json cannot have at all a chance to be spawned? is it possible to give it a chance only if we make it through a custom npc that will spawn (since npc have a chance to spawn) ? I'm trying to make a custom block that has interactions with percentage chance to spawn but I can only see SpawnNpc with chance to spawn but not prefabs or explode too...
Is it possible to set priority which events are getting fire first if for example 2 Plugins listen to player Ready event and i want one to always be first?
I am sure that systems hade functions for dependencies.
or if you need it more precise.
this.dependencies = Set.of(new SystemDependency<>(Order.AFTER, PlayerSpatialSystem.class, OrderPriority.CLOSEST));
mod api official docs released yet? - its been a while since ive been here but i'm guessing no
We have official docs for custom ui markup, npcs, and worldgen v2:
https://hytalemodding.dev/en/docs/official-documentation/custom-ui
https://hytalemodding.dev/en/docs/official-documentation/npc/1-know-your-enemy
https://hytalemodding.dev/en/docs/official-documentation/worldgen/worldgen-tutorial/README
Ye that's what I was using last time. It's amazing work. Thanks
DaniDipp, you do honest work here man. Helping a lot of people. Thanks for everything you do for us
Ohh thats cool
there's other docs on there too that are community made but might be helpful to you
Is there anything yet on the new UI System that we are going to be changing over to?
Noeisisgen Ui or what ever it is?
Noesis, yeah. It's still mostly background work. In the last pre-release they added the ability to trigger sounds via Noesis UI
But I wouldn't say that it's ready for general usage yet
Slowly but surely
I'm still trying to figure out how to implement a custom block entity, with custom inventory, and custom crafting manager
A block entity in Hytale is just a block you attach a Component<ChunkStore> to
Not Component<EntityStore>, i'm reading the docs right now
Correct. EntityStore is for entities, ChunkStore is for blocks
Check the LaunchPad component (com.hypixel.hytale.server.core.universe.world.meta.state.LaunchPad) for example. It's used for the mushrooms
I have an inventory system (data class with CODEC) implementing Component<ChunkStore> so I can check that off the shopping list
Okay, found LaunchPad
So i'm guessing somewhere along the lines I need a Ref<SomeTypeOfSystem> to tie all this together?
yeah the ChunkUtil is your friend when it comes to translating global coordiantes to chunk coordinate and chunk coordinates to indexes.
For example, here is how the PlaceFluidInteraction sets the FluidSection component to waterlog a block:
#server-plugins-read-only message
Got it, RefSystem<ChunkStore>
So PageInteraction, RefSystem<ChunkStore>, Component<ChunkStore> , then need to register everything 🤔
This is slowly starting to make sense
Stupid side question... is it possible to tint items, kinda like in MC?
Models have a tint value so does blocks. Not sure if that answers your question.
Yes! I'll have to looksie into that, thanks! 😸
Yes, in the asset editor you can apply a Tint, not sure how to do it programatically though
I'm not exactly picky about how it gets done, I just want to be able to make one single base model with a gray-ish white-ish base texture, and tint it different colors
Okay I am so confused right now.
ContainerWindow window = new ContainerWindow(new ClocheInventoryComponent().input);
player.getPageManager().setPageWithWindows(entityStoreRef, store, Page.Inventory, true, window);
// player.getPageManager().openCustomPage(entityStoreRef, store, new ClochePage(playerRef));
How am I supposed to open the page with player inventory, it's just showing the input slot, not the whole page, like it's chopping it up
how to override and change an items display name, is it not possible atm?
Asset Editor, lang file(s)
It's the translation property you're looking for, for both the Name and Description
I have tried pretty much everything, looked at bench interaction and cannot for anything get the inventory to show up along with the custom UI, anyone have any ideas about how to do this?
Guys, sorry for what may be a dumb question, but I've watched a Hytale Modding Guide: Custom Crafting Bench Basics on YouTube and it shows him creating a mods folder with server and common structure inside of appdata roaming profile and I believe it's due to this that when he opens the Asset Editor, the dropdown has his mod listed in addition to the default Hytale:Hytale (Read-only) pack with Server/Common tabs. However, I'm using the setup as described in https://hytalemodding.dev/en/docs/guides/plugin/setting-up-env which involves using a cloned template for my plugin that lives in my dev folder and doesn't follow this server/common folder structure described previously in the video. When I build in my current setup, I have gradle copy the jar file into %AppData%\Roaming\Hytale\UserData\Mods folder and run it this way, and the game sees my mod and loads it, but I don't see my plugin listed in the asset editor dropdown. Would someone know what I'm missing? Thank you so much in advance!
If I understand correctly, from what I've been learning of it so far. 
The Asset Editor can only open non-packed folders. So only if it's a regular folder, not a .zip or .jar.
I should note as well, that there are 2 main types of Hytale Mod: Asset Packs, & Plugins.
- Asset Packs are what the ingame editor is designed/intended for. And are only for specific non-advanced things. (Blocks, Items, Recipes, Biomes, etc etc.) Although still quite powerful!
- Plugins are for adding capabilities & more in-depth custom content. And those are done as .jar files. The ingame Asset Editor isn't made for those, you'll have to use an external proper editor for them, like IntelliJ.
It's important to note, as well, that the UserData/Mods folder takes priority over the world-specific Mods folder. So careful not to have issues with that if you've put them in both places. (Like via the Asset Editor.)
I've been watching Kaupenjoe's videos on it just now. And they're quite helpful so far for exactly that!
So I'd recommend those as well! They do a better job of explaining it than I ever could. XD
A user name Ali has a 7 part series for plugins that's also really good
Wait you can place Plugins in world specific mod folders? They'll only work on that world?
I've been at this all day, I've come to the conclusion that it's impossible to create a custom UI with the player inventory shown 🤷♀️
Maybe in the future releases it will be feasable
Ooh, I'll look into that then, ty! 
Also, I haven't read all of what you've said prior. But is it possible you need something like MultipleHUD to allow more than 1 HUD to show at once? Or is that not a limitation in this context?
I tried to post a link for the playlist but it got rejected
I don't know if MultipleHud would work or not 
Yep! Each individual world/save has it's own Mods folder, which you can place Mods in instead of the Global UserData one. And they'll only be accessible in that world/save.
(Although, you can also toggle Mods that are stored globally on/off in the world/save's config.)
Yeah, links have been blocked since like day 3 of the Server. XD
And Idk if it's a similar limitation or not, yeah. But could be worth looking at, if you're out of other ideas! 
I'm going to look into HyUi tomorrow and see if that helps, I even tried to re-hydrate some of the bench code to no avail
Gotcha gotcha. Good luck, then! 
Thanks! 😊
How do I create a root interaction with ApplyEffect that doesn't stop the interaction because mine keeps disappearing?
does anyone know where to find "player has left default" is in the mods stuff? trying to disable it
Next update, that will be cancellable via the RemovedPlayerFromWorldEvent. In the mean time you have to set up a packet filter like this #server-plugins-read-only message
Heya, is this behavior of the "next" field when adding interactions to a block on purpose or a bug?
Context: Let's say I add a few entities to spawn with a certain low chance when pressing F on the block (Entity one, two and three). One of them (let's say entity "three") will have in the next field (the field that says it's gonna run the interactions when current interaction succeeds) a "SpawnPrefab" interaction and everything is set in place.
What happens? When pressing F on the block, it spawns "one" and "two" entities the most but it also runs the interacting inside the next field from entity "three". Why? Entity "three" wasn't selected to be spawn but it runs it's next interactions? Can't it run only when spawning entity "three"?
One thing i realize is that npc are going to be interesting to learn.
how do you control if its entity 1, 2 or three that recieves the interaction.
What I mean is if they are part of the same interaction chain, then next would run for three as well, unless the next state has some failstate if it shouldn't run i guess.
But its hard to guess without knowing the exact execution flow.
Next is probably just info for what to run next regardless, and only beign skipped if it has a internal failstate or criteria not to continue.
not sure if I understood correctly what you meant there but I think it should be the one selected based off of the spawn chance?
I see, I thought it's gonna be running when the game selected entity "three" to spawn. That would have been great because it would have been allowing us to do more stuff based on the selected entity to spawn becuase for example, u can't set a chance to select the explode option or SpawnPrefab option
those are 100% gonna happen and thought I could use this as a workaround to have a custom entity that is invisible and dies immediately after spawning to execute a SpawnPrefab option if the entity was ever selected based on it's chance of course
In the end I think I have to use a custom interaction to execute what I want. But I also found another weird bug I think: Whenever I select my custom interaction and set the fields, it's saying in chat (when interacting with the block) MISSING INTERACTION and points either on the right option with my custom interaction or the one before or after.....
But it gets fixed if I restart the server
Hi, does anyone know why ProjectileComponent.getComponentType() returns null in the setup() . It works when I move it into start(). Am I missing something to make the ProjectileComponent available at setup time?
Does anyone know how to turn off the plugin and asset notification so that I don't get a message every time I join saying that an asset pack has an older version?
if I remember correctly, not sure if u can turn it off completely but you set the current version in manifest file to current version of the game:
"ServerVersion": "2026.02.19-1a311a592",
(ofc that version is an example and probably not anymore up to date)
theres a permission for it:"-hytale.mods.outdated.notify"
oh? where do you add this?
either in the permission file or use the permission command
Is there an editor to visualize and create particles ?
I would say, add it to a item in the world trough the asset editor, and then keep changing its property in the asset editor.
Will this guide's Custom Inventories section help? https://hytalemodding.dev/en/docs/guides/plugin/inventory-management
I'm trying to get a forked primary interaction to repeat when the button is held down, kinda like how it does for primary interactions from neutral. Any advice?
I tried everything to fix this error, but I really couldn't. Any ideas? [EntityTrackerSystems$SendPackets] Entity can't be removed and also receive an update! Ref{store=class com.hypixel.hytale.component.Store@2104902919, index=0}
use MySQL have lib?
not shipped with hytale, you have to include it yourself
Ok, thanks
What I starting working on was creating a fake hotbar / inventory overlay for the custom ui pages
I got to thinking back about how things were done when I was tinkering with modding back in 1.12.2, it was pretty close to what i'm doing now. Just recreating the hotbar / inventory storage along side the block inventory, instead of trying to load it, which is almost impossible
Hi! is there anyway to detect hotbar switch? what class, thanks!
i tried, it works but only when interacting with in ventory UI, when i actualyl use mouse scroll to switch item in hotbar or number buttons, it doesnt
nvm solved
Is there a mod like Level up! Reloaded in hytale?
When it comes to overriding assets, what determines which asset type shows up first? It seems to be random... but annoyingly, it removes the folder whenever I choose a different asset pack.
mod load order. you can influence it by declaring (soft-)dependencies. There are plans to give us more tools for overriding/patching assets in the future.
Ah, so it'll always be what loads first?
what loads last overrides, i believe
would it be possible to make a workstation block that can be used to exchange blocks we have for creative-only blocks not available in adventure mode? for example, insert 20 regular cobble for 20 ledgestone or something like that? Simon said on Prowls stream. something to the effect of, limestone wont be added to survival because they are not looking to rework the v1 gen when they are trying to replace it. i assume that goes for a lot of the creative only blocks, hence the original question.
Yeah, if the assets and functionality are in the game, you can wire them up however you want. You could make magic snacks that teleport you to random locations in the worlds, or terrifying lovecraftian monsters that peel off your armor and equip it themselves. I would say the sky is the limit, but not even that is beyond our reach.
Besides editing existing item descriptions which I’m still struggling with 🤣
I couldn't say for sure, as I haven't done anything related to it myself yet. 
But, I'd recommend looking at how the Builder's Bench works. And attempting to replicate that to create a Bench of a similar function. (Exchanging equal number of 1 block for another.)
you need to edit the server.lang file this is how i did it for my halo mod items.Needle_Ammo.name = Needle Ammo
items.Needle_Ammo.description = Can be acquired by smelting Purple Crystals in a <item is="Bench_Furnace"/>.
items.Bullet_Human.name = Bullets Human
items.Bullet_Human.description = Can be acquired by smelting Copper Bars in a <item is="Bench_Furnace"/>.
items.Plasma_Rifle.name = Plasma Rifle
items.Plasma_Rifle.description = Consumes 1 Essence Of Water Per Shot.
items.Needle_Rifle.name = Needle Rifle
items.Needle_Rifle.description = Consumes 2 Needle Ammo Per Shot For Decent Damage.
items.Needler.name = Needler
items.Needler.description = Consumes 1 Needle Ammo Per Shot.
items.Beam_Rifle.name = Beam Rifle
items.Beam_Rifle.description = Consumes 3 Essence Of Void Per Shot For High Damage.
items.Fuel_Rod_Gun.name = Fuel Rod Gun
items.Fuel_Rod_Gun.description = Consumes 5 Essence Of Life Per Shot For High Explosive Damage.
items.Gravity_Hammer.name = Gravity Hammer
items.Gravity_Hammer.description = Deals High Melee Damage. Usually Carried By Brute Chieftans.
items.Energy_Sword.name = Energy Sword
items.Energy_Sword.description = Deals Moderately High Melee Damage. Usually Carried By High Ranking Elites.
items.Plasma_Pistol.name = Plasma Pistol
items.Plasma_Pistol.description = Consumes 1 Essence Of Life Per Shot.
items.MA37_Assault_Rifle.name = MA37 Assault Rifle
items.MA37_Assault_Rifle.description = Consumes Human Bullet Per Shot.
items.Jackal_Shield.name = MA37 Assault Rifle
items.Jackal_Shield.description = A Medium Disc Shaped Arm Shield Worn By Jackals & Skirmishers.
items.Scarab_Gun.name = SCARAB GUN
items.Scarab_Gun.description = A DEVISTATING WEAPON USED BY UBER UNITS OF THE COVENANT.
same with npc roles you can add it in
Wow thanks man! I appreciate that help greatly.
np
Question for the veteran modders: Would anyone know if the crafting system is flexible and modable? For example, what if I want to make recipes discoverable as people experiment with different combinations of reagents? Or make it so that you need to stir something for x amount of time, otherwise it won't be as potent or rendered useless?
Also, on a related note, would it be possible to add metadata to items, that way we can craft a toxin and apply it to a weapon or arrows which can cause extra damage, both immediate and over time?
Metadata would be in a custom component, but how you'd apply that as an effect, I'm not too sure. That might need to be a server-side detection, which would definitely be possible. I know what you're thinking though, kind of like poison-tipped weapons in RuneScape.
What do you mean by reagent?
(Wouldn't consider myself an expert, so others may have additional input)
reagent = ingredient
I'm looking at implementing a comprehensive alchemical system, but I'd need to know if certain things are possible and if there's constraints to what I'm trying to achieve. Even something as simple as applying poison to a weapon may not be doable. Sorry for what might seem dumb questions
I don't think weapons have states. You can store metadata in components, but I do not believe you can update the texture via whichever component it has. If you went with a dedicated item (due to needing it to be visual), it might be possible to apply an effect. This is from the Weapon_Longsword_Flame which deals fire damage, but it is the DamageEffects that might be interesting.
"Longsword_Swing_Left_Damage": {
"Interactions": [
{
"Parent": "Longsword_Swing_Left_Damage",
"DamageCalculator": {
"Type": "Absolute",
"BaseDamage": {
"Fire": 31
},
"RandomPercentageModifier": 0.15
},
"DamageEffects": {
"WorldSoundEventId": "SFX_Longsword_Special_Impact"
}
}
]
},
Couldn't find any use of DamageEffects that applied an effect ID but if there is a place for it to be, it will be there.
For crafting it would be fine if it's a dedicated item. If it is a component you wanted to add instead, I don't believe that's currently possible without listening to some crafting events in the backend. There is CraftRecipeEvent.Pre and CraftRecipeEvent.Post as EcsEvents that could be of value.
For experimenting with ingredients, due to the inability to place your own ingredients, this wouldn't be achievable out of the box. I believe, but don't quote me on this, that the current UI tooling has limitations in regards to creating UI with item inputs. This limitation should be lifted after the full shift to Noesis UI.
Someone with more knowledge may have better input. I'd recommend checking out the Hytale Modding discord if you aren't already in there as that is where the smart ones live!
Thank you @void wagon, you have me some things to chew on. I didn't know about the Hytale Modding discord, that would definitely be the place to post these questions. Thank you!
This is one of the things i'm working on. From what I can see (in my broken decomp source) is that in your processing component, you can actually implent your own recipe system using CraftingManager. It appears relatively straightforwards.
Oh wow, where did you find the docs for that?
I'm creating a tool that allows users to create mods/plugins with a visual node editor for Hytale
hi how to get defense/armor count from player stats?
so i can do something like calculate a player's armor/defense points
Looking forward to it, Juan
see in Hytale modding DC
my mod list is showing a mod called small empty bottles, but i have no idea where it came from and i cannot find it in my mods...
Anyone know how to specify jvm flags such as "--add-opens" so that it applies to the world i'm using to test my mod?
Is there a way to attach custom data to an instance/world?
Yeah the term you're looking for is "resources". you add them to the entitystore
Check TimeResource for example
it keeps track of the world's current time
Thanks, I've been working on a codec for it, but wasn't sure how to attach it properly
Trying to set up a dungeon minigame... are there utilities for managing minigames yet?
If you find one, lemme know
To clarify, I was wondering if there was anything native/built-in to Hytale, not third party.
I have my own instances, that part was easy. What I'm trying to do now is keep track of those instances. Since I'm using a "custom" instance (a slightly modified copy of Default_Void), I could probably filter Worlds based on their name (i.e., drop worlds with names that don't match <my instance name>-<any UUID>), but I feel like that will lead to a mess sooner or later (for instance, when old dungeons are deleted). Realistically, I probably need to use a database at some point.
By the way, I could use some desiners/builders to make the dungeons a little less bland. If anyone is interested in helping out, please let me know.
I would like a block to tick once every 30 seconds. I attempted scheduled tick and added 30 seconds onto current time, but it ticks immediately. 😭
DelayedEntitySystem allows you to specify something that happens every x.x seconds
Does anybody know how to create effects like 30% Chance to apply burn to an enemey? Is that possible via json assets or do i need to actually implement java for that
Best idea to ask on the modding discord for stuff like that
which one ?
There only one main modding discord
https://hytalemodding.dev/en
click 'Join the Community' to go there.
I suppose I can adopt that given I did say "every 30 seconds". Was hoping for an approach that was more dynamic. I was trying this:
Instant currentTime = commandBuffer.getExternalData().getWorld().getEntityStore().getStore().getResource(WorldTimeResource.getResourceType()).getGameTime();
Instant endTime = currentTime.plus(Math.round((float)block.getDelayInterval()), ChronoUnit.SECONDS);
section.scheduleTick(ChunkUtil.indexBlock(x, y, z), endTime);
and despite having an interval value of 3000, it's still instant in-game.
You sure scheduleTick requires world time and not real time?
I wouldn't be surprised if passing an endTime that's in the past into that function makes it run immediately
I was kind of following tickSoil, from the built-in farming systems.
blockSection.scheduleTick(ChunkUtil.indexBlock(x, y, z), decayTime);
where decayTime is updated like this:
double baseDuration = (double)range.min + (double)(range.max - range.min) * ThreadLocalRandom.current().nextDouble();
Instant currentTime = commandBuffer.getExternalData().getWorld().getEntityStore().getStore().getResource(WorldTimeResource.getResourceType()).getGameTime();
Instant endTime = currentTime.plus(Math.round(baseDuration), ChronoUnit.SECONDS);
soilBlock.setDecayTime(endTime);
Ah I see
Yeah, I have no idea. I logged some values:
currentTime: 0001-12-13T16:44:37.053088355Z
endTime (after adding an ungodly number): 0002-01-17T10:04:37.053088355Z
Which I can confirm is later than /time, yet it still runs instantly. So... not sure what the deal is there. Doesn't seem to be something I'm doing wrong
Okay this is interesting. I removed scheduleTick, and it still ticks. It's ticking even though I'm not registering it to tick. What in earth.
Edit: Probably because of the BlockTickStrategy.CONTINUE, after changing that to sleep, it's better - it'll still update on each block update, so I need to store additional metadata.
I think I found an error in the source code, is there a standard way to report it?
What's the error
Did anybody also come across this bug: "Dragging items into the active hotbar slot visually purges Infinite ApplicationEffects.Particles from the Entity."
I have a particle effect on a player but when he moves an item into the slot where his hands are the particles just disapear
ask the skeleton praetorian
make your bets if i can finish my tts mod by the time update 4 hits release branch
How to add a new recipe for a vanilla item?
anyone have an issue with downloading the newest release server files? i took a bit of a break from hytale and had a server running and configured for auto updates. but for some reason its not working. So i figured I would try to just manuaally download the server files and update them like before and it keeps not downloading anything?
Hello, is there already a Hytale proxy that works reliably, like the one used in Minecraft Waterfall?
there arent any that are as battle tested as velocity, but there are proxies
(also dont use waterfall, its been deprecated forever)
ik 😅
Hi, does anyone know how to disable mods per world on a server ?
just a question is there any working sleep percentage plugins/mods that work currently?
i only found one that has something similar with it just running a time command i believe whenever someone is in a bed.
I emulated a Game Boy inside Hytale at a true 1:1 scale, rendering 23,040 blocks per frame. The hardest part wasn’t building the emulator, but making it performant. I’ve already managed to run games like Tetris, Batman: Return of the Joker, and Batman: The Animated Series.
Wild
Has anyone seen random disconnects alongside "You logged in again with the account!"
No, just invalid session / you're not logged in a few times since the last update, tells me to restart the game 🤷♀️
See in Hytale modding dc
With NPC modding, SetStat allows you to change a a numerical property to the given double. How does that work with boolean properties?
Edit: Nevermind, that's not even what SetStat is for...
There is plenty of sources to pull from for emulstors so can see that being easy.
As for display you could experiment with debugshapes or particle systems for pixel control as well.
Or maybe a crazy model with attachments where you colored different sides of a box different colors and send rotation updates somehow.
Was considering a chip8 emulator but i wanted a good technique for pixel manipulation to arrive.
Not sure if flipping state on terrain blocks with four display states for color would be faster than adding removing blocks either.
Good morning! I’m working on updating the backpack button in the client inventory UI, but I’m kind of stuck. Right now, the only way I can get the client to update is by dispatching through the game mode to the player. Is there a better way to handle this?
I think people talked about it before. But i cant remember if they found something else. Flippiing around with game mode seems like it could have more sideeffects in the long run.
Maybe someway to change it trough custom ui calls?
Yeah, but I didn't find a better approach, I try look at some packets the game sent and customHud/PageWindow, but nothing seens properly work..
One of the prominent issues in Hytale modding community is that it puts so much pressure on modders and server owners every update
If you can't get the mods on your server updated until a major update releases, you will 100% start losing brand new players coming to the game
as these players can't simply download older client versions to join servers that haven't been updated yet
These issues will be addressed as Hytale development progresses along the Early Access journey
By the way, does Update 4 break modded workbenches?
None of the custom workbenches in my server are working
they mentioned wanting to remedy this issue as soon as they can for now just update asap
Assume that everything will potentially break on update.
But the inventory systems changed so anything using inventory thats not updated for that will break.
oh that doesn't sound good
Its great the old inventory design was not very good.
And its still prerelease so one should expect things to break.
I mean in less than 2 days from now more than half of the mods in my server are going to break
and players are actively using those
Correct.
So I need to like, modify 10+ mods and fix workbenches individually until the release
and I haven't even figured out what actually I need to modify
If the moders are not updating them yeah.
And thats assuming they are not plugins or that the developer made the repository public.
(Especially the NoCube ones, I'm literally working on a public mod that's called Fix "NoCube's Mods")
Despite Hytale claiming to be a modder friendly game, adding mods actually makes server management so much more painful
but it's still an early access game so it's ok as long as the devs eventually do something about this problem
also, this isn't strictly an issue with Hytale's base game but I've seen a large number of mods that were created after the game's release, but then went abandoned before Update 2 or 3 without even making them open source
Yeah. Not to be cruel but its on you if you decide to add mods to a server at this stage or not. It is a risk you decide to take.
i suggest running a pure vanilla as well so people have a space to go to during the downtime
Wasnt that part of it as well you could configure a fallback server for a server if players fail to connect?
i know of a proxy mod i use that does that
Is it possible to display an item in custom pages like it is beeing displayed in the inventory?
With built in components hopefully? Or do i have create one completly custom
There are ItemGrid, ItemIcon, ItemPreviewComponent, ItemSlot, and ItemSlotButton elements. Check the ItemSlot and ItemSlotButton descriptions for how to combine them
But those arent UI Components are they?
I must not understand that question. They are custom ui elements, like Group and Button and TextField. I literally put the links to the documentation in there
Ok Ill check it out thanks! It sounded like entity components
What did you expect them to sound be named like? Hard to imagine anything other than ItemIcon for a Items Icon or a ItemGrid for a Grid of items. 😄
PossiblyElongatedGizmoContainer? 😄
Ohh so i can use it like this?
ItemSlot #FruitSlot {
Anchor: (Full: 0);
ShowQualityBackground: true;
ShowQuantity: false;
} ?
Good question 😄 I thought maybe some UI-Prefix or something but its fine iguess 😄
Since its a ui element its already in a UI context, so i see what you are going for but it would be kinda obvious, that the thing you can only reference in the ui is part of the ui.
I need to do ui stuff tonight if my head don't kill me.
Yeah you can see the bartering ui for example. BarterTradeRow.ui
I really hope that they fix the inventory system, cause right now, trying to create a custom UI with a (semi) functioning player inventory system is a nightmare. I'm actually having to implement my own player hotbar / storage inventory to go alongside machinery and custom storage blocks 😬
Thank you very much ❤️
They really added a lot of ui files i am kinda sure wasn't in the assets before. But then again i might just have forgotten to copy unpack it proper.
I actually can't for nothing get a clean decomp of the source code 😒
I tried both patcher, and CodeSpy in IntelliJ
I use vineflower
$VineflowerPath = "C:\Programs\vineflower-1.11.2.jar"
java -jar "$VineflowerPath" `
--decompile-generics=1 `
--hide-default-constructor=0 `
--remove-bridge=0 `
--ascii-strings=1 `
--use-lvt-names=1 `
"$JarPath" "$OutputDir"
👀
Ooo, okay, I'll sit down and have a looksie when I get home from PT later on this afternoon, thanks! 😸
I'm having trouble teleporting a player while they're moving; it sends them to the wrong coordinates. Does anyone know why this is happening? I don't have any logs, so there's not much I can do about it.
How can I listen to entity deaths? Is there an event for it?
yep, extend the DeathSystems.OnDeathSystem
Hey guys so update is tomorrow and some mods like Violet's furniture, Macaw's furtnire... Do completly break the server boot. And seems like, especially Violet's, it will not be updated beforehand so if the server updates it'll render all placed furniture as failed assets.
Could someone perhaps point out what needs to be done to fix the furniture mods? At this point I'll try to fix it myself to at least have the server boot, it's pretty chaotic like this.
Is there a documentation or any example on how to use it?
There is Hytaleserver.jar
WHats the difference in EntityEffects between StatModifiers and RawStatModifiers ?
Omg, you are a saint, this is a life saver right here for me! It worked perfectly! 😸
Thank you!
What controls the name of the capture crate? I see this:
items.Tool_Capture_Crate.name = Capture Crate
items.Tool_Capture_Crate.nameFull = Capture Crate ({npc})
but do not see where the latter is ever used but it is.
Unzip the mods which in many cases, will allow them to run. Problematic files will log an error - so you can check the log files to see what files are problematic, giving you the best chance of figuring out how to fix them.
if any of the mods are plugins, you need to go to the developers git repository download it set it up to compile with the latest versions and fix the code in the latest pre release. And rebuild them again and fix errors when the real version is out.
but probably not that likely if they are furniture mods since those mostly are assets.
has there, have they added the possibility to implement custom hotkeys/custom interactions in the latest updates?
no dont think so
You can listen to some custom inputs, such as gamemode change (O) and interact (F). We have a guide on it:
https://hytalemodding.dev/en/docs/guides/plugin/player-input-guide
Right click interaction, as well, to add to that
But those aren't custom "inputs", those are custom actions on defined inputs orginally bound for other actions.
but custom interactions have been possible since day one of the pre release, not just with a custom bound input.
rightclick and right click with popup ui with options is the most dynamic even if not smooth i think.
Heya, when having a block with "explode" interaction, is there a way to have it drop everything else but not itself? Like the default value of "BlockDropChance" property is 1 and I've seen that this allows the drop of the block itself to happen alongside the others. What I want is that the block that the player interacted with and caused the explosion to not drop when breaking as a cause of explosion. I know you can solve this by setting "BlockDropChance" to 0 but it would be amazing if we could also make it so it's not dropping itself without setting that variable to 0.
there is probably a interaction part where you can make it set the current block to empty before triggering break on all other block.
as in feels like more of a explosion property one would set than a block property.
Is there a Component for the entity movement speed? How do I change an entity's movement speed?
Yep, MovementManager component
Is it only for Player or does this work for mobs as well?
any entity that has movement
Is the update today ?
ugh this update is another chaotic one, why is it breaking crafting stations and furniture sets?
To improve crafting stations and furniture sets, I imagine 😉

mods adding craft stations, furniture, etc, breaking is more complicated as there's no negotiation there either it's fixed when server updates or the world will turn into pink error blocks
mechanics mods and such can be removed at little consequence but stuff placed in the world D:
With mechanical you mean feature mods.
Not logistic, industrial and production mods i assume.
yes like mods adding quests, bettermap, land protection, etc, those by norm can be removed and once re-added the saved data re-applies
building stuff however is the deal breaker
Mechanical mods: mods that introduce mechanics ^^
and stuff that adds entities like NPCs that's not even a deal breaker it's the world breaker 😄
I am kinda sure that it could been mechanical mods, mods that add mechanical components and devices. 😄
but yeah i never catch linique probably things have a clearer divide and category.
hihi
Anybody idea how I can run /fill /pos1 /pos2 or any similar selection command on console?
I dont wanna code my own things if its not necessary.. and just run command like this:
CommandManager.get().handleCommand(ConsoleSender.INSTANCE, "pos1 --x=-60 --z=-110 --y=210");```
CommandManager.get().handleCommand(ConsoleSender.INSTANCE, "fill fluid_water");```
If you're making a plugin, you can use the BuilderToolsPlugin directly. Check how the FillCommand works interacts with it
What are valid "ServerVersion" I can use in the manifest to stop these warnings: [2026/03/26 14:28:24 WARN] [PluginManager] Plugin 'net.primaxstudios:PrimaxTrails' does not specify a target server version. You may encounter issues, please check for plugin updates. This will be a hard error in the future
apparently "*" doesn't work anymore as a value
2026.02.19-1a311a592 until today. When the new version comes out later, you can update it to 2026.03.26-<hash>
oh I see, I should learn from this, gotcha
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package com.hypixel.hytale.builtin.buildertools.commands;
public class FillCommand extends AbstractPlayerCommand {
@Nonnull
private final RequiredArg<BlockPattern> patternArg;
public FillCommand() {
super("fillBlocks", "server.commands.fill.desc");
this.patternArg = this.withRequiredArg("pattern", "server.commands.fill.args.replacement.desc", ArgTypes.BLOCK_PATTERN);
this.setPermissionGroup(GameMode.Creative);
this.addAliases(new String[]{"fill"});
}
protected void execute(@Nonnull CommandContext context, @Nonnull Store<EntityStore> store, @Nonnull Ref<EntityStore> ref, @Nonnull PlayerRef playerRef, @Nonnull World world) {
Player playerComponent = (Player)store.getComponent(ref, Player.getComponentType());
assert playerComponent != null;
if (PrototypePlayerBuilderToolSettings.isOkayToDoCommandsOnSelection(ref, playerComponent, store)) {
BlockPattern pattern = (BlockPattern)this.patternArg.get(context);
if (pattern != null && !pattern.isEmpty()) {
BuilderToolsPlugin.addToQueue(playerComponent, playerRef, (r, s, componentAccessor) -> s.fill(pattern, componentAccessor));
context.sendMessage(Message.translation("server.commands.fill.success").param("key", pattern.toString()));
} else {
context.sendMessage(Message.translation("server.builderTools.invalidBlockType").param("name", "").param("key", ""));
}
}
}
}```
will try O.O
I have to update it every time new version comes out?
For now, yes. They're working on better compatibility and protocol handshake tech for the future but especially since a lot of fundamentals are changing every update, you almost certainly have to update your plugin for new releases
i added it o my gradle file that he reads the implementation version from the jar manifest
Players may now have multiple instances of Hytale running simultaneously. To reduce the risk of save corruption, players are advised against opening the same world multiple times simultaneously.
Yippieee!
doesn't that remove some of the benifits, in the sense of "I need to try this thing localy with multiple players" but you can't have two of them in the same world. 😄
In that scenario, you just make a server
Yeah you should always test on a local server you host yourself, not via the game's single player function. So you have better access to the logs and folder structure
Is there a way to force a mod to validate?
I believe with --validate-assets makes it a hard check
Wait? People test in singleplayer?
Besides that doesnt change the fact of two of the same player in the same world
It's not two of the same player in one world, it's about launching two instances of the game (with different game profiles)
Is it possible to spawn a zombie combat logger with custom metadata containing the players UUID? Or would I want to just store a ref to the zombie?
working on hosted UHC, and am looking to spawn a zombie in the players place if they are alive and detect if that zombie is killed if that makes sense.
Hmm now with update 4, alot of mods are not updated. Anyone know what happens if I remove a mod from the server that has added blocks I have used in the world? Will they become some "placerholder"-block or will the world be unbootable?
Placeholder blocks
Ok thanks, vill try to remove the non updated mods until they update then 😛
I put (*) on the versión
If u know the version is the last that u are working on then u can do that without change that every time
[2026/03/26 17:30:27 SEVERE] [HytaleServer] Asset validation FAILED with 20 reason(s):
Mod dev.scottjugbler:AnimeClothing failed to load. Check for mod updates or contact the mod author.
Mod Violet:Violet's Furnishings failed to load. Check for mod updates or contact the mod author.
Mod BlameJared:ThoriumChests failed to load. Check for mod updates or contact the mod author.
Mod ExperionPlanet:VampirismSet failed to load. Check for mod updates or contact the mod author.
Mod Makapar:BarterShop failed to load. Check for mod updates or contact the mod author.
failed to validate npc's
failed to validate npc's
failed to validate npc's
failed to validate npc's
failed to validate npc's
failed to validate npc's
failed to validate npc's
failed to validate npc's
failed to validate npc's
failed to validate npc's
failed to validate npc's
failed to validate npc's
failed to validate npc's
failed to validate npc's
failed to validate npc's
[2026/03/26 17:30:27 INFO] [HytaleServer] Shutdown triggered!!!
[2026/03/26 17:30:27 INFO] [HytaleServer] Shutting down... 6 'client.disconnection.shutdownReason.validateError.detail'
[2026/03/26 17:30:27 INFO] [PluginManager] Saving plugins config...
[2026/03/26 17:30:27 INFO] [HytaleServer] Saving config...
[2026/03/26 17:30:27 INFO] [HytaleServer] Shutdown completed!
does this mean the said mods need to be updated?
yes
inventory classes changed, any mod that deals with that will need to be updated
does the ServerVersion workaround work?
no
the classes that were responsible for inventory handling do not exist anymore
there are new ones that are more tied with ECS
any general things i should be aware of with this update before, well, updating
Yeah I realized that as well! Is there any community or channel were people can be updated about these kinds of API changes? Looking at the new Code the Inventory seems to be only accessable via Events right Now. But if you wanna change an player inventory, there is no way to retrieve an Inventory reference from the player to call the inventory from the store -.-.
if that was the case, the game would not funcction as it would not be able to access inventory
try InventoryComponent#getCombined() and getStore().getComponent(blockRef, ItemContainerBlock.getComponentType()) for block inentories
best idea to find out things like that is to look at the server source
those classes were deprecated ever since game came out
Huh... thats a funny thing to realize
I dont think there is a command to remove water?
There's /fill to fill up air blocks with water.. but not the reverse, to remove fluid from an area
Well not really, the world is completely white when I get in....only gui stuff is visible lol
hmm /set empty after selecting waterblocks?
That's a different issue
Yeah alot of issues right now lol
/set empty just deletes everything, there are blocks that are water filled after /fill
I only used /set fluid_water or /submerge fluid_water...never /fill 😛
when will server source code be published?
When Legal approves it
oh! submerge can work
will look thanks
You can add it to your project as a directory and view the classes from there.
haha.. I wonder if this is patched already
/submerge fluid_water (works)
and suggest to use Empty to unsubmerge.. but
/submerge Empty
says it cant find Empty x"D
Can you via server-side mod enable voice-chat for every player by default? It feels weird not hearing someone speaking to you without manually toggling it on
Hey guys, does anyone have open source plugins they want to share with me (I'm making a Kotlin Tool) that based on annotations it'll generate CODECS or register components etc automatically. I need to see some more complicated mods people have to be able to cover most case scenarios. I'd greatly appreciate that, I already have working prototype but limited features. (I was making the tool as I was developing my own mod)
Ofc I won't use your code, just need to see how people do things
Hop on CurseForge, there are a bunch of mods that link their GitHub
That will work for me, thank you!
neat, i got to test my update/backup script that hooks into the whole staging process. lil unnecessary but i wanted to toy around with it
Are release and pre-release now on the same patch? or whats the latest patch for release?
No, release is 2026.03.26-89796e57b (patch 37) and pre-release is 2026.03.26-92489d5e7 (patch 38), published 40 minutes after release branch
Hi, does anyone found a new way for Inventory::getCombinedEverything. Because it got removed now
Ah I see so, release is now behind one patch
But it got updated to the prev pre release
Yeah pre-release is on Update 5 Part 1
big overhaul to the vector types! They now use base JOML classes rather than hytale-specific ones
They are pumping updates, Thats so cool
I checked it out: No. But when a player connects, you can show them a popup to enable it, and then poll playerRef.getPacketHandler().getChannel(StreamType.Voice) to see when they open a voice channel with the server.
is it just me or the client gets stuck on applying patch 2/2?
been stuck on that for quite some time now
you set this in the bat file when starting ?
thank you
is there anything I am missing, voice chat is enabled and it shows if I do /voice enabled true and in the mod configs, even restarted server but players still can't hear each other in-game and they also have voice enabled in their settings
InventoryComponent.getCombined(store, ref, InventoryComponent.EVERYTHING) try that?
Is there a channel or something associated for finding people to work on a plugin as a team? And finding people good at building etc.?
Hi, anyone got that kind of issue ?
[2026/03/26 21:05:49 SEVERE] [Hytale] Exception in thread Thread[#132,WorldThread - Varyon,5,InnocuousForkJoinWorkerThreadGroup]:
java.lang.IllegalArgumentException: Scale must be greater than 0
According to decompiled HytaleServer.jar:
The error occurs in the createScaledModel method which is called from multiple locations. Based on the error message mentioning "WorldThread - Varyon", this is likely related to world generation or NPC spawning.
alright ! thanks alot for the investigation
are there any like foolproof server status verification tools?
Like something that can detect if the server has a valid token, up to date and is actually joinable?
I hope this is the right channel... Has anyone been able to successfully update a server hosted on shockbyte? I'm having a heck of a time figuring this out
A lot of mods were using Hytale:BlockStateModule which seems to be removed, any suggestions?
You just need to replace the server jar
not that Ive used chockbyte, but I would imagine it has some kind of file browser that you can use?
Where do I get the updated file to replace it with?
It does have a file browser
If youre on windows, you will have a copy on %appdata%\Hytale\install\release\package\game\latest\Server
I have a question: if I import a file and it finds the necessary information when searching in hytaleServer.jar with intelliJ, but then when I run the build command it throws an error saying those packages don't exist, does anyone know how to fix this?
I replaced that file and now the server won't boot at all
You also need to replace the HytaleServer.aot file
and there should be an assets.zip somewhere on the server, which is located one level up .../game/latest.Assets/zip
I'm assuming there's something else I need to replace too? Because now I'm getting even more errors lol
assets.zip, thats it
if its still not booting, the server host must have something special going on, or you've installed mods that no longer work on the latest version
No mods installed. I'll replace this file too and see what happens. It's a bigger one so it's going to take a minute
If it doesnt work then, you can share the error log here and someone may be able to help ie using pastebin (döt) com
I think I got it working now. Thanks for the help!
BlockState has been removed in favor of components (specifically Component<ChunkStore>)
since people keep asking the same thing over and over
Block inventory
Ref<ChunkStore> blockRef = chunk.getBlockComponentEntity(x, y, z);
if (blockRef == null) return;
ItemContainerBlock containerBlock = blockRef.getStore().getComponent(blockRef, ItemContainerBlock.getComponentType());
if (containerBlock == null) return;
SimpleItemContainer container = containerBlock.getItemContainer();
Player inventory
CombinedItemContainer playerInventory = InventoryComponent.getCombined(commandBuffer, ref, InventoryComponent.HOTBAR_FIRST);
Would people be interested in a simple meerkat morph potion zip mod? I made one and wondered if it’s worth posting to curseforge just looking for feedback
as soon as it scrolls out of view people will ask either way. 😄
but then it can easily be linked
fair
Hey after the new update the class LivingEntityInventoryChangeEvent doesnt exist anymore? how do i register an inventory event now?
that is from an entity
by querying the inventory component
the solution is to use the EntityEventSystem
💡
If you're currently using Violet's (Furnishings/Plushies/Music Players) in your server, I wrote a Hytalor-based patch for my server to fix those mods for Update 4. Feel free to browse the patch files and use them for your server:
github[.]com/IroriPowered/asset-patches
The repo also contains fixes & tweaks for bunch of other mods in my server so choose the ones you need (Note that you might need to launch the server with --ignore-broken-mods)
i swear, every update people start trying and failing to connect to my server
Can someone explain why I'm getting this error in my console ?
>....[2026/03/27 15:02:29 SEVERE] [EntityModule|P] Failed to setup plugin Hytale:EntityModule Exception Details: at com.hypixel.hytale.server.core.modules.entity.EntityModule.setup(EntityModule.java:366) at com.hypixel.hytale.server.core.plugin.PluginBase.setup0(PluginBase.java:390) at com.hypixel.hytale.server.core.plugin.JavaPlugin.setup0(JavaPlugin.java:48) at com.hypixel.hytale.server.core.plugin.PluginManager.setup(PluginManager.java:892) at com.hypixel.hytale.server.core.plugin.PluginManager.setup(PluginManager.java:291) at com.hypixel.hytale.server.core.HytaleServer.boot(HytaleServer.java:389) at com.hypixel.hytale.LateMain.lateMain(LateMain.java:56) at com.hypixel.hytale.Main.launchWithTransformingClassLoader(Main.java:64) at com.hypixel.hytale.Main.main(Main.java:40)
there should be more details because that states nothing else besides it being wrong
How can I send my entire console without spamming ?
find an error in the log that refers to your actual mod or mod name or function in your mod.
not sure if this is a good place to ask this, but has anyone had trouble getting hytale-downloader to download the lastest version? I keep getting an error about a invalid refresh token. I ended up manually copying the server and assets file to my container so I can play, but just wondering if this is a known issue.
Any chance anyone knows what value you need for the current version for skipmodvalidation?
Aha
It's the Revision ID!
worked fine for me, seems like some auth token expired?
Hi does someone have feedback on the mod hyinit and Refixes ?
feedback?
I found where the token was and removed it. It prompted me to make a new one and I was able to. It's working now. Thank you.
Can someone explain to me why the particles are not disapearing? The snow impact does properly disapear but the snow effect does not.
// Freeze.json
{
"ApplicationEffects": {
"EntityBottomTint": "#80ecff",
"ModelVFXId": "Freeze",
"ScreenEffect": "ScreenEffects/Snow.png",
"Particles": [
{
"SystemId": "Effect_Snow",
"TargetEntityPart": "Entity",
"TargetNodeName": "Pelvis"
},
{
"SystemId": "Effect_Snow_Impact",
"TargetEntityPart": "Entity",
"TargetNodeName": "Pelvis"
}
],
"EntityTopTint": "#da72ff",
"MovementEffects": {
"DisableAll": true
},
"AbilityEffects": {
"Disabled": [
"Primary",
"Secondary",
"Ability1",
"Ability3"
]
}
}
}
ANd then i use this like this:
//Freeze_T1.json
{
"Parent": "Freeze",
"Duration": 1,
"Infinite": false,
"Debuff": true,
"RemovalBehavior": "Duration",
"OverlapBehavior": "Overwrite"
}
FOr some reason the particles doesnt disapear. atleast not the snow thing. any idea why?
very helpful, but where do I stick the --ignore-broken-mods so it actually does a thing?
also, I hope to god hytalor gets updated soon. x.x so many mods are dependent on it.
@nova bronze PLEASE update your Violet Mods to latest game Version! 🙁
Wrong Violet, kinda disrespectful...
how to use this patch?
Does anyone know any mods that exist (and work) that have the same concept of reforging like hypixel skyblock has? where its random reforges you can apply to any tool/weapon/armor and they have configurable stats
lil rude yeah and i'm not violet, just cool lol
huhu sorry wrong violet 😂😂
Just asking is disrespectful? Why? my english is very Bad that's why I use less words 🙁
I mean it's kinda disrespectful to ping random people with requests without first verifying they are the correct person
Yeah my fault
it's also kinda rude to just ping mod authors to update their stuff, i'm sure she will update her mods when she has time to
i do miss my plushies tho @nova bronze
lol
plus violet that made the mod is busy updating the game which I say is more important
How do we install your asset patches ? Seems like the patch does not work for me
public class PlayerConnectionListener {
private final PlayerManager playerManager;
public PlayerConnectionListener(PlayerManager playerManager) {
this.playerManager = playerManager;
}
public void onPlayerConnect(PlayerConnectEvent event) {
PlayerRef player = event.getPlayerRef();
playerManager.load(player.getUuid(), player.getUsername());
}
public void onPlayerDisconnect(PlayerDisconnectEvent event) {
PlayerRef player = event.getPlayerRef();
playerManager.unload(player.getUuid());
}
}
is this the correct way to add and remove player from a list
afaik this is correct for Minecraft but idk about Hytale
oh hey it DaniDipp to say the day
ECS is a nightmare for someone who is used to minecraft
Yeah, looks like you're only persisting them via their UUID so that's fine. When you need to look them up, you do that via Universe.get().getPlayer(uuid)
why ? it's that different?
yes afai've seen
it giving me a roller coaster of information
didn't touch minecraft modding (only did play a bit with a plugin) but seems like quite a bit of info to swallow a bit with ECS at beginning but starts to actualy settle in after using it a bit.
also is there HytaleServer.jar in maven yet
cause it kinda annoying to have to manually update HytaleServer.jar
Yeah, see https://support.hytale.com/hc/en-us/articles/45326769420827-Hytale-Server-Manual#misc-details for the config details. But I just link the one from my client so it updates automatically in my IDE when I update my game
also is it better to keep a list of UUID or PlayerRef
I'm pretty sure it doesn't matter. As far as I understand, the PlayerRef object is alive for the whole duration of the player's connection to the server. But when in doubt, use UUID. That will always stay the same, even across connections and different servers
may i have the maven repository url too
https://maven.hytale.com/release doesnt seems to do it
repositories {
maven("https://maven.hytale.com/release")
}
dependencies {
compileOnly("com.hytale:hytale-server:2026.03.26-89796e57b")
}
this should be correct right?
no, where did you get that? ^^
uh i think it would fit gradle
It does, but it looks like an AI hallucinated the group and artifact id
oh yeah it suppose to be Server
correct is com.hypixel.hytale:Server, as you can see in the Server Manual and Maven Metadata
my bad
all good 
i think i did something wrong again, IDE said it cant find com.hytale:Server:2026.03.26-89796e57b. here
you still have the group incorrect
especially when I gave you the literal source of truth url 😭
oh wait how come i cant access https://maven.hytale.com/release through browser, is it restricted for browser
because that's a maven repository, not a website
thank you very much Dani!
do you think i should make a Friend and Party plugin for Hytale
or is there already a good one 🤔
just be aware that this is on the roadmap for vanilla
can you clarify that and yes i made 1 using only vanilla's resources
The Hytale team said they want to add Friends lists and cross-server party systems to the game
ohhhh welp no more friend and party then 🤣
i will go back with making a good Network Management plugin then
It's still way out so there is definitely value in a plugin like this for the time being. Just be prepared for integrating the vanilla functionality when it drops
maybe Hytale wont make that vanilla
anyone having issues with interactions in the basic workbenches
About the mod verification skip removal
There are three things that happened here:
- The old "skip mod validation" was checking the ServerVersion matched. This was removed, you now only get a warning about that.
- The new --ignore-broken-mods CLI arg is more clear, because if a mod hits this it is genuinely broken and you are better off disabling the mod until its updated.
- This flag exists to support mod development because if a plugin or mod fails to load you may still want to debug stuff or hot-reload the mod. Unpackaged mods that are in a directory structure don't cause the server to reject broken mods too, so you can use the asset editor to fix the problems. This means if a pack is causing a problem you could just unzip it and then fix it with the asset editor.
Note: When a mod is disabled the server should preserve the mod data as "unknown" if the mods is correctly using the server. So when its updated everything should continue to work.
@flat nest I think you need to recreate them from updated ones. Maybe try to add basic ones as parent
If it tell me '' The following plugin failed to load '' How can i fix it please ? I use gradle. I can open the project if i copy the server folder in a new pack and it seems to work properly.
Should i still do this if i use gradle ?
<repositories>
<!-- Hytale release repository -->
<repository>
<id>hytale-release</id>
<url>https://maven.hytale.com/release</url>
</repository>
<!-- Hytale pre-release repository -->
<repository>
<id>hytale-pre-release</id>
<url>https://maven.hytale.com/pre-release</url>
</repository>
</repositories>
Add the dependency to your pom.xml:
<dependency>
<groupId>com.hypixel.hytale</groupId>
<artifactId>Server</artifactId>
<!-- Replace with latest version, we provide jars for the last five releases -->
<version>2026.01.22-6f8bdbdc4</version>
</dependency>
Yes, you may use the maven repo even with Gradle
How do i test find out if its a version problem or if its something within the project that prevent the build to work ?
I managed to have the version in green but it still wouldn't lauch
How do you have it configured in Gradle?
rootProject.name = "dev.hytalemodding"
plugins {
// See documentation on forbidden link
id("dev.scaffoldit") version "0.2.+"
}
// Would you like to do a split project?
// Create a folder named "common", then configure details with common { }
hytale {
usePatchline("release")
useVersion("+")
repositories {
}
dependencies {
}
manifest {
Group = "HytaleModding"
Name = "Flux_Wars_Prototype"
Main = "dev.hytalemodding.Flux_Wars_Prototype"
}
}
I feel i need to put something inside repositories and dependencies, i tryed to copy what pavelle did previously but it didn't work, i am a complete beginner in modding, so thank you for your patience 👍 .
Yeah you can do what pavelle did, but you need to correct the dependency to com.hypixel.hytale:Server:...
i finish with .pom or just nothing ?
No, Gradle takes care of fetching the pom on its own
Thanks a lot for your help, now the version is written in green but i have the error : ''the following plugin failed to load''
It means something is wrong with the elements of the plugin right ? Like elements that have been modified in the patch.
I don't know, not enough context My first thought was the dev.scaffoldit plugin?
Can i deactivate it for testing ?
I don't know what it does or why you need it
ok thanks
Might be worth asking on the hytalemodding discord instead since this looks like their template
I'll do thanks for all your help 👍
It was just a naming problem it works fine your the best !
Do Infinite effects stay even after a character dies? Doesnt seem like it ?
anyone figured out how to get voice chat to work on your server? it's enabled on /voice enabled true and client side but still no voice works, any ports that needs to be opened?
Just checking, you know it got proximity settings as well so you might have to be close to hear each other.
make sure the microphones work and pickup sound and no one have press to talk set and is not pressing the button.
yea players are standing by each other, so it's odd, so was just wandering if I am missing anything or a port to be opened
it uses the same connection the server does so doesn't need any extra port forwarding. As long as both clients have it enabled it should be working, maybe try reconnecting. if you are able to check the client/server logs maybe there is something in there that hints to a problem?
I can't seem to post any logs here
Is it just me, or is everyone else having huge problems migrating their project to the new version?
Heya, how exactly do I spawn an item in the world? Like I wanna spawn an item in front of player about 5 blocks away so he doesn't pick up. I've found somewhat working code:
Vector3d pos = pos2.getPosition().add(dpt, interval, total);
world.execute(() -> {
for (String item : items) {
ItemStack itemStack = new ItemStack(item, 1);
System.out.printf("It's valid the %s? %s".formatted(item,itemStack.isValid()));
Holder<EntityStore> itemHolder = ItemComponent.generateItemDrop(
store, itemStack, pos, Vector3f.ZERO, 0.0F, 3.25f, 0.0F);
assert itemHolder != null;
store.addEntity(itemHolder, AddReason.SPAWN);
}
player.sendMessage(Message.raw("Done!"));
});
But for some reasons, the next second after spawning, they get into player inventory from miles away. I heard u have to use ItemComponent.generateItemDrop to spawn an item... or it's not the right way to spawn any item in the world?
i have been tinkering with making a java plugin. i have the basic routine down, can get it into the game, its loading/updating/running, but my cusom recipes are not there. I am trying to make a new one, overwrite an existing one, and add 3 others, all with vanilla items just to learn how its done from java. I feel like its probably being disregarded by the interpreter without an error
Can anyone offer me a little help to get back on track?
Did you specify in the manifest that you have personal assets? And if so, did you create the entire folder path as if it were an original file in Hytale? These are the only things that cause problems.
A recipe is simply an item that has requirements for: 1. where it is crafted, 2. the materials, and 3. the final item.
manifest has IncludesAssetPack true. my recipes are in src/main/resources/assets/server/recipes/
the attempt to overwrite is then in /hytale, the custom ones are just in recipes
i'm guessing its capitalization or pathing or something_simple
Its from Common
I have a mod that uses icons and pages and it's in Common.UI.Custom.Pages-Icons
In fact, recipes does not exist as a path on the server.
is there a good resource that shows the pathing, or where i can verify what the server expects?
I copied the Hytale assets.zip file to another folder and extracted it.
I'll check there, or maybe in the asset editor if you need something specific; the path will appear in the tab of the item you're viewing.
if i wanted to move a recipe from one category of one bench to a custom category of another existing bench, that should be achievable with overrides with proper pathing, right?
You should, because I understand that the item you make lets you select what types of materials it needs to be crafted, in addition to the table it needs, so you don't need to modify the table Only the final item, since that's where the record of where and with what it can be created is kept.
i extracted assets and am peeking through. you said the crafting bench and recipe are not stored together, but the individual item stores where it can be crafted. are there any vanilla items that can be crafted on two different benches?
"Recipe": {
"Input": [
{
"ItemId": "Ingredient_Dough",
"Quantity": 1
},
{
"ItemId": "Plant_Crop_Pumpkin_Item",
"Quantity": 1
},
{
"ItemId": "Ingredient_Spices",
"Quantity": 1
},
{
"ResourceTypeId": "Fuel",
"Quantity": 3
}
],
"BenchRequirement": [
{
"Id": "Cookingbench",
"Type": "Crafting",
"Categories": [
"Baked"
]
I'm not sure, I haven't played that much, but I do know it's something about clicking on the item description that can be crafted at the tables you want.
thank you for the insight. i'm guessing i'm not far off, once i point to the correct folder
I'm glad that almost all the information about an item, whether custom or vanilla, comes in its JSON file (textures, models, effects, what they apply to, where they're applied, and how long it takes to craft).
last question for now: if i find the path to an existing vanilla item and i want to add one element to it (such as a crafting recipe which it does not currently contain), can i add only the recipe without overwriting its default values, or do i need to include the entire vanilla json with my addition? extending the item should just add to the base, right?
My understanding is that vanilla items cannot be modified without the game forcing you to create a new one.
That looks like it's brittle af
does it break if people go between worlds? ^^
oh yeah it does, lol
almost like ECS abstractions are there for a reason
i'm too stupid to understand any of that but that guy seemed snarky
lol he deleted it out of shame
basically a collection of references to player-related objects (playerref, player component, entity store, etc) where a bunch would become invalid when the player switches worlds
seems like there would be better ways to do things than trying to reinvent the wheel
helloo how can i get the users uuid now? my func is deprecated now
return player.getUuid();
}```
UUID is its own component now
Player is a component instead of Player get the UUID Component
Get it from playerRef.getUuid() and double check if it's the same as the uuid component
Because I believe the player's game profile uuid (unique identifier of hytale license) is different from the player entity's world uuid (unique identifier of entity in entity store)
hello there a long while back i tried adding new hairstyles or body types which wasnt possible at the time does anyone know if it might be possible now? (without adding it as an armor piece/clothing)?
fair
Yeah this space is for discussing plugin development, not server recommendations
promotion is promotion which is part of the rules
you can discuss aspects of them but we cannot send you specific links or stuff also idk but you could look on curseforge and sort for popularity?
sorry best we can do is give you a name
as i said sort it by popularity and try the one that looks best to you and if it isnt good try the next one ig
i dont play what youre looking for so i cant help any other way anyways but that would be my approach
i doubt hypixel is going to release any of their offical formats
well if they do make a server like hypixel in hytale then probably when the game is mostly done and they have time to focus on that but that might be a few years probably
ah fair
oh i know
When mods break/have to be disabled and leave behind items that take up more than one block, one side effect is that the item area (other than one block that becomes black and pink checkered) becomes see through, and I cannot figure out how to undo this see through-ness even after removing the modded items, aka the black and pink block, which I was only able to remove by switching to creative mode. Does anyone know a fix for this?
dont use mods
the first 3 are nothing to worry about
This error indicates a performance bottleneck where the FluidPlugin is taking too long (177ms) to process a specific chunk (x=123, z=-82), exceeding the server's internal TICK_STEP threshold. This often leads to server hitches or crashes when players explore new areas.
Immediate Solutions
Reduce View Distance: High render distances significantly increase RAM usage and processing hooks. The Hytale dedicated server guide recommends limiting this to 12 chunks (384 blocks) for stable performance.
Pre-generate Chunks: Use a pre-generation tool to render chunks before players reach them. This prevents the server from trying to generate and load the fluid physics simultaneously during active gameplay.
Audit Fluid-Heavy Mods: If you have added custom mods that modify water or lava physics, they may be conflicting with the builtin.fluid.FluidPlugin hook. Try temporarily disabling them to see if the error persists.
Does anyone know what's causing this exception? This wasn't an issue previous to the v4 update.
[2026/03/29 06:13:50 SEVERE] [World|default] Failed to run task!
java.lang.NullPointerException: Cannot invoke "com.hypixel.hytale.component.Store.isShutdown()" because "this.store" is null
at com.hypixel.hytale.server.core.universe.world.storage.ChunkStore.getChunkReferenceAsync(ChunkStore.java:659)
at com.hypixel.hytale.server.core.universe.world.storage.ChunkStore.getChunkReferenceAsync(ChunkStore.java:646)
at com.hypixel.hytale.server.core.universe.world.World.addPlayer(World.java:1141)
at com.hypixel.hytale.server.core.universe.world.World.addPlayer(World.java:1056)
at com.hypixel.hytale.server.core.modules.entity.teleport.TeleportSystems$PlayerMoveSystem.lambda$teleportToWorld$0(TeleportSystems.java:225)
at com.hypixel.hytale.component.CommandBuffer.consume(CommandBuffer.java:534)
at com.hypixel.hytale.component.Store.addComponent(Store.java:1120)
at ThirdParty(com.electro:Shooter)//com.electro.shooter.model.GameInstance.lambda$teleportPlayerToLobby$0(GameInstance.java:2903)
at com.hypixel.hytale.server.core.universe.world.World.consumeTaskQueue(World.java:967)
at com.hypixel.hytale.server.core.universe.world.World.tick(World.java:458)
at com.hypixel.hytale.server.core.util.thread.TickingThread.run(TickingThread.java:95)
at java.base/java.lang.Thread.run(Thread.java:1474)```
```java
Store<EntityStore> store = ref.getStore();
World world = store.getExternalData().getWorld();
world.execute(() -> {
store.removeComponentIfExists(ref, Teleport.getComponentType());
store.addComponent(ref, Teleport.getComponentType(), new Teleport(tempWorld, new Vector3d(lobbyPos.x, lobbyPos.y, lobbyPos.z), new Vector3f(0, 0, 0)));
});```
The error is a NullPointerException happening because you are trying to add a component to a Store that the engine believes is either uninitialized or already shut down.
Specifically, the crash occurs at com.hypixel.hytale.component.Store.addComponent.
Add a Null/Validity Check inside the lambda
Never assume the store or ref is still valid when the task finally executes. Wrap your logic:
world.execute(() -> {
// Check if the entity still exists and the store is active
if (ref.isValid() && store.isRunning()) {
store.removeComponentIfExists(ref, Teleport.getComponentType());
store.addComponent(ref, Teleport.getComponentType(), new Teleport(...));
}
});
Thanks, although same thing. Right before the error, it actually logs that the player is being removed from the world
maybe this thread would be better on the modding side of the community
I really wish Hytale gave us more information on the server changes 😐
itll come eventually
I still don't understand what server changes people are missing that are not mentioned in each of the the pre release notes up to the patch, or instantly discovered by using the pre release patch when building a java plugin, or shown as an error in the logs when using a custom asset mod? What information on changes are you missing?
Can anyone tell me why adding effects in the DamageEventSystem makes the client display the effect particles twice? I also added logs and the log is only getting triggered once. So it seems to be only the visual.
public class ExampleDamageEvent extends DamageEventSystem {
@Override
public SystemGroup<EntityStore> getGroup() {
return DamageModule.get().getFilterDamageGroup();
}
@Override
public void handle(
int index,
@Nonnull ArchetypeChunk<EntityStore> chunk,
@Nonnull Store<EntityStore> store,
@Nonnull CommandBuffer<EntityStore> commandBuffer,
@Nonnull Damage damage
) {
if (damage.isCancelled()) return;
var receiverRef = chunk.getReferenceTo(index);
if (receiverRef == null || !receiverRef.isValid()) return;
var source = damage.getSource();
if (!(source instanceof Damage.EntitySource entitySource)) return;
var attackerRef = entitySource.getRef();
if (attackerRef == null || !attackerRef.isValid()) return;
var attackerStats = commandBuffer.getComponent(attackerRef, EntityStatMap.getComponentType());
if (attackerStats == null) return;
var attackerEffectController = commandBuffer.getComponent(attackerRef, EffectControllerComponent.getComponentType());
if (attackerEffectController == null) return;
var receiverEffectController = commandBuffer.getComponent(receiverRef, EffectControllerComponent.getComponentType());
if (receiverEffectController == null) return;
var effect = EntityEffectManager.GetEffect("Freeze_T3");
if (effect == null) return;
Logger.Info("Adding Freeze_T3 to receiverRef: " + receiverRef.getIndex());
receiverEffectController.addEffect(receiverRef, effect, store);
// Tried both
// receiverEffectController.addEffect(receiverRef, effect, commandBuffer);
}
@Nullable
@Override
public Query<EntityStore> getQuery() {
return Query.or(PlayerRef.getComponentType(), NPCEntity.getComponentType());
}
}
Here is the effect:
{
"ApplicationEffects": {
"Particles": [
{
"SystemId": "Effect_Freeze",
"TargetEntityPart": "Entity",
"TargetNodeName": "Pelvis"
},
{
"SystemId": "Effect_Freeze_Impact"
}
]
},
"Duration": 2.5,
"RemovalBehavior": "Duration",
"OverlapBehavior": "Extend"
}
What i also noticed the particles it self always fire twice when for example i deal damage with a bow. Is that bug ?
Dani!!!! Do you know what class is responsible for chat messages and chat formatting
com.hypixel.hytale.server.core.Message?
thank you!
[2026/03/29 17:54:24 SEVERE] [PluginManager] Hytale:I18nModule is lacking dependency AssetModule at stage SETUP
anyone know how to fix this?
[2026/03/29 17:54:24 SEVERE] [PluginManager] Hytale:CommonAssetModule is lacking dependency AssetModule at stage SETUP
[2026/03/29 17:54:24 SEVERE] [PluginManager] Hytale:CommonAssetModule DISABLED!
[2026/03/29 17:54:24 SEVERE] [CosmeticsModule|P] Failed to setup plugin Hytale:CosmeticsModule
java.util.NoSuchElementException
at java.base/java.util.concurrent.CopyOnWriteArrayList.getFirst(CopyOnWriteArrayList.java:422)
at com.hypixel.hytale.server.core.asset.AssetModule.getBaseAssetPack(AssetModule.java:235)
at com.hypixel.hytale.server.core.cosmetics.CosmeticsModule.setup(CosmeticsModule.java:41)
at com.hypixel.hytale.server.core.plugin.PluginBase.setup0(PluginBase.java:390)
at com.hypixel.hytale.server.core.plugin.JavaPlugin.setup0(JavaPlugin.java:48)
at com.hypixel.hytale.server.core.plugin.PluginManager.setup(PluginManager.java:892)
at com.hypixel.hytale.server.core.plugin.PluginManager.setup(PluginManager.java:291)
at com.hypixel.hytale.server.core.HytaleServer.boot(HytaleServer.java:389)
at com.hypixel.hytale.server.core.HytaleServer.<init>(HytaleServer.java:347)
at com.hypixel.hytale.LateMain.lateMain(LateMain.java:56)
at com.hypixel.hytale.Main.main(Main.java:43)
[2026/03/29 17:54:24 SEVERE] [PluginManager] Hytale:I18nModule is lacking dependency AssetModule at stage SETUP
[2026/03/29 17:54:24 SEVERE] [PluginManager] Hytale:I18nModule DISABLED!
Does anyone know what's causing this exception? This wasn't an issue previous to the v4 update.
[2026/03/29 06:13:50 SEVERE] [World|default] Failed to run task!
java.lang.NullPointerException: Cannot invoke "com.hypixel.hytale.component.Store.isShutdown()" because "this.store" is null
at com.hypixel.hytale.server.core.universe.world.storage.ChunkStore.getChunkReferenceAsync(ChunkStore.java:659)
at com.hypixel.hytale.server.core.universe.world.storage.ChunkStore.getChunkReferenceAsync(ChunkStore.java:646)
at com.hypixel.hytale.server.core.universe.world.World.addPlayer(World.java:1141)
at com.hypixel.hytale.server.core.universe.world.World.addPlayer(World.java:1056)
at com.hypixel.hytale.server.core.modules.entity.teleport.TeleportSystems$PlayerMoveSystem.lambda$teleportToWorld$0(TeleportSystems.java:225)
at com.hypixel.hytale.component.CommandBuffer.consume(CommandBuffer.java:534)
at com.hypixel.hytale.component.Store.addComponent(Store.java:1120)
at ThirdParty(com.electro:Shooter)//com.electro.shooter.model.GameInstance.lambda$teleportPlayerToLobby$0(GameInstance.java:2903)
at com.hypixel.hytale.server.core.universe.world.World.consumeTaskQueue(World.java:967)
at com.hypixel.hytale.server.core.universe.world.World.tick(World.java:458)
at com.hypixel.hytale.server.core.util.thread.TickingThread.run(TickingThread.java:95)
at java.base/java.lang.Thread.run(Thread.java:1474)```
```java
Store<EntityStore> store = ref.getStore();
World world = store.getExternalData().getWorld();
if (ref.isValid() && !store.isShutdown()) {
store.removeComponentIfExists(ref, Teleport.getComponentType());
store.addComponent(ref, Teleport.getComponentType(), new Teleport(tempWorld, new Vector3d(lobbyPos.x, lobbyPos.y, lobbyPos.z), new Vector3f(0, 0, 0)));
}
});```
I'm guessing tempWorld isn't a valid teleport location. Either that world's ChunkStore hasn't been initialized yet, or it has already been torn down (world deleted)
World tempWorld = Universe.get().getWorld(temporaryWorldName);
if (tempWorld == null) {
getLogger().atWarning().log("[Game " + gameId + "] Temporary world not found: " + temporaryWorldName);
return;
}
Vector3d lobbyPos = arena.getLobbySpawnPoint();
if (lobbyPos == null) {
getLogger().atWarning().log("[Game " + gameId + "] Arena has no lobby spawn point!");
return;
}```
😐
The world loads on plugin startup
try moving the addComponent to the commandbuffer instead of modifying the entity store directly
How would I do this?
commandBuffer.addComponent() instead of store.addComponent()?
CommandBuffer implements the ComponentAccessor interface so it has all the component methods. But it schedules the write actions to happen in an orderly fashion at the end of the tick
Oh yes, but how do I get the command buffer? I'm calling my function from places that don't already have a command buffer
Hmm.. I just noticed I can't teleport to the world through commands either. Although that gives a different exception saying getSpawnProvider() is null. Any idea if world loading was changed in the recent update?
Ok if your code is executing from outside of an ECS system/callback, then the CommandBuffer pattern doesn't apply and you can generally savely do store.putComponent() directly.
I haven't looked at world loading/spawnpoint stuff since the update, sry
is there a way to define a priority for registered system? Like for DamageEventSystem
Yep, you can override getDependencies() to tell the scheduler if your system should be called before or after other systems. Example from my minigame's OnDeathSystem:
// Run BEFORE PlayerDeathScreen so we can suppress vanilla death page for match players
// Run after PlayerDropItemsConfig (which sets default from world config)
// but before DropPlayerDeathItems (which actually drops items)
@Override
@Nonnull
public Set<Dependency<EntityStore>> getDependencies() {
return Set.of(
new SystemDependency(Order.BEFORE, DeathSystems.PlayerDeathScreen.class),
new SystemDependency(Order.AFTER, DeathSystems.PlayerDropItemsConfig.class),
new SystemDependency(Order.BEFORE, DeathSystems.DropPlayerDeathItems.class)
);
}
Where do you call that? In the system or in the plugins java file ?
in the system. next to the getQuery() override
Ohh, i see! Thank you very much
Do you know if its possible to keep effects after death ? Or have an event for respawn to apply effects maybe ?
anyone know how to cancel an interaction in an interaction? My interaction should be able to stop the Next interaction from firing, but InteractionManager#cancelChains has no effect.
If there isn't an internal way, I believe the only other way would to be storing the effects then applying after respawn.
Yea im trying to figure out how to detect if he respawned
there is a respawn future in the death component or something
Oh ok thats good to know. Ill check that out
thank you very much
Yup found it! Thanks! 🙂
Gmorning.
I do not know
You could make a component specifically to track additional player details you need to store, since the component info is saved with the player, that way you can simply apply the things that need to be active in your system when they rejoin.
Adding a component to a custom piece of rubble would just require me to modify the new asset.json to have a new correct json object with the name the component was registered with, and internal properties named as the properties are named in the codec right?
Or does this also require setting system dependency, to make sure to object is not created before the component have been registered in code, or some such?
A few of my server's plugins config reset? Has anyone had this issue?
Any recommendation to displays 2 tooltips while hovering over one element in the ui ?
You can't
is it possible to know if the block is a part of a default generated prefab? Or do i need to store all prefab locations upon generating and then ask based on that?
Ok 👍🏻
just had confirmation that the pre-release updates will have blog posts from now on like regular updates do and a breakdown for modders about what's changed backend side
I think I am going to try to bring in a change log section in our commit/build pipeline at work.
If its present a tool will be used to gather all those up for the build and make a small document listing them.
Then we can just partition them into additional testing, bug and feature lists easier.
We have that already, but usually its one guy going trough whats part of the release and writing it up.
Yes good idea 💡
Hey is there any Plugin with an small API to Check status on my own web page ?
(Not over an extra website)
Nitrado's WebServer and Query plugin
Thx 🙂
the amount of plugins not updating to update 4 is staggering, I saw this coming tbh didn't feel like it'd work out the game forcing plugin devs into monthly updates to keep up, servers will continue to push to let themselves exist on older versions of the game to prevent endless development.
The bigger a mod project is, the more work it needs to be maintained. The hytale approach is the good/bad reality, the bad is you can never be "done" with the dev of a server feature if you endlessly have to keep it up-to-date
This latest change wasn't even a hard one to fix the ones that are dead have been dead
for the average plugin yeah, I'm already seeing is those servers with a ton of custom work and one dev not liking this very much
but in MC there's isn't really a reality of "dead mod" as it'll work in X versions of the game, hytale is the one that makes sure mod is dead dead as it requires the update
It won't be a big problem for long those overwhelmed weren't ready to launch anyway
it'll improve sure, attm is a rollercoaster as people obviously get stressed of being unable to keep playing their worlds, part of these mods are not the type you can merely uninstall
the mod breaks, you end up needing technical knowledge to work around, or you're F. This ends up benefiting private servers and their custom mods and not the average joe and his save/small server with friends
I'm not liking this part of MC dejavu on hytale, getting servers winning with cash buying out the modders taking mods out of the public and the rise of P2W/gambling type servers
I think this is much more a reality of a pre-release game, it was basically a given that changes to the core would be plenty for at least the first year or 2, I feel like it should be a given that if you play with mods at pre-release you should heavily expect for that to be a short-term world
there was this expectation hytale would jump into competing with MC out of the hype train alone, but as the dust settles, hytale faces visible decay as it get clear it's far from being solid enough to be able to challenge something as well established as MC
P2w likely won't get them anywhere long term
Not that it won't do it, but it lost momentum, hopefully hypixel is able to regain it with future updates too, otherwise this game can end up at being just one more, and not one to actually rise over MC as a natural progression type game
The fact that Hytale is at as high state as it is already is impreasive enough, especially since it's a pre-release game, I'm sure hytale will get a far more long-term following once it does actually release, even Simom himself said that he's not happy with the state of hytale yet, there are so many improvements that are yet to come
complicated thing for me, when the servers with the cash bag are putting so much money on custom work, even buying out modders that have removed multiple mods from public, they'll compete in this "dirty" way.
it's like, P2W and gambling again, which people hate, but they'll offer stuff that you don't find anywhere else, that seems to be their 101 strategy
This won't last for long because any good paid version gets a free copycat
true, but momentum is everything here, you loose it, you can regain it later but there's no garantees if hytale will end up settling as is as a good game but not a giant game that'll continuously grow to something MC-like scale, or if it'll actually manage it. I can't tell where we goin
It'll grow big I can tell especially minigames
I already got some ideas that are going to bring over Minecraft players
everything being server-sided benefits them on this aspect, the modding scene is having trouble it's transpiring that. Modders of popular big mods here are also showing stress over not only maintenance, but how many servers just take their stuff without credit, even monetize it and call it a day
Growing based on stability and functionality in 2 years is better for the game than growing based on hype now
As Hytale works on their eula this will get handled too
on my view running a server clearly feeling there's a growing gap between the big custom-work servers and the avaiability of mods to the public
Like Hytown one of the biggest servers out there clearly using ai Gen art
we're not getting more, we getting less as the game updates and more mods bite the dust
This is temporary the same thing happened with Minecraft
I think creating mod stability right this moment would be a mistake on Hytales end, it would prevent them making a lot of changes when their core is still in a very unpolished state, give it time to settle in and mods will be even more stable than they are on minecraft
Modders saw the money in plugins and went running around 1.7.10
yeah many sold the source code of free mods to big servers and stopped dev them
yeah it's expected that it's more difficult to maintain free mods on a constantly changing platform. That will change more and more as Hytale gets closer to 1.0
and the servers with the cash bag, and ranking $$ with monetization on top, then have the resources to maintain with the game updates, something the average Joe doesn't
But how is that different from how minecraft already operates?
I'm saying that with growing platform stability, the resources required to maintain with game updates is going down
I think MC not being server-sided like HT actually benefits public mods more xD
Have a feeling this server-side setup will hurt public mods in the long run
Big servers will always start ahead
I don't see it
But minecraft plugins are already server-sided, and modded minecraft servers are basically non existant, hytale at least allows for modded servers without requiring the user to do anything
because you have access to the mods, if they want to be custom and full p2w and have thousands of kids stealing their parents credit cards to spend on gambling boxes they need to be limited to what's possible with server plugins
They want proper mods, they need to open up and mostly will use actually mods avaiable to the public. In Hytale, they no longer have this "limitation", they can be fully private on what otherwise was modpaks.
The only reason lootboxes aren't on minecraft servers isn't because of mods vs plugins, it's because of the EULA which is currently in progress on the hytale end
Minecraft servers were already private with their plugins, how is this different? Most of minecrafts modpacks are passion projects by the people, not server published ones
odds are hytale's EULA will lean towards easing that up than fighting against it tbh
That's probably a fair take, but at that point we will have to see how the public deals with these kinds of servers in that case
The only thing I see will keep mods open, is if they became paid
then you can middle-man the modder getting something for their work, and not preferring being fully private
I think anti-predatory server system's are going to be a big part of hytale's selling point
Because they are going to have a curated server list
And if you get flagged p2w they are going to drop you down hard I bet
https://hytale.com/server-policies already exists with provisional points for the official server list
See this is why I love this team
So all those p2w slop servers are going to crumble once official server lists happen
And those modders will be back taking donations and charity for their mods
Also if enough servers are using a mod as a core of every server I think that's enough to be a official addition tbh
I am not sure how clear it'll get, you can bridge servers together inside a server so I'm wonder how well can they control it
I think you probably have to apply to be on server discovery and say what it is, what plugins you're running, what the game mode is etc. Probably have a few categories to pick from
They also will probably manually review it
i cant wait for it tbh
Gotta make sure child safe and all that
There's also likely going to be a way to filter by adult or not
There should be an option for that, like they've already written their docs for server owners and what to follow. Especially for monetisations.
Because kid accounts have VC off and idk if parental control can let that be turned on or not be cool to let specific servers have it so you know okay this is a private family server and this is the server with adults playing factions
Can you allow restricted access to Hytale profile with you oauth endpoint?
I am working on a site where you login with Hytale, its not releasable in the current state with no security restrictions
with the message: client.general.disconnect.noWorldAvailable
why this could be happen? Anyone knows?
generally indicates a local internal connection timeout or a failure between the game client and the internal server that runs even during single-player sessions.
Recommended Possible Fixes
- Sync Your System Clock: Right-click the clock on your taskbar, select Adjust date/time, and click Sync now.
- Restore from Backup: In the Worlds list, right-click your world, select Open Folder, and look for a Backup folder. Extract the latest ZIP file into the Universe folder to restore a previous state.
- Clear AOT Cache: Close the game and delete the file located at: C:\Users[YourName]\AppData\Roaming\Hytale\install\release\package\game\latest\Server\HytaleServer.aot.
- Disable Problematic Mods: If you recently added mods, disable them one by one to see if the world becomes available again.
- Language Settings: Some users found that changing their Windows display language and regional format to English (United States) resolved deep-seated localization errors.
- Firewall Exceptions: Ensure Hytale.exe is allowed through both Public and Private networks in your Windows Firewall settings.
not on the single-player session. It's happening on my online server on the vps. thx for help
You're trying to load into a world which is marked as offline. How are you trying to get there? How is the world generated?
not sure. sometimes totally normal. Sometimes it gives this error. Maybe about the ram stuff
They mean how are you joining directly? a proxy?
Na, this isnt a network issue
In the world configs you could change " "IsUnloadingChunks": true," to false, that way the world won't unload when no one is in it
Oh I see now
yeah i dont think it's a network issue. i am able to join world now. its happen when the long time pass the from start
okey im gonna try thx
Are you running mods? Disabling unloading chunks might just eat up a lot of your memory btw. I wouldn't go so far xD
yes many actually :d
Lol
Everyone runs like a trillion mods and they all run arch linux xD
i should check all ram settings probably.
See how you get on with the unloading chunks disabled and gl to you
Going to be intersting with mods and hosting when people need to age verify on each instance they start.
I got a question for anyone making custom animations.
So i have been trying to edit the emotes of a cusom model but they dont seam to change. I HAVE been able to edit the eat animation by just replacing the file. but any of the emotes and facial expretions do not change. any idea how to change these?
Hi, I wanted to ask about initializers that work or activate as soon as you enter the world. Has anyone worked with systems of this type?I'm having problems because originally I used a patch that would automatically add the patch if it wasn't already installed when using the command, but now I need it to activate as soon as I log in and I'm not having any luck.
For "When a player enters a world", you basically have two options:
- The
AddPlayerToWorldEventis anIEventthat triggers when a player is ABOUT TO join the world. The player is still aHolderat this point and their components have not been added to the world's EntityStore yet. - The
RefSystem<EntityStore>has theonComponentAdded()method that triggers when a component has been added to a word's EntityStore which happens for thePlayercomponent when a player enters a world.
but you're saying "as soon as I log in", which is different from entering a world. Logging in happens once per session but entering a world can happen multiple times when players switch worlds (entering the Forgotten Temple for example). The PlayerConnectEvent fires for you when a player has connected to the server and before the "entering world" process starts.
I was referring exactly to those you mentioned where the system initializes upon entering the world or server.
Since it's a system that "feeds" information to the player so they can acquire new stats from a system as well as other items related to the mod
The PlayerSetupConnectEvent fires even earlier, before player data is loaded from disk. Use this to determine if the player is allowed to connect in the first place for example
This is also where you parse the referral data from the transfer packet, if any
Noted, it was very helpful, thank you
i dont know where to ask....
i think the servers cant be any good if i chad to authenticate every x days...
is there a way to say to the server that he should ignore auth for the server?
bc our server was offline i dont know how long bc i dont play on it i amjust the hoster...
Server session token not available - cannot request auth grant
You can set up the authorization to stay authorized for like 30 days just read the documentation page
thats the problem i wanna have the server online ontil i say so....
so thats the problem....
so it is not usefull for hosting....
let me setup for one server
Wasn't there a command that saved the encrypted authentication? I remember having to authenticate every time I logged back into the server, but not after that.
yeah ....
thats the one thats just was not there that encrypted auth is theone that expires after 30 days...
Oh, I didn't know. I only use the server host for modding, not as a multiplayer server.
with this one the server should be avalible indefnetly and only needs reauth if the server the server is offline for the ttl.... 30 days...
a little bit ai magic and looks like it works...
yes, during the auth process it explains to use encrypted. a server doesn't need to be re authd if it remains online. mine has been up since launch
Where should ich check if damage was blocked ? IN the damage event system probably but in which group ?
Hello, does anyone know how to update color value in UI?
I'm getting client error:
Failed to convert JSON value (String) to specified type (UInt32Color)
Tried sending it as #ffffff(0.5)
to specified type (UInt32Color) <- could be a hint
it definitely is, but I don't know its structure
I gave it some random attempts
I'm talking about updating UI using command builder.
#ffffff(0.5) format works for the ui files.
They apparently use different logic for ui file parsing and updating
and UI update is sent as json
randomly remembered i know literally nothing about server plugins i dont even know why im trying to help
my bad
This happens when updating color property such as #MyNode.Background.Color
A UNint32 means its a unsigned integer with 32 bit length. Meaning a number that can not be negative.
So either way a string will never work.
So either there is a constructor for theuint32color that takes a string or a utility class converting some kind of color class to the type.
I tried sending Integer, but got the same error (just with integer instead of string)
Since it's a custom type, it can have any structure
you are using java right, and intellij?
So you should be able to get the class or type and see how its declared, or the function and see what input it wants.
It's a client error unfortunately, not a server error
the UInt32Color class doesn't exist on the server
@copper wyvern It must be com.hypixel.hytale.protocol.Color. The util class for this is ColorParseUtil.hexStringToColor()
I found this from PortalDeviceSummonPage.java:
private static void updateCustomPills(@Nonnull UICommandBuilder commandBuilder, @Nonnull PortalType portalType) {
List<PillTag> pills = portalType.getDescription().getPillTags();
for (int i = 0; i < pills.size(); i++) {
PillTag pillTag = pills.get(i);
String child = "#Pills[" + i + "]";
commandBuilder.append("#Pills", "Pages/Portals/Pill.ui");
commandBuilder.set(child + ".Background.Color", ColorParseUtil.colorToHexString(pillTag.getColor()));
commandBuilder.set(child + " #Label.TextSpans", pillTag.getMessage());
}
}
I highlighted the wrong function here. Looks like it needs a String during transport (...toHexString())
Thank you, however I tried to send it as hex string already. I'll try it again in uppercase if by any chance that is the cause 😄
Yeah, so that must mean that we can construct these color strings ourselves if we know the correct format the client expects 🤔
Now I got different error
CustomUI is not allowed to change this property. Selector: #TextButton1.Style.Default.Background.TexturePath System.Exception: CustomUI is not allowed to change this property
So I guess I hit the limit what we can do 😄
anyway seems like sending it as hex string works
For the background texture, try just .Background (not .Background.TexturePath). From PortalDeviceSummanPage.java as well:
PortalDescription var23 = portalType.getDescription();
commandBuilder.set("#Artwork.Background", "Pages/Portals/" + var23.getSplashImageFilename());
Getting ai to spit me out a list of block from minecraft converted into hytale blocks is more challenging than expected, none of them are giving me reasonable conversion lists
I'm trying to make a mod that converts minecraft worlds to hytale worlds and i need a like of all minecraft block ids with a hytale counterpart and i dont wanna make that myself lmao
No surprise that ai have no idea how to do things people have not done thousands of times before.
its more of a hollucination problem, but yeah kinda i guess
You need to tell it the list of blocks that exist in hytale
i did
ive tried like 6 different ais, most of em holucinate even with a list of blocks and ids from both games, but even the ones that arent hollucinated dont really make sense like its trying to make doors into logs beacuse they are both wood etc
haha
weren't there conversion projects already? Swear I saw some on Reddit
could use those as a starting point
i looked idk google sucks
There's a mod for builds but you have to manually choose blocks to swap
my end goal is to convert this minecraft world of the earth that is hella big
i already made a program to convert that into a text file of every block and its coordinates and now i need to convert that into hytale blocks then make a mod to generate that world lmao
idk why i took this route but it did lmao
if i had to guess you'd need a more sophisticated workflow, like ask AI first to assign each hytale block (by name, given list) to a minecraft block (given list, by name).
Try telling it to only match by name or maybe vibes (so called vibe coding)
also yeah im pretty sure there is already a conversion mod, probably even full online bridges
pebkac
Could try giving "Blu Schematic Converter" a go (search on curse forge). Might need to tweak or add particular mappings depending on the block your using, as last I checked it hasn't got full support yet. Disclaimer: I'm part of the team that made it, though I didn't work on it myself.
Can someone explain to me why some plugins can use this syntax in the .lang files
<b>LMB</b> consumes <color is="#0c95ff"><b>15 mana</b></color>
And it works but when i do it i doesnt?
Im alittle bit confused
I just see the tags instead of the formatted stuff
I been regretting using Lootr lol
Worked so well in Minecraft was hoping same for Hytale 😭
probably using TinyMessage, a chat message library.
you can find a guide on the "hytalemodding" dev website ("Formatting the chat" page)
Im pretty sure its possible without no? Becuase hytale itself uses that syntax? For example when i put that syntax into item.json
it actually works wihtout any plugins
I thought so too, but TinyMessage syntax is <color:#FF55FF> and TaleMessage is <#FF5555> and it's available in vanilla for tooltipText
they probably shade it in, wait do you mean additional plugins?
This is in the vanilla en-US server.lang file
memories.general.chestLocked.tooltipText = <color is="#990000"><b>Locked</b></color> \n<color is="#888888">Restore {count, number} {count, plural, one {memory} other {memories}} to unlock.</color>
yeah I just saw that in the guide and assumed the color would work in different formats
maybe making use of FormattedMessage?
that's nice if theres a built in option
Yea, when i try to use that in the .ui files it doesnt really work. Any idea why? It only works when i pass the key into "TranslationProperties": {
"Name": "server.Item.Name",
"Description": "server.Item.Description"
},
But when i use the key directly in a ui file it doesnt
I tried using cmd.set(selector, message) but didnt seem to work either
From what I can tell, this is only supported for custom ui TextSpans
Oh ok interesting. I really wonder why it is possible when passing it into the json. My intuition says hytale is probably also doing something to display it formatted.
Im not sure where to look tho :/
wonder if the client or server parses it? Since atleast a fair amount only seem to send the message id and I guess arguments
Wait i maybe found it. There is a TooltipTextSpans
Property seems like. I ll test it out
hmm yep this one seems client side too (from MemoriesPage)
Message.translation("server.memories.general.chestLocked.tooltipText").param("count", memoryAmount);....
It's also on the death screen which uses a normal TextSpan
general.itemsDurabilityLoss = Your items lost <color is="#be1717">{percentage}%</color> durability!
commandBuilder.set(
"#ItemsLossStatus.TextSpans",
Message.translation("server.general.itemsDurabilityLoss")
.param("percentage", decimalFormat.format(this.deathItemLoss.getDurabilityLossPercentage()))
);
Good Morning,
Our Hytale server will not load, we are using G-Portal. It is a modded server. I do have a copy of the logs. I do see some severe errors associated with the mods. One of the severe errors is with Essentials.
Is there anyone available to look over the logs?
I'd check in the Essentials or G-Portal discords first
This channel is generally for discussion around plugin development, not support for usage/installation of 3rd-party plugins
I am learning how to identify what the problems are so that I can go direct to the source.
I see some warns, and some severes in the logs.
It works! Thank you very much
A good strategy to find out which plugin is responsible for a crash is to
- remove half of your plugins and see if it still crashes
- if no, the bad plugin is in the removed batch. Add half of the removed plugins back and see if it crashes again
- keep halving until you're down to one plugin
Wierd reflection is that a message that contains all the formating required can be converted to preparsed string by the system using the utf8string method and sent as a Message.raw
Atleast thats what the flow looked like to me.
Another quick question. Does automatic Word-Breaks work for textspans/ tooltipTextSpans too? My whole texts are weird line broken for some reason 😄 when my tooltip is max 350px for example it sometimes cuts words mid word.
Button #Spend {
TooltipText: "";
TooltipTextSpans: "";
TextTooltipStyle: TextTooltipStyle(
Background: (TexturePath: "../../../Common/TooltipDefaultBackground.png", Border: 24),
MaxWidth: 450,
LabelStyle: (Wrap: true, FontSize: 16),
Padding: 25
);
}
I tried that
Does anybody know how to check what group an entity is part of ? Like Predator, or player or something like that ?
My custom benches will not work on the latest release build.. I'm not even remotely sure what's wrong cause I get no errors or anything in logs it just wont open the gui?
You have compared them with the current workbenches and seen if there have been any difference in the json structure or interaction layout?
Yeah they are working on a completely different computer, exact same files, 0 changes. But on my end on the exact same version I cannot get yhe bench to open
Its super weird.
try to verify the game installation hit the cog in the launcher, then hit uninstall, then click validate on the curent release version
I've verfied the game twice in the last week trying to make it work already because that was my first thought
what did you change after the update it broke all benches so they wouldnt open if you didnt change anything then the other computers are running a previous version,
make sure you have:
"BlockEntity": {
"Components": {
"BenchBlock": {}
}
inbetween your bench tiers and your blockstates in the json file
Under the "state":{ section the "Id" line is no longer used (after any of them including the ones that follow the hitboxType sections
those are the changes you HAVE to look for in the new update if your bencch still has those you wont be able to open them
I'll double check this shortly. Thank you for the detailed information
i told it to focus on the gameplay mechanic for each block and that worked, also made it only focus on blocks
love that hytale just lets me do this and doesnt care
Placed 8490000/16427888 blocks...
Placed 8495000/16427888 blocks...
Placed 8500000/16427888 blocks...
Placed 8505000/16427888 blocks...
Placed 8510000/16427888 blocks...
Placed 8515000/16427888 blocks...
Placed 8520000/16427888 blocks...
Placed 8525000/16427888 blocks...
Placed 8530000/16427888 blocks...
Placed 8535000/16427888 blocks...```
only 25ms delay between each 5000 blocks, and it only crashes the world sometimes if im in it flying around while its placing the blocks
i need to place 985,673,280 blocks lmao
and thats only a test run, the real world is like 100x as big if not more
im porting a minecraft world over to hytale that is 1:500 scale of the earth
also, anyone know how i can place the actual water fluid rather than that block you break and it turns into water?
Water isn't a block in Hytale. It's the result of a block having the FluidSection component with the Water_Source fluid id.
hi, is there a class for adding a loading bar/charge bar? like when u hold left click while holding a sword, there's a progress/loading bar
hud
also does UseBlcokEvent work with normal blocks, like right click a normal block or it got to be interactable blocks like echests?
playerInteractEvent is depecrated
Does anyone figured out what is difference between text and textSpans properties in UI?
Looking at the source, both are used with Message object, often translated.
I bet I've seen spans being used with list of values, but cannot find it in current hytale version
TextSpans can be formatted with colors/links/italics/etc
Did they add the key press detection yet?
nope
seems like my suggestion for custom actions with opt-in keybinds was straight up removed from the feedback site :c
oh, no, it's there, jsut doesn't show up under "my posts"
extremely odd
I wonder if I can share the link to it here https://accounts.hytale.com/suggestions/69cbd772f4e0afc69ada07af
and yeah, you don't want "key press detection", that's keylogger territory. all that we need is clearly defined actions that client can alert the user about and user can bind those actions how they want
on the other hand, if we could bind any key to our custom interaction for example. This should be fine as far as it works only in game right?
By any key I mean alphabet/numerics except reserved keys for vanilla
It's already on the modding requests board, still in planning phase though: trello com/c/7WS2cY2o/4-custom-keybinds
sadly you cannot make the assumption that users window manager has a global state or not
for ex. in winddos or on x11 in linux application technically can read key presses regardless if it's focused or not
Glad I saw this thought mine was removed apparently they just broke the self suggestions filter lol
technically client could check if the game is focused, buuuuuut that's not really something I would trust the api to be correct about 100% of the time
I personally have experienced issues with focus state in wayland + hyprland where sometimes apps think they're focused when they are not
but that depends only on the client implementation. I of course assume that hytale does not include keylogger into the client.
So in that case you could only read some keys while user is controlling the character in game. Not when they type in chat, or UI, or in some other application
Then it could work only if you had hytale focused and accidentally typed your password for some reason
Out of interest did any of you join the prized event ?
I would have joined the worldgen v2 one, but that's not available on linux and I'm not about to install a garbage os just to use that
How do I implement the colors? I was trying to color some text I put in an item, but it always showed the full word without the code instead of the colored text.
Your items lost <color is="#be1717">{percentage}%</color> durability!
Heya, does anyone know how to set up a codec for a recursive array for a custom codec?
public class CustomEntitySpawnEntry {
private DropType type;
private String id;
private double weight;
private int minRepeat = 1;
private int maxRepeat = 1;
private int minCount = 1;
private int maxCount = 1;
private OriginSource originSource = OriginSource.Block;
private Vector3Codec offset = new Vector3Codec(0,0,0);
private CustomEntitySpawnEntry[] entries;
public static final BuilderCodec<CustomEntitySpawnEntry> CODEC =
BuilderCodec.builder(CustomEntitySpawnEntry.class, CustomEntitySpawnEntry::new)
... many mode codecs
.append(new KeyedCodec<>("Entries", Codec.???),
.add()
.build();
... more stuff
}
what I want to achieve is that I use this class to define an array of objects and each object inside that array can be 1 single entity data or a group of entities data. More or less have 1 array at top level and a second one if one of the objects is a group. This is an example generated by my mod to be read by asset editor but can't seem to find out how to make it read this recursive array... :
{
"Type" : "CustomInteraction",
"SpawnChance" : 0.9074410163339383,
"Entries" : [ {
"Type" : "SingleEntity",
"Id" : "Antelope"
}, {
"Type" : "SingleEntity",
"Id" : "Boar"
}, {
"Type" : "GroupEntity",
"Entries" : [ {
"Type" : "SingleEntity",
"Id" : "Bunny"
}, {
"Type" : "SingleEntity",
"Id" : "Chicken"
} ]
} ]
}
LabelSpan itself also has the style properties:
https://hytalemodding.dev/en/docs/official-documentation/custom-ui/type-documentation/property-types/labelspan
lets go autocomplete was something I really needed just for the usability perspective great update
This worked - thank you @stark holly
no problem glad you got it working!
Has anyone already created a plugin similar to Minecraft's Wordguard?
yeah, it's called orbisguard by wifflow @ruby arrow
Whats the proper way to retrieve DamageResistance from an entity? Like Ice resistance or Projectile Resistance and so on?
Is it possible to retrieve those for both mob and player ?
I assume via InventoryComponent.Armor But do mobs also have that ?
There's not even any Ice-Elemental debuffs yet, sadly.
In fact, the only reference to an Ice Element is in Essence of Ice existing...
Edit: I'm an idiot because Ice Crystal Staff exists.
"When the Outlanders rejected the flame and split from their brethren, they turned instead toward the colder regions and the fragile strength found in the advancing sheets of ice."
-lore excerpt from Essence of Ice.
"In Outlander myth, this metal is said to be cold to the touch, even when molten. While verifying this would be ill-advised, its origins amidst the frigid peaks and frozen caverns of their territory lend the story some credence."
-lore excerpt from Cobalt Ingot.
"There are frozen forests into which not even an Outlander dares set foot, no matter how the whispers beckon."
-lore excerpt for Fragment: Orbis - Dragonspire Weald.
...that's all the ice lore I could find. It mostly pertains to the Human faction known as Outlanders.
Can effects also apply "DamageEnhancement": {
"Magic": [
{
"CalculationType": "Multiplicative",
"Amount": 0.30
}
]
},?
Because armor can
so the pre-patch notes says "For further changes in this pre-release related to modding, please refer to the API Changelog." but no link or something telling where to find said Changelog
Right at the bottom below part 1, at least in the blog post. Not sure about launcher patch notes.
wow, didn't even label it as "API ChangeLog"
It's pretty hidden how it currently is, yep. Still, at least it is somewhere which is an improvement. 😅
Hi! how is it possible to make a player do an attack/left click animation? what java class? is there something like it?
tried playing around with playAnimation but i dont think its for players
nvm got it to work
where to see all "Actions" available?
AnimationUtils.playAnimation(ref, AnimationSlot.Action, "SwingLeft", true, store);
thanks
Anytime, remember to use hyxin and mixin as well for full protection (for now because not all methods to stop things are revealed through hytale s API so yeah.)
I'm reading that right now, and it says “setap with hyxin earlyplugins”—it seems like those plugins load differently when they're in that directory. What's the deal with that?
To explain it shortly, those 2 files, hyxin and mixin, are what you call "earlyplugins" and it's like that because they are loaded first when the server starts to intercepts the events before they happen. They are needed to help orbisguard give you full protection like stopping players from picking up stuff, placing fluids, explosions, etc
More info is in the docs he created
with the message: client.general.disconnect.noWorldAvailable
why this could be happen? Anyone knows?(it happens after 8 hours later from server start)
main world's thread crashed so the server is running, but without any worlds
And there's a place where it explains an article about these plugins—specifically what you can add using plugins like Hyxin in general—and just this one, but can you, for example, add a checkmark or indicate that a button has been clicked, which wasn't previously saved in the server's API?
That's weird. Getting error Target element in CustomUI event binding has no compatible ValueChanged event for DropdownBox even its specified in offical docs that it should have ValueChanged binding 🤔
not really sure if I understood this correctly but I think if you are asking about whenever hyxin can track custom state changes of a button or whatever, u will have to check out yourself the code.
What should I do? Based on my observations, it seems to be caused by high RAM usage. But no one in the server.
The error message will tell you why the world crashed
its just white screen and no logs.
no logs is wrong
can i send u the logs from dm ?
no thank you
Chunks unloaded on the server and you're trying to perform an action on the world
In the world's config.json set:
"IsUnloadingChunks": false,
But note that your memory usage might skyrocket
we was talk about this. "IsUnloadingChunks": false, this didn't work 🙁
ah sorry I missed that 🙁 I'm not overly sure without knowing what you're doing with the world
Hey guys, is it possible to set a border radius? and if yes, also to only let says the left side?
Okay, so i have taken some time away from developing mods for hytale because of an issue quite a while ago that seems to have not been resolved... or maybe it has.
Essentially, prior to like update 3/4, you were able to run the dev server say from IntelliJ, join the server locally, and in real time edit the asset pack introduced by the plugin template kaupen posted. This was shown in his video if you need it. However that has now been changed with the asset pack no longer showing up in the asset editor making it so much more difficult to iterate and was such a nice workflow. Has this been fixed or does anyone know about this?
I’m assuming his template needs patched
i just am unsure what it is that is preventing it. I saw something on the github, there are a few of us that have brought it up but no response from kaupen so i am unsure what it is that is going wrong
It’s probably how inventory management changed.
And that would impact how asset packs are loaded and exposed through the editor?
It would likely change how many of the items in the Pack are stored in the first place. Yes.
T_T Has anyone had a problem with the furnace not being interactive?
If i start a new project, this will be fixed and i'll just need to port over my code & assets with the new system and all should be fixed ? allegedly
I doubt it but maybe
-.- depressing
Can I silence errors somehow?
My console is being spammed with this [ChunkStore] Failed to load chunk! 4, 21 followed by a trace stack and I genuinely couldnt care less
Im aware I have some missing chunks in my world folder, because I copy files between my test and production server (and dont want to have to copy all the world data along with it just to speed up transfers)
But the error message makes it hard to find the actual useful errors that are produced by my plugin jar
Otherwise can I redirect all errors that have anything to do with my plugin to a different filestream?
Try starting the server with --log=ChunkStore:SEVERE
does that put it in like a file instead?
startup parameters
oh yes I know what you suggested I do
Im just asking what it does if I try your suggestion :3
oh mb. It should make the ChunkStore logger only print lines with SEVERE and above (there is nothing above)
--log <KeyValueHolder> Sets the logger level.
Unfortunately it is a severe error [2026/04/04 05:37:11 SEVERE] [Hytale] Failed to load chunk! 4, 15. So unless there is a "SUPERSERVERE" level I take it that wont work then?

Didn't work
pastebin (döt) com (slas h) CJA2dgeM <- if you want to see the cmd... the spam system is flagging my cmd as spam here. I also tried moving it to be the first argument, right before --assets
But can I maybe route my errors into a different filestream somehow - without having to like manually catch every single exception in every function and forward it to my own logging function (because that is a bit too much boilerplate for my liking)?
That's specific, but you should be able to.
There are already mods that set up zones for things like claims; I suppose by checking those you should be able to find something for what you need.
Is there a Component to modify attack speed of mobs?
Hi there! I'm currently looking for someone who uses blockbench and makes models on it, I work on a server in the zombie cod style, everything is almost finished (some details need to be done) but it’s completely playable at this moment, if someone wants to help me by making some models, send a friend request please 🙏🏽
Here's what is already done: wave system, buyable door, mystery box, weapons buyable on the wall, perks, electricty, maps, weapons system, revive system
You can do this by modifying the runtime and the "activation" time of both the attack (animation)And the blow (the time it takes for the blow to hit, if you'll pardon the redundancy)
Is there an easier way? Or do you have any examples you could share?
I haven't seen the NPC animations directly, but the player models have the animation and you can modify the JSON file to make the attack faster, as well as the damage of the hit.
It's just modifying the JSON; it's not Java. You'd have to find the NPC animations, the attack section, and modify it.
Ahh okay, thank you.
@last pilot still slop, but at least it doesn't break anymore when switching worlds
still doesn't make sense to keep track of the store and components
especially since they're still accessible. the getter functions should be the only public interface
what do you mean?
look at line 110
You're as incoherent as your AI's code
You won't even score more than 80
Why are you deleting your messages?
Bro, since you know more, do you know if it's possible to modify a character's attack speed using Java code?
Currently, I have only been able to do so by modifying the JSON itself.
I haven't done it myself so you're ahead of me in that area. But if you can do it by modifying the json, then you should also be able to do it at runtime
by editing the asset
is that the same person from before?
anyone know why stamina might be abnormally high?
well yea but where would u find modifiers like that on a server? I only have 1 mod that does player mods like that and I already deleted it ran it and nothing changed
it only took me like a week to get everything updated, yaye
I have a job yk
Hello, I created a custom UI page and there's a space where I want to display the item exactly as it appears in the inventory, with its rare quality box and item icon. Does anyone know how to do this?
@half roost
I Thanks to that, I got the exact result I wanted xdxd thank you so much
Hi again I'm having a problem with the QualityValue; I'm using it to reference anything related to the quality of the item. But I don't know why the numbers for the Quality values, for example, in common, only appear or work with the value of 10 when in the JSON it shows 1
Has anyone else experienced something similar?
i think quality value isnt numeric, i could be wrong
or, have you tried editing the value? set the json to 2 and see what it produces maybe?
It seems Hytale needs to follow a continuous sequence of numbers to be able to assign quality
So I had to play guessing games until I got to the number that showed my new quality and its effects
so you found a solution? nice! can i ask what youre working on?
Yeah i made it
Mmorpg mechanics
if you need feedback help im always bored would love ot help.
Ty 🗿🤙🏼
Nice work 😁