#server-plugins-read-only
1 messages · Page 98 of 1
i will update my code to this, thx
probably because nothing in that packet should be trusted until verified -- its like, literally entirely unchecked until later in the protocol
Im working on a Hunger/Thirst system which will be expanded into my Skill/Stat system.
My problem at the moment is making stamina regen decrease by 80% once thirst is under 20%. Its my first mod and im a newb but how? LUL
try looking in the decompiled server files, there are some classes for the single difference benches type (crafting, processing, simple ecc) i found the files under com.hypixel.hytale.builtin.crafting.windows
cheers
also, you shouldn't use var if you are not going to update the reference 
What are you talking about?
"Update the reference"? Do you not know what var does?
probably kotlin stuff, mabey they mean to use const or something
wait, that code is pure java or kotlin? lol
Thats java
how do you change the weather to Zone1_Sunny programmatically im copying exactly what the /weather set command does and it doesn't do anything
and, there you are, in the same .crafting folder there is the .state folder with BenchState and ProcessingBenchState (the one used for the campfire)
oh sry, in kotlin there's val
yeah java has var iirc, it just automatically infers the type
The player file named by UUID is created not immediately on first connect but on the first save event, such as player disconnect or periodic save, if player saving is enabled in the world config.
i put markChanged after setting the forcedWeather too but nothing
Take your sensitive kotlin behind back to TWITTER!!!
aah okay, I think I get it now. I also realized that calling a tick method from a command doesn’t really make sense, since commands are executed only once
This is JAVA we realll outdated over here
👴 Remember ActiveX guys?
you all should try kotlin, you write a lot less code 
Moving it to PlayerReadyEvent makes everything work. Thank you. Now I can enjoy MiniMessage and (automatical) conversion of all my plugins to Hytale
uhhh yeah please help me and thank you 
you can enable and disable the tick from a command by early returning
wait till I introduce you to clojure
is there a way to reset player velocity entirely after a teleport ?
to not keep any momemtum/inertia
You're copying what the weather command does and its not working?
Whats happening instead? Absolutely nothing?
Apply equal opposite velocity after?
i just do getWorldConfig.setForcedWeather("Zone1_Sunny") and then do getWorldConfig.markChanged and nothing happens
or just set the velocity to 0
no pls
you can reset their velocity in their velocity component
I like my idea better
Not with the WeatherResource? The Weather set command does both
WeatherResource weatherResource = store.getResource(WeatherResource.getResourceType());
weatherResource.setForcedWeather(forcedWeather);
WorldConfig config = world.getWorldConfig();
config.setForcedWeather(forcedWeather);
config.markChanged();
Store in this context being a Store<EntityStore> but a ComponentAccessor<EnityStore> works too
Actually gave me an idea to make the "blazejet wand" from justdirethings, where you have a cast and depending on how much you charge it , it adds to you inertia. Poor mans flying 😄 Good stuff!
Setting player velocity is not so fancily done in-game for some reason, you have to send a packet to the player
One second
Anyone else getting an issue where when they try to open the eclipse application it gets blocked saying its a dangerous file from the web
PlayerRef is a component even though the name makes it seem like its not
Have you got a Store<EntityStore> and a Ref<EntityStore> or just one or none
none
i made some static functions to work with the Player object but i want to avoid the use of getPlayerRef
Ref<EntityStore> ref = playerComponent.getReference();
Store<EntityStore> store = ref.getStore();
PlayerRef playerRef = store.getComponent(ref, PlayerRef.getComponentType());
Thank's bro, I got it
Does anyone know anything about when we are going to get the ability to add per item names and lores/descriptions? I doubt anyone knows but figured id ask anyway
Is there a Maven Central artifact yet or are we all just deploying the server artifact to the local .m2 repo?
playerRefComponent.getPacketHandler()
.writeNoCache(
new ChangeVelocity(
0,
0,
0,
ChangeVelocityType.Set,
null
)
);
playerRefComponent is a PlayerRef
what IDE are you all using
anyone found a way to disable Ancient gateways ?
Im willing to bet 90% is intellij
The way the game is set up its not so straightforward to get that working
IntelliJ, always. Since like 2013 modding Minecraft lol
im downloading that now since eclipse decided to be flagged as malicious :_:
okay thx, sry i'm a c# developer and this thing of components and stores is getting me crazy
The game pulls translation/lore from the Item itself, not the ItemStack, there are states that items have on them but internally they are registered as entirely different Item instances
oh this isnt a thing in java either for the most part
its not "normal" in java either
People have overriden stuff by changing UI elements around but I have no experience with that so I won't speak on it
@lunar cedar Do you have any idea how I can generate a world with a ready-made prefab? For example, a building, and set the spawn in that specific location?
I had originally thought the client was also Java, but looks like the client is probably C#, is that right?
The game just uses an ECS
correct
yeah but i always try the "csharp way" but then i remember this crappy old lang
yeah but components and stores are more from the ECS than java
Ye ik its annoying hope we get it soon because id love for my spawner mod to be able to have spawners be {mob_type} Spawner lol
no idea on prefabs sry
Can server plugins drive certain client-side behavior like UI stuff, camera etc? The obvious answer is no, but figured I'd ask.
Yeah
yes -- the server can specify client side uis, limited camera stuff, and more
Oh interesting
Visual studio
in hytale the server has much more control over things usually owned by the client in other games
I feel you, I already miss LINQ and basic null conditionals
oh, a game development design pattern that i never used before 
Linq......
I see. So basically there's not a strong need to mod the client. Server plugins can add new assets and UIs
Yeah
That's really cool. A complete departure from Minecraft
yes
linq, dependency injection, services 
Iirc client modding is against the eula
at least, modifying the client binary probably is
do you know if this works for velocity gained with weapons? i can't achieve to reset completely the inertia of players after he dashes with daggers/swords
I haven't tried it with velocity weapons
I know that you can enter creative mode to paste the prefab, but not sure what's the easiet way to change the spawn to be there
yeah, same for the assets editor
Anyone know if its doable with packets? Its the only possible solution i could think of currently
Has anyone else encountered a situation where the game disconnects you from the server and after reconnecting, you can no longer see the chat? Is there a fix for this?
I spent about 5 hours trying to figure exactly this out as well. The only thing I can tell you is that in creative, you can spam click and break blocks as fast as you can click with your hands, but when you switch to a tool, you can not. I spent a long time trying to figure out what the difference is and where to change it, but ultimately through in the towel after even finally pulling out Claude Code to try and help find it.
seems like it doesn't work for that weapon velocity, but it worked for a speed multiplier velocity reset ty
Is this not available yet? It says that flat doesn't exist.
/worlds add test --gen="flat"
I haven't touched that yet, what kind of assets does that encompass? Everything from textures to actual character/entity models and animations?
They probably continuously apply velocity during the ability so might be tricky to override
com.hypixel.hytale.server.core.universe.PlayerRef.getReference() is null after player disconnect and reconnect?
Although I store UUID and get through Universe.get().getPlayer(uuid)
try with --gen Flat i had the same issue
almost everything excluded new game mechanic or other things that include add some code, you can even add new recipes
You are the savior 🚀
I dont think its possible even with packets
You'd have to modify the clients registry of their items to pull from
Can you add new model animations?
yes
Like for unique items? You could probably add it in to the item itself no?
And tell the client that an item they have in their inventory is of the new fake item you just pretend registered
Its per item not per itemstack right now
No unique name per instance of the item
Alright, very cool. Hytale is less of a game, more of a game development platform haha
Very impressive
you can even add like new chests, with new animation, and new sizes (but this is actually bugged, for example if you make a chest with 600 slot, the gui get bugged out of the game windows and dont add a scroll line thing (the one for scroll down and up))
Ah I see, yeah im too noob level to conceptualize that right nos
Ah, fair. I imagine stuff like that will get ironed out soon. I'm gonna have to try the asset editor out, thanks
One community, one client: We want to avoid a fragmented ecosystem where every server requires a different modded client. For that reason, we don't intend to support any client mods. The client should remain stable, secure, and consistent, while servers provide the creativity and variation.
Yeah, this makes a lot of sense.
there are already client mods being made but they are agianst the rules
@civic zephyr in this ECS thingy, what is a ComponentAccessor<EntityStore> used for?
A Store is a ComponentAccessor
Its used to access components
Stores are collections of data that store Refs of a given type that each contain their own data

