#server-plugins-read-only
1 messages · Page 107 of 1
Is there a nice way to test plugins locally that require multiple people, without having two accounts?
im loosing my mind logging stuff
has anyone gotten the server auto-updater to work properly? I did the /update apply --confirm command, it shutsdown the server, but doesn't restart it. when i restart it with the script, it doesnt apply the update either
I have IntelliJ IDEA run my dev server in debug mode, yeah. Just be aware that you can't use it while being logged in since the client times out if you pause execution
okay, this peaked my intrest, right now I'm just compiling my jar file and making it output into my mods folder. this sounds like there is alot better way?
guys how is it that we can say java -jar HytaleServer.jar --assets Assets.zip --auth-mode offline
if we're always gonna get
[2026/01/27 21:33:31 INFO] [Hytale] Disconnecting QuicConnectionAddress{} (/, streamId=0) with the message: Offline mode is only available in singleplayer.
Like how could we possibly run the server in singleplayer?
For context I'm trying to either simulate multiplayer or somehow find a way to allow multiple clients to join without authentication so I can test multiplayer features
So i gave someone a world file from my server and when he puts it in his server, it becomes a default world, even though its a flat world with a bunch of builds.. anyone know how to fix?
Yes!
tasks.register('runServer', Exec) {
dependsOn 'deployToServer'
workingDir = file('server')
commandLine 'java',
'-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005',
'-jar', 'HytaleServer jar',
'--assets', 'Assets zip'
standardInput = System in
standardOutput = System out
errorOutput = System err
doLast {
println "Server running with debugger on port 5005"
}
}```
run alongside a idea "Remote VM Debug" application option set to port 5005, then you can use the hotswap features! :) (I had to remove the dots since it was flagging it as a url)
I use the kaupenjoe starter template, for starting the server and debugging.
have to edit the jar for that lol
i can't link it in this channel, tho, and i have some memory leak issue, when i stay connected for too long
yeah it compiles as part of the startup process so i literally just stop and start the server. See Build-9's "Hytale-Example-Project" on github. It has the config for both vscode and idea so you might want to cherry pick the stuff for your environment
Does anyone know how to properly input a downloaded world in hytale? Had a builder create a custom build for me but when I put it into the saves folder and extract it, the world loads but it’s just a normal hytale world and not the flat world with the build
I tried to make it work by spawning a player but the parametres are so many and so specific it's impossible... I guess I'd have to do that... I'll probably just force my friends who have the game to afk in my world to frankenstein on their husks
waiit is it against ToS or something
probably, you cant say cra cked lmao
When you're loaded into singleplayer, run /world list to see if there are other worlds in this save
but hey im not the boss do what you want
I am NOT gonna be doing that
Algún server donde hablen español ?
i need ui wizzard if there is any.
How do i update ui data
custom ui for block that uses custome component,
this component values changes every game tick
i need todisplay label.text like 0/1000
and when player have this ui opened it should update
- how do i get component data from block
- how do i update ui data(im using hyui but only data editing is in page context from events)
how to get a players yaw and pitch? theres getHeadRotation but this is vector3f, and im not sure if its including roll or some other 3d rotation variable
It contains yaw, pitch and roll
alright thanks
I want to add the bat to the chicken coop and have them produce poop from it. How can I do that?
My approach would be to check which component (either on the chicken or the coop block) is responsible for that mechanic and add it to the bat (or the bat to it)
I have been attempting to add them to the block but the bat doesnt have an NPCGroup. Or at least doesnt show up in the asset editor list
Quick Question, how can i use the region announcement Banners for custom messages?
Does anyone know how to make the Background pull a different image dynamically in UI Pages?
EventTitleUtil.showEventTitleToPlayer(
playerRef, title, subtitle,
isMajor, icon, // icons are not implemented yet
duration, fadeIn, fadeOut
);
Thanks alot
commandBuilder.set("$selector #KitIcon.Background", "../Common/${kit.name.lowercase()}_kit_icon.png")
This doesn't work it just displays white boxes with red x
That usually means that it can't find the file. In my experience with images, you can't use relative paths. I had to use complete paths from the Common directory
That relative path works if I don't use string interpolation. I'll give that a try, though
Looking for plugin creators, or asset makers.
**/update check **doesnt work, says "failed to check for updates"
Does anyone know how to change the stats of items that are already in high-tail? Let's say I want to change an iron sword by adding damage, etc.
You do that in the asset editor
When routing my domain to ip address because I’m on a shared box my ip is defined by a different port than default on hytale. Would a proxy work so I don’t have to use a port attached to my domain?
That fixed it. Thank you sir. Not sure why I was thinking a relative path would work from the src
Someone knows how the InteractionVars works?
If you can't use the default port (5520) on your shared box, then a proxy listening on any non-default port won't help you. Just tell hytale to use any port you can use and tell your users to connect to yourdomain.com:<port>
anyone know how to get the damage the player takes? damage.class doesnt seem to give playerref
Why i cant create asset pack? in asset editor?
Hey ya'll so I am trying to spawn an npc called skeleton_giant I cannot because hytale doesn't even have it as an npc u can spawn??
Thanks
Where did you get the id skeleton_giant? I can't find it either. Do you mean one of the praetorians? e.g. Skeleton_Burnt_Praetorian
C:\Users\yourpcname\AppData\Roaming\Hytale\install\release\package\game\latest\Assets.zip\Common\NPC\Undead\Skeleton_Giant
it does indeed exist but you cannot spawn it.
You would likely need to register the entity yourself
That's models, not NPC definitions
is there a tutorial to do this
in the asset editor, copy one of the skeletons and assing the giant model to it
but that doesn't make sense to me either because in machinma u can spawn it
Maybe just try spawning it then, but I'm not sure what the role would be.
Map<String, String> randomAttachmentIds = new HashMap<>();
Model npcModel = new Model.ModelReference("Skeleton_Giant", 1, randomAttachmentIds).toModel();
Pair<Ref<EntityStore>, NPCEntity> npc = NPCPlugin.get().spawnEntity(
store,
18,
position,
rotation,
npcModel,
null
);```
hey there anyone know how plugins like essentials-plus and Icanfly let the player fly? is there a component attached then? because we want die disable everyone who is flying after a certain amount of time (not creative mode)
i have an imports/images directory but cant import images in my server. does anyone know why?
found it it was just weird it was renamed something else in the npc thing
New question is there a way to make mobs bigger in the asset editor or is this something we have to do ourselves
oh yes ther eis found out
I am trying to add an item that does something when activated (right click). I couldn’t get any of the mouse events to do anything, any ideas how to approach this?
Hello, I bought a server host and the server doesn't appear but my money was taken.
Here are two solutions:
hytalemodding,dev/en/docs/guides/plugin/player-input-guide
hytalemodding,dev/en/docs/guides/plugin/item-interaction
You need to contact your server provider
They are not affiliated with Hytale/Hypixel
Go to the website, in the sidebar on "Support"
are a ton of plugins not working for everybody else after update too?
Is there a way to link the text chat between multiple servers?
does anyone know how id register this class?
public class EventDamageSystem extends EntityEventSystem<EntityStore, Damage> {
public EventDamageSystem() {
super(Damage.class);
}
public void handle(int index, @Nonnull ArchetypeChunk<EntityStore> archetypeChunk, @Nonnull Store<EntityStore> store, @Nonnull CommandBuffer<EntityStore> commandBuffer, @Nonnull Damage damage) {
Ref<EntityStore> entityStoreRef = archetypeChunk.getReferenceTo(index);
Damage.EntitySource entitySource = (Damage.EntitySource) damage.getSource();
Player player = store.getComponent(entitySource.getRef(), Player.getComponentType());
if (player == null) return;
damage.setCancelled(true);
}
@Nullable
@Override
public Query<EntityStore> getQuery() {
return PlayerRef.getComponentType();
}
}```
Not inbuilt. You have to do it yourself programmatically.
dang okay
There seems to be a new server update but /update apply --confirm only seems to be shutting down the server not update / restart it
Does this error?
this.getEntityStoreRegistry().registerSystem(new EventDamageSystem());
Does anyone know how to make an entity target a specific player?
I tried the following, but the if statement is false.
if (npcEntity.getRole()
.getRootInstruction()
.getSensor()
.getSensorInfo() instanceof EntityPositionProvider positionProvider) {
Ref<EntityStore> targetRef = targetPlayer.getPlayerRef().getReference();
ComponentAccessor<EntityStore> componentAccessor = targetRef.getStore();
positionProvider.setTarget(targetRef, componentAccessor);
}```
I also tried this, but it didn't work.
```java
npcEntity.getRole().setMarkedTarget("0", targetRef);```
nope, let me see if it works
Yo. Could anyone help me with file layout for a server? I have a ton of plugins that don't work on my dedi vs nitrado
This is likely being overridden by one of the many sensors that would trigger the retarget
The way NPCs work and modifying their targets consistently is a bit annoying, I just made a custom sensor for it, not sure if theres an easy way to get the many sensors to stop what they're doing in regards to detection
The bodymotions (Seeking, Combat, Etc) are all triggered by a sensor so just setting the target wouldn't work unless the bodymotion was also active
Is your custom sensor something you'd be willing to share?
Oh yes definitely, very straightforward, it literally just provides a position
It would be easier for me to just describe it than to show it, but I will send a snippet, I can probably send the whole class
Awesome!
Sensors are global per role but the override method provides an instance of a specific NPC
Hey guys, can you help me? I have a Hytale server with survival mode and about 10 plugins. It has 64GB of RAM and a 16-core processor, but the server has problems with low TPS and very high ticks. You mine a block and it takes a long time to react, and there are only 6 players on the server, with a ping of 40ms.
anyone tried to make a plugin that adds to worldgen? worldgen2? is it even possible?
Should I be using the first or second method here? I'm using NPCPlugin's spawnNPC() which doesn't appear to use EntityPositionProvider by default
did anyone have an issue with the hytale shop mod after updating?
or maybe something different
Thats not working because the sensors immediately re-obtain their information when the NPC calls for it
Have you tried the TargetMemory component
if all players are in the same world, it will mainly use one core, maybe the single core power is lacking? Could try reducing the view distance (chunk render distance) in the server config files
Yeah, I mean once I implement custom sensors or will a custom sensor handle that? I guess a custom sensor can handle that
Im seeing in my decomp that TargetMemory might actually override the active target properly
As long as you add to the known hostile targets
Does anyone here know how to close a CustomUIPage when pressing F key (Use interaction)?
Would it get overridden if the target isn't in line of sight?
Not sure
public class CustomSensor extends SensorBase {
public static Vector3d GLOBAL_TARGET = new Vector3d(-500, 0, 0);
public CustomSensor(@Nonnull BuilderSensorBase builderSensorBase) {
super(builderSensorBase);
}
PositionProvider positionProvider = new PositionProvider();
public boolean matches(@Nonnull Ref<EntityStore> ref, @Nonnull Role role, double dt, @Nonnull Store<EntityStore> store) {
positionProvider.setTarget(GLOBAL_TARGET);
return true;
}
@Nullable
@Override
public InfoProvider getSensorInfo() {
return positionProvider;
}
}
You need to make a builder for the registry
It's currently set to only 8 chunks, but the server is randomly malfunctioning.
I honestly have no idea how to do that
public class BuilderCustomSensor extends BuilderSensorBase {
Implement everything its asking you, specify these:
public Sensor build(BuilderSupport builderSupport) {
return new CustomSensor(this);
}
And
public Builder<Sensor> readConfig(JsonElement data) {
this.provideFeature(Feature.LiveEntity);
return this;
}
this registers but it chrashes every time i take damage now lmfao
any ideas?
Registered like:
NPCPlugin.get().registerCoreComponentType("CustomSensorMine", BuilderCustomSensor::new);
Crashes? Your client or the server
And now what would I do with that builder and how would I set the custom sensor to the entity?
I opted to just make a custom role that only has my sensor and the seek motion
server, i can send the error
Ive sent what the purpose of the builder is for here
Heres my NPC role:
{
"Type": "Generic",
"Appearance": "Sheep",
"FlockAllowedNPC": [
"SwipezNPC"
],
"FlockCanLead": true,
"FlockInfluenceRange": 4,
"MotionControllerList": [
{
"Type": "Walk",
"MaxWalkSpeed": 4,
"RunThreshold": 0.7,
"RunThresholdRange": 0.1,
"Gravity": 10,
"MaxFallSpeed": 20,
"Acceleration": 10
}
],
"MaxHealth": {
"Compute": "MaxHealth"
},
"ApplySeparation": true,
"SeparationDistance": 1,
"SeparationWeight": 1,
"SeparationDistanceTarget": 0.5,
"SeparationNearRadiusTarget": 2,
"SeparationFarRadiusTarget": 7,
"Parameters": {
"MaxHealth": {
"Value": 100,
"Description": "Max health for the NPC"
}
},
"Instructions": [
{
"Continue": true,
"Instructions": [
{
"Sensor": {
"Type": "CustomSensorMine"
},
"Tag": "idle",
"BodyMotion": {
"Type": "Seek",
"SlowDownDistance": 4,
"StopDistance": 2
}
}
]
}
],
"NameTranslationKey": "server.npcRoles.Test_Entity_Damage_Event.name"
}
Its in Server/NPC/Roles/SwipezNPC.json
You don't have to manually register custom entityroles
Yeah send it
okay correction, server doesnt crash it just unloads every world
java.lang.ClassCastException: class com.hypixel.hytale.server.core.modules.entity.damage.Damage$1 cannot be cast to class com.hypixel.hytale.server.core.modules.entity.damage.Damage$EntitySource (com.hypixel.hytale.server.core.modules.entity.damage.Damage$1 and com.hypixel.hytale.server.core.modules.entity.damage.Damage$EntitySource are in unnamed module of loader 'app')
at ThirdPartyPlugin//com.example.plugin.EventDamageSystem.handle(EventDamageSystem.java:28)
at ThirdPartyPlugin//com.example.plugin.EventDamageSystem.handle(EventDamageSystem.java:20)```
theres a few more but these seen ti be the relevant ones
You're casting Damage to a DamageSource but you should be casting damage.getSource() or whatever the source method is
Are there command line arguments to directly start the game in a specific save? I'd like to further automate testing out a mod
I see it uses "Appearance". Would I need to create a role for each entity type? I'm also using a bunch of different entities with all of their default attacks, health, etc.
Thats just the model
When you spawn the NPC you can change it
As for entity specifics yeah you should probably make a new role per entity but you can use inheritance on the roles
All the intelligent NPCs basically inherit from Template_Intelligent which has a ridiculously complicated state machine defined in it
This is a lot of work just to make them target a specified player lol
The way they made the NPCs is very strange and unnecessarilly data driven to the max
is that not what im doing?
public class EventDamageSystem extends EntityEventSystem<EntityStore, Damage> {
public EventDamageSystem() {
super(Damage.class);
}
public void handle(int index, @Nonnull ArchetypeChunk<EntityStore> archetypeChunk, @Nonnull Store<EntityStore> store, @Nonnull CommandBuffer<EntityStore> commandBuffer, @Nonnull Damage damage) {
Ref<EntityStore> entityStoreRef = archetypeChunk.getReferenceTo(index);
Damage.EntitySource entitySource = (Damage.EntitySource) damage.getSource();
Player player = store.getComponent(entitySource.getRef(), Player.getComponentType());
player.sendMessage(Message.raw("damage"));
}
@Nullable
@Override
public Query<EntityStore> getQuery() {
return PlayerRef.getComponentType();
}
}```
Maybe I should try this first. How would I access the TargetMemory?
There probably is a more straightforward way to set the target to an entity but im sure there would be a sensor which would eventually end up overriding it
Its a component
Oh you're always casting it
Ouch, sorry to hear that, whos your provider?
What if the source is not an entity? Haha, check it first
I assume so, but do NPC's spawned with the NPCPlugin have it by default?
Not sure, the intelligent ones should do
its only crashing when the player takes damage though
Scroll down just a little further
thats when its unloading the world
Because your query is set to players only
ohhh i see thanks tons
Lets hope this works 🤞
You should add to knownhostiles
Thank you! Still catching up in chats haha
Good luck on your search for potential customers ^^
The player should already be a known hostile. I am using setClosestHostile(), is that correct?
Sure try that but the way that they check the component in a sensor implies that it is for entities it is aware of that it happens to be hostile towards
And the knownhostiles lists is a list of Refs not entitytypes
Yeah it doesn't work. I could try constantly updating it to se if it works
I'll add the player to that list
Which one did you try? KnownHostiles?
I tried closest hostile, but I'll try that one now
Yeah try that first and if that doesn't work then would have to look for something else
im having issues with some plugins not working on my cloud server vs dedicated. can anyone help?
Doesn't work. I wouldn't be surprised if its immediately being overridden since the player is out of line of sight. Could I just set the entity's target position close to the target and let it automatically detect the target when it gets close?
You are actively fighting the sensors and theres no spot between the sensor and the bodymotion activation
Pathfinding NPCs was why I had to make a custom sensor to feed my pos
ah..
They're roughly the same problem
The Hytale Devs didn't need to make this so complicated lol
The way the NPCs work is like
NPCBrainUpdate:
Interaction:
Sensor: (Passed? Update info)
Bodymotion.runWith(sensorInfo)
No spot to override the sensor without removing it as theres no gap between sensor validation and bodymotion moving
hm
Its a fine system if everything you want required a cause and action
Distance, damage, etc
But internally the whole NPC system is an absolute mess, it took me a day to understand the damn thing
Haha, well at least you were able to use your knowledge to help me out. I won't worry about this for now, but I'll come back to your messages later when I do focus on it. thanks a lot!
There are chained interactions inside interactions and interactions followed by other interactions
JSON defined hellscape state machine
Im trying to create a bat house that acts like a chicken coop for bats. I have the model, the bats drop poop when I kill em so the drop file for them is working. But they wont use my block as a coop. Anyone know what I might be missing? I created an NPCGroup for them to be registered as an acceptable group but still nothin
Hi everyone. I just wanted to ask if it is possible to create free servers for 2 or more players on Hytale, or do we still have to wait for that?
Host it on your own machine if it's just for 2
Is the referToServer stuff broken in the latest update? I have this code which definitely worked a couple of days ago, which no longer is:
event.referToServer("blastmc.tech", 5520);
}```
It is registered, and I _do_ get the redirect info on my client, but then I see this screen:
well I can't send an image, but 'An unexpected error occurred.' in the disconnect message
whats the best was to check if a player walked over a block?
the naiive aproch would be to loop over every block i want to check for every player every tick, but that would escalate very quickly:
50 players, 20 blocks, 30 TPS = 30000 checks a second
Maybe use the
Interaction: oncollision: yourcustuminteractiontype
Look at the instance_gateway for inspiratiom
Just an idea
hmm ive tried doing ref.getPosition() and store.getComponent(ref, TransformComponent.getComponentType()) but it keeps telling me position is 0,0,0
Hello, some have managed to attach custom components to players so they can be saved in the game files. Mine always returns null with player.getReference().getStore().getComponent(player.getReference(), this.getManaPlayerDataComponent()); How do I set a value for this codec for a given player?
The transformcomponent getPosition is returning that? When are you fetching it? PlayerConnect ?
world.execute()
shouldnt matter much, but it's playerpacketfilter -> my event system -> world.execute()
when its called through world.execute it runs on the world thread afaik
other values are correctly gotten, but position is 0,0,0
If the player is not fully made then their position is likely not correct is what im saying
anyone have a issue with the eyespy HUD mod ?
yes, but im printing it every time ClientMovement is sent and its 0,0,0
You're getting the ref back from the gamepackethandler ?
oh im apparently being sent to 0,0,0 as well when i do getPosition, but only like serversided.... my client visibly looks at the position im at
i still count get it to work.. you think i could see some example code? sorry this is my first time working with this type of event lol
Are you intercepting the data and zeroing it out
nope
Its just a regular packetwatcher? If you want to get the players position every tick you don't need to packet watch
Is it still crashing?
no, runs my event system, im listening for many different packets and checking specific deltas on packets
yep
With a packetwatcher, yes?
playerpacketfilter
Is that working for other things and providing you the data? I haven't seen anyone use that, you can use a regular PacketWatcher and register it with registerInbound
You can implement a PacketWatcher
yeah it works fine
and i need the player packet filter because i need the PlayerRef and cancelling packets
You can get the playerref back from a packetwatcher the handler is different and an instance of GamePacketHandler
I created a Tameable Pet Mod for a Shy lil Mushroom character. I also have some videos on how I made it on YouTube
i don't really like your attitude, you could at least try to consider that i'm not a new java developer
i don't see the point when playerpacketfilter gives me the player in teh argument which is all i need
It’s better practice to use a watcher rather than hooking into a filter, that’s all he’s trying to say
Im not having an attitude im genuinely just trying to help you
By using a watcher, it runs on its own thread thus improving results and preventing later issues
yes but im using the filter; sure if i wasnt cancelling packets it's best to use a watcher, but i am filtering packets
The packetwatcher has all the functionality you could want
You get an instance of the packet in the handle override
playerpacketfilter gives me playerref without having to do more work, and the filter lets me just return true/false to cancel the packet
You can't filter using a watcher ...
Again im not sure how many people have used that to success it might genuinely have something wrong with the backend system
Could we get a tpa mod for the server
The watcher provides you the packet
it works fine on everything else, and it doesnt matter because world.execute() runs on the world thread not the packet thread
What do you mean by "filter"? Theres no auto cancellation I suppose but you can zero the data before the server handles it
yes, but this doesnt matter, because having the packet is useless. filtering in hytale terms here is to cancel the packet
So? You can't filter/cancel it using a watcher
You can zero the data before the server handles it I've "cancelled" packets fine
PlayerPacketFilter is a function which has PlayerRef and Packet, so i dont have to do any extra work to get it, then if i return true it cancels the packet (filter)
why would i do that when i can just "return true" and not have to worry about any side effects of it
Yeah I understand but if your filter is cancelling movement packets when they get to the server for seemingly no reason then maybe the filter is whats doing it haha
and if the packetwatcher runs on a separate thread, it'd either have to be blocked by the protocol threaed before processing it, or it just wouldnt do anything at all
which if it was the first it would be completely useless to use a packetwatcher because it'd just stall the other thread anyways
In the event of a lag spike, your event hook could return invalid/incorrect data, that’s why it is best to run it on its own thread as it captures everything without skipping in the event of a spike
there's something called a queue
when i register tasks, it adds it to the queue. the queue is then ran 1 by 1
Okay lets just get back to square one then since you don't want to move off the filter, is all data just getting ignored by the server without you doing anything?
in the order that they were added. this means regardless of "lag" or "async things", since the world.execute() task is run on the same thread (so the same queue), it will run the same order on the world thread as well
this again also does not relate to my problem whatsoever
Are you intentionally cancelling the packet then trying to readback the data?
Why is the packet watching needed if you just want the players position?
The data can still become invalidated from the world thread in the event of a spike, that’s just from my testing that being said
no and nor does this matter / effect the data in any way
im not even using the data, im just calling the player get transform when i receive the data. the data does not matter here
It does matter because if you cancelled the packet then tried to use world.execute to hop to the world thread there would be no motion
so i can filter packets, im doing more than just getting the players posiotion
Thats why im asking, im confused if you want help here
this does not relate to anything i'm saying and isn't true
You think that if you cancel the inbound movement packet to the server and readback the serverside position back on the world thread of the player it would have the position?
hytale does not invalidate packets, this is not C++ with poor memory management, this is java with a garbage collector that removes objects if they are no longer referenced, which in my case they still are
- i am not cancelling the packet
- i am not reading the data on the packet, im reading from the actual palyerref
- yes, it still would, the filter just stops it from being processed, it doesnt wipe the data
this is the dumbest conversation i have ever had dude what the hell
The transform component is updated on the server via the positional data consumed by the packet
yes? this does not relate to anything im saying
Likely the packet handling uses packet memory pooling to avoid garbage collection
If the server doesn't handle it then it won't update the transform!!!!
Common for highly optimized network logic
i am not cancelling the packets.
this still does not relate to my point whatsoever
Thank you thats fine but your other two points are just so wrong and you keep repeating them as if they made sense
i am not using teh packet data nor am i cancelling it or reading it later
i don't see what part of "i'm not reading the packet" is just so wrong
You're having another conversation, this is unrelated to what you're doing, just your misconception that im addressing
this has to be ragebait
😭 🙏
You might have to focus on other things and get back to me because im not sure why you believe to be correct here
Im sure you aren't cancelling the packet, im literally only talking about your "If I cancelled the packet it wouldn't matter cause the serverside position of the player would be correct" which it wouldn't be
We can focus on the actual problem im just letting you know that thats incorrect
.
It does, you said filtering doesn't clear data of the packet
Yes Im aware of that you've told me
returning true on the packet filter means it wont be processed by the server, it does not mean that the server will zero out the data
and this doesnt matter anyways because im not cancelling the packet
so if im not cancelling the packet, why are you saying my argument is if i cancelled the packet?
Im not im just addressing your misconception
your "If I cancelled the packet
Finally finished the rabbit queue system to deliver rewards automatically to players
ragebait 😭 🙏
Yes you said that if you did it wouldn't matter
Im not saying you did, im just saying thats wrong
Point 2 and 3 there are incorrect
What kind of rewards? Across server?
Well you're right on the fact it wouldn't zero the data but it doesn't matter if it did or did not cause the server wouldn't update any transforms which would result in the same thing
this is the point where you realize you're in teh wrong so you're attempting to get the last laugh, i understand it's hard to admit you're wrong but i won't partake in this ragebait any longer 🙏
You might be a bot
point 1: im returning false always, this means the packets arent cancelled. this means anything along the basis of "if you cancel" is invalid
point 2: i'm not reading the data of the packet, this is just a true statement, there is nothing on this to be "wrong" i am literally looking at my code and i am only using the timings of the event, not the actual data of tyhe events
point 3: when i return true, it stops it from being processed, this does not imapct the data of the packet since it'll only be 'zerod out' once it becomes garbage collected (which is after 0 pointers are remaining)
i am not cancelling the packet and wondering why my position didnt update, since again im not cancelling it. i'm also not saying that if i cancelled it my position would still update, obviously it wouldn't
Whatever, items from website shop, whole server rewards, roles, chunks, etc
Incorrect is the wrong term more like unrelated
so again, i'm not going to argue on this when you are just lying
🍿
here's the going back on your words because you know you're wrong. these two words are, ironically, unrelated and mentioned by me beforehand. you brought them up, i answered your misconceptions.
🍿
Im not wrong, "incorrect" was just referring to your misconception
you are making an emotional decision based on your lack of knowledge rather than rationally debugging with me to figure out what the issue is
You said if you cancelled the data (Which you didn't) it wouldn't matter
Wrong @ pal and yes, this is truly fascinating 😂
It's nice entertainment
it wouldn't matter in that specific context because we were talking about the data in the packet. it would matter if you were reading positions afterwards, which i did not say it wouldn't matter in that context
I was initially trying to help you but you refused any suggestion and when I asked for further information you just said it was unrelated
Want a beer with yours? @strange trout
sure cheers
🍻
yes because you started bringing up packetwatcher when im using playerpacketfilter for reasons that i already have given
Did anyone check if the packets are re-used/pooled objects or they allocate/GC it every time anyway? Kinda curious now
🍻
You said if you cancelled the data (Which you didn't) it wouldn't have any effect, which it would
which are easy access to playerref and the ability to filter packets
Why / Where should they be reused?
Dinner and a show here
Has anyone tried to cancel a player's movement, sprint, or crouch? After my own experiments, sprinting and crouching seem to be client sided and can't be affected by the server.
Has anyone else come to a different conclusion?
Packets are very fragile currently, people have network issues across the board but GC
again, wouldn't have any effect in that context. not that it wouldnt have any effects in all contexts
The packetwatcher provides the information you need and you still haven't considered that you not doing anything relating to the packet and yet the data is still not being processed by the server unrelated to the packetfilter, which it might be, but you haven't even considered the possibility, which is confusing
But the GC is volatile
It would because the thing you're reading back is the transform component haha
What do you think the transform component gets updated by?
i have checked, it does not. it just loops over packet filters and if it returns true it'll cancel it and stop processing, like i said
Sounds about right, you can get the crouching state and movement speed I believe though and cancel that way
in the context of reading packet data, cancelling it does not impact, as proven by my reading of the code in my previous statement.
- context of position, yes it would effect if you cancel
- context of transform, yes it would effect if you cancel
- context of reading data, no it wouldn't effect ify ou cancel
I have tried to filter the ClientMovement packet and set movementState.crouching = false, though that did nothing. Though I could be thinking of the modification wrong
Right thats completely correct, which is why I just said it would effect if you've read the transform component back
🤨
Which you've just agreed with me on haha
Is that what you're talking about?
I tried to make a map full of water like this
{
"From": 16,
"To": 50,
"BlockType": "Fluid_Water",
"Environment": "Env_Zone1_Plains"
}
but the water is solid so you can walk on it and you cant swim etc.
hi, i was reading all the wikis/docs that i could find but i wasnt able to get the api methods that can get the player with the playerRef, does anybody knows how to do this?
yes this is what ive been saying the whole time
and related to the playerpacketwatcher vs packetwatcher, all that playerpacketwatcher does is wrap the packetwatcher and just call ((GamePacketHandler) packetHandler).getPlayerRef() to which i say, why would i need to do this myself?
oh and, it doesnt run on a separate thread for any of these. lol
Im starting to think you might have just misspoke about 20 minutes ago and you didn't realize you did
I’m on my phone at the moment so I can’t check how I did it but it was done
How i can support, i buy the game and my acc got the game but i cant log in the game
Website
Also I find it fascinating how 2 individual humans have just argued about whose right whilst agreeing
We truly are blessed with communication during these days of the inter web
The filter?
Hm okay. When you get the chance, let me know. In the meantime, I'll keep messing around
Yeah I’ll check tomorrow now as it’s 00:17am and I cba rn
its like watching the special olympics in the end everyone loses...
Except the people who bet
No winners just a pointless waste of time
filter is the exact same
going for a next round?
No (To HageneeZ) just the filters are wrapped like watchers when they're provided the packet but they are specialized during receive
hi!!! how i can use translation in commands using .lang file? there is an example?
I think there’s Message.translation() no?
Put your lang files in Server/Languages/TheLanguage you want, the name of the file is the prefix of the translation
Which can be fed into Message.translate as mentioned above
private final RequiredArg<PlayerRef> textPlayer =
this.withRequiredArg("player", "myplugin.commands.echo.text", ArgTypes.PLAYER_REF);
private final RequiredArg<String> textArg =
this.withRequiredArg("text", "myplugin.commands.echo.text", ArgTypes.STRING);
``` this is works?
Oooo new launcher with PATCHNOTES!
If
commands.echo.text
Is defined in a myplugin.lang file in Server/Languages/YourLanguage yes it should
this.withRequiredArg(“text”, Message.translation(“<path>”));
Message.<type>() returns a string, by specifying it’s a translation that should do the trick
Im not sure if requiredarg needs a message wrapped
I'll have a look, I think it just takes a string and it assumes the translation
No it doesn’t, but I think specifying a translatable does
I've just checked the vanilla commands they use translation keys directly
protected final RequiredArg<Float> damageArg = this.withRequiredArg("amount", "server.commands.camshake.damage.amount.desc", ArgTypes.FLOAT);
My bad then I thought it was interpreted as a literal unless specified
Are you doing something to the position when you fetch it or are you just trying to print it and its returning zero or something
Hytale is strange and the result returned by getPosition on transforms is not a copy its the direct vector3d object that the position is actually reading from
Im making a quick watcher just to test it now with world.execute
apaprently running getTransofmr sets the position to 0,0,0 it's a messup on hytale's part
You can just call getPosition on the transformComponent
yes does the same thing
Alright. Now I've made a Mod, What mod should I make next hmm
What mod?
A fake/mock player mod which simulates a real player that can be controlled with commands. Its a pain trying to find people to help me test my minigames lol
"Shubshub Server Jump" complete with Inventory Sync
Sounds really complicated tbh
What’s it do?
Which is exactly why I havent done it lol
This is working for me:
@Override
public void accept(PacketHandler packetHandler, Packet packet) {
if (packetHandler instanceof GamePacketHandler handler) {
if (packet instanceof ClientMovement clientMovement) {
var playerRef = handler.getPlayerRef();
var ref = playerRef.getReference();
var store = ref.getStore();
store.getExternalData().getWorld().execute(() -> {
var transformComp = store.getComponent(ref, TransformComponent.getComponentType());
System.out.println(transformComp.getPosition().clone().toString());
});
}
}
}
Do not mind the use of sout I just couldn't be arsed to get the logger
it lets you jump servers, And bring your inventory with you
Are you doing something different? You can ignore everything relating to specification in this watcher
Bruh that’s awesome 🫠 I’m actually going to use it if you posted it already. I’ve been needing something like that
I have no idea on how to make mods but i like to come here and check on what people do from time to time.
Yes its posted in showcase 🙂
I have a problem with the game. In single player, the game works stably, but if I try to connect to a server or create my own server, after 3-5 seconds the game freezes and crashes the computer. However, all buttons do not work. The only thing that helps is to restart the computer. can anyone help?
note on code style btw, you should definitely write stuff as
public void onC2SPacket(final PlayerRef ref, final Packet packet) {
if(!(packet instanceof ClientMovement)) return:
....rest of code
}```
and then using
```java
PacketAdapters.registerInbound(ClassName::onC2SPacket);```
im not doing anything different to that, i don't know why that issue was happening
Ty 🙏
Life saver
Ive just sent you an example theres no need to prettyify an example
Let me know how you get on ❤️
Have you fixed it?
i was letting you know because it's nice to do
Sure
yes
What was the issue? Just not using getTransform?
Early Return Patterns, Nice
Hey I made a new mini game mod but It needs 2 players to start, would anyone like to be my tester 🙂
Sure!
okay!
thanks i got
I’m deadass going to learn to make mods. I just got an awesome idea, if anyone wants to give it a try the idea is to enhance necromancy with new books and skeletons. At least that’s the gist of it
That sounds like a great idea. Now time to go learn Java and the Asset editor and work on it. Lotta people working on mods right now, don't get discouraged if you see something similar. 🙂
I’ve time… everything is a process in life after all
Agreed. I took me about a week to get up to speed and I got two very small mods up right now, so, yay 😄
yuhhh :3
What ECS event is related to inventory changes/picking up items?
I'm sure this has been asked a billion times (sorry!) but... Out of curiosity, is there an official modding template? I saw one from a place called the Hytale Modding Wiki but I don't know if that's official..
quality of life stuff, I made the Q charge stay when you swap weapons... same for the crossbow's bolt charges. I posted in #showcase if you want them 😄
Nothing official, everything is community-generated
Alright. I saw the example of how to set up gradle & have prior experience so just was wondering :)
That’s so useful imo.
Yeahhhh I hope they'll be the type of mods that's are like... always on modpaks and servers.
Picking up dropped items or picking up blocks with interact on those that have it
I don't believe theres an ECS event just related to InventoryChanges
Nevermind there is an LivingEntityInventoryChangeEvent
But its not an ECS event just a regular one
Does anyone have a host I could test with?
I need to test a mod.
Just, spin up a server locally?
What mod are you testing?
how does one disable the breaking of blocks for players
I'm not able to.
I created one
It's rather suspicious to just ask others to run your code on their device
It's not for executing the code, but only the plugin.
Plugins are code
Just place the plugin inside the server.
And it gets executed?
What does your mod do?
It's just an RPG mod where the player has to complete some missions.
Ngl I don't get why you aren't able to make a server yourself
Doesnt really sound like you need someones server, Why not just test it in singleplayer
The server comes alongside the client install
You merely need to move the mod to the right folder and java -jar HytaleServer.jar
Can you use the mod in single-player mode? I didn't know.
Its all running on the same server, Singleplayer just starts a Server locally
PS C:\Users\AVELL\Downloads\Hytale> java -jar
[2026/01/28 01:11:08 INFO] [PluginManager] - Hytale:CommandMacro
[2026/01/28 01:11:08 INFO] [PluginManager] - Hytale:Instances
[2026/01/28 01:11:08 INFO] [PluginManager] - Hytale:LANDiscovery
[2026/01/28 01:11:08 INFO]
Whats the best value server hosting for 3 people?
is there a way to disable the auto tree breaking?
You have to remove the Isaac Newton entity from your world
What
:)
i have no clue
Very open ended question.
Not really, asking for people opinions on servers hosts? like whats good for a small amount of people
Well I was going to recommend hardware. But you are asking about renting an online server.
Hardware, as in hosting on my PC? never done it before ive always brought servers tbh
See my point.
Theres a plugin that does this already
mate if your just gonna be like that, why reply in the first place, most people when they see my question they would either reply with an actual answer or just not reply at all
What is it?
Its called NotRealisticTrees
I did give you an answer that I was going to give you a recommendation for hardware to host the server, but your question was very opened
Its on curseforge
Bruh what a useless argument
What region are you looking the host to be in?
yep and I said I have never done that before and that I usually just buy servers, maybe instead of saying "see my point." maybe say something useful?
I just drop the jar in the Mods folder ?
AU, found a few not too sure if they are good or not tho
Yep
You said your question wasn't open ended. I was looking for clarity.
Are you hosting a server or are you playing singleplayer cause you'll have to turn it on if you're in singleplayer
🇧🇷
Has anybody tried to make the client launch a different binary than the java server?
idk what your problem is mate but I just asked a question, doesnt really matter if its "open ended" or not someone will just ask me a follow up question instead of stating that it was open ended which isnt helpful whatsoever
I've been trying to make a server impl of my own, so it'd help if I can also launch it from singleplayer
Np, imo ur question was pretty clear
Thank you very much :)
You knew he was talking about renting servers? How many plugins he was planning on using? How many long will he run it for? What region he is in? Etc.
Ah! No clue about the providers and pricing in that region, sorry. Hope someone here knows the providers better!
It's pretty clear they were indeed asking about which hosting providers have the best value for their buck
Maybe not the context in which they're going to run the server, but that's wildly different from just buying hardware to accomplish it locally
Yeah for me it was kinda obvious he was asking for a hosting platform that offers good price for enough hardware to host 3 players and probably some mods
your problem is that your assuming a lot lol
Dude, I'm not mad. I'm just asking questions. You've only been hostile.
exactly, Just wanted to know a good value for money server host, really not that hard to understand lmao
I host a lot of stuff on my own hardware, whether it be a laptop or server.
Wouldnt really say Hostile, I asked a question wanting an answer, not to be told I asked my question wrong lol
And what I originally said is that's an openen ended question which led you to be more specific right?
If you don’t want to setup anything urself I guess u should go to nitrado cybrancee or smth like that, otherwise I would suggest u to rent an ovh vps and setup yourself, good hardware and cheap
I have a 64gb ram vps in ovh, 0 issues so far
Actually I’m hosting my server there and also other services like discord bot, apis, rabbit, etc
I searched up "nitrado cybrancee" and "ovh vps and understood nothing lol
Nitrado and cybrancee are different platforms haha
Any java docs yet? Or any good resources for decomp jar docs?
Claude can index the server files and answer questions
Only so far
I've had zero issues so far
Read up on aussieserverhosts dot com, they seem to provide cheap gameservers for that region.
Guys, I create a new world with a plugin using UniverseaddWorld... how can I set this new world as main world at runtime?
When users logs in, they are teleported to this world
But yeah, if you want to jump in the deep end, buy a root server for a month and try to fiddle with it 😄 so much freedom, but with the cost of a bit more of setting up and troubleshooting.
"A bit more setting up" - Its usually more than a "bit more" At least for a proper setup.
I think won’t be worth for him for just 3 friends, doesn’t look like has experience with server setups
Bruh just buy a $7 Hostinger VPS and run the server on there
Follow the server docs https://support.hytale.com/hc/en-us/articles/45326769420827-Hytale-Server-Manual and you cant go wrong
It’s not me who asked 😀
The guy just wanted to rent a server that works out of the box
Lol, I promise you, you underestime your knowledge.
What do you even mean by that. Its so simple. Ive done it mannnnny times
If you do it properly and have to start dealing with permissions, services, firewalls reverse proxies etc, is not that easy for someone without experience 😂
Well, I can tell you what is simple to me is VERY complex to many. But I have been doing my craft for 17+ years.
You guys must be simpletons
Nope. You can't read properly.
Haha
Well, would you be able to write a game engine with proper architecture if I asked you to?
Im indian, what does that mean
Of course?
Not what you think it does.
Einstein over here
Always talking who shouldn’t lol
Says the guy calling everyone simpletons.
Facts!
Real
Awesome! Then what ever you state should automatically assume 7 years of deep programming and technical understanding.
You facted urself
Real
Please do the needful.
Why is slang so ass now
Anyone here worked with grafana before?
No, you guys live in a time period where you can ask AI how to do something that you dont know how to setup. Yet you still cant figure simple server configuration out
And u still didn’t get anything of the conversation
I wrote this stuff before AI... 17 years was not an exaguration...
Only a simpleton would believe that.
Now I can write something faster with AI, but I still need to understand it.
"Write me a script that will setup this server up based on this documentation. Im running X on X, I intend on hosting it for my friends. https://support.hytale.com/hc/en-us/articles/45326769420827-Hytale-Server-Manual"
so i have a entityparticle.json in Resources/Server/Entity/Effects but when i apply an effect using effectcontroller with key: "com.jammingmods:SkavenPoison_Effect" i dont see any particles around the target (its derived from base poison).
any help with this since i dont know
Future Ai slop plugin maker here🥲🥲
is there a mod to keep animals from clipping through fences when growing up
Not slop, get with the times. Ive been running a software company for 7 years and cant believe how simple this is in todays world with all the access and tech everyone has at their fingertips
The thing is that non of us care because we are not the ones asking how to build a server
Are you seriously telling me that hytale server setup for 3 friends needs a comp sci degree to figure out?
Not everyone works on it, some people just want to play and that’s it
You might know how to cook and still go to a restaurant, ain’t u
The namespace is functional? I haven't seen namespaced assets indexed like that, just the name of the asset, IE. ("SkavenPoison_Effect"). Its not erroring?
You definitely dont need AI to figure out how to setup a Hytale Server
Thank you
No, Comp Sci degrees don't teach ya this stuff, but they certaintly give you the base information to get you there.
Anyone know how to access / modify a component of an offline or other world player?
Brother, if you've been running a development company fir 7 years, you shouldnt have to ask a discord channel how to setup a server
do i need to put .json behind it? since the ui files also need .ui after it
I never did... lmao
No you should just be able to retrieve it from the assetmap of the given asset, you are trying to get the asset through code yes?
Yerp
yuh
Yeah just the name is fine no need for .json
is your gears going to be a downloadable mod
U don’t even know who did and still joined the convo
You know what, you're right, lemme hop out
Brother your LinkedIn says you were intod into programming in 2013...
Filtered hytale server setup in chat to find the answers to questions just to browse and this showed up first thing.. made me laugh 🤣
Stop the cope
Documented. I started many years prior. Started programming around 8.
yawn
Lol, I am not searching linkedins after being told that people are not as technically inclined as many of us.
Im gonna bounce. Just stop trying to big dik in hytale discords its embarrassing
Ure the one doing it lmao
real
Aint that the truth. He must be 14
I have plenty of experience and projects to back up my claims. And a linkedin to prove it! 😄
All this just cz a guy was asking where he could host a server for 3 friends 😂😂
That man really took the route, navigating through Discord connections to my GitHub, to my portfolio to my LinkedIn. 😂 Dang he's dedicated.
The cope was showin on that one. 😄
He just a troll. Most people dont know how to port forward or even use a terminal
It’s okay he’s hosting a 7$ vps in hostinger he’s sysadmin as u can see
What the heck is going on in here
In case anyone is wondering. I have been programming since 2006. In various languages such as C#, C (not C++), Java, and many more.
Write video games (in C) and do web dev.
guys someone knows how to know more about when the client crashes for: Failed to parse or resolve document for Custom UI AppendInline command. Selector: <the selector passed> ?
Lootr has already been released as a mod for Hytale! It's available on CurseForge.
@civic zephyr do i need
{
"ApplicationEffects": {
"EntityBottomTint": "#0c290c",
"EntityTopTint": "#075707",
"EntityAnimationId": "Hurt",
"WorldSoundEventId": "SFX_Effect_Poison_World",
"LocalSoundEventId": "SFX_Effect_Poison_Local",
"Particles": [
{
"SystemId": "Effect_Poison"
}
],
"MouseSensitivityAdjustmentTarget": 0
},
"DamageCalculatorCooldown": 5,
"DamageCalculator": {
"BaseDamage": {
"Poison": 0
}
},
"DamageEffects": {
"WorldSoundEventId": "SFX_Effect_Poison_World",
"PlayerSoundEventId": "SFX_Effect_Poison_Local"
},
"OverlapBehavior": "Extend",
"RemovalBehavior": "Duration",
"Infinite": false,
"Debuff": true,
"StatusEffectIcon": "UI/StatusEffects/Poison.png",
"Duration": 10
}
do i need all of these for just the effect? i feel like some stuff is messing up things since 1: its lasting forever, 2: its proccing itself? i just need the visuals with a duration
I've been progamming since I was a kid, No idea specifically when
But I know, C++(ish) Game Maker Language, Javascript, A tiny bit of Python, And now a little bit of Java thanks to Claude Sonnet
Well probably just Infinite and duration
oh boy here we go haha, someone belittled someone in this chat and now every's pulling out there cv's
And the removalbehavior
Gotta prove my clout lel
Waited for him to leave first.
Wanted him to make his claims before I pulled out the "my experience is greater than your age" card.
Do u have debug mode on in client? It might give u more details, otherwise u can check server logs, probably is a path issue or syntax issue inside ui
tbf, I don't think you need sys admin level skills to host a hytale server. (my 9 year old little sister did it more or less herself with a small nudge from me) atleast for your friends
Provided you already know how to code, AI can help level the playing field in most languages
It doesnt even require any special config just for a basic server either
Obviously u don’t, but you need more than basic knowledge to setup a professional server, not just amateurish
im checking server logs, but they dont say anything
You dont need AI to learn other C like languages if you know one already.
If you are learning Lisp then maybe.z
but that wasn't the requirement? or what was being discussed haha
regardless im bringing out bad vibes
I might use it to get the gist of how its all laid out, Even similar languages differ slightly
But you're right it shouldnt need much finagling
im not on debug mode on client, maybe check
But Java is definitely not C like
One guy just asked where to easily host a server without setup anything, and some guys just jumped saying to do it himself, that’s it
There was a guy who didnt know much about hosting servers.
Someone casually mentioned it might be harder than some guy thought.
Then he called people simpletons and spiraled from there
We are just defending the position of someone who doesn’t need to know how to setup a server, he just want to play with some friends and that should be totally acceptable
It is C# like which is C like
C# is Java like :P, Java came first
well even with diagnostics mode = on in settings, the logs still say the same :S
Java is C++ like which is C like
C# is not C Like...
I have to disagree here. 😄 It is very much C like
Yep
You guys are obsessed with me
A little bit
Nobody is even talking about you now fam
I am still think about you. - Just wondering how far I can make a navigation rabbit hole you would follow. 😄
if C# is C Like, Does that make JS also C Like?
Oh yes
Yes
Lisp is not. sml is not
Lisp is evil
Sql is not
How do you determine C Likeness
Agree
If its origins were rooted in C design
a lot is rooted in C, thats the point 😭
why does every dev chat devolve into people fighting about what's best or correct :c
I guess we should come up with a new category then
Instead of C Like, I'd consider C# to be like a cousin of C
Where as something like JS could be more of a grandchild of C
At this point js is binary
And C++ would be a Child or Brother of C
Nah. The C like thing is pretty standard in the industry.
c# is java but cooler
i miss extensions
i miss the out keyword
Ok now here's the real question, What is C... like?
C - Assembly is not like C if thats where your going. 😄
after b before d
No like.... C cant be C Like, It is C, So is it Fortran like? COBOL like?
Punchcard like?
C is C, it never wasn't C. You C what I mean?
you should dispose you garbage NOW
I thought you were joking, But there actually was a language called B
And D
So lets consider C as B Like.... Then what is B xD
I tried posting a highlander meme, but mods
Csharp <> Bsmooth
Drigid is better
I guess B could be Fortran like
Flat is okay.
Some guy did a lib to develop hytale plugins in typescript
You know, if I could remove ALL but one langauge and eco system I would. 😄
JS gets to stay cause thats my day job
JS is one my main issues, though C# and JS are like one of the two all rounding universial languages. 😄 - JS is required for web anyway.
Same with typescript 😂
fellow highlander? or we just meme's now
JS isnt really required for the web anymore, You can just use WebAssembly 😄
NUKE IT ALL!
hey... can i edit a particle system live via the editor?
is there a way to change the axe's sound in the asset editor
how?
Editing a players inventory with the ECS, list of itemstack and is it correct to be trying to setInventory? Would really like some help to figure this out! Just want to be able to add items
Ty that helped. But I have a new question if I make it fire a summon charge
is there a way to change that sound too?
no idea what a summon charge is, but very likely that yes
Trying to figure that one out rn
Don't set the inventory to another inventory unless you have another one that you've serialized or something
If you just want to change an existing inventory, changing the itemstacks in the containers in an inventory is the right way to do it
I can share code that will let you blanket set the inventory, Its used as part of my server jumping mod
guys if i'm making a new tool that is like a wrench, and this wrench have an interaction that is used for linking two new blocks) i was thinking to link them via their UUIDs but my question is that, how can i be able to store the 1of2 and then 2of2 UUID of the two blocks? i was thinking to make a simple "Primary interaction" and when doing that the interaction will get the UUID but how can i store the uuid when i'm half of the connection (like tapping on the first of the two block)? i should make a whole new component for that wrench or i can make a private class or a structure or a normal variable that will be checked every time i play the interaction if exist or now
nuh uh
Do you serialize the inventory data in the refer data?
lisp my beloved
Never used it. never wanna. Just read about it.
I have to send it over an HTTP Request, So yep we serialize it and then encrypt it with AES
its got cool properties
how do the shape textures work?
if i look at the poison_face png its a sequence, does hytale convert this into an animation?
how do custom UI work? I'm trying to make one but for some reason keeps crashing me from server/not even letting me join saying "Failed to Load CustomUI Documents", I've been following WIKI even used the example it gave but it just doesn't allow me to join saying "Failed to Load CustomUI Documents", any ideas where to start looking? I have it in Resources/Common/UI/Custom but that's not doing anything I've checked the UI file and there doesn't seem to be any issues, even from using the example... I cant seem to see what's, when I delete the UI file from the Custom folder it lets me join no problem.. but then OBV no UI will be loaded. any help would be appreciated.
maybe some names? can you share the content of the .ui file?
Sure ive tried a few different versions to see if it was anything i was doing.
$Common = "Common.ui";
Group {
LayoutMode: Center;
Group #MainPanel {
Background: $Common.@PanelBackground;
Anchor: (Width: 600, Height: 400);
LayoutMode: Top;
Label #Title {
Style: (FontSize: 32, Alignment: Center);
Anchor: (Top: 50);
Text: "Colony Workshop";
Padding: (Full: 10);
}
Label #PopulationLabel {
Style: (FontSize: 20, Alignment: Center);
Anchor: (Top: 10);
Text: "Population: 0/0";
Padding: (Full: 10);
}
Button #CreateButton {
Style: $Common.@DefaultButtonStyle;
Anchor: (Top: 10, Width: 300, Height: 50);
Text: "CREATE COLONY";
Padding: (Full: 10);
}
}
}
Where are you placing the UI file?
You might need to change the "Common.UI" path.
From that place its on "../Common.UI"
try changing the "Button" to "$C.@TextButton" etc etc
yeah that too
$C= "../Common.ui";
$C.@PageOverlay {
LayoutMode: Middle;
....
....
$C.@TextButton #TextButtonConfirm {
Text: "SEND";
}
}
i've this in one of my pages
This is just switching the implementation of the Button element from a "Native" one to the Hytale UI elements lib
oh okok
didn't know there was one native
intellij auto puts my directories in my resources to . so it does read it as Common.UI.Custom but I thought it read it as the same? just was intellij way of doing it? would that have anything to do with it? I wish I could show screenshots lol make it easier
yeah, prob its the Common.ui path in the top of the folder
By doing $C.@TestButton your are saying "From C which is CommonUI, extract the definition of TextButton and put it here with the following args:"
Common.ui file is not available at the intellij project explorer
That is referencing to the Common.ui file available at server assets
Basically what you are doing when you have a custom UI plugin you are adding one folder with .UI files into the assets of the server
Is anyone working on an IndustrialCraft style mod?
Thats why you have to be very specific on where are the files that you are trying to use, in this case, Common.ui
okayyy i seee so is there a way i can change Intellij to allow me to create the folder directory from main? so its in with java? cause when i do so.. it pushes it to the bottom of my classes and adds a 3 yellow bar/line to it? and then any directories I add to resources do xx.x.xx that make any sense?
because when I go look through file explorer its all setup through folders correct. its just intellij that shows it diff?
Its just IntelliJ way of formatting things
Ohh okay so i just gotta change that line of code? to say otherwise?
Got the adding items to inventories working. Now my question is, what is the best way of going about adding custom names for said items? Case of I wanted the sword to be called "PvP" just an example
in the server lang file iirc
You just need to change this:
$Common = "Common.ui"; <-- This
$Common = "../Common.ui"; <-- To this
Or remove it if you are not gonna use Hytale UI lib
Well it didnt work with
$Common = "../Common.ui";
so ill try deleting it or something else is the problem.
Yeah deleting that line didnt do anything still disconnects me on join
Ok, try the following:
On Common/UI/Custom create a folder called Pages, on intelliJ it should look like this:
resources.Common.UI.Custom.Pages
In there paste your UI file and try one more time
nah sadly same thing happend but when i made the directory it made it under Common.Ui.Custom then when i put my UI file in it added it to Common.Ui.Custom.Pages
left with reason: Crash - Failed to load CustomUI documents
Do you have the server logs handy?
Its either not finding your UI or somethings is wrong with the syntax/page loading
would it just be Logs folder?
Yeah
mmm im looking but im not seeing anything having issues... any Key words u think i could look for to help?
only that left with reason: Crash - Failed to load CustomUI documents
PageLoader or Page
Only things i see with Page
[2026/01/28 03:09:56 WARN] [AssetStore|Interaction] Unused key(s) in '**Teleporter_Interactions_Use_Interactions_0': Page.WarpNameWordList [2026/01/28 03:09:56 WARN] [AssetStore|Interaction] Unused key(s) in '**Portal_Device_Interactions_Use_Interactions_0': Page.Config.GameplayConfig [2026/01/28 03:09:56 WARN] [AssetStore|BlockType] Unused key(s) in '*Prototype_Geyser_State_Definitions_Off': SoundEventId [2026/01/28 03:09:56 WARN] [AssetStore|BlockType] Unused key(s) in '*Prototype_Geyser_State_Definitions_On': SoundEventId [2026/01/28 03:09:56 WARN] [AssetStore|Interaction] Unused key(s) in '***Teleporter_State_Definitions_Active_Interactions_Use_Interactions_0': Page.WarpNameWordList
PageLoader does not come back as found with anything.
Anyone able to help in configuration of the plugin template?
Keep running into the following issue, no matter really what I try:
FAILURE: Build failed with an exception.
* What went wrong:
Task 'shadowJar' not found in root project 'ExamplePlugin'.
Been at it for about an hour or two to get it to build and compile, but I'm stumped here.
What is ExamplePlugin
Looks like something is trying to rely on that file
ExamplePlugin is the Example it gives ya when u take it from their repo.
how i started off my Mod/Plugin which now im stuck on Custom UI bs
Wiki aint to bad but needs a good updating
might have to skip Custom Ui for now keep it as a command :/ which would suck
Oh hey
The Custom UI stuff is weird, You'll likely need to write your own UI Open Handler, I can share code for that
it's the template that comes directly from realBritakee/hytale-template-plugin. It's the recommended one from the wiki, and it's supposed to be able to be compiled right out of the box. I just cloned it and piped it directly into my intelliJ But for some reason it keeps throwing these errors
I can't paste the full url because it keeps flagging me for attempting promotion
"Use": {
"Interactions": [
{
"Type": "OpenPortalSettings"
}
]
}```
OpenCustomUIInteraction.registerBlockEntityCustomPage(
this,
PortalSettingsPage.class,
"PortalSettings",
(playerRef, blockEntityRef) -> {
return new PortalSettingsPage(playerRef, blockEntityRef, CustomPageLifetime.CanDismiss, null);
}
);```
Let me test your UI file in one of my test plugins
what template did you guys use for the test plugins? did any of ya'll use a template for initial setup?
I used the ones by TroubleDev
lemme check it out
I'll do some googling, it's just driving me nuts getting stuck on compilation/dependency/build issues. Almost as frustrating as some random, obfuscated runtime bug in prod lol
can i give you 2 to test? my original and then i have the slimmed down version? also PM work? or can we send files here?
I based my UIs off of TroubleDevs UIs as well
Does anybody know how Hytale assigns weapons to the R-attachment site? Trying to find the piece of code that assigns weapons there, or as dual-handed, or single handed. Want to see if its possible to assign a weapon being held to like a back-attachment slot instead (at least on the model)
hmm ill def look into this thank you very much, im still learning so its all coming around but thank you for info!
I'm just gonna go with his for now. I'll look through the tutorials. Thanks!
it doesnt help that the UI spec is fully custom
I have my own, hytalemodding . dev have their own as well
Sorry explain more?
I have a mod setting template on my github
Also the website mentioned have a template
ahhh yeah I was just using one off wiki but trying to follow it dont help cause intellij builds it but when trying to join server it don't work.. i think it could be an issue with something I've done. idk I been building this thing for few days now and just now running into issues.. it was bound to happen
Okay
I'll peak at your github. Same username?
And if its the website with britakee-studios in the url, that's the one I was attempting to compile.
Thanks though boss
Sooooo im back with the tests. It says that this is not found inside Common.ui $Common.@PanelBackground;
My gh is linked in my bio, the website for doc is called no spaces hytalemodding . dev
There are some other errors inside your UI file, i just removed what was causing issues (style). here is the version that is running for me:
$Common = "../Common.ui";
Group {
LayoutMode: Center;
Group #MainPanel {
Anchor: (Width: 600, Height: 400);
LayoutMode: Top;
Label #Title {
Style: (FontSize: 32, Alignment: Center);
Anchor: (Top: 50);
Text: "Colony Workshop";
Padding: (Full: 10);
}
Label #PopulationLabel {
Style: (FontSize: 20, Alignment: Center);
Anchor: (Top: 10);
Text: "Population: 0/0";
Padding: (Full: 10);
}
TextButton #CreateButton {
Anchor: (Top: 10, Width: 300, Height: 50);
Text: "CREATE COLONY";
Padding: (Full: 10);
}
}
}
And here is the Page setup:
public class TestPage extends BasicCustomUIPage {
public TestPage(@Nonnull PlayerRef playerRef) {
super(playerRef, CustomPageLifetime.CanDismiss);
}
@Override
public void build(UICommandBuilder uiCommandBuilder) {
uiCommandBuilder.append("Pages/TestPage.ui");
}
}
And here is how im calling it (from command):
Player player = store.getComponent(ref, Player.getComponentType());
HelloWorldPage page = new HelloWorldPage(playerRef);
if (player != null) player.getPageManager().openCustomPage(ref,store, page);
You might need to take a look inside the Asset editor on the Common.ui to see what you actually need for your UIs
On the asset editor you can go Common > UI>Custom and Common.ui so you can read what the actual file is doing
is there anyway I can hover over an item in game and somehow paste it's ID into the chat window?
or do I have to manually type the dang ID out
Yep that checks out 👍 I tested your version and the game launches fine now. I’ll look into Common.ui in the asset editor next so I can clean up the styles properly.
thanks a lot I appreciate the help!
Still no way to fix asset load order! Vanilla properties constantly overriding modded properties!
Is there any way to modify where weapons attach? Trying to set it to Back_Attachment instead of R_attachment
is the Hytale CDN down? I cant dowjnload the HytaleServer.jar
Not sure, but you can get it locally. %appdata%\Hytale\install\release\package\game\latest
Great, thank you!
Is the plugin system in a state where I can make a VTT?
I need: A detachable camera controlled by WASD, the ability to click on objects using the mouse with different default actions and context menus (ex. toggle doors with a mouse cursor), per-player persistent character sheets, the ability to toggle look and mouse modes using something like tab, UI buttons to represent different actions like box selection and placing, and potentially fog of war
Anyone know how to get the max height of the position in the world?
Yes
Does anyone know how to make a scoreboard UI scale with the number of lines?
nice
Might experiment with developing a power system could be a fun mod experiment
is there a way to get the max height of a position in the world?
Make both
Make it so you have to start by using power used by water wheels, then evolve it to solar so it’s more advanced. All to produce electricity
Im not very good at art but I can give it a go 0:
Aight. Im just here to give ideas. I’m bad at everything lol
I like the idea, I'll give it a go
IMO purely mechanical power has it's charm too - water wheels, steam engines, gravity batteries. Like in Timberborn
I saw someone already working on a mechanical power mod
I think I'll let them do that
I have a question. Do y’all do all the coding and stuff from the game itself? I heard there is this built-in coding mechanism in the game right? Is it as easy as they say or nah?
You can make assets very easily in game
Also electricity in a high fantasy-ish setting would require some background lore in order to not break the immersion INO?
What is the difference between Message#raw and Message#parse? How does the parse method actually work
The lore is that it just suddenly appeared one day 😄
Idk man, I dont think it needs any background lore tbh
random lightning strike!!! haha
If it was part of the vanilla base maybe
I mean, this would break the immersion / make the setting feel incoherent for me, but that doesn't mean I wouldn't play it anyway... 😄
When gambling mod 😭
Fair
I mostly just want to broaden my modding skills after that server jump mod
Which was fairly simple tbh
Also a low-effort "fix" could be to replace everything "electric" with "magic" - "magic energy/mana", "magic circuits", "magic conductors channeling the mana" 😅
You gotta give yourself more credit. Sometimes simple things are what help the most
Well I was the first to develop a system for syncing inventories accross servers
You see? Like how do you even do that 😭
Its just an HTTP Server xD
We send the Inventory as json and apply it on the other side
I struggled to make a berry bush drop a seed this morning and you come up with this jaja
Well if you say it that way the yea it sounds kinda easy, still don’t know how to do that but yea
You can natively encode the Inventory to Json 😄
Inventory.encode
Idk if y’all know the game astronerd but they have a backpack where they put these oxygen crystals to last longer in space, the same principle could be used for mana
Make some crystals to stick to your bag and the mana can recharge itself automatically without any potions or anything. And the crystals could be recharged at home with the electricity thingy
Is there somewhere an introduction/documentation/tutorial on modding Hytale targetted at programmers?
I have experience with programming, I work as a backend developer, but I have no experience whatsoever with game modding... 😅
Though inventory sync requires a bit more complexity than simply sending and applying the inventory
You also have to consider duping
is there a way to check for max height at coords?
Without a primary server solution that becomes slightly complex
If you just have a central db server its not as complex
My solution opted for the more complex version to not need a middleman server
First thing that came to my mind was "two-phase commit protocol", as used for syncing DB-s
We keep track of the server of authority which is just the last server the player Server Jumped to
If you join a server without authority we call the main server which is always kept notified of authority
The main server will either call the server of authority for the inventory, Or if the Main Server has authority we will find the inventory locally
Got a question for anyone who can answer. I've got a Shockbyte server and am trying to update it to the latest version. Can't do /update download cause expected assets.zip and launcher script to be in same directory. I haven't changed any files so I'm not sure what that means. Anybody got a suggestion?
Server Jumping in this context is the act of using the portal my mod adds to jump to another server
Either way, you need to trust the servers the players connect to - if a player hosts a server locally whey can spawn items in there or roll back a save etc. etc.
Yup, so the entire comms is AES Encrypted and each server has a list of trusted sources
We also have a list of expired transaction ids and also reject any payload older than 30 seconds
And if a server of authority should crash or be gracefully shutdown, It will attempt to hand authority (and the inventories) back to the Main Server
If you use that mod to go from a let’s say aternos server to your single player and you were to die and loose all your items in the single player, will you still have everything in the aternos server or will it be lost?
If junping between servers, wouldnt a refer to server with the inventory encoded in bytes and sent along the player would work? I havent touch player inventories so idk how large the json is
Well, If your singleplayer server were accessible outside your network, then in theory the aternos server would call your singleplayer world for the inventory
The json is too large to send as part of referToServer max payload is 4kb
With a full inventory it can be as large as 32kb
Yeah that seems out of the question. And i guess as well a central db for inventories is kinda outside the plugin scope
This is not actually a scenario ive tested
But ive tested going from singleplayer to a server and that works as I described
Maybe implement a blockchain? XD
You could easily just never move the mark of authority away from a server and have a central hytale server this way, Although its currently not supported this way
(Only half-joking)
honestly, i'd say shoot a ray up until you hit air thats like +8 or higher
how can i check for specific block type like air
It would be trivial for me to add this with a new config setting
While thinking about it, This mod might have a legal loophole for duping items :b but that’s something to be tested
there's probably a getType or similar you can look iat
If you shutdown the main server and then shutdown the sub server, and then restart the main server, in theory you could dupe that way
But thats an unlikely scenario
If you shut down the singleplayer server of authority it will immediately attempt to hand authority to the main server
So youd have to somehow kill the main server first all while not physically having access to it
That’s doing too much. I rather just enter creative mode 😭
Anyways. I’m trying to practice on this coding thingy, what’s an easy thing I could do? I know I’ve given weird ideas, but nothing I can do at this moment :b
Though were talking about a hypothetical scenario where the Main Server has your own network as a trusted source and you know the encryption key
Extremely unlikely outside of testing scenarios
I used Claude Sonnet 4.5 with vscode copilot to assist me with coding Java for the first time 😄
Try implement a water fountain idk
Anyway, please let me repeat/rephrase my question:
Any recommended tutorial on writing server plugins?
Where can I get the SDK?
Id highly recommend TroubleDev
No SDK just look up decompiling jars and decompile the server to gander through
TroubleDev is a great source for basics. As well some knowledge of Java, OOP and Multithreading will help you a lot.
Regarding the sdk, no sdk at the moment, just decompile the JDK
Just their names are making me rethink my life decisions 🫠
I have NEVER coded before, but I’ll try regardless
Do you know any coding at all?
I know print
As well HytaleModding has some documentation on the Hytale Server Api that could help you
Jeje… ok no
May be worth looking into standard coding tutorials first
I already knew programming so did not feel the need to go through basics of Java
I did, but there is a lot of different “coding language“ and all that. I don’t know where or how to start tbh
well, you would probably be using java for hytale(because while you could learn kotlin or any other language with jvm interop, I would suggest java first)
What is the difference between Kotlin and Java
I dont even know which one im using lmao
kotlin is a different language, and has a bunch of niceities that java doesnt have
if you dont know, your probably using java
Oh ok, Im definitrly using java
You should learn the basics, Vars, Conditionals, Cycles, Methods and basic algorithms. OOP is not a must but would help
I thought maybe they looked similar xD
I thought java was just the thing that Minecraft used to run 🫠 I didn’t know it was a coding system LMAO
they do, sort of
they are both C style
Kotlin looks like a shittier JS
ooh, kotlin works?
yeah you can use any jvm language
from kotlin to clojure
i was considering looking into clojure bindings too
omg were not opening this debate again 😭
based clojure user
oh yeah, totally forgot i wanted to look into getting a clojure REPL going so I could do arbitrary additions at runtime
tested out a working one with Spigot on MC before
I had a repl mod day one lol
pfft nice
If I were to start on Java rn is it intuitive? Or will I have to look at a lot of tuts in order to learn?
I havent published it yet though
was it witchcraft-plugin? -- that ones got a really nice api
the one I saw on Spigot required a bunch of Java workaround jank to get working
Minecraft in general is jank
no, witchcraft was another i was looking at
ah, yeah, I have used that one in the past, its pretty nice, despite needing like, 1gb of deps
I remember the days of having to manually delete META INF
and hytale is not XD
i think it was clj-minecraft? it had macros that auto-converted functions to clojure conventions
oh thats cool
I mean mods are natively supported without the need for specialized mod loaders so :p
You could learn those concepts on java but if you are starting in programming you might start with python since its easier on the syntax
bro dont start with python
Why?
Start with JS
it will teach you all the wrong things
start with C
Start with assembly
that i do 100% agree with but hytale has some of the most hacky and janky implementations ive seen in a while
Manipulate the hexadecimal values in a hex editor
I was working on a C hytale server for a bit lol
its going pretty well, it gets past auth
if you want to learn programming, start with like pascal or C, then go for java
guys how can i get a block entity by coords and get its type
Youd be effectively reimplementing the entire game considering how the game is built
Make it 0% now
start with assembly 😈
that is correct
its a complete reimplementation, largely based on my prior minecraft server in C(well, at least for the packet processing macros)
Its your funeral xD
nice, open source server alternatives that have different plugin apis would go crazy
Atleast with Minecraft the game is handled client side
Making plugin bindings wont take long they’re probably on the way
So you dont have to reimplement the entire game
not really in a helpful way tbh
guys how can i get a block entity by coords and get its type
honestly there is a lot of work to go before I get into a world
even if I do get somewhere with it, I probably wouldnt ever suggest trying to make a production server with it
i imagine, but it's nice to think about
Fk it. I’m asking chatGPT
imagine a server that uses WASI for plugins
i'm working on a hytale server fork purely for minimum memory usage for minigames i'm just wrapping the world systems into smaller chunks using quantization including chunk data, entity states and movement
yeah, fair, honestly I think it will be mostly helpful for people implementing servers down the line, sort of like a reference implementation for packet processing
Craftbukkit for hytale uwu
Is there a good and working Factions plugin?
its in relatively readable C, and the packet processing macros are very readable(well, using them is, the macros look like C macros)
macros in C? are you using compiler plugins?
guys how can i get a block entity by coords and get its type
Though itll lose mod support x..x
nope, its all the preprocessor
its actually not too cancerous though
also changing the way events are implemented because holy they're kinda a mess
its never used in a way that is particularly horrible, except for the bit where there are recursive includes
heres my connection packet def:
STRUCT_S(con_connect,
NULL_BITS(1,
NULL_BIT(identity_token, 0)
NULL_BIT(referral_data, 1)
NULL_BIT(referral_source, 2)
)
F(int, int32_t, protocol_crc)
F(int, int32_t, protocol_build_number)
F_FXD_L(ubyte, uint8_t, client_version, 20)
F(ubyte, uint8_t, client_type)
F(uuid, uuid, uuid)
OFFSETS(,
VAR(username,
F(var_str, lstr, username))
IF_VAR(identity_token,
F(var_str, lstr, identity_token))
VAR(language,
F(var_str, lstr, language))
IF_VAR(referral_data,
F_VAR_L(byte, int8_t, referral_data))
IF_VAR(referral_source,
F(host_address, host_address, host))
))
I found one called “claim chunks” or something like that, it’s close to the beginning of the page in Curseforge
Oh yeah, speaking about the Clojure REPL, how well did it work? Are the queries pre-compiled or can you arbitrarily register new components and systems?
honestly no idea, I havent used it for anything more than inspecting the servers auth keys at runtime for that C server
pretty sure you can register them at runtime though
ahh, makes sense
are you gonna add an encryption handshake obviously it could be optional
the protocol is always encrypted
its using quic, with self signed certs
why didnt i think of that 😭 i literally spent 7 hours writing documentation on the server including networking & protocol
lmao
I was stuck dealing with it though, to be fair
guys how can i get a block entity by coords and get its type
literally a whole section on protocol
though, you should update your wiki assuming its the one in your bio, its over udp, not tcp(most of the time, offline mode is over tcp, but the vanilla client cant use offline mode it seems)
ah wait, nvm
got a question about the ui stuff. im working on a computer mod that actually functions like a computer with the desktop, app store, ect. i wanna make a web browser type ui but i cant figure out how i can take some kind of page style to translate it into a ui template that allows custom web page designs and not all looking the same. is there a way to create a .ui file and load it while the server is running or do i just have to create multiple template uis just to achieve this?
my brain pulled a "read bolded text without context" moment lmao
and therfor only saw "QUIC + TCP Networking – High-performance networking via Netty"
actually theres alr forks with a offline mode thats why i included that i thought i put that udp over tcp ngl i used ai to compile the stuff i wrote into the wiki pages i thought i corrected most things
there are people with offline mode, but I dont think the vanilla client actually accepts offline mode servers
ive seen it working first hand
oh, interesting
they patched the client and the sever
aah, that makes more sense
thanks for letting me know about that mistake i should have noticed i was super tired setting up the wiki page and i wasn't thinking about the home page
thats why i want people to be able to help strengthen the documentation and create forks i plan to keep the documentation up to date all other documentation ive seen is out of date or just plain wrong
Yes it will
has anyone figured out how to add AI to mounts? or even just simple movement? i cant seem to move the player along with a mount since mounds seem to be controlled 100% by the client. Once the player is on, the server cant change the position.
DOYOU KNOW IF IT WILL HAVE EARLY ACSESS
i fixed it it now says QUIC/UDP + TCP (fallback) just bad way of compiling the data idk if the ai assumed ppl would understand that its QUIC in UDP mode but imma re read everything and make sure its correct
Haven't decided yet about that
Don't wanna spam but if you wanna follow along, my tag is Discord's server
how do i change name of an item with item stack? Like, i want that chest to have other name
Anyone have luck with AOE projectiles? My Asset Editor keeps crashing each time I use the Selector, with ID of AOECircle
WHY ARE WE YELLING?
for got to turn of caps LK
wdym by that? The item display name?
hmm, as far as i can tell the only way right now seems to be creating a new asset for it, there doesn't seem to be a display name in ItemStack or with metadata which is strange.
so I'd need to create a chest that already exists in the game, but with a different name? Damn
You should just be able to copy the asset of what ever item you want and overwrite or create it as a new asset
yes, I just think it's too much of a hassle for something that could be simpler. I hope there will be a display name option in future updates
ty ❤️
Yeah there definitely should be
Hey yall does anyone know how to use the asset editor to make it so the staffs fire 3 projectiles off instead of 1?
mi bio
Look at my bio, I have docs on my org GitHub, I’ll be adding an asset editor section too and making tutorial videos, but I have lots of info on the asset system in general for programmers, btw if you see any errors or misinformation, please let me know and I’ll get it fixed asap, also you can create forks of the wiki and become a contributor by expanding or fixing parts of the docs, also translations coming soon.
How do I send packets to a Player?
Has anyone figured out when applying velocity to an entity/player, to cap the speed?
what are good Rank plugins for a server that dont combat with a factions plugin so I can see a players rank on the server their faction then player name
Is it possible to convert a world file to an instance and put it into the server assets easily?
How does this even answer my question
Instances are worlds, yeah they only seem to have the additional instance.bson. Everything else looks the same
I can’t seem to find any actual world files in any of the premade instances, everything I have is .bson files.
How do I open a Chest container for a Player?
Just letting ppl know, I don’t have any asset editor tutorials rn, but I have info and examples of using assets in code, it may have been useful information for making what you’re looking to make, I apologize, I thought it would be helpful
Assets.zip!/Server/Instances/Forgotten_Temple/ has the chunks and resources folders
Thank you!
Any modders 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!
Hello there is any plugin for codelock house doors?
Does anyone know how to use the asset editor to make something fire multiple projectiles
My approach would be to check how the bow special attack is implemented
Didn't even think about that
Could just copy that over yes indeed that would work and then if I wanted to do only 2 hmm yea
Is it possible to add a tab button next to the Inventory and MAP buttons in the inventory?
So, I'm currently generating terrain from code and it works quite well. I'm stuck however on creating biomes. To my understanding, HytaleGenerator has prop pipelines that it would call but that doesn't apply to already generated chunks. So I'm a bit lost here, because regular V2 biome config does not seem to be programmatically possible. (I don't want to keep track of every block my code has placed just to manually spawn props on them).
Any hints or ideas?
hey guys, not sure if its the right channel but i guess the updater counts as a plugin
what are the configuration params for the updater? i can't really find this in the docs, maybe I'm blind
I have "Update": {} in my config.json but don't really know how to set it up. right now I have to run hytale-downloader in the container manually and then restart the entire thing, not really convenient
Valid values are
Enabled: Boolean
CheckIntervalSeconds: Integer
NotifyPlayersOnAvailable: Boolean
Patchline: String
RunBackupBeforeUpdate: Boolean
BackupConfigBeforeUpdate: Boolean
AutoApplyMode: String (Must be: DISABLED, WHEN_EMPTY or SCHEDULED)
AutoApplyDelayMinutes: Integer
Thank you! I'll set them based on this. Are these in any docs by the way? I might have missed them if so, i was reading the server manual but haven't really seen config entries for updates, I guess it's kind of a new feature so
Is there any plugin which is similar to use like worldedit //wand?
You get them from the server code, i dont think there is any docs for it yet
ah I see, got it, thanks a lot
Those tools are natively in hytale by default already
https://hytale.com/news/2025/11/hytale-creative-mode
So i guess something like this could work nicely?
"Update": {
"Enabled": true,
"CheckIntervalSeconds": 1800,
"NotifyPlayersOnAvailable": true,
"Patchline": "release",
"RunBackupBeforeUpdate": true,
"BackupConfigBeforeUpdate": true,
"AutoApplyMode": "SCHEDULED",
"AutoApplyDelayMinutes": 10
}
if i understand right currently new players couldn't join after their game is updated so it's best to update right away when there is a patch
also i have the built in backups off as I plan to solve that myself, so maybe i should keep that setting off
Try and see lol
yeah fair i just sent it just in case i made some glaring obvious issue lol
how can i add a Description to an custom item ?
pascal.... its 2026
How to get coordinates of a plyers location?
How can I spawn a block in the world using the API?
world.setBlock
That's in the Transform component
Yes, Vector3d loc = playerRef.getTransform().getPosition();