[OFF]
🇺🇸 Hey guys, I just want to promote a Discord server I created for Brazilian modders here. If that's not allowed, please delete my message.
🇧🇷 🇵🇹 Galera, criei um servidor de Modders para Hytale especialmente para Brasileiros e Portugueses, quem tiver interesse chama DM!
Hello, I tried in my own hytale analyzer tool and I got to this file:
server/core/modules/interaction/interaction/config/client/BreakBlockInteraction.java
and I got this root inisght:
"Tools use BreakBlockInteraction, while unarmed (hands) breaking in creative uses instant interactions (likely FirstClickInteraction or unarmed RootInteraction with runTime=0), allowing spam-click speed.
there are???
Hacks and such
is there any way to increase mining speed or attack speed or attack damage of player?
Haven't heard of any actual good real purpose client mods
Mods
accessibility is the only one I can think of thats like, actually good
But how do I do that, i thought maybe stats but I don't see any stat like miningspeed
Mmmm I think mining speed is currently dependant on type of pickaxe. You may be able to create a modifier and attach it to the player or pickaxe
client mods are useful if it's something like optifine so the server doesn't need to include that
Ahh, yea I think I remember running into these, but couldn't figure out a way to adapt them in a way that would allow the player to essentially interact with a block more times per second and reduce the overall damage (To smooth out and normalize the DPS to match vanilla) while using a pickaxe (Or really any other tool, I suppose).
is there a way to update a specific ui every 1 second?
Shaders I suppose yeah
Id say go through decompiled game and find out how it does mining and mining speeds and go from there
No client resource packs yet which is surprising but hopefully they add the functionality eventually
github com/kran27/HytaleClientMod adds zooming
This is exactly what I am discussing right now with someone else. I can't find a way to change how many times you can interact with a block per second (essentially how many times you "swing"). You can only change the damage to a block to be a single-hit-break.
every pickaxe have a mining speed or something called with a similar name, that determine how many hit you need to do for brake a block it goes from 0 to 1, look up at that, but this change the speed of the item not the player, i think you should see the potions, and their effect
How can I add parameters to a AbstractPlayerCommand?
RequiredArg or OptionalArg
is there a way to update a specific ui every 1 second?
Thanks, are those methods inside of the AbstractPlayerCommand constructor?
how do i give myself (owner of my server) permission to use commands
@civic zephyr sry for the ping, did you try to use the BuilderToolsPlugin? i'm trying to select an area for the player when running a command but the selection tool is not updated
op add <username> on the server console
You can have them in there yeah just store them in the class
/op self
Yea, that speed value is misleading. Because it literally does not change the speed at which you can swing. Or "swings per second", per se. Only the damage. So at the highest "speed", it just means a single swing of a pickaxe will break a block with one swing. Instead of halving the damage, but increasing the number of swings per second to do the same amount of damage per second to a block, but in a smoothed out way that would allow for being able to just wildly swing a pickaxe around to insta-mine like you would in Minecraft with insta-mining.
on shockbyte panel?
I haven't used it
Okay, thank you, I will try it out
okay, i will keep surfing the decompiled code
try looking at com.hypixel.hytale.server.core.modules.blockhealth and the function damageBlock() maybe this can help, there is even a removeBlock()
You don't have to specify them in the constructor
private final RequiredArg<Integer> numberArg = this.withRequiredArg("theNumberName", "your description", ArgTypes.INTEGER);
Can work at the top of your class
The order you call withRequiredArg in is the order they are going to be
Hmm, yea, I didn't come across those. Or at least I don't remember. Unfortunately I have slept since I dug into this one. lol
Thanks for the tip. I'll take a look there and see if there is something I can use.
Can be accessed like
Integer number = this.numberArg.get(context);
In your execute
ooh that seems better, thanks swipez
but that function i think can help only to deal more damage faster, and destroy the block in less hits, not sure if can help with your idea of speed up swing
Well, the idea I was thinking about was maybe just looking into ways of detecting the block the player is looking at and if it changes with a left-click held down and the correct tool in hand, just calling removeBlock() while keeping the animation running. 🤔
Just speculation right now though.
I checked for a Maven Central artifact but couldn't find one, so I just did this:
mvn install:install-file -Dfile=HytaleServer.jar -DgroupId=com.hypixel.hytale -DartifactId=HytaleServer -Dversion=2026.01.17-4b0f30090 -Dpackaging=jar
Is this is basically what everyone else is doing as well?
I am teleporting the player while playing a particle animation at the destination. I would like the player that gets teleported to also see the last part of the animation after they've teleported. I've tried sending the packet to the client directly but it seems the client just ignores it since its too far away. Is it possible to force the client to keep track or have access to the area around the destination so they properly handle that packet and calculate the particle animation?
anyone know why this custom component isnt working?
public class PlayerDataComponent implements Component<EntityStore> {
private static ComponentType<EntityStore, PlayerDataComponent> PlayerDataComponent;
public static final BuilderCodec<PlayerDataComponent> CODEC;
static {
CODEC = BuilderCodec.builder(PlayerDataComponent.class, PlayerDataComponent::new)
.append(
new KeyedCodec<>("PlayerState", Codec.INTEGER),
(component, value) -> component.PlayerState = (int) value,
(component) -> component.PlayerState
)
.documentation("PlayerState is a value from 0 to 100")
.add()
.build();
}
public PlayerDataComponent() {
super();
this.PlayerState = 0;
}
private int PlayerState;
@Nullable
@Override
public Component clone() {
try {
Component component = (Component) super.clone();
return component;
} catch (CloneNotSupportedException e) {
e.printStackTrace();
return null;
}
}
@Nullable
@Override
public Component cloneSerializable() {
return Component.super.cloneSerializable();
}
public int getPlayerState() {
return PlayerState;
}
public static ComponentType<EntityStore, PlayerDataComponent> getPlayerDataComponentType() {
return PlayerDataComponent;
}
public void addPlayerState(int PlayerState) {
this.PlayerState += PlayerState;
this.PlayerState = Math.clamp(this.PlayerState, 0, 100);
}
public void setPlayerState(int PlayerState) {
this.PlayerState = PlayerState;
}
}```
public static void onPlayerConnect(PlayerConnectEvent event) {
Store<EntityStore> store = event.getWorld().getEntityStore().getStore();
PlayerRef ref = event.getPlayerRef();
store.addComponent(ref , store , new PlayerDataComponent());
}```
`Inferred type 'T' for type parameter 'T' is not within its bound; should implement 'com.hypixel.hytale.component.Component<com.hypixel.hytale.server.core.universe.world.storage.EntityStore>'`
How can I trigger an animation for a player inside for ecample a command?
if anyone knows a bit about modding, i would like to do something simple but i dont know how to do it on my own, i would just like to have a mods that allow staff to use mana instead of essence ( i just think that grinding ice and fire essence is a way too long process for the little we get )
O.o that actually can probably be done in asset editor. You have to do some small fixes to mana to get the mana bar to show and the stat to be at full. But with cost essentially just swipe how the magic tomes do it
the good news is that i already have a mod for this so that wont be a problem, on top of that it has regen and the value is at 25, all it would need is the fire or ice staff to use this instead ^^
Sick! I haven't touched the staffs just the tomes but im assuming you can swap out the "cost" portion with the way the tomes do the cost.
let me add you up so we dont polute this channel ! i will DM you
You didn't register the component
Anyone who knows how to code that wants to join a project? we are working on making a highly runescape inspired server and are looking for more people who want to join the cause 😄 if you want to join or just want more info hit me up!
And thats not the right way to add a component, you need the component type
And your clone method is wrong it should be of Component<EntityStore> and return a copy of PlayerDataComponent with the PlayerState carried over to it
Guys quick question: I want to add a new world on my server that, everytime the server restarts, the world gets "reset". So basically a world just for exploring and gathering resources. Can I just delete and recreate it everytime the server restarts with comands on the console? If I give the world the same name, will the teleports still work?
put map in git repo 😄
That would make it always look identical. I want it to be regenerated 🙂
Hello, does anyone have a guide to creating your own instances?
Hi guys, i can't find link to wiki with YamlConfiguration, who can send this to me?
"Instances" is suuuuuper broad. Instances of what?
Check your modem's firewall, it may not be redirecting port 5520 correctly to your server's IP.
It may also be a software firewall not doing the port forwarding for UDP 5520 to your server's IP.
Network configuration
Hytale differs from Minecraft on a crucial point: it uses the QUIC protocol over UDP (and not TCP).
Default port: 5520 (UDP)
Firewall rule: You must open port 5520 in UDP. No need to open TCP.
right so is the server for hytale not created properly as me and my friend are crashing games after killing a skeleton
do you see the /inst? I tried to remake the person who created the Yung dungeon mod. Currently in solo when I /inst I see my instance but it tp me in an empty world without taking into account my prefab. So I'm still experimenting for these reasons if anyone knows a complete guide to instance creation a bit like /inst goblin dungeon I'll be interested ^^
i did, this is in the setup
this.getEntityStoreRegistry().registerComponent(PlayerDataComponent.class, "PlayerDataComponent", PlayerDataComponent.CODEC);
Heyy qwick question! after setting up a Config CODEC and using it in my plugin how and where do I setup the config json file
Fix everything else I mentioned
ah i didnt see the others 1 sec
withConfig in a spot earlier than setup (Constructor or just initialized on the variable)
From there you can call .save() (On shutdown) and .load() (On startup) on the config and a folder will be generated in the mods folder for your plugin
and the String name paramter is just the name of the json file?
This register method returns the component type you should be saving if you aren't already
Yeah
tyty
Actually another question, I keep using the hytale logger but I can't seem to see any of the logs in-game
getLogger().at(Level.INFO).log
Isn't working?
Ok I'm kinda dumb cause i can see the logger in my console but I was wondering if it would show any logs in-game
Running on a deddicated, tried other server software on the same port, that worked just hytale reacts to nothing.
Looking through the server jar, I see a lot of the built-in game features are implemented as plugins. That's cool.
Is the Mana system already working in Hytale?
Is there a way to get a player uuid and playerref by their username?
How do i get the PlayerRef from an event
hey im currently writing a pvp arena plugin for my server and i need someone for a few minutes whos willing to test a match with me - i need a second person
hi there i have a question regarding my local world and network connections, if anyone can help me.
im playing on local lan with a friend, using my local world and opening to online play. If my friend uses the code in "Share Code" option he can connect ok, and he can find the server under Local tab on servers, but if he tries to connect via the Servers Local menu the connection fails. Also the server appear on the Local tab with a generic name not my world name. Any ideas what can i do to fix that ? I can still use the "Join Via Code" option and it works fine, but the code is different every time I load up the game, so the process is a bit more tedious that if he could just find the server on Local list and double click there, that I think should be a normal case
depends on what event 🙂 some event dont have any others have
i have an PlayerReadyEvent
Can anyone help me find a link to documentation on creating YamlConfigurations in Hytale plugin (mod) ?
i lost that
Player player = event.getPlayer();
Ref<EntityStore> entityRef = event.getPlayerRef();
PlayerRef playerRef = store.getComponent(entityRef, PlayerRef.getComponentType());
hope it helps
I do not have an EntityStore object
import it then 😛
private void onPlayerReady(PlayerReadyEvent event) {
Player player = event.getPlayer();
Ref<EntityStore> entityRef = event.getPlayerRef();
Store<EntityStore> store = entityRef.getStore();
PlayerRef playerRef = store.getComponent(entityRef, PlayerRef.getComponentType());
So I'm trying to make a portal that will create a new world every week. This should be straight forward by copying the hubworld portal, but setting the name of the world to prefix+date where date is the date of a specific day based on the local system's calendar.
This works for generating the world, but when trying to use the portal again, it fails at teleportToLoadingWorld, when attempting
componentAccessor.addComponent(playerRef, Teleport.getComponentType(), new Teleport(targetWorld, spawnPoint));
It produces an error:
Exception while ticking entity interactions! Removing!
java.lang.NoSuchMethodError: 'void com.hypixel.hytale.server.core.modules.entity.teleport.Teleport.<init>(com.hypixel.hytale.server.core.universe.world.World, com.hypixel.hytale.math.vector.Transform)'
Anyone have any idea why?
use Tailscale
@merry geyser this in fact works since im doing it the same way ^^
Do you have a Hunger Games plugin?
What for event is that, ready for what?
Thank you, i will try if it is stable for what im doing
When the player is fully initlalized and ready ^^
ohh
hey, maybe did you know how to make an Yaml config?
because .json it not comfortable
no im using gson and json files
Hello guys, I don't understand how Hytale reads files or if something is wrongs in my configuration.
I'm trying to read a document (file .ui) from my mod/server plugin and I'm currently getting this error from Hytale (Loading the UI from a player command) "Could not find document assets/ui/x.ui for Custom UI Append command. Selector:"
My command is reading with cmd.append("assets/ui/x.ui") and I have includesassetpack: true in my manifest, also in my pom.xml (using maven) I do add resources to my build.
Am I missing something? Or does just hytale handle the files in a weird way?
Also I have a debug function that in my server log says it FINDS the file, so idk
guys my multiplayer friend join isnt working ???
Is it possible to change a world's spawn point to a fixed value or using some developer feature?
how do i fix this this shi is a headache
Do you have a Hunger Games plugin?
UHC ITS HUNGER GAMES ?????
Can anyone point me to a guide on what the scope of a plugin is and how you can set them up?
I made some progress earlier! By setting several runtime variables to 0 in the Assets Editor, I finally got a result that proves this is possible.
I managed to achieve an extremely fast 'fastmine,' though currently, it only triggers when holding a 'block' type item. This leads me to believe that if I can locate the specific files to modify, we can make it work universally.
I had to step away for a moment, but I’ll get back to it soon. If I find the solution, I’ll send it your way!
Does anyone know how to actually get IntelliJ and Maven to actually work with Hytale? I've been struggling for hours
You can look on github there is a lot of template you can use
i suggest you try gradle so much easier
Everyone screws up
Can someone send me a link? Also, I've been getting the same errors with Gradle as well
The import for Hytale isn't even working in IntelliJ for me
use kaupejjoue example plugin for gradle
do you get 100+ errors? like imports
I send you link for a good community doc in DM
More like 78 errors, but yeah
do you use ai?
i saw a lot of people get wrong imports from ai and get 100+ errors decompile hytaleservers.jar look what you import you using search on it find real path
As much as I hate to admit it, yes I do; coding is not something I know scrap about. I have decent ideas but very little knowledge of coding other than modifying config files
Yet, I've pulled off making my own Minecraft plugins before with AI
problaby decompiling hytaleserver and finding correct imports fix your errors
How long would it hypothetically take to decompile HytaleServer using a 2022 Macbook Air
i dont know the cpu power problaby not more than few min i can send you latest decompiled if you want
Buenas, alguien que hable español que me pueda decir porque no me llega el codigo de verificacion al email? gracias
guys, do you know a way to view the various .ui files, or for example, an application that would let me see the content of a .ui file so I can modify it and see the result?
Remove the useless classes
hytale,ellie,au
For example, anything that is not inside com dot hypixel dot hytale
There are a bunch of open-source or data structure classes that aren't needed to understand the server code
It shortens decompilation A LOT
Puede demorar desde unos minutos hasta varias horas. A mí también me pasó; no hay más solución que esperar.
🇧🇷 boa tarde pessoal, alguem consegue me dizer se consigo editar os sons que o player faz ultilizando os Nós?
até agora só consegui editar a geração de mundo, quando seleciono qualquer outro arquivo ele não é carregado na linha do tempo.
🇺🇸 Good afternoon everyone, can anyone tell me if I can edit the sounds the player makes using the Nodes? So far I've only been able to edit the world generation; when I select any other file, it's not loaded into the timeline.
so i need to open the game every time? or is like using the assets editor where i can see the changes in game every time i edit it? (like for making a new block adding sounds, etc from the assets editor)
thats a website
OOOOH OK sorry
Which ones are the useless ones?
files other than com/hytale
That would be great
Check my later messages
@gray wigeon
ah gotcha
It's just a text file
Open with any text editor
in the message i was asking for a way to graphically display the ui that was generated from the text in the file, but now i found that website they sended before
Oh, it wasn't very clear. Glad you found your answer, though.
Does anyone know how to play/change a player animation in code? I want to make custom attacks, but can't find anything on how animations work
Hello!! I have a question, if I wanted to create a test player to check how my plugin would act in multiplayer would I use addPlayer? it seems that addPlayer needs authentication... maybe I'm missing something?
You kinda need to test in multiplayer to check how your plugin would act in multiplayer tbf
but I need to test locally I can't predict how certain things would act
Is it possible to set chest loot in a prefab with chances? Like 5% chance for a sword and so on?
what do you mean by locally?
like individually, I can't convince people to join my server and stay idle and rejoin everytime I restart the server to test a feature
That's really great news! Super curious to see where you land on this one! I shelved my project the other day, but now I'm super eager to get home and start looking at it again. lol
Has anybody figured out how to run commands in plugins yet?
I can send messages to the player but that's it
currently trying to work on this with 2 modders on this server
like console running commands? or creating command?
Running vanilla commands through plugins, to a player.
I got their reference but yeah, I cant figure it out
Haha I'm just picturing them cd'ing into directories from within game. 😅
i tried this in the asset editor, the goals was to remove the ice essence consumption and switch it to mana, but so far there is no progress, Note that im using a pre-made mode for Mana and Mana bar
Is there a way to verify the Server permanently becouse I am tired to start Server every Time with verivy it ?
case "MoveSpeed":
MovementManager movementManager = store.getComponent(ref, MovementManager.getComponentType());
MovementSettings movementSettings = movementManager.getSettings().clone();
float speedIncrease = 1 + modifierValue.floatValue();
movementSettings.baseSpeed *= speedIncrease;
movementManager.setDefaultSettings(
movementSettings,
store.getComponent(ref, PhysicsValues.getComponentType()),
player.getGameMode()
);
movementManager.applyDefaultSettings();
player.sendMessage(Message.raw("Applied MoveSpeed modifier: " + modifierValue.floatValue()));
break;
@civic zephyr this updates the movement but doesnt persist when i rejoin, you have a clue why?
I dont see any implementation for that in the json files... probably needs an java plugin
use CommandManager.get().handleCommand(playerRef, "give Player stone 64"); like this
YO im gonna try this right away
how do you do that it doesnt let me paste my code lol
im trying to share the progress i made so far
You should set the config its persistent
the automod is flags weird stuff
Or actually, maybe its not persistent
use ```
You might have to just reapply it
😭
start and end with same thing ```
thanks
"TranslationProperties": {
"Name": "server.items.Weapon_Staff_Crystal_Ice.name",
"Description": "server.items.Weapon_Staff_Crystal_Ice.description"
},
"Categories": [
"Items.Weapons"
],
"Icon": "Icons/ItemsGenerated/Weapon_Staff_Crystal_Ice.png",
"Quality": "Rare",
"ItemLevel": 50,
"Recipe": {
"TimeSeconds": 5,
"Input": [
{
"ItemId": "Rock_Gem_Sapphire",
"Quantity": 1
},
{
"ItemId": "Ingredient_Bar_Silver",
"Quantity": 8
},
{
"ItemId": "Wood_Azure_Trunk",
"Quantity": 10
},
{
"ItemId": "Ingredient_Ice_Essence",
"Quantity": 20
}
],
"BenchRequirement": [
{
"Id": "Arcanebench",
"Type": "Crafting",
"Categories": [
"Arcane_Misc"
]
}
]
},
"Model": "Items/Weapons/Staff/Crystal_Ice.blockymodel",
"Texture": "Items/Weapons/Staff/Crystal_Ice_Texture.png",
"PlayerAnimationsId": "Staff",
"IconProperties": {
"Scale": 0.31,
"Translation": [
-26.31,
-23.91
],
"Rotation": [
45,
90,
0
]
},
"Particles": [
{
"SystemId": "Ice_Staff",
"TargetNodeName": "TopPommel",
"RotationOffset": {
"Pitch": 0,
"Yaw": 180,
"Roll": 0
}
}
],
"Interactions": {
"Primary": "Root_Ice_Staff_Primary_Wrapper",
"Secondary": "Root_Ice_Staff_Primary_Entry"
},
"InteractionVars": {
"Staff_Cast_Summon_Cost": {
"Interactions": [
{
"Parent": "Staff_Cast_Cost",
"StatModifiers": {
"Mana": 0
}
}
]
},
"Staff_Cast_Summon_StaminaCost": {
"Interactions": [
{
"Type": "Simple",
"RunTime": 0
}
]
},
"Staff_Cast_Summon_StaminaRegenDelay": {
"Interactions": [
{
"Type": "Simple",
"RunTime": 0
}
]
},
"Staff_Cast_Summon_Launch": {
"Interactions": [
{
"Type": "Parallel",
"AdjustHeldItemDurability": -0.5,
"Interactions": [
{
"Interactions": [
{
"Type": "ChangeStat",
"StatModifiers": {
"Mana": -25,
"Stamina": -5
}
}
]
},
{
"Interactions": [
{
"Type": "ChangeStat",
"Behaviour": "Set",
"StatModifiers": {
"StaminaRegenDelay": -1.5
}
}
]
},
{
"Interactions": [
{
"Type": "Projectile",
"RunTime": 0.25,
"Config": "Projectile_Config_Ice_Ball",
"Effects": {
"ItemAnimationId": "CastSummonCharged"
}
}
]
}
],
"Failed": "Staff_Cast_Fail"
}
]
},
"Staff_Cast_Summon_Effect": {
"Interactions": [
{
"Type": "Simple",
"RunTime": 0.5
}
]
},
"Staff_Cast_Summon_Fail": "Staff_Cast_Fail",
"Spear_Swing_Left_Damage": "Spear_Swing_Left_Damage",
"Spear_Swing_Right_Damage": "Spear_Swing_Right_Damage",
"Spear_Swing_Left_Effect": "Spear_Swing_Left_Effect",
"Spear_Swing_Right_Effect": "Spear_Swing_Right_Effect"
},
"DroppedItemAnimation": "Items/Animations/Dropped/Dropped_Diagonal_Left.blockyanim",
"Tags": {
"Family": [
"Staff"
],
"Type": [
"Weapon"
]
},
"Weapon": {},
"Light": {
"Radius": 1,
"Color": "#146"
},
"ItemSoundSetId": "ISS_Weapons_Wood",
"MaxDurability": 300,
"DurabilityLossOnHit": 0.5
}```
well thats a long one
@calm sable
it comes from the ICE staff asset i duplicated, tried changing the inventory use for ice essence to Mana instead
hmm
but so far it doesnt seems to work
huh is baseSpeed not used?? i set it to 0.5 instead of 5.5 and nothing changed
And you wated to change the Summon_Cost to ice or what?
ahhh
basicly im trying to remove cost from ice essence at all
YOOOOO IT WORKED
You got no idea. You have saved me.
I am making an ability system. I just got it setup to allow players to make custom abilties. But this was one of my last hurdles
awesome i hope it comes awesome plugin
i believe that farming ice essence to use the staff is not efficient, because it is realy time consuming for the little you get
i dont think the underlaying system works(mana), sadly
They are all located in com\hypixel\hytale\server\core\asset\type. I do have a question, though: does each .json file represent a single asset ? Is there a one to one relationship?
maybe add a recipe for ice essence 😄
Did somebody here ever tried to change the basic stats? Health, Stamina, mana, Defense? Where can i touch that in the code?
Well, some assets have internal collection that register themselves as individual assets
well, i have a mod pack that make it work with some staff created by a modder, basicly this mod pack add mana as a value in the game and the staff use this mana to work, and those staff are working perfectly fine, there has to be a way, but yes, adding a simple recipe for ice essence could do the tricks as well
But for the most part yes each json file is a singular asset
gracias!!
ohh thats nice
How is the mana mod called?
but mana already exists as a value...?
mighty staff on curseforge
yes, he probably just made it accessible
yes but it was set to 0 for the time being, it adds 25 to it
en mi perfil
i did notice some of them may ref other assets, do you mean that one json file may be represented as different assets in code ?
The ones that reference other assets sometimes just reference an asset directly defined in itself
oh i see, like hitboxes right ? ty
So I'm trying to Build my Mod using VS Code gradle build from the terminal But I just get a bunch of errors, But it builds perfectly in IntelliJ, What else am I needing to do to make this work??
@Override
^
C:\Users\Chris\Repositories\HytaleServerJump\HytaleServerJump\src\main\java\com\shubshub\plugin\HytaleServerJumpCommand.java:24: error: method does not override or implement a method from a supertype
@Override
^
C:\Users\Chris\Repositories\HytaleServerJump\HytaleServerJump\src\main\java\com\shubshub\plugin\HytaleServerJump.java:8: error: cannot find symbol
public class HytaleServerJump extends JavaPlugin {
^
symbol: class JavaPlugin
C:\Users\Chris\Repositories\HytaleServerJump\HytaleServerJump\src\main\java\com\shubshub\plugin\HytaleServerJumpCommand.java:17: error: cannot find symbol
public class HytaleServerJumpCommand extends AbstractPlayerCommand {
^
symbol: class AbstractPlayerCommand
32 errors```
/auth persistence Encrypted
I dont want to use IntelliJ because its a Trial version only
use community version fully free just dont have %100 all extensions
I found This in Google now After 1 Hour searching haha thankyou so Muche anyways can i ask you something in privat Chat too ? 😅😁
Well, for example, if a RootInteraction just straight up defines a new Interaction inside of itself it will get registered as a new Interaction asset automatically with an auto generated name
I took the basis of YUNG's dungeon addition mode and currently I manage to create a new instance and tap into it and it works very well with the prefabs he put in.
On the other hand, I don't understand how he managed to create such a prefab.
there are various prefab files and a prefab start file.
when on the map I solo I create a building and I put it in prefab I have a simple json
name.prefab
Do you have any idea of the procedure he could have done to have such a prefab file?
case "MoveSpeed":
MovementManager movementManager = store.getComponent(ref, MovementManager.getComponentType());
MovementSettings movementSettings = movementManager.getSettings().clone();
float speedIncrease = 1 + modifierValue.floatValue();
movementSettings.baseSpeed *= speedIncrease;
PhysicsValues physicsValues = store.getComponent(ref, PhysicsValues.getComponentType());
movementManager.setDefaultSettings(
movementSettings,
physicsValues,
player.getGameMode()
);
movementManager.applyDefaultSettings();
player.sendMessage(Message.raw("Applied MoveSpeed modifier: " + modifierValue.floatValue()));
break;
Am i forgetting a step? this updates it, i can print the modified value from a command but the players doesnt move slower or faster....
ofcourse ask away
Is there a way to make it work with VS Code instead? Its my preferred IDE
import com.hypixel.hytale.server.core.plugin.JavaPlugin;
import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
import javax.annotation.Nonnull;
seems like your imports wrong
You're not using a MovementConfig? You're just changing it like that?
import com.hypixel.hytale.server.core.plugin.JavaPlugin;
import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
import javax.annotation.Nonnull;```
I already have all that
I cant Text you privat Shold I ask here ?
i havent been able to find any documentation on configs...
Ahh i see the items give you a total of "+10 Mana when equipped in Main-Hand"
You're missing a call to
movementManager.update(playerRefComponent.getPacketHandler());
yeah, i think trying to use this mod as a reference to do what im trying to do might be causing issues
That probably would fix it
which class is that
This is in my HytaleServerJump.java class
@fathom junco accept my friend req
I have it working with vscode, but i use maven instead of gradle
Would you mind sharing this with me as well?
can i get the PlayerRef from Ref<EntityStore> ref or Store<EntityStore> store or CommandBuffer<EntityStore> commandBuffer
or Player? im working within OnComponentAdded right now which doesnt pass PlayerRef
Yes of course, it might not be today, but if I find the solution I will share it without problem
var playerRef = store.getComponent(ref, PlayerRef.getComponentType());
Oh - I was just looking for the community doc you mentioned
ohhh
haha it is that easy
i send you in private srry
Is this place where folks are posting servers/groups to play with?
welp including you 2 others modder trying to help me to fix this and so far we have no concrete answers of why this fix isn't working as the JSON synthax make sense, perhaps im gonna have to wait until players get interested into fixing the balance of the staff usage, either someone who release receipe for essence or convert the required ressource to mana like im trying to do
This Discord, sure. This specific dedicated channel for mods? Probably not the best place to post servers and groups to play with, no.
Just add a recipe to the ice essence item
whats your problem atm?
Is there a place you know of where people are posting @ripe bramble ?
ah sweet, now my move speed is affected! but not persistent :(
I don't think it persists at any point, the server just sends the default config every join
I can't post the link, but just hit up google with "Hytale Servers". Will be the first non-sponsored link.
So if I make a plugin using the hytale's api, run the server locally on my pc, it is a public server where people can use an IP to join and play but i wont distribute the plugin online.Will the hytale team be able to legally ask for a copy of my plugin as the section 3.1 of eula says so
ill have to fix this on join. its fine
so basicly my idea come from the fact that i have noticed that farming ice essence or fire essence is a way too long process to use the staff, to fix this, i tried switching the staff usage from ice essence or fire essence to MANA instead, My mana value is already to 25 as im using a mods who use it, now i have tried to modify the JSON code for the staff to use MANA ressource instead of essence, and when i applied the new code on the assets editor, the code is working but the change did not take place in my game as its still using essence
i see
i dont know what it looks like but mana is a stat and essence is an item iirc. you might need a custom component that does this for you if you havent already
(i have zero seconds in asset editor so im making assumptions)
do you think i could add you so i can show you what i have done in steps, it will avoid me poluting this channel too xD
sur
Has anyone had a problem with overwritten standard assets? Sometimes overwriting works correctly and sometimes it doesn't. I've already added “Dependencies”: { “Hytale:AssetModule”: “*”, “Hytale:CommonAssetModule”: “*”, “Hytale:InteractionModule”: “*”, “Hytale:NPCObjectives”: “*” }, but it didn't help
hey does anyone know of a plugin that will teleport players back to safety if they fall into the void?
does anyone here know if the Hytale server.lang file can utilize variables/placeholders? My use case is a repeated element in a description that i don't want to type out/copy paste each time i make a new item.
So I'm trying to make a portal that will create a new world every week. This should be straight forward by copying the hubworld portal, but setting the name of the world to prefix+date where date is the date of a specific day based on the local system's calendar.
This works for generating the world, but when trying to use the portal again, it fails at teleportToLoadingWorld, when attempting
componentAccessor.addComponent(playerRef, Teleport.getComponentType(), new Teleport(targetWorld, spawnPoint));
It produces an error:
Exception while ticking entity interactions! Removing!
java.lang.NoSuchMethodError: 'void com.hypixel.hytale.server.core.modules.entity.teleport.Teleport.<init>(com.hypixel.hytale.server.core.universe.world.World, com.hypixel.hytale.math.vector.Transform)'
Anyone have any idea why? Its literally all the exact same code except I set the name to a generated name at the beginning of the tick.
I plan on using portals for a similar thing, when I do, ill lyk
Planning on readding mana to the game. I think I am on the right path now
Any way to remove an entity with a command, like a enemies
The only unknown is how would I cast magic
@young sierra unban twat
So I've made a Custom Item in the Asset Editor, How do I attach that to my Mod with Custom Java Functionality?
Is there a good tutorial video on that?
this.getCodecRegistry(Interaction.CODEC).register("YourInteraction", YourInteraction.class, YourInteraction.CODEC); You need to add your interaction to the assets too with {type: "YourInteraction"} so the game doesn't crash
If the player is attacking; How can I get the player in my handle() in my custom damageeventsystem? the player isn't the target (which is the store being passed in as a parameter) and it isnt the Damage.Source.getRef() either
¿Where i can find the docs?
All well and good, How do I move my Custom Asset to my Mod Folder that has all the code
how can I get the current language for server or player?
no official docs for now
I've got a Custom_Asset.json file in Server/Item/Items/
but how people make a plugins or mods without official docs ? where's the api or something that i can get for make a plugin
src/main/resources/Server/Item/Items/Custom_Asset.json
there are some docs on differents site, i found for example one site but is ai generated and not all is checked as true, or some video on yt
Thankies
is possible that you can give those websites by dm? sorry if bother u a lot.
desbes esperar mucho tiempo a veces literalmente me paso eso deespues de dos dias me llego xd, prueba en el server de mi bio si te animas
or is this even possible yet?
Did you try this:
public class MyCustomDamageSystem extends DamageEventSystem {
// ... setup, dependencies, query ...
@Override
public void handle(int index, @Nonnull ArchetypeChunk<EntityStore> archetypeChunk, @Nonnull Store<EntityStore> store, @Nonnull CommandBuffer<EntityStore> commandBuffer, @Nonnull Damage damage) {
// 1. Get the abstract source
Damage.Source source = damage.getSource();
// 2. Check if the source is an EntitySource (This covers Melee, Projectiles, etc.)
// Note: ProjectileSource extends EntitySource, so this works for arrows too.
if (source instanceof Damage.EntitySource) {
// 3. Cast it to get access to .getRef()
Damage.EntitySource entitySource = (Damage.EntitySource) source;
Ref<EntityStore> attackerRef = entitySource.getRef();
// 4. Ensure the reference is valid
if (attackerRef != null && attackerRef.isValid()) {
// 5. Check if the attacker is actually a Player (vs a Skeleton, etc.)
// You can use commandBuffer or store to get the component.
Player attackerPlayer = commandBuffer.getComponent(attackerRef, Player.getComponentType());
if (attackerPlayer != null) {
// Logic for when a player attacks
// Example: attackerPlayer.sendMessage(Message.raw("You attacked something!"));
}
}
}
}
}```
I assume I also need to edit the CollisionEnter Interaction
"CollisionEnter": {
"Interactions": [
{
"Type": "HubPortal",
"WorldName": "shubshub_world",
"WorldGenType": "Hytale",
"Next": {
"Type": "Simple",
"Effects": {
"LocalSoundEventId": "SFX_Portal_Neutral_Teleport_Local"
}
}
}
]
}
},```
To call a Java Function or something, How can I do that?
Decompiling the source code, its unobfuscated so you can see the different methods and file structure.
Ty !
Also what is the import for the Interaction.CODEC
CODEC is a static variable from any Interaction class
Not the network one
com.hypixel.hytale.server.core.modules.interaction.interaction.config.Interaction
So for example
package com.shubshub.plugin;
import com.hypixel.hytale.server.core.plugin.JavaPlugin;
import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
import com.hypixel.hytale.server.core.modules.interaction.interaction.config.Interaction;
import javax.annotation.Nonnull;
public class HytaleServerJump extends JavaPlugin {
public HytaleServerJump(@Nonnull JavaPluginInit init) {
super(init);
}
@Override
protected void setup() {
super.setup();
this.getCodecRegistry(Interaction.CODEC).register("YourInteraction", HytaleServerJumpCommand.class, HytaleServerJumpCommand.CODEC);
}
}
This is correct?
Does it error if you run it?
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler output below.
C:\Users\Chris\Repositories\HytaleServerJump\HytaleServerJump\src\main\java\com\shubshub\plugin\HytaleServerJump.java:18: error: cannot find symbol
this.getCodecRegistry(Interaction.CODEC).register("ShubshubServerJump", HytaleServerJumpCommand.class, HytaleServerJumpCommand.CODEC);
^
symbol: variable CODEC
location: class HytaleServerJumpCommand
1 error```
You're not using commands, it is better you extend an interaction which suits your use case. There are various interactions in the sources
I was just using a pre-existing file I had xD
But thanks I'll based it off an existing Interaction
How do I get those sources >.>
I need to decompile HytaleServer.jar right?
yes
you can google it how to do it yourself
I had to run a python script to get mine
i downloaded vineflower from the github and ran it from the command line
okay nevermind it is the player im just slightly dented; I do 'addComponent' in an onplayerjoin and then in my damagesystem apparently that component is just GONEEEE wtf
hcf
Hey yall, is the network down or something? I wanted to play so bad so i made an account and bought the game but i never got to try it. Says when i try to login that i already have a account with the same email.
Cant login to any accounts what so ever
Hello! Need some assistance with something. Trying to make a bat house using the chicken coop as the concept. Bat goes in and produces poop as the product. I am trying to add bats to the Accepted NPC groups but am not finding the bat. What should I do?
hyfactions is broken with last update?
guys do you know any methods to open the assets editor without opening the game directly?
@calm sable just letting you know that i have successfully completed a mod that allow craftable Fire and Ice essence, currently trying to understand how to upload this on curseforge, this should fix things while we are working on finding a way to convert essence to mana usage for staffs
do you mean the jar file? i think you need to do that
yea, somebody said that it is automatically updating once restarted
Any idea how to enable update 2 pre release for server?
succeeded in adding a custom workbench to the game with my plugin. does anyone know where / how the developers take screenshots of their models for the icons? i'd like to do this too in order to match the style / camera angle / background that they have.
from the assets editor, go in the assets of this workbench, there is the "icon" field, press the edit button (the stilo/ pencil) and that will open a simple window that will generate automatically the png file for your icon
hmmmm anybody know why components added to the player entity in a PlayerReadyEvent dont exist on the source entity for damageevents caused by the player?
thank you so much
i made the thing entirely without using the asset editor
did you found it? i'm not sure i'm explained correctly
i did. though i can see that it output the icon in my plugin's ItemsGenerated directory as an image, it seems that the icon won't actually update in game. weird
Made my first scoreboard plugin similar to tab in minecraft
yes you need to restart for that
will do thank you
man i may have to find some volunteer modeler / texturers later on when ive got more of the functionality programmed. i can a bit, but.. i just don't have the patience or desire to spend huge amounts of time matching the art style of this game pixel by pixel lmao
Using vineflower to decompile HytaleServer.jar
- Its taking literally ages
- I keep getting OutOfMemoryError for various files?
vineflower? im using PeaZip, works like a charm
try cfr?
What is that? Can you de-acronym that
it's just a java decompiler
benf dot org slash other slash cfr
im a total noob when it comes to making plugins / mods for any game and big (but not complete) noob to Java in general. I just used a template i found from the curseforge guide and the instructions from that and chatgpt help to help me get everything setup and running. im unfamiliar with this decompiling concept. can someone please tl:dr for a newb?
make some simple model in blockbench even without the correct style, use them as test
i already have its just my style sucks / is too plain and generic.
i've used the intellij idea decompiler, it took like 1/2minutes on my ryzen 5 3600
hytale shares their java server with shared source, so the code in the artifact is really class files if you open it in the ide, essentially to navigate better like ctrl clicking to different classes you can decompile the jar from class files back to source
Trying CFR now will let youses know how we get on
for that i tried to extract some model from the assets.zip file, and copied the style (literally with the clone stencil in blockbench) and painted the model
other features like ctrl + shift + f to search files works better after decompiling
great idea
So good that Hytale isnt Obfuscating their code from the start
im sorry i know you're trying to help but that was 50% alienese to me. i understand the desire to ctrl click to references / implementations etc. but idk about the rest you said lol
Hey, i'm getting an error registering an event.
Cannot invoke "com.hypixel.hytale.component.query.Query.validateRegistry(com.hypixel.hytale.component.ComponentRegistry)" because "query" is null
Anybody know a fix?
public Query<EntityStore> getQuery() {
return PlayerRef.getComponentType();
}```
``` @Override
protected void setup(){
this.getEntityStoreRegistry().registerSystem(new DamageEvent());
}```
like i've made some model that includes metallic part, i've extracted the armor workbench and the iron ingot model, opened them in blockbench and cloned the paint, if you need to know specifically how to do that just ask i will try to explain it
no that makes sense. are you doing a technology mod by chance?
basically, 1. hytale does not obfuscate their source, if they did you would see random methoids like void a(b someMember) 2. the decompilation allows your ide like intellij to have better navigation, it is just easier to find things you would be looking for with your bench mod
ooh so decompiling in this sense means decompiling the hytale source so that references / detals are revealed in the IDE for you to inspect. That's awesome. Thank you for explainig.
was trying to do a quarry that follow some magic style, and a storage mod like the one in terraria (you connect some drive to the core, and the core have a crafting unit that take all the tipe of workbench etc etc)
a storage mod is actually exactly what i want to work on. i figured i'd start with a workbench where all the tech from that would come from
If I have a List inside a System, and I add new objects to that list from a command, should the System be able to see those new objects inside the tick() method? In my case, the command successfully adds the objects, but when the system iterates over the list in tick(), the new instances do not appear.
though i have not played terraria so i have no idea how that particular mod works. i plan to do something mildly inspired by Refined Storage, but kinda different.
the only problem with the decompilation is that there aren't any comments so can be a little harder, but you can try to use some ai model for making fast docs but remember that can be pretty wrong
wait, so is the List in the system or is the List part of a component on something, do you have a snippet of your source
For VS Code, Once I have the Server Decompiled, How can I configure it so I can use that code for Autocompleting Imports and such in my Mod code?
If that makes sense
oh okok, the one of terraria is similar to the rs, but have this special crafting unit that consent you to merge all the benches (terraria have different benches like hytale)
personally dont use vscode so idk, but in intellij you just like turn it on and off
if youre a student with dot edu email you get intellij ultimate for free js
- use IntelliJ IDEA
- decompile using really anything but I reccomend vineflower(better than IntelliJ integrated)
I am a 30 year old man trying to become familiar with Java
The list is an attribute of the TickingSystem, like this:
public class SystemExample extends EntityTickingSystem<EntityStore> {
private final List<Object> objs= new ArrayList<>();;
public SystemExample () {
}
public SystemExample (Object obj) {
objs.add(obj);
}
No I wont use IntelliJ
Okay fair enough!
I did start with it, Just VS Code is my preferred IDE 😛
i see. im thinking of doing a system where you can craft server blocks. a server block can have a certain number of devices / peripherals that it supports on your overall computer network, such as monitors for accessing the computer storage and storage blocks which act as the actual storage place for things you put in the inventory there. more servers connected together = greater device capacity, more storage blocks on network = greater item storage capacity on network. is this close at all to what you are doing?
No hate here
So what you’re saying is you’re on a VSCode fork that allows integrated AI capabilities
Its Ok I think I figure it out anyway
😅🤣
I guess so, But I dont usually use the AI that much
depends on how you use the system or how the system works underneath, if the system is reinstantiated everytime you access it the list will be empty
Bingo
if you want the list to be global declare it static
I thought VSCode has had this built-in for a while? though i never use it.
Please dont assume I'm a vibecoder Because I'm not
At the very minimum use something like vineflower to decompile it so you get .java files instead of classes.
I use vscode too, it's better than itellej
I'm 95% a traditionalist, And sometimes just ask the AI some questions
Sure but there are handfuls of forks like cursor that are just better for the vibecoders
You've heard of tradwife, Now get ready for tradcoder
itellj has built in ai now, like what
Yeah I dont come from a Java background though
Fair enough
Dont need to decompile JS or C++ or Game Maker Language and the likes
I didnt do Java courses no, The uni I went to taught C++ and Game Engines
It was a Game Development Specific course actually
my experience mostly surrounds typescript with npm/nestjs/nextjs/react stuff but im also very familiar with general programming concepts and practices. i have small amounts of experience with C#/Python/Lua/PHP/Ruby on Rails and a very long time ago a tiny bit of Java. So.. im not exactly a vibe-coder, but i am kind of a vibe-learner in that im using AI to help me figure out how stuff like gradle works. or what gradle even is.
c++ and java are base for most colleges, game engine is weird unless you were some specific major
ah gotcha
Yes it was Software Engineering in Game Development
Surprised that you went to college for this and you prefer VSCode. Usually those guys are preaching arch and vim
me doing pure theory in uni 
It was all Windows bby
Btw for context, I live in New Zealand not America
i prefer VSCode. I think the UI is just easier and it's hotkeys for accessing critical functionality are way better than intellij so far.
now thats a self conflicting name lol.
software engineering in game development... lol
Lowkey makes it even more surprising
what engineering does a game dev do.
but i also know VSCode is not setup to work well with Java projects so im trying to learn intellij.
Most swe foreigners I know are on some sort of Linux distro
Writing code?
writting code is development work, not SWE
uwot
uwot now
SWE is integrating with real world hardware
Writing code is a form of engineering software, What are you smoking bro
I mean.. not as much as you’d think.
there is a plugin for including the vscode keybinding in intellij, the first thing i do every time i use a new jetbrain ide is installing that beautifull plugin
Can I have what you're smoking bro
nah people just dimish the word to amke thier job sound cooler
ooooooooooooooooohhhh
No that's computer engineering
I think you’ve got it a little twisted dragonhunter
I think you're just overminishing the word to make yourself feel better than everyone else tbh
idk that we really need to get the chat distracted with super specific technical differences. end of the day we're all trying to do more or less the same thing in here
Yeah lets get back to Hytaling
is called vsCode keybinding, and is offical from jetbrain
thank you, i will look into this. did you see my messages about the mod im wanting to make?
oh yes yes, i got distracted from responding, they are pretty cool
i was thinking that if you are planning on doing something very similar to what i have in mind for a storage mod, maybe we collaborate on just one mod? maybe?
i was thinking of doing something similar, or use directly the chests vanilla and connect them with some magical connector that use magic wifi power, for follow the game style
i was also thinking about potentially using the vanilla chests. problem for me there is that you can't get a storage quota from them because of how items stack different depending on the kind of item they are. so i figured you'd need a custom chest / storage for this that does not care about that.
yes yes, or we can do both and collaborate on all the new findings
oh okok
eh, think there is a diffrence between embedded SWE and CWE, but not hugely invested in arguing with people about it, just think its funny to call game dev engineering
could it be that something is going wrong when using event.setWorld(...) in PlayerConnectEvent? I noticed killing the player usually tells me if something is wrong with the player entity and i see this error message on respawn after i redirected the player
[2026/01/24 00:00:13 SEVERE] [World|8dc081c5-3fba-4b38-9f2a-80579697bc5c] Failed to run task!
java.lang.IllegalStateException: Invalid entity reference!
i like the idea of using the vanilla chests i just dont know how that would work with that limiation in there. you can't inform the user how much storage space they have left because there is no way to really know
Alright chief lol.
You seem the one pretty determined to argue it but whatever you say
Anyone have a good AFK Zone plugin for my server? People gets rewards for stay AFK
yeah maybe. i wouldnt want either of us to have to compromise on what we want out of our mods.
I register the System once using the second constructor, so it starts with one object already added to the internal list. That specific object works correctly in the world.
However, when I try to add a new object through a command in-game, two strange things happen.
- When I log the list from the system, inside the game it appears to be empty, as if the constructor never added the object I passed when registering the system.
- When I run the command and log the list again, the new object does appear in the log, but it still does not work in the game.
It’s like the list being iterated in the tick method and the list stored as a system attribute are not the same list. But that doesnt make sense because they are the same
I can give you the actual code and some logs
Ok so CFR finished decompiling.... Where did it put the decompiled code lmao
yes yes
try checking in the same dir of the original server.jar
well im willing to at least share things that i find useful. though im just literally getting started now.
Nothin in there just the Server.jar
I didnt specify any specific directory to decompile into
mmh try checking the docs of cfr maybe he put the decompiled files in a default folder, or in the folder from you start the program (not sure if you are on cmd)
I've been trying to figure out how to create custom instances but when I select my bson file in /instances the game just gets stuck on "Loading..."
for now i'm trying to know how to do new customUI and then do a block that will open that gui when interacted (like opening a workbench or a chest)
yeah im interested in this as well. i will want to create a GUI to interact with the storage system.
ill let you know if i find anything about it.
okok
Accept the dm, I can assist you
hey guys i have a custom chest defined by and in the inventory it gets its name and description however when trying to interact with it it Still says F to open Small XXXX Chest.anyone know what i need to set in the json to set it to something else?
you mean how to set the name?
yes
is there any documentation on this
Is it just me or does the asset editor search SUCK!
you need to set up the name in the server.lang file, and then in the translation field in the json you put the path like "server.<name of the variable>" "server." is the name of the file .lang that need to be put in the "Languages" > "en-US" folder for example "item.name.my_new_chest.name=Custom chest" in the json under translation you will put server.item.name.my_new_chest.name and the game will update that after the reboot of the server i think(for me work only after that) @surreal flame
i did that and inventory wise it has the correct name and description however when im walk upfront the chest it says "Press F to open small bla bla chest" and i want to change the small bla bla chest string
mhhh, not sure why do that then, maybe there is some other translatio variable to set up for when you see that popup?
nah only name and i already added description but why you gave me a clue lets check the original file
java -jar .\cfr-0.152.jar C:\Users\Chris\Repositories\HytaleServerJump\HytaleServerJump\libs\HytaleServer.jar --outputdir /tmp/decompiled
So I ran this command, I cant for the life of me fine where its put the files
I made a /tmp/decompiled directory inside the folder with CFR and the code isnt there
Has anyone developed any towny plugin that has war mechanics?
Hey has anyone used ProjectileConfigs? cant seem to trigger any damage even with vanilla ones
Ok I've solved it now I had to put a . before /tmp
Is there a way to display floating text in the world
Idiot proof guide github com/HytaleModding/patcher
Was able to use this to decompile the server jar and it was easy with no java knowledge
Probably C:\tmp\decompiled? If it didn't error
try checking the global /tmp folder
yep that
i think you need to make a new block like a sign that have the background invisible
By reading the guide you acutally learn something
not sure if you need to trust the ai for decompiling file
is there a component for living creatures? like animals who attacked me? (entitysource)
try checking in the npc section of the source code
where is is located? @primal cypress
I managed to sort it with some finagling, thanks
Hey !
Do you have some doc about giving a custom component to a custom bloc ?
Hey has anyone used ProjectileConfigs? cant seem to trigger any damage even with vanilla ones
com\hypixel\hytale\server\core\universe\world\npc
whats a good server
TaleLib's implementation for holograms uses projectile component to draw the text, pretty clever.
This is awesome, thanks
Is there some good documentation on making a custom event?
The damage is not set in the ProjectileConfig, its set in the spells Projectile properties
guys, simple question, if i've a local server that i start for test the plugin, 1 the server automatically reload the plugin if i make some change in the code (i think that doesn't do that)? 2 there is a method for reloading the plugin, like a button in-game or a command prompt to the server?
There is /plugin reload but you have to make sure your plugin properly handles the lifecycle
ok
My friend and I are working on a faction / claim plugin I want the claims to show up in chunk size on the map, how can I do that? We managed to get a marker created on the map in the middle of the chunk but that also creates a waypoint on the compass
What development library do yall suggest using for creating my own plugins? I've seen a few out in the wild. I've seen "HytaleDevLib" and "TaleLibs" plus other smaller ones that do one specific thing or another.
Hey,
can I add my own blocks to my plugin?
Or is this only possible with packs?
(I've managed to do it with items, but I'm stuck with my plugin at the moment).
That's done in packs. You can do it together with a plugin though
just add the "resources" folder to your plugin
ok thanks
actually, you should already have the manifest.json, right?
yeah
yeah that's the root of the pack. just add "IncludesAssetPack": true
ok i try
For custom events do I have to make my own event system? I'm not finding much on it.
There is an event system and the ecs system
I have only seen some stuff on listening for pre made events not how to create, call, and list for custom events. Could you point me in the right direction?
Implement IEvent<T> (or extend an event that implements it) and call
var dispatch = assetStore.getEventBus().dispatchFor(YourEvent.class);
if (dispatch.hasListener()) dipatch.dispatch(new YourEvent());
Ahhh thank you I did follow a pre made event to see how they were made so I do have one created I just couldn't find how it was triggered! Thanks
did anyone experienced
java.lang.IllegalArgumentException: World default already exists on disk! while uploading a backup world?
Maybe duplicate id?
where?
uuid field in the config.json (and config.json.bak)
What is the assetStore you are using?
the one from the world
each world has an asset store
Okay thank you
where the entity components are stored
Hello, when I start my server it simply gives this error which I can only resolve by deleting the default folder.
2026/01/24 01:17:59 SEVERE] [SERR] java.util.concurrent.CompletionException: com.hypixel.hytale.common.util.CompletableFutureUtil$TailedRuntimeException: java.util.concurrent.CompletionException: java.lang.IllegalArgumentException: World default already exists on disk!
The problem is that it freezes the rest of the startup process.
For context, I'm dockerizing the server, I'm using a already built image which is open source rxmarin/hytale-docker:latest
I've tried deleting universe and uploading my backup I got this error.
I also tried generating from the dockerized application a world (which started)
and when I deleted the volume, started again the container and uploaded the same backup generated from the same binaries I got the world already exists on disk
lmao you're not the only one i've seen alot of ppl in here asking for this with no response at all
(i'm also sorry for hoarding this channel but there's no server-side support channel)
same 😢
Are you using the pre-release version? I suspect that's the case on mine.
is there a selector for the version?
Version
✅ Downloader: 2026.01.09-49e5904
✅ Server: 2026.01.17-4b0f30090
I simply copied the Server folder from the game itself; I didn't use the downloader.
But since I'm having this problem too, I don't know how to solve it.
i'm on release
It's not that the problem I do have the assets zip and all the binaries right
Nope, it replicates everytime I download the binaries with fresh worlds generated on the same binary version
😵💫
Hey there! Anyone know why im getting this error?
this.getEntityStoreRegistry().registerComponent(
PlayerIntTag.class, "PlayerIntTag",
BuilderCodec.builder(PlayerIntTag.class, PlayerIntTag::new)
.append(new KeyedCodec<>("Value", Codec.INT),
PlayerIntTag::set, PlayerIntTag::get)
.build());```
Cannot resolve symbol 'INT'
World loads fine in singleplayer, I'm using java 21 and on a world generated in runtime everything works, IDK about the docker image I checked it, doesnt do that much it's also open source software
romariin/hytale-docker i can't send up the link but if you add the github domain before you should see the source for the cli and the docker image
Codec.INTEGER
does anybody have any clue on how to make a created entity walk forward. just that
ah, thanks! new to java lol
i need an isolated enviroment
CI + K3s = ❤️
hytale-docker it's actually using this image as runtime and not java21
FROM eclipse-temurin:25-jre-alpine
but idk tho doesnt seems to me an issue of the image
please tell me u got the solution xd
it's default
to a random name or do i have to rename the directory default?
it's already that
yes
Does anyone know where the new download for the Hytale dedicated server and asset files are because mine seems to be out of date and I don't see them on the Hytale website?
first day of asking simon to open source the server so i can solve the problem myself
It's not obfuscated
i never decompiled a java binary, do class names and methods saves or do i get an output such as
class1
method1
method2
I'm trying to upload a backup world into a dockerized server
guys, i need some help in making a .ui file, for now this is the content:
$C= "../Common.ui";
Group {
Anchor: (Width: 400, Height: 250);
Background: #1a1a2e(0.90);
LayoutMode: Top;
Padding: (Full: 5);
Label #Title {
Text: "Test Interactive GUI";
Anchor: (Height: 40);
Style: (FontSize: 20, TextColor: #ffffff, Alignment: Center);
}
$C.@TextField #TextInput_name {
Anchor: (Height: 25);
PlaceholderText: "Enter the text to print in the chat";
}
$C.@TextButton #TextButton_send {
Anchor: (Height: 45);
Text: "SEND";
}
}
if i try to join with this setup the game doesn't allow me to enter saying "unable to load CustomUI" i think the problem is the $C.@TextField and $C.@TextButton (because if i remove them i can join) i followed a yt video of troubleDEV and his video work everything, and i've the same folder structure
There's some GUI tools like Recaf, CFR and ASM, JByteMod that can make it easier
When freshly generated everything works fine, if I upload any backup world i get the error
by using that docker image, it does almost everything for you
its a typescript cli which handles
token auth
server download and extraction
then the startup works by itself
it just converts it to source code
Mixins as well, you can patch method functionality. That's the cleanest way to do it
i just delete universe and paste the backuped one
what i need to see there? or i need to ask in that channel?
the world structure is not that big, i checked most of the file and they seems right
I also tried that same output
This is for server plugins, so yes.
yes
it wouldn't start tho even if default and config has a different name i tried that as well
it looks to me like a server bug
can you show the entire exception which you get on start ?
works in local?
oh ok sry, the ui is for a modded command so i thinked it was good asking here
did you try to replace universe?
a fresh world works, the error occours only when switching universe
can you share your dockerfile if possible or are you using my same repo?
not your world just the dockerfile
so i can test the same enviroment as yours
I just successfully made a plugin GUI menu for checking and updating plugins and selecting a version and download all through the GUI 🙂
.
wish I could post a picture lol
I have placed all the contents of my pack in my Resources folder,
but it is not displayed in the game.
that doesnt mean there is a dockerfile -- wsl isnt docker
u did that using plain wsl?
"Plain WSL"? what does that mean
Im guessing wsl without docker on top
are u sure it loads on start ? there should be messages about the assetpacks
^
Still don't know what that means... that implies that anytime someone wants to run a linux VM with WSL they're using docker?
Can players have a more simple way to Play with each other?
nope
yeah its an odd way to phrase it
but yes, it implies that wsl with docker is a more normal configuration than wsl without
I only find this error
java.lang.NullPointerException
at java.base/java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011)
at java.base/java.util.concurrent.ConcurrentHashMap.putIfAbsent(ConcurrentHashMap.java:1541)
at java.base/java.lang.ClassLoader.getClassLoadingLock(ClassLoader.java:681)
at com.hypixel.hytale.server.core.plugin.PluginClassLoader.loadLocalClass(PluginClassLoader.java:130)
at com.hypixel.hytale.server.core.plugin.pending.PendingLoadJavaPlugin.load(PendingLoadJavaPlugin.java:43)
at com.hypixel.hytale.server.core.plugin.pending.PendingLoadJavaPlugin.load(PendingLoadJavaPlugin.java:15)
at com.hypixel.hytale.server.core.plugin.PluginManager.setup(PluginManager.java:215)
at com.hypixel.hytale.server.core.HytaleServer.boot(HytaleServer.java:345)
at com.hypixel.hytale.server.core.HytaleServer.<init>(HytaleServer.java:303)
at com.hypixel.hytale.LateMain.lateMain(LateMain.java:54)
at com.hypixel.hytale.Main.main(Main.java:43)
i didn't know how to say it but i meant that xd
Have you tried to load your universe without docker? Just on your host machine, if that's where you test
just in sp, i didn't try hosting a server on my machine because I can't
seems like your main class is invalid or something like that
What's SP
gonna try tomorrow tho
I also think that, but I don't get which data is wrong
there are not that much of variables and the hytale server manual doesn't help
"Version": 3,
"ServerName": "Hytale Server",
"MOTD": "",
"Password": "",
"MaxPlayers": 100,
"MaxViewRadius": 32,
"Defaults": {
"World": "default",
"GameMode": "Adventure"
},
"ConnectionTimeouts": {
"JoinTimeouts": {}
},
"RateLimit": {},
"Modules": {},
"LogLevels": {},
"Mods": {},
"DisplayTmpTagsInStrings": false,
"PlayerStorage": {
"Type": "Hytale"
}
}
me too, i'm asking because there arent many info out there
idk tomorrow i will also try on wsl or my host machine
im more confused than anything
lemme try
"WorldGen": {
"Type": "Hytale",
"Name": "test"
},
I've found this setting into config.json of the worlds/default
yes i'm chaing also that to test
it was Default before
anyone seen the memories plugin crash before?
What is the name of the property called to make elements in the .ui file scrollable?
okok
I reverted this to 'Default'
i changed config.json of the root directory to test
this is my tree structure
universe
- players
(empty) - worlds
- test
done, launching it
Caused by: java.lang.IllegalArgumentException: World test already exists on disk!

server is release
client should be released as well i didnt change any flag in the client
Version: 2026.01.17-4b0f30090
client
launcher version
release/2026.01.23-e5bfce5
patchline is release
Idk because it comes from aternos
I also had that doubt so I tried generating with my enviroment a world backuping it
Deleting the volume -> importing the generated world
I got the same error
so its not def a version issue
For anyone using VS Code, Please assist
I've added the DecompiledServer folder to my Workspace, How can I attach it to Intellisense?
yes LMAO
but i tried another world generated from the same enviroment (my docker) and i got the same error
i would just post the world but i cannot do it here i can send it to u in private
but there's nothing special in it i generated it yesterday
yes but as i said I also used a generated world from the same enviroment and I occurred into the same error
does anone know how to register this component?
public class PlayerDataComponent implements Component<EntityStore> {
private Integer PlayerState;
private Integer Team;
public PlayerDataComponent(Integer state, Integer Team) {
this.PlayerState = state;
this.Team = Team;
}
@Override public Component<EntityStore> clone() { return new PlayerDataComponent(PlayerState , Team); }
}```
yea but which flag xd
.
this is my aternos config.json
{
"MaxPlayers": 20,
"MaxViewRadius": 5,
"Password": null,
"Defaults": {
"World": "kyrokun",
"GameMode": "Adventure"
},
"Modules": {
"IdleTimeout": {
"TimeoutMinutes": 30
}
},
"Version": 3,
"ServerName": "Hytale Server",
"MOTD": "",
"LocalCompressionEnabled": false,
"ConnectionTimeouts": {
"JoinTimeouts": {}
},
"RateLimit": {},
"LogLevels": {},
"Mods": {},
"DisplayTmpTagsInStrings": false,
"PlayerStorage": {
"Type": "Hytale"
}
}
make a fresh server, port over only the universe files
I did that same error
with a fresh world also lol
Looking for German Mod/Plugin Creators they like to create a unique Server with a cool unique Playfeeling (Theme: medival Life) if ur interest let me know. Note: its a just for fun project. We will upgrade the Gaming Life for much players that life and love the Hytale vibe feel free to dm💚 but pls just germans for a better communication.
I respond later 🙂
this.getEntityStoreRegistry().registerComponent(PlayerDataComponent.class, "PlayerDataComponent", PlayerDataComponent.CODEC)
You would need to create a codec for it to work however.
I also tried importing the world config and the backup I ran into the same error
i can import the same configuration and the backup, it's gonna give the same error xd
lemme try
is there documentation on things like block .json files and things like categories?
alghuem ai com mundo criado??
any info on how id do that? sorry im new to java
{
"Version": 4,
"UUID": {
"$binary": "REDACTED",
"$type": "04"
},
"Seed": 1769119301873,
"WorldGen": {
"Type": "Hytale",
"Name": "Default"
},
"WorldMap": {
"Type": "WorldGen"
},
"ChunkStorage": {
"Type": "Hytale"
},
"ChunkConfig": {},
"IsTicking": true,
"IsBlockTicking": true,
"IsPvpEnabled": false,
"IsFallDamageEnabled": true,
"IsGameTimePaused": false,
"GameTime": "0001-01-02T06:48:40.334817603Z",
"ClientEffects": {
"SunHeightPercent": 100.0,
"SunAngleDegrees": 0.0,
"BloomIntensity": 0.30000001192092896,
"BloomPower": 8.0,
"SunIntensity": 0.25,
"SunshaftIntensity": 0.30000001192092896,
"SunshaftScaleFactor": 4.0
},
"RequiredPlugins": {},
"IsSpawningNPC": true,
"IsSpawnMarkersEnabled": true,
"IsAllNPCFrozen": false,
"GameplayConfig": "Default",
"IsCompassUpdating": true,
"IsSavingPlayers": true,
"IsSavingChunks": true,
"SaveNewChunks": true,
"IsUnloadingChunks": true,
"IsObjectiveMarkersEnabled": true,
"DeleteOnUniverseStart": false,
"DeleteOnRemove": false,
"ResourceStorage": {
"Type": "Hytale"
},
"Plugin": {}
}
java.lang.IllegalArgumentException: World kyrokun already exists on disk!
I imported the same config and universe from aternos
I recommend reading "Storing Persistant Data on the Player" at HytaleModding (Search "Hytale Storing Persistant Data on the Player" on Google)
thanks tons!
Yes it does!
😭
and it even restarts fine it's some option hidden somewhere
yea lmaooooooo it does
I tried doing that like a couple of hours ago, I tried also playing with the json file and adding the new generated id to my backup (guess what? it didnt work)
I don't get what's the unique hash or string which identifies a valid world from a not valid world
Is there a plugin to spawn prefabs in during world generation?
lemme generate a world i'll download it
yes
i have prefabs already, im jsut trying to figure out how to get them to be spawned/created when the world is generated.
does anyone know if getUuid() is deprecated. I'm using ctx.senderAs(Player.class) to get the player, but player.getUUID() is marked as deprecated on my intellij. if so whats the recommended way to get it
my backup
"SpawnSuppressorMap": {
"266f710e-453a-3c96-a893-85b777636df1": {
"Position": {
"X": 86.0,
"Y": 105.0,
"Z": -178.0
},
"Suppression": "Spawn_Camp"
}
}
}
fresh world
{
"SpawnSuppressorMap": {}
}
all the other config files are the same
Let me import just the seed of the world lets see the outcome
it booted
next ill reimport the players
I do believe this is the correct way, if you already have a Player instance:
UUIDComponent uuidComponent = (UUIDComponent) player.getReference().getStore().getComponent(UUIDComponent.getComponentType());
LOOOOL i managed to reimplement my items and my last position
Ok so I've just compiled my mod and booted up my world with the mod enabled
My file structure is as follows
src > main > java > com > shubshub > plugin > [Code for the Mod]
src > main > resources > Server > Item > Items > [My Custom Item].json
But I cant seem to find my item in the Creative menu at all, How do I give it to myself?
Is there something extra I need to do to make the gradle build command include these files in the mod?
It just misses the edited chunks, lemme reimport them as well lets see
is the assetpack loaded on start ?
How do I make it do that?
Yeah the mod is enabled for the world
[2026/01/24 02:31:46 SEVERE] [ChunkStore] Failed to load chunk! 6, -8
Where do I find that?
Too good to be true
bruh
has anyone had issues with mods that add ores where an ore will overwrite another mods ore generation?
Oh wait if I disable "Show only descriptive features" it does appear 😄
thanks
yea, i tried also using the sp backup which loads the edited chunks
while in sp works the server crashes
there's probably some unique value somewhere which is not mentioned
better than nothing ill also try this behaviour on host machine just to have a confirmation
Any idea on your end?
Everything is back except the blocks i've added/removed into the world
Oh ok, I thought I answered it, It is loaded the Mod is Loaded for the world, I dont know what you mean by AssetPack loaded on start otherwise
give a look in the log and look if the server loads the mod also as assetpack
Where do I find the logs xD
In the root folder of your world / server ?
Oki 1s
[2026/01/24 02:33:43 INFO] [PluginManager] Loading pending plugins from directory: C:\Users\Chris\AppData\Roaming\Hytale\UserData\Mods
[2026/01/24 02:33:43 INFO] [PluginManager] - com.shubshub:HytaleServerJump from path HytaleServerJump-0.0.1.jar
[2026/01/24 02:33:43 INFO] [Universe|P] Scheduled backup to run every 30 minute(s)
-=|Setup|1.0```
Yup it is
-=|Starting|99.0
[2026/01/24 02:33:54 INFO] [PluginManager] Enabled plugin Hytale:NPCObjectives
-=|Starting|100.0
[2026/01/24 02:33:54 INFO] [PluginManager] Enabled plugin com.shubshub:HytaleServerJump
[2026/01/24 02:33:54 INFO] [HytaleServer] Plugin manager started! Startup time so far: 11sec 947ms 131us```
Thats Plugin and not assets load.
Oh ok, What do I need to do to make sure the Asset loads then?
Look after [AssetModule|P] Loading packs from directory: mods
Hmmm I dont think it loads, Is there a piece of code I need to add to my mod to make it do that?
Google for hytale mod assets doc, there should be many docs for example from "HytaleModding" ^^
Can someone help me? I can't enter any world; it says connection error.
more context? singleplayer/multiplayer ?
singleplayer
whats the exact error ?
This appears when I enter a world: FAILED TO CONNECT TO SERVER ( an unexpected error occurred) server failed to boot
Hi there, originally JS environment & rust developer here.
I wanna dev my own mods for my server and started relearning java. I used an example plugin made by a modder, compliled it and it works like a charm.
I would like to know where i can find all the official (& unofficial useful ?) documentation to start with all the informations we have to date.
Could someone guide me through the ecosystem and recommand links please ?
The official, I said official I think it’s actually community made—don’t wanna spread mis info, hytale template plugin on GitHub links to their documentation
i made a dust2 1v1 server XD guns and everything
Take a look in the log file (%APPDATA%\Hytale\UserData\Logs), it should state what's wrong in there
britakee-studios gitbook hytale-modding-documentation i guess is the only thing i need, right ?
thank you guys, have a good modding session
you as well
Hey everyone, I'm looking for a team or group of people to join in doing development stuff, I was a minecraft plugin dev for many years and want to get into hytale devving more and creating mods and plugins. If anyone has any opportunities or communities I could join, let me know!
how do i make a new entity?
Does anyone know how to make it so that everytime a player joins, it brings them to a spawn? I am stuck 🙁
im using the hytale-example-plugin made by UP and Kaupenjoe, is pretty simple and they made a video on how to use it and setup for the first time
i think you should check for a playerAddedEvent o playerJoinedEvent or something similar, and then do your teleportation stuff
try to look in the Events folder
I have a PlayerJoinedEvent
my game crashed and I cant rejoin my world :/
alright lads, I did it, The Portal works, It triggers my custom function
Now.... How do I go about actually Jumping servers xD
What docs should I be reading
does TransformComponent contain head rotations as well?
no
no
guys, i was starting to doing a new type of blockstate, but looking at the source files its says that will be deprecated, can i stil use blockstate or i need to use another class?
Hey guys does anybody know of a plugin where u can customize the claim block custom ids with custom sizes, cuz me and buddy have made custom claim assets we want to use for our server to sell in shop!
how to use blocks invisibles?
hytale itselfe uses deprecated functions internaly and a lot of the time there is not realy a alternative so i would just use that for now
oh ok
someone know how load dynamically images on .ui?
@fluid coral Re: Prefab builder, would it be possible to have it pre-populate with vanilla prefabs?
Sadly, I don't think it's possible to jump between servers on command/event/trigger 🙁
Yup it is, I managed to do it
});```
This does the trick right here
Oh!
I've been looking through nearly every class (Including PlayerRef).. I apparently missed that function >.<
I just asked Claude Sonnet 4.5 to look for me xD
VS Code provides a nice little UI for Copilot, But I dont let it actually write any of the code
bit of a dumb question, how do you get player ref from player
PlayerRef playerRef = commandBuffer.getComponent(ref, PlayerRef.getComponentType());```
Start by creating a new class that extends DeathSystems.OnDeathSystem. This allows your system to automatically react whenever an entity dies. it does not say how to add it in to the system, how do i add this to the system?
like how i added the Damage but i tried to add the deathsystem to but nothing happens
entityStoreRegistry.registerSystem(new DamageEvent());
wait how do I get commandBuffer and getOwningEntity()
Both dont work for me
CommandBuffer<EntityStore> commandBuffer = context.getCommandBuffer();
Whats the best reference for documentation? Wanting to make a plugin/mod
And context is an @Nonnull InteractionContext context,
what is that
Its an argument on firstRun x..x For an Interaction
@Nonnull InteractionContext context,
@Nonnull CooldownHandler cooldownHandler) {
CommandBuffer<EntityStore> commandBuffer = context.getCommandBuffer();
Ref<EntityStore> ref = context.getOwningEntity();
PlayerRef playerRef = commandBuffer.getComponent(ref, PlayerRef.getComponentType());
if (playerRef == null) {
return;
}
World world = commandBuffer.getExternalData().getWorld();
// Show them a title before transferring
EventTitleUtil.showEventTitleToPlayer(
playerRef,
Message.raw("Transferring to Server in 5 Seconds"),
Message.raw("Please wait..."),
true
);
// Schedule the server transfer after a delay (e.g., 2 seconds)
CompletableFuture.runAsync(() -> {
world.execute(() -> {
playerRef.referToServer(targetHost, targetPort, null);
});
}, CompletableFuture.delayedExecutor(5000L, TimeUnit.MILLISECONDS));
}```
anyone know why im getting an error here (custom component)
PlayerData customData = store.ensureAndGetComponent(ref, HelloPlugin.PlayerDataPlugin.instance().getYourPlayerDataComponent());
^ Cannot resolve method 'instance' in 'PlayerDataPlugin'
heres the regestry
public class PlayerDataPlugin extends JavaPlugin {
private ComponentType<EntityStore, PlayerData> PlayerDataComponent;
public PlayerDataPlugin(@NonNullDecl JavaPluginInit init) {
super(init);
}
@Override
protected void setup(){
this.PlayerDataComponent = this.getEntityStoreRegistry().registerComponent(
PlayerData.class,
"PlayerDataComponent",
PlayerData.CODEC
);
}
public ComponentType<EntityStore, PlayerData> getPlayerDataComponent() {
return this.PlayerDataComponent;
}
}```
and heres the actual class
public class PlayerData implements Component<EntityStore> {
// define some vars!
private int someInteger;
private String someString;
private Map<String, String> someMap;
public static final BuilderCodec<PlayerData> CODEC =
BuilderCodec.builder(PlayerData.class, PlayerData::new)
.addField(new KeyedCodec<>("SomeInteger", Codec.INTEGER),
(data, value) -> data.someInteger = value, // setter
data -> data.someInteger) // getter
.addField(new KeyedCodec<>("SomeString", Codec.STRING),
(data, value) -> data.someString = value, // setter
data -> data.someString) // getter
.addField(new KeyedCodec<>("SomeMap",
new MapCodec<>(Codec.STRING, HashMap::new, false)),
(data, value) -> data.someMap = value, // setter
data -> data.someMap) // getter
.build();
// Getters and Setters are for the purpose of this example omitted.
// constructor
public PlayerData() {
this.someInteger = 0;
this.someString = "";
this.someMap = new HashMap<>();
}
// copy constructor for cloning
public PlayerData(PlayerData clone) {
this.someInteger = clone.someInteger;
this.someString = clone.someString;
this.someMap = clone.someMap;
}
@NullableDecl
@Override
public Component<EntityStore> clone() {
return new PlayerData(this);
}
}```
Your PlayerDataPlugin doesn't contain an instance() function?
omg it works its just the dumb game keeps putting the plugin/mods to false for usage
wdym?
hytalemodding
The PlayerDataPlugin is an instance of JavaPlugin and JavaPlugin doesn't contain a static instance() function by default.
Add this below private ComponentType<EntityStore, PlayerData> PlayerDataComponent;:
private static PlayerDataPlugin instance;
public static PlayerDataPlugin instance() { return instance; }
Then in the setup() function, add this at the top:
instance = this;
tysm! ❤️
Same, Sorry I cant be of more help here
Hi. I want to make a hollow stone box at an undetermined time in a world, say, when a player types a command. Am I supposed to use prefabs to spawn, and if so, how do i do this? I know you can use world.setBlock() but is this good to use performance wise for complex shapes that aren't just a single block?
its inside SimpleInstantInteraction for first enable it get this
did you update assets.sip
I'm trying to open a custom UI when I interact with my Block
I've got this setup
"Use": {
"Interactions": [
{
"Type": "OpenCustomUI",
"Page": {
"Type": "PortalSettings"
}
}
]
},
"CollisionEnter": {
"Interactions": [
{
"Type": "ShubshubServerJump",
"Next": {
"Type": "Simple",
"Effects": {
"LocalSoundEventId": "SFX_Portal_Neutral_Teleport_Local"
}
}
}
]
}
}```
Claude Sonnet is no help here, What am I doing wrong?
I already registered PortalSettings
```OpenCustomUIInteraction.registerBlockEntityCustomPage(
this,
PortalSettingsPage.class,
"PortalSettings",
(playerRef, blockEntityRef) -> {
return new PortalSettingsPage(playerRef, blockEntityRef, CustomPageLifetime.CanDismiss);
}
);```
Like so, But in game I get a Missing Interaction for the Use Interaction
Hang on I mightve just solved it, Please hold
I had a similar problem before. I ended up creating a custom interaction to work around it.
If you find another solution for it I would love to know ^^
Well I changed "Type" to ID, And now the error doesnt occur but my GUI doesnt popup, Might be an issue with my code now, Will be back
Ok looks like because I am dumb, And was relying too much on the AI here, It didnt even tell me how to actually load the UI xD
Is there a way to access/modify players components even if its offline?
anybody know how to listen for packets
Losing my mind here, so I'm trying to create a custom version of the hub portal that will make a new world every week. All that needs is for the name to change every week automatically.
However, if you copy the HubPortalInteraction, it works fine to go to the world when you're creating it, but then if you ever use the portal again, it returns a No Such Method error: NoSuchMethodError: 'void com.hypixel.hytale.server.core.modules.entity.teleport.Teleport.<init>(com.hypixel.hytale.server.core.universe.world.World, com.hypixel.hytale.math.vector.Transform)'
The code of the interaction is identical to the original, the only difference is that the interaction is registered by a mod plugin.
Google "hytalemodding Listening to Packets", there is a small guide for that
ty, i kept getting annoyed because all the docs i see online are blatantly ai generated and just literally false 😭
Ok I managed to make my Use Interaction work
But my world keeps crashing saying "Could not find document Pages/PortalSettingsPage.ui" for Custom UI Append command
My UI file is in >resources>Pages>PortalSettingsPage.ui
@static shadow I ended up using a Custom Interaction Handler like you, Maybe you can assist here?
Does Pages need to go under the Server folder?
its complicated you need Common > UI > Custom > Pages
Oh ok
and enable assets in the manifest
and Common goes under resources?
yeah
Check my project on github: Zinal001/Hytale-Miners
Anyone know best way of loading a prefab into a new instance so its children spawn too? I seem to be able to spawn the prefabs, but chests, and randomizations for the prefabs dont seem to spawn?
how should i go about non ops not building/breaking?
I dont see any Custom UI files here
Anyone know of a stress test plugin that can actually utilize 256gb ram? I've tried two but they cap at 64
Is there somewhere I can see an example of a UI File I think mine might be wrong, Now its crashing not being able to load the UI file cause its bad
i think those are the plugins assets, you shouldn't be able to see them in mods only in the plugin/mod.jar
you can check out a youtuber made simple 3 ways to create pages
is it possible to make a void world?
"/world add worldName --gen=Void" i think
How to cancel the packets?
how would you go there?
or set that as the default of the server
you should check out the /help
/tp world worldName
ah packetwatchterfilter i suppose
Alright we're in boys.... Time to test, Moment of truth
the portals in the game you can create your own
Ah nevermind we're not in
Oh, I thought you meant help with the Custom Interaction Handler 😅
My plugin doesn't yet use custom UI, only ContainerBlockWindow to show a small inventory. (This will be changed to a completely custom UI soon)
is API out?
are the blocks black for you when you do that
you are like above the void, so its the fog
if you paste, ive seen some full grass blocks being black not sure why that happens
anyone know how i can get data from each specific field?
public class PlayerData implements Component<EntityStore> {
// define some vars!
private int someInteger;
private String someString;
private Map<String, String> someMap;
public static final BuilderCodec<PlayerData> CODEC =
BuilderCodec.builder(PlayerData.class, PlayerData::new)
.addField(new KeyedCodec<>("SomeInteger", Codec.INTEGER),
(data, value) -> data.someInteger = value, // setter
data -> data.someInteger) // getter
.addField(new KeyedCodec<>("SomeString", Codec.STRING),
(data, value) -> data.someString = value, // setter
data -> data.someString) // getter
.addField(new KeyedCodec<>("SomeMap",
new MapCodec<>(Codec.STRING, HashMap::new, false)),
(data, value) -> data.someMap = value, // setter
data -> data.someMap) // getter
.build();
// Getters and Setters are for the purpose of this example omitted.
// constructor
public PlayerData() {
this.someInteger = 0;
this.someString = "";
this.someMap = new HashMap<>();
}
// copy constructor for cloning
public PlayerData(PlayerData clone) {
this.someInteger = clone.someInteger;
this.someString = clone.someString;
this.someMap = clone.someMap;
}
@NullableDecl
@Override
public Component<EntityStore> clone() {
return new PlayerData(this);
}
}```
is it a void world? void worlds are bugged rn and all of the grass is black (its dumb) id recommend using i think its summer grass if you need? let me check
store.getComponent(playerRef, PlayerData.getType()).getSomeInteger
Would it be possible to make a mod that lets you tweak individual damage instances in a combo or a single type of attack?
So, for example, lets say i just want to change a Charged Attack's damage but leave the basic hits in the combo untouched. Would a Config.json file let you tweak those values yourself? Or is it all tied to a same damage pool?
For my UI how do I set the value of a Checkbox?
commandBuilder.set("#SyncInventory.Checked", settings.isSyncInventory());
And in my UI Code I have
$C.@CheckBoxWithLabel #SyncInventory {
@Text = "Sync Inventory";
@Checked = false;
Anchor: (Height: 28);
}```
I've got everything else working this is the final frontier of the UI xD
Are the people who made this game in charge of the server, because I'm requesting a refund, and I haven't heard back from them
Anyone able to assist here?
That looks correct as far as I can tell.
did you call sendUpdate() after commandBuilder.set()?
Right, should it really be @Checked and not Checked?
Hmmm let me try that
I get
CustomUI set command selector doesnt match a markup property Selector: #SyncInventory.@Checked
try setting .Value
Ok lets see
Same error but for #SyncInventory.Value
Did anyone have found how to attach a loot table on a item Secondary Action ?
Does anyone know why the map I've already explored turns black again when I relog?
Has anyone found a way to create custom server side HUDs?
com.hypixel.hytale.server.core.entity.entities.player.hud.CustomUIHud;
com.hypixel.hytale.server.core.ui.builder.UICommandBuilder;
check these ones
Anyone got some good resources for learning Java? Ive got experience with GDscript and the ECS structure but Im completely unfamiliar with Java.
erm do aternos servers work on hytale?
Could anyone create a window (for inventories) with custom ui design? I have been trying with lots of work arounds but no one works
yes
it keeps saying connection timed out when i join them
think its best for a plugin/mod interaction codec for that, else i don't know if its possible to add loot table drops when right click an item on asset editor
patch upted 2 today?
i think they just opened few days ago try deleting your server backup if you have worlds and create new
no
ive spent all day on this and im starting to feel stupid 😭
anyone know why this custom component isnt working? its just not working in game
store.addComponent(playerRef.getReference(), HelloPlugin.PlayerDataPlugin.instance().getPlayerDataComponent());
do you register on your main ?
wait 1 sec let me edit 😭
this is in setup
public class PlayerDataPlugin extends JavaPlugin {
private ComponentType<EntityStore, PlayerData> PlayerDataComponent;
private static PlayerDataPlugin instance;
public static PlayerDataPlugin instance() { return instance; }
public PlayerDataPlugin(@NonNullDecl JavaPluginInit init) {
super(init);
}
@Override
protected void setup(){
this.PlayerDataComponent = this.getEntityStoreRegistry().registerComponent(
PlayerData.class,
"PlayerDataComponent",
PlayerData.CODEC
);
}
public ComponentType<EntityStore, PlayerData> getPlayerDataComponent() {
return this.PlayerDataComponent;
}
}```
is it possible to paste a prefab in code cant figure ts out
can you with private static PlayerDataPlugin INSTANCE; and
public PlayerDataPlugin(@NonNull JavaPluginInit init) {
super(init);
INSTANCE = this;
}
use blockselection com\hypixel\hytale\server\core\prefab\selection\standard\BlockSelection.class
is that in the decompiler jar?
If it's your only checkbox you can use #CheckBox.Value
So the settings I've set up for my Custom UI seem to not persist between Saving and Exiting the World and reloading, Is there something else I Need to do?
@steep ember I managed to sort it all, Its working now ❤️
what does connection timed out waiting for a response from the peer mean
didnt fix it, but i found the error its running
java.lang.NullPointerException: Cannot invoke "com.example.plugin.HelloPlugin$PlayerDataPlugin.getPlayerDataComponent()" because the return value of "com.example.plugin.HelloPlugin$PlayerDataPlugin.instance()" is null
at ThirdPartyPlugin//com.example.plugin.SpleefTicking.lambda$SpleefTick$0(SpleefTicking.java:62)
at com.hypixel.hytale.server.core.universe.world.World.consumeTaskQueue(World.java:894)
at com.hypixel.hytale.server.core.universe.world.World.tick(World.java:395)
at com.hypixel.hytale.server.core.util.thread.TickingThread.run(TickingThread.java:89)
at java.base/java.lang.Thread.run(Thread.java:1474)```
this is the new one
public class PlayerDataPlugin extends JavaPlugin {
private ComponentType<EntityStore, PlayerData> PlayerDataComponent;
private static PlayerDataPlugin instance;
public static PlayerDataPlugin instance() { return instance; }
public PlayerDataPlugin(@NonNullDecl JavaPluginInit init) {
super(init);
instance = this;
}
@Override
protected void setup(){
this.PlayerDataComponent = this.getEntityStoreRegistry().registerComponent(
PlayerData.class,
"PlayerDataComponent",
PlayerData.CODEC
);
}
public ComponentType<EntityStore, PlayerData> getPlayerDataComponent() {
return this.PlayerDataComponent;
}
}
Ok I resolved this by doing
import com.hypixel.hytale.server.core.modules.block.BlockModule;
....
public void handleDataEvent(@Nonnull Ref<EntityStore> ref, @Nonnull Store<EntityStore> store,
@Nonnull PortalSettingsPageEventData data) {
// Get the chunk store and portal settings component
ChunkStore chunkStore = store.getExternalData().getWorld().getChunkStore();
PortalSettings settings = chunkStore.getStore().getComponent(this.blockEntityRef, PortalSettings.getComponentType());
...
// Mark the chunk as needing to be saved
BlockModule.BlockStateInfo blockStateInfo = chunkStore.getStore()
.getComponent(blockEntityRef, BlockModule.BlockStateInfo.getComponentType());
if (blockStateInfo != null) {
blockStateInfo.markNeedsSaving();
}
// Close the page
this.close();
}
Does anyone know if they plan on making this online mod eless dumb for friends to pla together without havign to rent a server from nitrado?
did anyone have a mod or plugin that fix the hatched problem everyone that cuts a tree on my server crash
Does anyone know why the map I've already explored turns black again when player relog back to server?
do you think it's because this "IsUnloadingChunks" in the config.json? 
you can run a dedicated server for free
is playerRef an online player? or can i use playerRef even the player is offline?
a valid ref is online
i msut be dumb cuz i cant figur eit out
its basically the same as running a minecraft server
so i can use PlayerRef even the target is offline?
no I don't think so lmao
can i get players name from uuid while the player is offline?
Hello! I got a big platform with archers on it, but when i come near they always run down to me instead of shooting, anyone knows which part of the NPC Role JSON i need to change?
just google hytale name to uuid or get uuid hytale
I have a question: if I remove a mod that generates minerals, could it corrupt the map once it's installed?*
Probably these variables:
"AttackDistance": 15,
"CombatFleeIfTooCloseDistance": 4,
"DesiredAttackDistanceRange": [
5,
14.5
],
"CombatBehaviorDistance": 15,
"TargetRange": 15,
"LeashMinPlayerDistance": 18,
Yes i was already on them but no matter what i do they always run down to me