#server-plugins-read-only
1 messages · Page 112 of 1
hi guys
I need help, does Hytale have a style similar to Minecraft's Chest Commands?
I just created an economy plugin, but I wanted to implement a command to open a vault with the information.
or GUI systems?
how do you send a message to console that goes to the log file?
Is there a site I can use to check my UI file for Syntax Errors?
sysout work but use a logger is better
yes, this same thing
I used hytale ellie au and added the UI file to my Mod
But when I try to go into the world, It tells me it failed to Load CustomUI Documents and doesnt let me in
Did you ever get these issues resolved?
Is there any plan to add a method to suppress world leave broadcasts in DrainPlayerFromWorldEvent?
Currently AddPlayerToWorldEvent has setBroadcastJoinMessage(false) which works great for suppressing join messages, but there's no equivalent for leave messages. So we can hide "PlayerName has joined explore" but not "PlayerName has left explore".
ooo heres the right chat. Im wanting to set up my laptop as a server using ubuntu live server is it possible?
Did you find a way to remove it?
ye why wouldnt it work ?
well ive never done it before so im just making sure if i break it itsjust my fault
get the correct java and you good to go 🙂
the correct java?
yes or the server wont run
gotchya alright well chatgpt gonna be my bff
Whats a good documentation for me to feed to Claude so it can magically find the problems with my UI Code?
lf devs lmk
there is a way to remove it
How do I put attributes of a class in an NPC role json?
Maybe an easy question. Is there a way to remove an item recipe from a workbench, other read-only modded items and vanilla items, without having to override/duplicate every item, make a new workbench with a new ID, and assign items back to the workbench?
Is there a way to get Player right before disconnect?
Way to set max/full health is: (set max health)
```java
public static void setMaxHealth(final @NotNull Ref<EntityStore> entityStoreRef, final float maxHealth) {
final Store<EntityStore> entityStore = entityStoreRef.getStore();
final EntityStatMap statMap = entityStore.getComponent(entityStoreRef, EntityStatMap.getComponentType());
if (statMap == null) {
return;
}
final int healthIndex = DefaultEntityStatTypes.getHealth();
final EntityStatValue healthStat = statMap.get(healthIndex);
if (healthStat == null) {
return;
}
StaticModifier modifier = new StaticModifier(
Modifier.ModifierTarget.MAX,
StaticModifier.CalculationType.ADDITIVE,
maxHealth - DEFAULT_MAX_HEALTH
);
statMap.putModifier(EntityStatMap.Predictable.ALL, healthIndex, MAX_HEALTH_COMPONENT_KEY, modifier);
statMap.setStatValue(EntityStatMap.Predictable.ALL, healthIndex, maxHealth);
If you use NONE in EntityStatMap#Predictable#, you will see that when a player receives damage that would normally kill them, they will live but will not be able to receive damage, and the animation will break. If you use SELF, the player will visually have N amount of HP, but if they receive damage exceeding 100 HP, the same thing will happen as with NO
Does anyone have any ideas?
looking for devs to help make a server,
Hey, is there easy way to listen to interactions with entitys? I want to open a custom UI on interaction with a klobs for instance
hey our world crashes all the time... does anyone knows a fix for that? 🙁
Itd be really nice if the Logs gave more insight into UI file errors
Are there examples available on how to use or create a Component<ChunkStore>. There are plenty of examples for Component<EntityStore>, but not the other way around.
What I don't understand how can I store block data on a chunk component
Anyone know how to enforce damage onto a LivingEntity?
hey everyone is it possible to make clickable web links on the UI page?
i think yes, i saw an plugin on yt with an clickable Link on the UI page
wow, i cant find anything like that. do you have the link?
let me look
you mean detect an interaction ?
Cool that you figured that out, can you explain me how you added entity to the block?
sry i cant find it anymore but if i do i will send it to you
thank you. at least i know its possible!
yes
I'm trying to move a player to another world using targetworld.addPlayer(playerRef) but I keep getting an error message saying the player is already in a world. Does anyone know how to fix this?
whats wrong?
"vaild paramert port but port is good
You can easily create your own interaction and use it from anywhere, asset editor...
```java
@Override
protected void setup() {
this.getCodecRegistry(Interaction.CODEC).register("PortalEnter", PortalEnterInteraction.class, PortalEnterInteraction.CODEC);
}
public class PortalEnterInteraction extends SimpleInteraction {
public static final BuilderCodec<PortalEnterInteraction> CODEC =
BuilderCodec.builder(
PortalEnterInteraction.class,
PortalEnterInteraction::new,
SimpleInteraction.CODEC
).build();
@Override
protected void tick0(
boolean firstRun,
float time,
@NonNullDecl InteractionType type,
@NonNullDecl InteractionContext context,
@NonNullDecl CooldownHandler cooldownHandler) {
Ref<EntityStore> owningEntity = context.getOwningEntity();
Store<EntityStore> store = owningEntity.getStore();
Player player = store.getComponent(owningEntity, Player.getComponentType());
assert player != null;
onPortalEnter(player);
}
private void onPortalEnter(Player player) {
player.sendMessage(Message.raw("Using custom interaction!"));
}
}
thats one that i made
how can I make so all my commands are public to use in the server, cus all my plugins commands can only be used by op's
can u help?
hey guys im sorery but how do you resgister onComponentADD from OnDeathSystem im dumb :/
i no its not directly but what do i do
And how do you register that this is triggered by entering a portal? or why do you know its called "PortalEnter" while registering the codec
I send u a dm, should we write there maybe?
Thanks for ur help so far
@Override public boolean hasPermission(@NonNullDecl CommandSender sender) { return true; }
hey question when messing with the default battle axe when I try to add an interaction var it says insert key?
tysm
yr welcome
How can i add a delay? so that for example I do /example and it prints something and in 3 secs it prints another message
Schedule the work like anything else
It seems like just adding a random component to the bloc it works
When would I use a BlockState to store info on a block and when would I use the ChunkStore?
Any devs looking for work?
BlockState is deprecated, ideally you move toward using BlockComponent's since block states only allow 1 per block but block components allow many components per block
Can someone tell me if there's a plugin that renames items and changes their color?
Hey, is there any limit size in assets plugin? I have a weird error, whenever I add few sprite sheets, the hud I’m developing becomes fully blsck, if I remove the images it works normally lol
and I guess as my store I'm using getChunkStoreRegistry then?
Yes, it broke with the release of Patch 2. There's nothing you can do to work around this issue on the client side. However, it seems to be working again with the latest pre-release version... So let's hope for the best that it will actually be fixed with the next regular release.
Yeah, if you have decompiled the server I'd look at something like the Teleporter to see how it can be done
is anyone know how to deal with error index out of bounds array when append child element into group in UI?
yeah it borked, the pre-release has a fix and we have added some additional testing to avoid breaking it in the future so hopefully won't break again in the future
Could someone please help with question above, or explain how to registered a custom class from DeathSystem
i cant send my code discord says you are promoting
Sadly i dont know how dto add a component to the block and i do not find any documentation for this
i am trying to import things from com hypixel hytale server am i doing wrong?
Can someone tell me if there's a method that renames items and changes their color?
Are you running into problems when doing it like this?
getEntityStoreRegistry().registerSystem(new MySystem());
yes
it crashes my plugin
@west elk i cant send my import code here the bot is blocking my message could you look your dm it just a 5 lines import code
when you're compiling your plugin, you have to have the server jar set up as a lib
I do it in the asset editor cause it was a custom bloc
But yeah I know there is no doc for bloc usage ...
anywhere
i am using maven the server jar file is in patcher-main file should i change its location?
And the error message isn't helpful?
Any idea of setting zones as colored in worldmap?
did you use a template by someone else?
But where in the asset editor do i change this 🥲 I would appreciate a little details.
@west elk correct, I dont get any info from it
You choose a block
Anyone else use shockbyte hosting? I’m trying to download a schematic but can’t find a file to put it into, I keep putting it different places but it never shows up when I go into creative mode
and there is a section component
If the server crashes, there should be an error message and stack trace
no the server doesnt crash, it just stops my plugin to stop. i have another test plugin working, it kills the other plugin
Without the log, we can't help you
what would you need?
Managed to get the UI working after turning on Diagnostic Mode and actually reading the errors instead of just endlessly telling the AI "Nah sorry it doesnt work"
I'm not sure how I can help, but I'd like to try
I'm good with art stuff, if you need anything like banners and stuff like that, I could give a hand...
@west elk it doesnt let me paste it but the warnings from when i remove the plugin request and without it are from my perception the same, anywhere else i can look besides intellij?
```@Override
protected void execute(@Nonnull CommandContext commandContext, @Nonnull Store<EntityStore> store, @Nonnull Ref<EntityStore> ref, @Nonnull PlayerRef playerRef, @Nonnull World world) {
world.execute(() -> {
TransformComponent transform = store.getComponent(playerRef.getReference(), EntityModule.get().getTransformComponentType()).clone();
Pair<Ref<EntityStore>, INonPlayerCharacter> result = NPCPlugin.get().spawnNPC(store, "NPC_Elf", null, transform.getPosition(), new Vector3f(0,0,0));
if (result != null) {
Ref<EntityStore> npcRef = result.first();
INonPlayerCharacter npc = result.second();
}
})
;```
When trying to summon a NPC, im not getting any spawn nor error, and the result is null, any idea why ?
I'm talking about the logs the server prints when you run it. Don't know what you mean by "plugin request"
is it possible to change an sprite texturepath in runtime?
does somebody know how to handle PlayerMoveEvent?
@west elk sorry dani where should i look, i see errors in intelij, im noy use to this, can u suggest a file, i apologize 4 my ignorance and i appreciate the help
Yes, but only to assets loaded with that pack on startup
cannot find anything similar in events
me and my friend cant play together because "hytale failed to connect to any available address. The host may be offline or behind a strict firewall"
what we have to do any tips ?
Wdym by loaded
I want to show a different animation depending on an item quality, whenever I update the texture path of the sprite I get an error that says is not possible to update it
I update via command builder
I mean it has to be in the pack (or a different pack) that's loaded. You can't change it to an image that's located somewhere outside on the file system
yeah from hytale modding dev website
Hmm yeah they are in pack, but somehow I’m having some issues? Did you experience any limitation with asset names? Like using @ and _
On the image file name
Yeah I noticed that vanilla uses @2x and stuff in the file names, but leaves that out when referencing it in the AssetPath
I don't know what those specifiers mean
Is that a real event?
Hmmm it might be causing issues I have some files with @ and pixel size and some underscores after that, seems like it detects the file but can’t load it, I will do a test with normal filename and see
i found the error
no, i meant when player moves i need to trigger, i got some functions shared here in this channel so will try that
[2026/01/31 23:07:59 SEVERE] [ExamplePlugin|P] Failed to setup plugin ExampleGroup:ExamplePlugin
java.lang.NullPointerException: Cannot invoke "com.hypixel.hytale.component.ComponentType.getRegistry()" because "componentTypes[0]" is null
at com.hypixel.hytale.component.Archetype.of(Archetype.java:288)
at com.example.exampleplugin.PlayerDeathEvent.<init>(PlayerDeathEvent.java:26)
at com.example.exampleplugin.ExamplePlugin.setup(ExamplePlugin.java:27)
at com.hypixel.hytale.server.core.plugin.PluginBase.setup0(PluginBase.java:389)
at com.hypixel.hytale.server.core.plugin.PluginManager.setup(PluginManager.java:763)
at com.hypixel.hytale.server.core.plugin.PluginManager.setup(PluginManager.java:242)
at com.hypixel.hytale.server.core.HytaleServer.boot(HytaleServer.java:385)
at com.hypixel.hytale.server.core.HytaleServer.<init>(HytaleServer.java:343)
at com.hypixel.hytale.LateMain.lateMain(LateMain.java:54)
at com.hypixel.hytale.Main.main(Main.java:43)
I think this is the bad part
hi dani my mvn folder has hytale server files but i am trying to import from my custom plugin i cant import my hytale server files in patcher-main folder
spawnNPC() returns null when npcType (in your case NPC_Elf) isn't found in the index
Is there an example of how I can use this?
Oh I see, thanks
I'm currently in the middle of upgrading my solution from JSON Files on a Disk to using sqlite-jdbc
I would set up an EntityTickingSystem and compare it's transform component every tick (or every few ticks with DelayedEntitySystem). But I haven't looked into this usecase myself so there might be a better way
yeah check if it works statically first and then try changing the assetpath dynamically
What's the best way to make an entity invulnerable / unkillable ?
Yep that's a good error. 👏
It looks like the component wasn't properly registered before you're trying to use it. Is this ExampleGroup:ExamplePlugin a template you got from somewhere? If so, check how which modifications you made before compiling/running it
how to do what? hover over the function to see which parameters it takes. Should be a lambda, a long, and a time unit
I don't have enough information to answer that
.
ill continue digging and breaking, thank you @west elk im self taught and slow, so ty for the help!
Hey is there a registration needed to access the death system? Because I watching the Component added override with printing a console message but it's literally not working. I also put the query on the player only
Anyone know if theres a way to get entity HP ?
Health is tracked in the EntityStatMap component
Hello 🙂 Is there a specific event for when lava/water generate cobblestone, or alternatively how best would I access that?
Anyone know how i'd go about altering a creature inside a capture crate, or where I can find the UseCaptureCrate interaction?
heyy anyone know how to change the player camera orientation?
did anyone made custom ui that have access to inventory/hotbar ?
I am going to assume no, havent seen one. There maybe a state changed event or check up update (nasty way as its a lot of calls but can work)
Heyy how should I go about interacting with MAP tab? for example displaying shaders or overlays? I tried doing some reaserch but got no luck
Check out Buuz135/SimpleClaims on GitHub. That sounds related to what you mean?
yes, thank you
can i use CommandRegistry for commands that are part of another installed plugin?
I see my plugin cannot load more than 50MB of images even if i dont use them? is it normal?
The only issue with sqlite-jdbc is it balloons my mod from like 30kb to 95mb
When creating a NPC with the frozen component, it doesn't move anymore, but it's stuck on a walking animation. Anyone got the same issue / knows a fix ?
Spawn NPCs like this, they won't move:
java Pair<Ref<EntityStore>, NPCEntity> npc = NPCPlugin.get().spawnEntity( world.getEntityStore().getStore(), 53, position rotation, npcModel, null, null );
Do you know the difference between the spawnNPC and spawnEntity methods@dusky sable ?
(also where do you find all roles indexes?)
how can I get the entities in a radius around a position in a world?
Hey guys, how do I access the UI imports, buttons, etc.? Does anyone know if they are available yet?
You get it via NPCPlugin.get().getIndex(<String>), so you don't have to put magic numbers in your code
Can someone tell me if there's a method that renames items and changes their color?
I believe spawnNPC() spawns the built-in NPCs/entities with all of their behaviors. With spawnEntity(), you can fully customize them and set roles like 53 which makes them not move and have no behaviors like attacking
I see
Role 15 makes it so they cant be damaged (I think?), and role 18 seems similar to 53
You need to create custom items for that
Can I put this on the server I'm building?
does anyone know about this limitation or bug?
Yep. Check the HytaleModding,dev website
ok thanks
Looking for devs to help build a network (commision opportunities are avalible)
Did you get it working? I tried to configure it using HytaleServer.get().config.playerStorageProvider = CustomPlayerStorageProvider() but I get a CodecException on startup
Ok I've updated my Balance workflow to use SQLite and flush the cache every 5 minutes
Hi! Does anyone know how to mod in a language?
Hytale plugins are primarily written in Java
Actually we use Malbolge
Yeah, that's fine I know java, but I would essentially be writing a mod to patch in a language for the blocks already present in the game
I think we should use uiua actually
scheduledFuture = new ScheduledFuture[]{HytaleServer.SCHEDULED_EXECUTOR.scheduleWithFixedDelay(() -> { saveAllPlayerBalance(); scheduledFuture[0].cancel(false); }, 5L, 5L, TimeUnit.MINUTES)};
I've got this scheduler running, But it seems like it only runs once ever, Do I need to Reschedule it manually or is there a method to make it do that automatically
A lot of asset-related things can be done via the asset editor. You don't even have to use Java for many use cases
anybody has any ideas how to replace the default UI? (when you press TAB)
or at least how to cancel it permanently
even if I use a subpacket handler, for some reason it will still open the menu 🙁
heyy anyone know how to change the player camera orientation?
i thought so too since it will ALWAYS open it and it'll throw an exception if I just override the behavior for client open window. but is there a way to recreate that UI at least? i'm very interested in the thingy which shows your skin
WindowType.PocketCrafting
what is that menu called, I couldn't find it!!!! 😭
im really getting crazy with this bug. whole hud getting black if my plugin size is +50MB
None of the PlayerStorage methods are called and none of my code is referenced in the stacktrace:
```
Caused by: java.lang.NullPointerException: Cannot invoke "Object.hashCode()" because "key" is null
at java.base/java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:948)
at com.hypixel.hytale.codec.lookup.ACodecMapCodec.encode(ACodecMapCodec.java:237)
at com.hypixel.hytale.codec.KeyedCodec.encode(KeyedCodec.java:181)
at com.hypixel.hytale.codec.KeyedCodec.put(KeyedCodec.java:144)
Looking for devs to help build a network (commision opportunities are avalible)
Any way to have a client read custom name for ItemStack's being sent in ContainerWindow? I dont want to require any client side assets for this.
Unfortunately it still happens after restarting. It also only happens as long as I use the custom PlayerStorage 😢
does anyone here have more than 50MB of images in their plugin?
@pale turtle btw do you think it's possible to have custom keys?
Can this not be done through like, a texture pack or something?
how? custom UI or what
If I want to catch an event when someone puts on an armor piece do I need to use the Ticking system? or is there a better way to catch those events
he is scammer
I dont think we have ever talked before ?
It's not empty. I even deleted the universe and regenerated it but I still get that exception. I guess I'm doing something else wrong. Thanks for your help though!
Yeah it prevents the server from starting 😄
Does anyone know why when I add instructions to my NPC role, the NPC doesn't spawn?
json { "Type": "Generic", "MotionControllerList": [ { "Type": "Walk" } ], "Appearance": "Player", "MaxHealth": { "Compute": "MaxHealth" }, "Parameters": { "MaxHealth": { "Value": 100, "Description": "Max health for the NPC" } }, "Instructions": [ { "Continue": true, "Sensor": { "Type": "Any" }, "Actions": [ { "Type": "SetInteractable", "Interactable": true } ] }, { "Sensor": { "Type": "HasInteracted" }, "Actions": [ { "Type": "SendExampleMessage", "Message": "Example Message" } ] } ], "NameTranslationKey": "Citizen" }
hey guys whats the dockers im gonna need for a hytale server running on ubuntu servers via a laptop
"Failed to load CustomUI Documents"
We all know this feeling? Lol.
@civic zephyr You're good at entities. Any ideas?
It doesn't spawn? Is there a console error?
Nope, no error. And that's correct, it doesn't spawn, or its just not visisble
I have the same issue
When this role is loaded into the assets does it error? If you tried to spawn a role that doesn't exist it displays a warning in the console like couldn't find role index -integerlimit
Its fine if I don't add any instructions
enable diagnostic mode from settings
That seems like the role is not loading
Is a message along these lines popping up when you try spawning your entity?
Couldn't find role index -2147483647
how did I not know about this
That's what I thought too, but I'm getting no errors and its fine without the instructions. I even tried the role json you sent me a few days ago, same issue
Oh wait, there is an error!
If when you add the instruction set it doesn't spawn, then its likely that you're trying to use some kind of action type thats not registered properly or something
I'm guessing I need to create an interaction json haha
Maybe?
java [2026/02/01 01:05:46 SEVERE] [NPC|P] FAIL: /Server/NPC/Roles/Citizen_Role.json: SetInteractable not valid in instruction the default behaviour instruction at: Role|Generic|Instructions|???|Actions|-|SetInteractable [2026/02/01 01:05:46 SEVERE] [NPC|P] FAIL: /Server/NPC/Roles/Citizen_Role.json: HasInteracted not valid in instruction the default behaviour instruction at: Role|Generic|Instructions|???|Sensor|HasInteracted [2026/02/01 01:05:46 SEVERE] [NPC|P] FAIL: /Server/NPC/Roles/Citizen_Role.json: Builder SendExampleMessage does not exist
Yeah thats not setup properly
You registered SendExampleMessage ? With its builder?
Nope. How is that done?
How can I get all entities in a world around a location in a radius?
You need to make an ActionBuilder to go along with your ActionBase and register it in the NPC plugin
I'll send you an example shortly
BuilderActionBase
My mistake
Get the chunks in that radius, then get the entities with chunk.getEntityChunk().getEntityHolders(), and then check if they're within the radius
Have you already got an ActionBase class?
No haha
Well where did you think SendExampleMessage would come from haha
Well, I'm aware of that, I was just trying to get the role setup first and then set up the interaction. I thought they would still spawn
This is done in the plugin code, not a resource json, correct?
is there a way to get Player with the playerref?
Have you got a Store<EntityStore>?
Or just a PlayerRef
the Store too
Player player = playerRef.getReference().getStore().getComponent(playerRef.getReference(), Player.getComponentType());
You might want to use a variable for the reference though
Make a class that extends ActionBase (Which is your action) and a BuilderActionBase which just provides the ActionBase class you made
Yeah, it would be great if you could send an example!
In the build override
anyone knows is there any item looks like key?
I'll send you mine for my grave plugin
thx
The builder
public class BuilderActionOpenGrave extends BuilderActionBase {
@Nullable
@Override
public String getShortDescription() {
return "Opens the grave UI";
}
@Nullable
@Override
public String getLongDescription() {
return "Opens the grave UI on the corpse";
}
@Nullable
@Override
public Action build(BuilderSupport builderSupport) {
return new OpenGraveActionBase(this);
}
@Nullable
@Override
public BuilderDescriptorState getBuilderDescriptorState() {
return BuilderDescriptorState.Stable;
}
}
Thanks. How would I register that?
NPCPlugin.get().registerCoreComponentType("OpenGrave", BuilderActionOpenGrave::new);
I'll try that, thanks a lot!
When you make your ActionBase you'll probably wonder how to get the player that interacted, its:
Ref<EntityStore> playerReference = role.getStateSupport().getInteractionIterationTarget();
Amazing, thanks
Your action that you wanted takes in an optional parameter that my builder did not need for the message
You can look at the
BuilderActionOpenShop
class ingame for passing data through the interaction definition
Anyone figure out how to have custom display name for items sent using page window?
Can I get the reference from the Holder?
I'm not sure without checking. @civic zephyr 😄
Just use TargetUtil it has a getAllEntitiesInSphere
It returns a list of Refs
thanks a lot :)
hey does anyone know if they will let server plugins disable the auto step up/down client feature in the future? I can disable mantling from a server plugin but the auto step up/down is a bit more obfuscated
Two questions.
- Is it possible to pass in some data about the NPC that the player is interacting with?
- What should my actions be?
json "Instructions": [ { "Continue": true, "Sensor": { "Type": "Any" }, "Actions": [ { "Type": "SetInteractable", "Interactable": true } ] }, { "Sensor": { "Type": "HasInteracted" }, "Actions": [ { "Type": "CitizenInteraction", "Message": "Example Message" } ] } ],
Consider the following concept design
We have what we are calling an AuctionContract, Which will hold The Item being sold, The history bids, Who sold it, Who last bid, And a buyout price
Bid History is a Map of AuctionBid objects that contain details about that Bid
Would it be valid to just store AuctionContract as a Map of Contracts to display in the AuctionHouse ? How should I identify them, Should I just give them a Unique UUID for the AuctionContract or store it by Player UUID?
Holy I suck at doing plugins, can some1 help me with this code, im srsly stuck in how does a scheduler and player pos works:
``` world.getScheduler().schedule(() -> {
TransformComponent currentTransform = entityStore.getComponent(
player.getReference(),
EntityModule.get().getTransformComponentType()
);
if (currentTransform == null) return;
Vector3d currentPos = currentTransform.getPosition();
if (startPos.distance(currentPos) > 0.1) {
error(playerRef, "Teleport cancelled, you moved!");
return;
}
int radius = SPACING * 3;
double angle = Math.toRadians((mineNumber - 1) * 36);
int rawX = (int) Math.round(radius * Math.cos(angle));
int rawZ = (int) Math.round(radius * Math.sin(angle));
int x = Math.floorDiv(rawX, CHUNK_SIZE) * CHUNK_SIZE;
int z = Math.floorDiv(rawZ, CHUNK_SIZE) * CHUNK_SIZE;
Vector3f rotation = currentTransform.getRotation();
Teleport teleport = Teleport.createForPlayer(
world,
new Vector3d(x + 0.5, Y_LEVEL, z + 0.5),
rotation
);
entityStore.addComponent(
player.getReference(),
Teleport.getComponentType(),
teleport
);
playerRef.sendMessage(
Message.raw("Teleported to Mine " + mineNumber + "!")
.color(Color.GREEN)
);
}, 60);
}
This seems right, im not sure what you mean by "pass in some data" about the NPC, the override in your ActionBase provides the ref of the entity that was interacted with
The ref of the execute override is the ref of the entity that was interacted with not the interactor
I assume I remove the "Message" key, right?
And the entity ref works, thanks!
If the builder has no functionality to read the message key then it will just be ignored it shouldn't error
How can i get an entity with entityId?
Whats wrong with this?
oh i just fixed the position stuff i just dont know how to use the scheduler
In Hytale, entities are only a collection of Components. You use the entityId/Ref to access those components from the EntityStore
Perfect. In the example you gave me, what do your descriptions do? Do they display text on the screen when looking at the NPC?
```java
public class BuilderActionInteract extends BuilderActionBase {
@Nullable
@Override
public String getShortDescription() {
return "Opens the grave UI";
}
@Nullable
@Override
public String getLongDescription() {
return "Opens the grave UI on the corpse";
}
@Nullable
@Override
public Action build(BuilderSupport builderSupport) {
return new OpenGraveActionBase(this);
}
@Nullable
@Override
public BuilderDescriptorState getBuilderDescriptorState() {
return BuilderDescriptorState.Stable;
}
}
Theres a
HytaleServer.SCHEDULED_EXECUTOR
I think thats just for development purposes or for future UI on the AssetEditor, or maybe they already show up in the AssetEditor
Ahh okay
All the builders have descriptions and such
The interaction text is a different field that I forgot
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import com.hypixel.hytale.server.core.HytaleServer; // Schedule saving auctions every 5 minutes scheduledFuture = new ScheduledFuture[]{HytaleServer.SCHEDULED_EXECUTOR.scheduleWithFixedDelay(() -> { saveAllAuctions(); }, 5L, 5L, TimeUnit.MINUTES)};
Would there be a default text or do I need to set it up?
Also, could you send me your code for OpenGraveActionbase()?
```java
@Nullable
@Override
public Action build(BuilderSupport builderSupport) {
return new OpenGraveActionBase(this);
}```
@merry harbor try this out
The default text is something like "Press F to Interact"
public class OpenGraveActionBase extends ActionBase {
public OpenGraveActionBase(@Nonnull BuilderActionBase builderActionBase) {
super(builderActionBase);
}
public boolean canExecute(@Nonnull Ref<EntityStore> ref, @Nonnull Role role, InfoProvider sensorInfo, double dt, @Nonnull Store<EntityStore> store) {
return (super.canExecute(ref, role, sensorInfo, dt, store) && role.getStateSupport().getInteractionIterationTarget() != null);
}
public boolean execute(@Nonnull Ref<EntityStore> ref, @Nonnull Role role, InfoProvider sensorInfo, double dt, @Nonnull Store<EntityStore> store) {
super.execute(ref, role, sensorInfo, dt, store);
Ref<EntityStore> playerReference = role.getStateSupport().getInteractionIterationTarget();
if (playerReference == null) return false;
PlayerRef playerRefComponent = (PlayerRef)store.getComponent(playerReference, PlayerRef.getComponentType());
if (playerRefComponent == null) return false;
Player playerComponent = (Player)store.getComponent(playerReference, Player.getComponentType());
if (playerComponent == null) return false;
var npcEntityGot = ref.getStore().getComponent(ref, NPCEntity.getComponentType());
var gotInv = npcEntityGot.getInventory();
var containerWindow = new ContainerWindow(gotInv.getStorage());
containerWindow.registerCloseEvent((w -> {
if (gotInv.getStorage().isEmpty()){
npcEntityGot.remove();
}
}));
playerComponent.getPageManager().setPageWithWindows(ref, store, Page.Bench, true, containerWindow);
return true;
}
}
Thanks a lot!
heyy anyone know how to change the player camera orientation?
Hello !
Saw Kaupenjoe's introduction video to server plugin where he said Hytale plugin creation would be more difficult in Java (I exclude the visual coding here) than creating a mod in another game
I'm of an intermediate level in programming and never tackled java before but I'm planning to intensively learn it to create complex mods !
Should I train myself doing mods for the other game before trying to code plugins for Hytale ? Or do you think it's a waste of time as Hytale may be too different ?
(i'm in love with Hytale and not so much with the other game also)
I think, That the guy that made that video, Doesnt know what hes talking about
Its been super easy to make Hytale Mods and I came from having never built a mod ever nor having used Java
Wrapping your mind around the Entity Component System is indeed more difficult than modding for other games, but it provides an insane amount of flexibility once you're used to it. If you have the inspiration to power through that learning curve, I believe you will do very well.
well, he did sound like he knows his stuff n_n'
but I get you're starting the modding journey focusing on hytale and i wish you fun and good luck ! :O
For context, I developed Shubshub Server Jump, Which is a mod that lets you jump to another server and take your inventory with you
And now I am developing Shubshub Economy
Kaupenjoe is a great source of tutorials and early help, as well as TroubleDEV on youtube
And to answer your next question, Yes I do intend to use the name Shubshub in all my mods as much as possible
TroubleDev is great
i just launched a survival server and its crazy
and how ?
mmh, so if I take enough time and energy to understand ECS, would you think it would be enough or should i get through vanilla Java courses as well ?
Also, TroubleDEV, saw a recommandation on youtube for this channel but didn't click yet, thank you, i will look after their content !
anybody know how to check where a player put a marker in the map?
@civic zephyr sorry
Do I need to setup the "SetInteractable" and "HasInteracted" sensors or can they be removed?
json "Instructions": [ { "Continue": true, "Sensor": { "Type": "Any" }, "Actions": [ { "Type": "SetInteractable", "Interactable": true } ] }, { "Sensor": { "Type": "HasInteracted" }, "Actions": [ { "Type": "CitizenInteraction" } ] } ],
hahaha I didn't wonder about this, I name things very similarly so I don't judge at all xD
Im having a look I believe thats wrong and it will complain about you trying to do that in the root interaction
It might just be a property on the entity
Claude Sonnet really helped me become initially familiar with the Syntax, Since I come from other languages
And this current mod I am building has been mostly AI free except for a few boilerplate things that I had already typed up elsewhere in the mod
having a plugin of more than 50MB basically breaks all the uis
Having them says they're not registered or something. Not having them, it doesn't show the interaction text. I haven't actually tested if the interaction works without them though
Question
is it recommended to initialize my managers in my main class and have getters for them there that other classes can access?
```private static final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
private static ShubshubEconomy instance;
private final EconomyManager economyManager;
private final AuctionManager auctionManager;
private final ConfigManager configManager;
public ShubshubEconomy(JavaPluginInit init) {
super(init);
instance = this;
configManager = new ConfigManager();
economyManager = new EconomyManager();
auctionManager = new AuctionManager();
LOGGER.atInfo().log("ShubshubEconomy plugin initialized.");
}```
```public EconomyManager getEconomyManager() {
return instance.economyManager;
}
public ConfigManager getConfigManager() {
return instance.configManager;
}
public AuctionManager getAuctionManager() {
return instance.auctionManager;
}```
That way I have a Global Manager object for each of them I can pass around
EG:
In my EconomyManager we do the following to grab configManager
this.configManager = shubshubEconomy.getConfigManager(); this.config = configManager.getConfig();
var ref = world.getEntityRef(uuid);
var store = world.getEntityStore().getStore();
var component = store.getComponent(ref, componentType);
Yeah, interaction isnt working when they're removed
Thank you for your answers! It is time for me to binge watch TroubleDEV's videos :3
His video on the Command Structure is pretty good
Yes, that is the best way to do it
Thanks
Alr tysm both
Is there a command type that would let me execute it against the Item I am currently holding in my Inventory Hand?
Now my problem is that it doesn't detect when the player moves
You're putting the instructions in InteractionInstruction ?
Or otherwise, If the best way to achieve that is with AbstractPlayerCommand
How can I get the Item I am currently "holding" in my hand (Not the Dual Wield, But like whats selected in my inventory)
Uh. Just like this lol:
json "Instructions": [ { "Continue": true, "Sensor": { "Type": "Any" }, "Actions": [ { "Type": "SetInteractable", "Interactable": true } ] }, { "Sensor": { "Type": "HasInteracted" }, "Actions": [ { "Type": "CitizenInteraction" } ] } ], "NameTranslationKey": "Citizen" }
I just found that instructions code in this channel, so I thought I should try it. I have no idea if its correct
Thats wrong
Well, its right, but only if you put that block in "InteractionInstruction"
Ok I think I'll do it this way
How can I grab the Item from my Hotbar that I have currently selected?
"InteractionInstruction": {
"Instructions": [
{
"Continue": true,
"Sensor": {
"Type": "Any"
},
"Actions": [
{
"Type": "SetInteractable",
"Interactable": true
}
]
},
{
"Sensor": {
"Type": "HasInteracted"
},
"Actions": [
{
"Type": "CitizenInteraction"
}
]
}
]
},
"NameTranslationKey": "Citizen"
}
Its not a regular instructionset
Does this look correct?
I'm not getting any errors, but the interactions aren't working and it doesn't have the "Click F to interact" text.
json { "Type": "Generic", "MotionControllerList": [ { "Type": "Walk" } ], "Appearance": "Player", "MaxHealth": { "Compute": "MaxHealth" }, "Parameters": { "MaxHealth": { "Value": 100, "Description": "Max health for the NPC" } }, "InteractionInstruction": { "Instructions": [ { "Continue": true, "Sensor": { "Type": "Any" }, "Actions": [ { "Type": "SetInteractable", "Interactable": true } ] }, { "Sensor": { "Type": "HasInteracted" }, "Actions": [ { "Type": "CitizenInteraction" } ] } ] }, "NameTranslationKey": "Citizen" }
Hi, I'd like to understand how to retrieve the runtime list of ids of all the Mod and vanilla entities loaded in the game world. I'd like to make a mapping to assign each entity a different weight for a mod I'm trying to create. Can you help me or give me some documentation on this?
Are you in creative mode
nope
You positive? Ive just pasted that role and its working for me perfectly fine
Yes. hmm
I just replaced the type with OpenBarterShop, are you sure you registered your type properly?
If I didn't I would be getting errors 🤔
Yes, maybe you are, are you checking?
Are you sure your action is working properly? Try logging
Yes, no errors.
```java
NPCPlugin.get().registerCoreComponentType("CitizenInteraction", BuilderActionInteract::new);
```java
public class BuilderActionInteract extends BuilderActionBase {
@Nullable
@Override
public String getShortDescription() {
return "Interact";
}
@Nullable
@Override
public String getLongDescription() {
return "Interact";
}
@Nullable
@Override
public Action build(BuilderSupport builderSupport) {
return new CitizenInteractionActionbase(this);
}
@Nullable
@Override
public BuilderDescriptorState getBuilderDescriptorState() {
return BuilderDescriptorState.Stable;
}
}
```
You can get the assetmaps of various assets, for the entities, the entity "types" as you call them are refered to as EntityRoles
```java
public class CitizenInteractionActionbase extends ActionBase {
public CitizenInteractionActionbase(@Nonnull BuilderActionBase builderActionBase) {
super(builderActionBase);
}
public boolean canExecute(@Nonnull Ref<EntityStore> ref, @Nonnull Role role, InfoProvider sensorInfo, double dt, @Nonnull Store<EntityStore> store) {
return (super.canExecute(ref, role, sensorInfo, dt, store) && role.getStateSupport().getInteractionIterationTarget() != null);
}
public boolean execute(@Nonnull Ref<EntityStore> ref, @Nonnull Role role, InfoProvider sensorInfo, double dt, @Nonnull Store<EntityStore> store) {
super.execute(ref, role, sensorInfo, dt, store);
Ref<EntityStore> playerReference = role.getStateSupport().getInteractionIterationTarget();
if (playerReference == null) {
return false;
}
PlayerRef playerRefComponent = store.getComponent(playerReference, PlayerRef.getComponentType());
if (playerRefComponent == null) {
return false;
}
playerRefComponent.sendMessage(Message.raw("Interacted"));
return true;
}
}```
For those who find it useful in #1467337635864510680 , please publish a plugin fork to help with .ui files.
guys, does someone has more than 50MB in installed plugins in their server?
Anyone able to assist here?
java player.getInventory().getItemInHand()
My plugin is currently 15mb
I dont think its a big deal of the overall size unless we're talking multiple gigabytes and its affecting your storage capacity and or server performance
Oh easy, Thanks
Next step, How would I actually remove that from the Players Inventory?
There's actually also the following. Not sure which is better
java player.getInventory().getActiveHotbarItem()
have someone found a way to fix the ratelimit of 50mb in mods folder for server?
I found out the whole game ui is breaking if you have more than 50mb in plugins
java player.getInventory().getHotbar().setItemStackForSlot(player.getInventory().getActiveHotbarSlot(), null);
Ive just copied everything off you and its all working perfectly fine
huh weird
You don't see the interaction text on the NPC?
Nope
Are you SURE you aren't in creative when you're trying to interact with the NPC
yes lol
How are you spawning the NPC? Can you try spawning your role through the ingame entity spawn menu and seeing if that works for you
I just spawned an NPC through the entity spawn menu, and same issue. Although I just noticed if I left click the NPC, I get disconnected...
```ItemStack currentActiveItem = playerComponent.getInventory().getActiveHotbarItem();
short currentActiveSlotIndex = playerComponent.getInventory().getActiveHotbarSlot();
playerComponent.getInventory().getHotbar().setItemStackForSlot(currentActiveSlotIndex, null);
//Do auction logic here using economyManager and currentActiveItem```
So this is correct?
You have some messed up thing happening on your server
Yes, that looks correct
Thanks
Hmm... let me try to create a new server
What plugins have you got on? Just the one you're developing?
It's multiple but nothing that should be interfering
Okay the crash was one of my plugins, but still no interactions
Can you go to the memory temple and interact with the shop keeps in the other dimension
Nope, it doesn't let me go through the portal
I think this empty server is bugged though since I have other issues with the world
You have a problem with your server that is unrelated to the plugin you're facing
Whatever is happening is some other result of the plugin you're making, something else you're probably doing in the plugin where you register the NPC action
Oh you can just.... Pass a CODEC to another KeyedCodec... Thats so neat
.append(new KeyedCodec<>("Item", ItemStack.CODEC), (contract, value) -> { contract.item = value; }, contract -> contract.item) .add()
Here I thought I was restricted to what was on the CODEC Object xD
Or it actually is another plugin that is causing a problem
It's happening on an empty server though without any other plugins 😬
Welp
I've already taken up a lot of your time, but do you have time to download the source code on github to try yourself?
Opa
What do I have to worry about when teleporting a player to another world? Is there anything to worry about or can I just do it like this like I would for teleportation in the same world: entityStore.addComponent(
entityRef,
Teleport.getComponentType(),
Teleport.createForPlayer(world, transform)
);
Not sure if there is anything with the component system that would maybe not make this optimal
do you know a mod with block contening component and system interacting with this component block ?
I really need to see an exemple with block component
hytalemodding,dev/en/docs/guides/plugin/block-components
anyone else using hytalemetrics plugin? I can't seem to get the plugin to populate to my account at the hytalemetrics website
I'd ask on the developer's discord
Hey guys, does anyone know if its possible to block all combat with all entities? I figured how to disable damage but entities are still recieving knockback, sound effects and effects.
You have to add the Teleport Component to the destination world.
Not yet
send me dm i found a way
Shubshub Economy now supports starting an Auction 😄
sent but not allowing me
The CODEC system is so cool
It might be my favourite part about the Modding API so far
Its just so easy to serialize and deserialize anything at all
where is that?
There is a link in the bottom right of the website (and then top right)
My Economy Mod will let you have 50 quintillion dollars if you so choose
Would it be recommended to store my Command.java files in their own folder seperate of the main class and then import them?
Does anyone know how to add pvp kills reward the player with coins with TheEcononmy
I dont know but thats something I'm planning to allow supporting in my own mod 😄
hey guys i got the server running but id love to OP myself to do creative mode ive put in my UUID into the .json file in /data/ but it aint giving me anything
@opaque cape how long til it releases
No ETA sorry, You're better off carrying on with what you have for now
But im planning to support AuctionHouse, Player to Player Trading, Rewards for Activities, And more
/op self or via console:/op add <username>
Currently ive got the start of the Auction House done
is there a wya to remove offhand items with an interaction
ill try it in console
how do I do a console command. I got the server running in the terminal
just start typing. If you can't type you need to do some tty magic to get interactive mode
perfect ill work on that thanks
is anyone willing to work with me on a minigames server.
im trying to use a docket to attach is that wrong? im running the server on my laptop ubuntu
it depends on how the image was built and how the container was started
can work though
the image was on the ubuntu website and im just running docker idk im new to this lmao with slight previous knowledge? cyber security was a hobby i had not really a passion so im familiar but no where near fluent
what's the command you used to start the container?
sudo docker attach hytale
i mean to start it in the first place
just docker start hytale && docker logs -f hytale
no docker create or docker run?
well docker run for the start yes
that's what I'm looking for
How do I view the errors/warnings that show in the top right after turning on debug mode
docker run hytale
there is no top-level image for hytale on the docker hub
at most it would have to be something like user/hytale
what does that mean
is there a hytale moddng server or a hub where ppl do stuff i need some modders to help me out on a project
it means docker run hytale can't be the exact command you used to initially pull/start the container
ah welp time to turn it off then on again lol
good luck but we can't help you without information about your setup. If you're not comfortable with containers, I would recommend running it directly via java
there is hytalemodding,dev, you can post about and share your project there and say you're happy to accept help but they don't like direct solicitation there either
Yeah nobody likes someone who's only there to beg for free labor
You have to get people excited about your project and build a welcoming community by showing off your progress and building connections
sorry correction i used docer compose
ive been getting chatgpt help along the way with this
then chatgpt can probably help you with getting interactive mode to work, or running it on your host directly. But without knowing which image you're pulling (or if it even got you to build one yourself), You haven't provided enough information to help you
Does SQLite natively support LONGs as a column type?
Hey guys, does anyone know if it's possible to spawn an invisible entity with a name?
I need to be able to store Unix time but unsure if an INTEGER type will be enough
Which image do you used in docker? You should be able to use docker exec -it just fine
sorry man i appreciate you trying
hi im new hear
You should only need Integer for Unix Time, if you need something bigger, try blob
im looking for any server to join
Thanks, Should be fine then
broccoli i think r:latest
Can anyone explain how to get the game to start with EarlyPlugins like Hyxin? As in, where does one apply launch flags? Asking here because it's a flame war in the Game-Discussion thread.
indifferentbroccoli/hytale-server-docker:latest
```public Map<UUID, AuctionContract> loadAllExpiredAuctions() {
Map<UUID, AuctionContract> expiredAuctions = new ConcurrentHashMap<>();
try {
String query = "SELECT auction_uuid, contract_data, auction_end_time FROM auctions WHERE auction_end_time <= " + System.currentTimeMillis();
ResultSet rs = auctionSqlManager.executeQuery(query);
while (rs.next()) {
String auctionUuidStr = rs.getString("auction_uuid");
String contractDataJson = rs.getString("contract_data");
UUID auctionUuid = UUID.fromString(auctionUuidStr);
// Deserialize JSON to BSON to AuctionContract
BsonDocument bsonDoc = BsonDocument.parse(contractDataJson);
ExtraInfo extraInfo = new ExtraInfo();
AuctionContract contract = AuctionContract.CODEC.decode(bsonDoc, extraInfo);
expiredAuctions.put(auctionUuid, contract);
}
} catch (Exception e) {
LOGGER.atSevere().log("Failed to load expired auctions: " + e.getMessage(), e);
return new ConcurrentHashMap<>();
}
return expiredAuctions;
}
Created my loadExpiredAuctions method 😄
Hey guys, does anyone know if it's possible to spawn an invisible entity with a name?
java -jar HytaleServer.jar --launch-flags-here
You should put them in CompletableFuture so it doesnt block the world thread on db operations
Oh that makes sense
Could you give me an example of what that would look like?
Yes, that is how cryptobench/EasySigns on GitHub works to spawn floating text
Shouldnt be too bad because expiredAuctions only needs to be accessed internally to Process Winnings and whatnot
?
I didn't understand
The plugin EasySigns spawns floating text in the world by summoning invisible entities with a nametag. That sounds like what you were asking about. You can see how they do it by looking at the code on GitHub
Okay, I understand. Thank you very much.
Your Repository/DAO methods should either return a CompletableFuture or call the DBService via CompletableFuture. That would execute the methods asynchronous to the World thread. As a example i dont have any but it should be something like
CompletableFuture.supplyAsync(Lamda of your method here)
Ok it sounds like I dont have to refactor my existing methods to be CompleteableFuture but I can call them from a CompleteableFuture
Get the container name and run:
docker exec -it NameHere /bin/bash
That should give you access to the server terminal
that drops you into the bash shell, not into the hytale process
You can, tho I suggest be careful with the calls. When you start implementing multithreading you have to account for Race Conditions.
For my Permission plugin i had to implement an internal queue system for db calls
anyone have a clue how to make mobs fight for you when summoned? i can make different mobs spawn from the grimoire just not fight for me
Can't you check how that's implemented in vanilla?
Yeah, from there he can kill the application and start one just for quickness. Not the ideal approach but something that work
Haha, I still havent figured how to actually access hytale console within a docker container. To be fair I also havent tried
You stop trying and then run it on barebone /s
If the app is running as the first process then you can do docker attach. Do for the Hytale docker image idk
Where do I turn off item drops/ durability % lost on death?
Yeah I just use tmux.. lol
in the world config's death config
Hi guys.... I'm working in a VIP plugin, and I'm need it to send same commands throght consele, like l/lp user <player> parent add <vip_name> how can I do that, wicht function should I use?
Hey guys, does anyone know if it's possible to spawn an invisible entity with a name?
CommandManager.get().handleCommand()
Already try this i dindt work
I didn't find it...
Works for me:
CommandManager.get().handleCommand(ConsoleSender.INSTANCE, "say AAAAAA");
ok i do need to ask a noob question about dockers. I am in cahcyOS and i find myself not being able to get out of dockers like ctrl + c or crtl = P doesnt get me out and im looking at like ^C or something in the terminal line
check main/java/com/easysigns/sign/SignDisplayEntity.java and /src/main/java/com/easysigns/sign/SignDisplayManager.java#268
It creates a new entity without a model and then modifies the "Nameplate" component to set the text.
Try Ctrl D
Any way to have custom item names in ContainerWindow using page manager without having to register fake items?
CTRL + A, CTRL + D was a fun one in Linux, I don't know if it has similar behavior, or whatever keybind I'm trying to remember
I got a hug error, cannot past here as its too long
bro its like terminal jail xD
Well without an error, we can't help you
Bingo, I found it! Thank you very much.
pastebin / hastebin
I sent you a pvt msg
try CTRL B and then D
tell me if this prints "AAAAAA" in the chat:
CommandManager.get().handleCommand(ConsoleSender.INSTANCE, "say AAAAAA");
We're plannning a "Phase 1" release late Feb '26 that will have a fresh start for the basics such as Classes, clans, claims, economy, "warring factions", pvp objectives, dungeonns and supporter perks and some more goodies. We hope to get your feedback about a lot of things so we can do better to you guys. Our primary focus will ensuring the gameplay feels good and we need you guys to tell us!
We're looking to get more staff members going.
Devs
Designers
Hypemen
Builders/Modelers
Moderation/Guides
Please let me know if you're interested!
Does anyone know what event I can listen to in order to know when a player is eliminated from the world?
Nice It did work, like you said..
Okay, then your error was due to the command that was executed afterwards 👍
Extend DeathSystems.OnDeathSystem and check the Death Component's deathInfo's getSoure()
no no, hahaha, when a player is removed from the world
what I did was use a variable, that gets the command from my json file
Oh, that's the RefSystem's onEntityRemove method
And the command that was executed threw the error
hi did they fix InteractivelyPickupItemEvent yet
is strange because we have AddPlayerToWorldEvent but not for remove
like can you cancel it or is it still broken
Found my mistake I wasnt puting .INSTANCE
I'm assuming they needed an event for that but haven't needed it for remove 🤷♂️
Feel free to implement a RemovePlayerFromWorldEvent yourself ^^
It doesn't get dispatched yet from what I can see
no, it does get dispatched, i know that for certain, it doesn't get cancelled when you set it to cancelled, that's the problem
oh yeah found it
InteractivelyPickupItemEvent event = new InteractivelyPickupItemEvent(itemStack);
componentAccessor.invoke(ref, event);
if (event.isCancelled()) {
dropItem(ref, itemStack, componentAccessor);
}
```
so you can cancel picking it up, but not breaking the block
for that you probably need to go earlier in the chain
The server manual says that HytaleServer.jar would be published at https://maven.hytale.com/release , but that site does not exist. Is that information outdated, or is that intended for a future time, or is the site just down right now?
That's not a website, it's a maven repository
you can download it from there if you plug in the artifact group, name, and version
So there's no web interface fo rit, but it can be accessed by maven?
Because I'm just looking for a reliable way to fetch specific versions.
you can download it manually too if you really want:
https://maven.hytale.com/release/com/hypixel/hytale/Server/2026.01.28-87d03be09/Server-2026.01.28-87d03be09.jar
just have to plug in the latest version
yes, exactly
OK. Awesome. That's much more convenient than using the downloader script.
just don't hard code the version (or be prepared to update it regularly). you can get the latest version info from the metadata xml:
https://maven.hytale.com/release/com/hypixel/hytale/Server/maven-metadata.xml
The reason I'm interested is because I want to make a port for FreeBSD and an ebuild for Gentoo to automate the installation of the server for users.
Shouldnt it just run already if you install Java on FreeBSD?
No. The srver is missing some stuff necessary to run on FreBSD. But I submitted some code this afternoon to the devs so hopefully they will fix that.
Oki
guys Is there a method to set the direction of a block via code?
whatever happens to Hytale, they should never sell out
If you try to run it on FreeBSD as it is, it will complain abouta missing library. Even if you compile that library and ad it to the classpath, it won't be able to create an encryption key meaning it won't save your credentials, and you have to reauthorize every time you start the server -- big hassle.
It's software, they have theoretically infinite stock. How can they sell out?
(...again
)
just taking precaution
???
I think they mean like selling the rights to another company again like Riot
and maybe an early reminder in 10 years
Not actually running out of copies to sell
I know, I'm just playing around
Oh ok, Text doesnt convey that well xD
Reading back, yeah, it doesn't really match the playful intention I had
Oh well
in all serious, hope this game never sells out in anyway, I'd much rather let this game die than be bought out by a corpo just like last time but they're adding things against the wishes of the playerbase
guys Is there a method to set the direction of a block via code?
How many arguments I've had with my wife because a text message didn't convey the intended voice inflection...
I think emojis are the solution this, however much I hate them I can't deny them that
hi you helped me and i think i've helped you abit, can we test some stuff?
No sorry, don't have time
anyone know why this is throwing me an error?
for (PlayerRef ref : world.getPlayerRefs()) {
Store store = ref.getReference().getStore();
PlayerRef playerRef = (PlayerRef) store.getComponent(ref.getReference(), PlayerRef.getComponentType());
MovementManager movementManager = (MovementManager) store.getComponent(ref.getReference(), MovementManager.getComponentType());
movementManager.getSettings().baseSpeed = 1;
movementManager.getSettings().jumpForce = 1;
movementManager.update(playerRef.getPacketHandler());
}```
errors is on MovementManager movementManager = (MovementManager) store.getComponent(ref.getReference(), MovementManager.getComponentType());
just not sure why my friend could open chests and use stuff like he was the owner of the chunk claim, the events are so weird, i think it collects every entity inside the chunk and saw me in there and said yes my friend has access to it because i was inside the chunk
sadly he does drugs so he has no time
```String query = "SELECT auction_uuid, contract_data, auction_end_time FROM auctions WHERE auction_end_time <= " + System.currentTimeMillis();
ResultSet rs = auctionSqlManager.executeQuery(query);```
Is this valid SQL?
Notably the <=
yes
Thanks 😄
SELECT auction_uuid, contract_data, auction_end_time FROM auctions WHERE auction_end_time <= 1000;
is valid sql
auction_end_time is stored as Unix Time btw
I know
This is for finding Expired Auctions so I can process them 😄
but anyways, as I was saying, you should probably end the line with a semicolon
There is a semi colon?
not in the query
I mean the actual query
<--- Never really written much SQL
and you should get used to using prepared statements, even though it's not important in this specific case
Looking for someone to make a very simple plugin for me that restricts NPC Interaction to a specific Class a user picked before out of a json savefile :>
If its just for yourself, Claude could probably achieve this easily if you provide it the Decompiled Server files
Yeah i dont like using AI and i got alot of stuff to do so i hope somebody who likes to try some new stuff and likes to help see´s my message c: if not thats fine too ofc, just wanted to check if maybe somebody is there who can help on that
Managing a server all alone is hard :>
what is the diffrence from these two, archetypeChunk and commandBuffer
just wonder why my friend could use stuff inside my claim
does this collect entire players inside the chunk if i use this
var playerRef = store.getComponent(archetypeChunk.getReferenceTo(index), PlayerRef.getComponentType());
Is this a custom claims mod you've made?
yeah, not difficult to make if you have the chunk long
just wonder why its not working right
Probably would need to see more of the code, But I also dont have much understanding of archetypeChunk to begin with
i have a feeling my worldguard is bugged to, if i am a builder then it would read it as others has builder to just because i have it
how to make a server
It’s 3am and I’ve been trying to get my cables to work how I want it to 🙁 I think having 4096 models is a bit too much lol. Maybe I can reduce that by rotating and stuff for different amounts of connections and connection types… but it’d be nice if I can just visually turn on/off certain nodes in the model via like BlockState or something
should i use commandBuffer or store to get the player who did the event?
whish we could get the player by event.getPlayer()
Use CommandBuffer.
Events run on the transactional state; Store can cause edge-case bugs.
love you buddy
Archetypes are a performance optimization for Hytale's ECS system. Entities that have the same components (e.g. all bears) are all stored together which makes it faster to iterate over them each game tick to apply bear-related updates.
Check TroubleDEV's YouTube video on the Entity Component System (Part 1) at timestamp 24:28-25:48
ArchetypeChunk would be a grouping of all chunk/block entities, I believe.
CommandBuffer is a buffer of commands that get queued executed on the store after the game tick. If you read data from the store, it's fine to do it directly, but if you want to modify the store, you should do it via the commandBuffer so it all gets executed nice and orderly. Otherwise you can run into race conditions like Hytsu said.
arh i see so i can use the archetype for example cancel the attacking kweebecs?
I don't know what you mean, lol
no worries but this is fine right?
@Override
public void handle(int index,
@NonNullDecl ArchetypeChunk<EntityStore> archetypeChunk,
@NonNullDecl Store<EntityStore> store,
@NonNullDecl CommandBuffer<EntityStore> commandBuffer,
@NonNullDecl PlaceBlockEvent event) {
var ref = archetypeChunk.getReferenceTo(index);
var playerRef = commandBuffer.getComponent(ref, PlayerRef.getComponentType());
if (playerRef == null)return;
var uuid = playerRef.getUuid();
var world = store.getExternalData().getWorld();
var vector3i = event.getTargetBlock();
var chunkLong = getChunkHandler().getChunk(vector3i.x, vector3i.z);
if (!getChunkHandler().isClaimed(world, chunkLong))return;
if (getChunkHandler().hasAccess(uuid, world, chunkLong))return;
event.setCancelled(true);
playerRef.sendMessage(Message.join(
Message.raw("Chunk is owned by ").color(Color.RED),
Message.raw(getChunkHandler().getOwnerUsername(world, chunkLong))
));
}
Only thing I’d change not to mix views in the same tick.
commandBuffer.getExternalData().getWorld()
Using store mid-tick can cause edge cases.
Also small note archetypeChunk.getReferenceTo(index) assumes this handler is running on a player archetype. That’s fine if intentional, just something to be aware of.
rest seems fine, but also i'm prety new to java
i hope they add event.getplayer this is crazy
theres a couple of things i'm trying to figure out myself, I made a mod to persist arrows when on miss but had a Issue Projectiles weren’t persistent because the game doesn’t auto-claim them. When they miss, they just despawn. I had to explicitly catch the projectile and turn it into a real item, otherwise it’s gone.
huh had an bug my self with arrows, i attacked one that was stuck on block after shooting and kicked me cause the arrow id was null
Running a pretty high population server - is there any way to make the server just...faster, generally? Things like block breaking lag, combat lag, etc. I've tried to throw every server spec I can at it, but it feels like a software issue. We do patch some bugs in house too, but it doesn't feel like its enough.
Anyone have recs for improving performance?
What’s the easiest way to go about disabling a read-only recipe?
What specs do you have right now? And what server do you have? Virtual or dedicated?
I've run dedicated servers, everything from 9950X3D with 64gb ram to our k8s box with like 192 vcpu (decent clock) and 800gb ram
i would assume these will be alot better when the game is no longer in early access, im just guessing and hoping for that 
Yeah I unfortunately think it's just Hytale right now, but you know players. Telling us to throw better servers at it, need more RAM, etc. Not really sure what we can improve. We've patched some things like fluid dynamics and other things but, not much luck really impacting the random performance spouts that happen w/ no traces
The single world is still only running off a single thread correct?
Would it be better design to create the server in a way that has multiple worlds and utilize multiple threads of your CPU to offset the load?
Lemme know if my understanding is incorrect
Server performance is based off of single core clock speed, so it's actually best to run less in parallel to ensure you get boost clock speeds (i.e more perf) That's my understanding
yes, each world has it's own main thread, so if you can split your players up into as many worlds as you have threads, that would be ideal. of course players want to play together, so that's where single-core performance comes in
The Performance Saver plugin Nitrado made does the following to dynamically improve performance when it starts lagging:
- TPS limiting
- Render distance adjustment
- Additional GC
Have you tried it out on your server or are you looking to build your own plugin that does something similar (Nitrado's is open source)?
I have a ton of explicit calls to NotificationUtil.sendNotification in my code, Even just in the same function as each other, One has literally 10 calls to it
Should I just make a NotificationsManager?
Or does it not really matter
If any server or user wants a mod or custom plugin, let me know and I’ll open commissions. You can include art, animations, and functionality.
@rare sundial @fervent lava @sly igloo @inland palm
Take it to DMs pls if you wanna commission him
why ping
you were asking for devs earlier
stop pinging
aye aye boss
you goofy boy
Asks for Devs
Someone says they're open for Comissions
Gets pinged to notify
omg stop pinging me
what
Hey, is anybody else getting exception from netty pipeline in ChannelInitializer? It says PEER_DID_NOT_RETURN_A_CERTIFICATE
How can i get the event of a player died?
There is a DeathSystem for it, you can just extend it. Basically when player dies DeathComponent is added, and when he is respawn it gets removed so you just listen for those
Thanks
Hi Idk where’s the server with friend thing so do anyone want to play like chill vanilla
Im down
I’m trying to reverse-engineer the UI system and I suspect it isn't fully dynamic within the Asset Manager. When a .ui file is selected, the available modes seem to be hardcoded to a system Enum or anyother .json for example Teleporter.ui only showing "Full" and "Warp". When I manually add a third mode to the code, it doesn't appear in the editor and triggers a chat error in-game. Is this logic hardcoded into the game's core or is there a way to extend these enums or .json?
Many ui functionalities, especially interactivity, requires Java code, yes
hey, where do i place the mods that arent .jar files? like the violets-music-players
Anyone want to join my Modded dedicated server? Online 24/7, not too many mods, exploring/building and no mic required. 😄
into the mods folder as well
oki
Me out here waiting for hytale to allow color for nameplate 
do i need to unzip them?
nope, not if they're zipped up correctly
He has them disabled. 
U can't msg him

might have been troll, lol
Or a scammer. 
But scammers do not have DMs blocked. Hmm.
I was bout to ask for his portfolio
oh i was talking about the wrong guy
Haha
@naive imp you might wanna open DMs
Or just comission someone
what i miss?
That's what they're trying to do ^^
I hate the UI system in this game so much lmao... I have almost completed the webpanel for my mod but the UI pains me
can anyone test my levelling system out on my server? alone its hard to test. I would pay you if you get any skill to level 100 and let me know how it went! nimbus.dathost.net:15512
Thats an interesting way to advertise your server... unfortunately, this channel is dedicated to developers... you might wanna try one of the discussions channels
ha
Does SQL support a BOOLEAN type?
im all for helping people but dude... just google it?
mysql does, but sqlite doesn't
Hmmm ok
Are there already some kind of liquid storage in the game? I want to introduce a new liquid for my mod and objects that can store them (imagine some kind of water tank)
Consider the following concept
- You win an auction
Would you expect the Transfer of Items from Seller to Bidder to be on the AuctionManager or the EconomyManager ?
EconomyManager handles stuff like Transfer of Balance
AuctionManager is processing the expired auction
But there's also a plan to have a Trading System in the future, So should I get ahead of that and make a TradeManager to do this instead?
I would expect an EconomyManager to only handle money, not items
Makes sense
Put it on the AuctionManager and when/if you implement TradeManager in the future, consider if you want to refactor it at that point
avoid preemtive optimization
Fair enough
how does one get player input like the player is using their shield?
Can someone provide a reference as to how I can setup a plugin as a library to be used by some of my other plugins?
How can I check if the Players Inventory is full?
And how can I add an ItemStack to the first available empty slot in the Inventory?
Can anyone help me test my mod
How do i set item slot in ui to empty ? when i set "" as item id it says invalid item on slot
You want to remove an item from the inventory?
``` ItemStack currentActiveItem = playerComponent.getInventory().getActiveHotbarItem();
short currentActiveSlotIndex = playerComponent.getInventory().getActiveHotbarSlot();
playerComponent.getInventory().getHotbar().setItemStackForSlot(currentActiveSlotIndex, null);
i have custome ui that have ItemSlot and after i remove items from SimpleItemContainer i need to update UI
```
cmd.set("#InputSlot.ItemId", inItem.getItemId());
cmd.set("#InQt.Text", (state.getInputQty() == -1 ? "": state.getInputQty()+""));
but what do i set if SimpleItemContainer is emnpty?
```
cmd.set("#InputSlot.ItemId", "Empty");
cmd.set("#InputSlot.ItemId", "");
```
anyone happen to know the replacement api for the deprecated world.getBaseBlock()?
What is cmd in this context
```
UICommandBuilder cmd
Have you tried just setting it to null?
It looks like its taking an ItemID so "" would be an invalid ItemID
So I would wager null is gonna be valid
yup
```
Ambiguous method call. Both
set
(String,
Value<Object>)
in UICommandBuilder and
set
(String,
String)
in UICommandBuilder match
null gives error
if not null, then maybe "Empty"? That is usually the id for the air block
haven't worked with those types of ui yet, though
Although let us know what works because, I'll need to know for my Auction House UI 😄
```public void transferItem(ItemStack item, UUID winnerUuid) {
// Implementation depends on the rest of the economy system
LOGGER.atInfo().log("Transferring item to winner: " + winnerUuid);
PlayerStorage playerStorage = Universe.get().getPlayerStorage();
CompletableFuture<Holder<EntityStore>> loadFuture = playerStorage.load(winnerUuid);
Holder<EntityStore> playerHolder = loadFuture.join(); // Block until loaded
if (playerHolder != null) {
Player player = playerHolder.getComponent(Player.getComponentType());
if (player != null) {
Inventory inventory = player.getInventory();
if (inventory != null) {
CombinedItemContainer inventoryContainer = inventory.getCombinedHotbarFirst();
boolean canAddItem = inventoryContainer.canAddItemStack(item);
if (canAddItem) {
inventoryContainer.addItemStack(item);
LOGGER.atInfo().log("Transferred item to player " + winnerUuid);
return;
} else {
// We want to cache the item for Later Delivery
}
}
}
}
}```
So I've got this code here
In my else statement, I want to store the Item for later delivery
Should I make a MailManager here? hmmm
ID:Empty = Invalid Item so nope 🙁
how to update UI while it's opening or have to open new instance?
Create a new UICommandBuilder, it has a bunch of update methods on it. You can target elements to update by their id (#LikeThis).
Then, call .update(false, uiCommandBuilder) on the ui.
Okay, thank sir
Still trying to figure out if there’s an easy way to remove recipes from benches successfully.
Overriding them and changing/removing the recipe does not work because the original item will reappear.
The only way I’ve found it to work is creating a new workbench with a different ID and adding every other single item I want to actually keep, and assigning them to the new bench.
If there’s an easier way, that’d be appreciated.
Is there a getting started somewhere about plugin dev? Or SDK documentation / availability etc?
you could remove them from the vanilla Assets.zip
Check out some tutorials on youtube, TroubleDevs a good one
Hello, how does water spreading work? I made a custom water source that does not spread to the sides but if i place it against a wall and there are air blocks below it "duplicates" itsself downward in a column
```
{
"MaxFluidLevel": 1,
"Effect": [
"Water"
],
"Opacity": "Transparent",
"Textures": [
{
"Weight": 1,
"All": "BlockTextures/Fluid_Water.png"
}
],
"BlockParticleSetId": "Water",
"BlockSoundSetId": "Water",
"FluidFXId": "Water",
"Ticker": {
"CanDemote": false
},
"Tags": {
"Fluid": [
"Water"
]
}
}
is anyone free to help me test my enchantments mod
I bet it's MaxFluidLevel: 1. I think it can't flow if it's already at level 1. If you increase it to 5 for example, it might flow for 4 blocks
Found IT!
```
cmd.setNull("#InputSlot.ItemId");
ehh
im down to test if you are willing to test if my /pvp works on mine lol
hells yeah msg me, ur dms blocked
Yeah thats what i though, it set to "MaxFluidLevel": 1 and it still flows downward
S is block
W is water source block
Lets say i have blocks
S
S
S
S
I put it here
S W
S
S
S
It will flow like this
S W
S W
S W
S W
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:
public static void onConnect(PlayerSetupConnectEvent event) {
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
@signal vale
thx
How would I go about getting players uuid from outside of the game/sever?
what do you mean by that?
in the plugin u can do this 'playerRef.getUuid()' but if I want to find players uuid from an external app where the user enters its username only?
player lookup api is not for public consumption and requires a server's authentication token
proper apis for that will come later
damm... okay
wait do I understand correctly that the uuid is a global thing and not just per server?
Anyone know the exact cli or download link for the debian install files for the JDK version that is compatible with the AOT file?
I keep getting AOT Errors preventing it loading, this was the best match I could find:
[0.011s][info][aot] _jvm_ident expected: Java HotSpot(TM) 64-Bit Server VM (25.0.1+8-LTS-27) for linux-amd64 JRE (25.0.1+8-LTS-27), built on 2025-09-25T16:41:16Z with gcc 14.2.0 [0.011s][info][aot] actual: OpenJDK 64-Bit Server VM (25.0.1+8-LTS) for linux-amd64 JRE (25.0.1+8-LTS), built on 2025-10-21T00:00:00Z with gcc 14.2.0 [0.011s][warning][aot] The AOT cache was created by a different version or build of HotSpot
Is there any plan to add a method to suppress world leave broadcasts in DrainPlayerFromWorldEvent?
Currently AddPlayerToWorldEvent has setBroadcastJoinMessage(false) which works great for suppressing join messages, but there's no equivalent for leave messages. So we can hide "PlayerName has joined explore" but not "PlayerName has left explore".
your hytale account has a uuid, and each of your game profiles also have a uuid. I believe the latter is what you get from playerRef.getUuid() and playerRef.getWorldUuid() is specific to the entity in your world
okay
how can i update my server to the newes version of the game ?
They use Temurin for the singleplayer server, you can get it from your launcher's game directory
Auto updates upon restart
Unless you're talking about pre-release
That is such a common feedback, I am pretty sure it's in their plans already, yes. In the mean time, you can overwrite that function with an earlyplugin like Nozemi/hytale-server-patcher on Github
so yeah playerRef.getUuid() is a global thing so if someone wants to make multi server db stuff then use playerRef.getUuid()
I've restarted the server several times now, but I still can't connect.
I tried to get Temurin 25.0.1+8-LTS from the website but looks like it's only available on macos. the versions the got for debian is now differnt. 🙁
@lyric stone instead of trying to match your jdk version, generate an aot cache for your jdk and environment.
Guys, how would you approach dinamicly add a portal that teleports another world? Like a command /spawn portal or on plugin/server setup
Does anyone have intellij project template?
There are a few on GitHub. Check Build-9/Hytale-Example-Project or Kaupenjoe/Hytale-Example-Plugin for example
Good, i'll see if i can make it work for scala lol
15 dollars is wild
Just for the case, is there technical capacity to connect N clients to single server, all locally, as minecraft modding setup allows?
Take a look at the builtin Portal(s)Plugin, especially the UI logic for creating portals, PortalDevice and the such
Hi guys, please help me how can i find any part of the code that interests me (for example, player effects that exists in game, as i understand they should containing in enum or some constant view)? Maybe i should change settings on my IDEA or something? As i understant Intellij just decompiling .jar file of HytaleServer and indexed search doesnt work in it.
I have HytaleServer.jar in my project directory libs, and im using "Find in Files..." function by clicking on it or on libs/HytaleServer.jar/com/hypixel/hytale
Sometimes it is not comfortable to learn lib code exploring it only by files.
It's easier to decompile the JAR youself using fernflower and open the result as a project in IntelliJ - way better indexing etc
Why am I editing common.ui, but I don't see any changes on the client?
the client only seems to hot-reload ui files that are loaded directly. I had to rejoin to see changes of imported files
what you can do during development is to paste the elements of your common.ui into your current ui file and edit them there. then when you're happy with it, put them back
Hi, is there any way to dynamically change the properties of an item or a block? For example changing the model of block after placing a specific block next to it, or increasing the power of a pickaxe every 10 hits
Are ui files required on client or can server send everything client needs?
I don't understand the question. The server always sends all assets the client needs. The client can't bring custom assets into a server (yet)
Hey now that I hope the modding community of hytale has grown more experienced.. did we have a way to hot reload or something servers to not need to relaunch and re auth (that part is the one that annoys me the most) when making and testing a mod?
Does anyone know how to use the asset editor whilst making a java plugin. My mod shows as read only and I can't edit it.
Referring to custom gui’s built on server only. If we create common UI files, do these files need to be present on client ? Goal is to work like Minecraft where a server gui requires nothing for clients.
You don't need to reauth every server start. you can run /auth persistence Encrypted to store the auth keys on disk. The server then loads them automatically when it starts.
Regarding hot-reloading, there is /plugin reload <pluginName>, but you need to make sure to implement lifecycling correctly
amazing thank you very much
If you update assets (both in the Common and Server directories), they automatically get sent to the client in my experience
Nice to know! I can move away from my inventory gui if that’s true.
kaupenjoe's plugin template on GitHub has a gradle setup that mounts the assets without zipping them, and has a task to sync them back into your normal folder structure when the server shuts down: Kaupenjoe/Hytale-Example-Plugin
Can Events have a return value?
Currently making a custom event implementing IEvent
I'd like the handler to do some chekcs based on the content of the event and then return a boolean
Has anyone figured out a way to update display name of item sent through page window manager?
Are you a coder or animator/model creator, lemme know!
Events can have any methods you want. Just implement the required interfaces then add whatever is needed.
Alright, thanks
How would that work?
If I change the return value of the accept method of my handler, I get this:
'accept(MyEvent)' in 'handler.MyHandler' clashes with 'accept(T)' in 'java.util.function.Consumer'; attempting to use incompatible return type
I wish /auth persistence Encrypted was on by default.
It's a potential security risk because it holds you hytale account tokens
only use it on systems where only people you trust have access
you would need to use it on a hosted server that is always on.
Consumer#accept returns void that's why
so its not possible for a event to return something?
Best practice in this situation is to use the Function class
Example:
```java
Function<String, Integer> lengthFn = s -> s.length();
Integer result = lengthFn.apply("hello");
how can I change the movespeed of a player?
Actually, predicate might be what you're looking for here
```java
Predicate<CustomEvent> predicate = event -> {
// inspect event
return true; // or false
};
predicate.test(event);
so basically i should scrap my events, and do it with Predicate?
Hi, i try to register my own action but i got "Builder ReplaceBlock does not exist". Where do u call registerCoreComponentType ? In plugin setup ?
Need any info about EntitySpawnItemsPanel.ui. How to use it in my custom ui?
All what I know this is a client file, found it here: \Roaming\Hytale\install\release\package\game\latest\Client\Data\Game\Interface\InGame\Pages
And it looks like panel with items by categories in build tools, when you select Spawn Entity.
EntitySpawnPage is server class, but IDK why items panel are client.
How can I make a block an entity? Or should I always use Component<ChunkStore> instead of Component<EntityStore>?
Yes
Hi, have you managed to make the player input listener work?
Spent two days trying to figure this out, If your trying to clear custom icon buffs with ClearEntityEffect, Make sure Run Time is greater than 0 otherwise the icon is constantly being removed q.....q
Tell your friend they might be coming soon 🤷♂️ 🤌 🤩. I've got a proof of concept working calling the native hytale API from js bindings. Just needs a ts type package on top for sanity
Any Coders/Modders that want 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!
Do anyone know how to do proper ui update ?
i have some elements in custome ui made like this
```
cmd.set("#Energy.Value", Math.max((double)0.0F, Math.min((double)1.0F, state.getEnergyFill())));
cmd.set("#Energy.TooltipText", String.format("%d/%d Energy", state.getStoredEnergy(), state.getCapacity()));
cmd.set("#Progress.Value", Math.max((double)0.0F, Math.min((double)1.0F, state.getProgress())));
cmd.set("#Progress.TooltipText", String.format("%d%%", state.getStoredEnergy()*100));
//ItemSlots
ItemStack outItem = state.getOutputStack();
ItemStack inItem = state.getInputStack();
if(inItem != null){
cmd.set("#InputSlot.ItemId", inItem.getItemId());
cmd.set("#InQt.Text", (state.getInputQty() == -1 ? "": state.getInputQty()+""));
}else{
cmd.setNull("#InputSlot.ItemId");
cmd.set("#InQt.Text", "");
}
if(outItem != null){
cmd.set("#OutputSlot.ItemId", outItem.getItemId());
cmd.set("#OutQt.Text", (state.getOutputtQty() == -1 ? "": state.getOutputtQty()+""));
}else{
System.out.println("Empty output");
cmd.setNull("#InputSlot.ItemId");
cmd.set("#OutQt.Text", "");
}
and i need to update them after change
now im using SCHEDULED_EXECUTOR ther ticks every 250ms and cals render function that sets values ,
it kinda works but itemslots are buggy,(label updates but ther is no item in slot visualy, itemslot updates after 1 process ends, when i take item away and update it dont disapear until i close ui)
How can I prevent users to open Workbench?
Anyone wanna help a brother out, i have a shockbyte hytale server and i can't for the life of me figure out how to download a prefab onto my server. Id really really appreicate the help ive been going at this for almost a day
yeah, pre block interact event, and cancel it if it's an interaction with a workbench
Is there any physical way to change a blocks health so it is a 1 click to destroy?
any idea how to change / disable gravity?
can I use HytaleServer.SCHEDULED_EXECUTOR to easily schedule something for the next tick, or do I have to use a TickingSystem?
is there a way to get the total player count across all worlds?
Universe.get().getPlayers()
hey there brand new to mod making in hytale . so i was able to add the 2h sword 1h mace and axe to crafting table i am able to craft those i can do the normal attack and charged one as well as block but i dont gain any energy from hits to use Q so i was wondering if someone could guide me thru how to make that one work coz i tried few things like attaching attacks from different weapons but that didnt help and i am a bit lost so if somone would find a bit of time to even point me directions of what i am suppose to search for
I have server hytale online
Does anybody know if I can call interaction from code (or on keypress/use/ability)?
ok
anyone figured out how to change the blockdrop when breaking a block, want to drop other items.
its in the asset editor under behavior breaking
I think it’s onPlayerInteractEvent
But I had a pretty hard time with that. Got it working but barely
I would say listening to packets might be a better way to go about it
is there also an event in the server, wanna base the drops on some other factor which i have stored in my plugin
Yeah, i ve seen that event but it says that it is deprecated, so i have decided not to use it. Now i am trying by listening packets and i have managed to get id of entity player is interacting with, but i still haven't figured out how can i get the entity by its id. I might use EntityUtils getEntity method even though it is deprecated, but it requires archetypechunk and I don't know how i can get reference to it
Hi @vital jetty,
Is there any chance we can get some kind of "id" for mods/plugins, that doesn't relies on the mod name itself? Currently, renaming a mod will have unintended consequences to players, since the mod will be disabled in their world, and the default data directory location will change, making old config files not work out of the box after a mod rename.
How do I make block emit light? Block light and item light property in asset editor does not change how much light it emits when placed down
idk
guys Is there a method to set the direction of a block via code?
Yes, you place the block with a rotated position
?
Chunk.setBlock(x,y,z,id, blockType, rotation, filler, settings)
oh
rotation is an int tho
I understand! Thank you.
It won't replace the block it will just rotate it, despite its name
use RotationTuple to convert degrees to their int format
Okay, thank you!
No problem, also a guy sent me this before so just gonna paste it here if you want to read:
```• Rotation is stored as a small integer index into RotationTuple presets, not as a free‐form vector or quaternion.
Key points:
- RotationTuple represents yaw/pitch/roll using the 4‑way Rotation enum (None, Ninety, OneEighty, TwoSeventy) on each axis.
- RotationTuple.index() returns a compact int (0..23 for the defined combinations) used in chunk storage.
- To work with it, convert between index and tuple:
-
From stored int → RotationTuple current = RotationTuple.get(rotationIndex);
-
To compute a new orientation, modify the tuple and take its index:
RotationTuple current = RotationTuple.get(rotationIndex);
RotationTuple next = RotationTuple.of(current.yaw().add(Rotation.Ninety), current.pitch(), current.roll());
int nextIndex = next.index();
-
- WorldChunk.setBlock(...) expects that rotation index; it just writes the index, no math. The renderer/logic reads the index and uses the tuple for facing/hitboxes/etc.
- If you need a “face the player” rotation: compute desired yaw from player → pick nearest Rotation (Rotation.closestOfDegrees(deg)), build a RotationTuple with that yaw (pitch/roll usually Rotation.None), then use
tuple.index().
So think of the int as a packed enum combination, not an angle in degrees/radians; RotationTuple is the helper API to go back and forth.```
That helps a lot.
Anyone knows a mod that teleports you to spawn on reconnection?
You can try PlayerReadyEvent event
J
does anyone know where the ore generation configs are? i want to change how an ore spawns but i caant find the generation fuctions anywhere
What is node editor used for?
woahh nevermind this is where people have been doing worldgen huh
Am I crazy or is Block Light property bugged? It only works on certain XZ coordinates. When I copy the winter light asset its block light is 0 but it works?
Anyone having problems doing heavily custom GUIs? I can do basic generic ones, but anything too custom it just crashes
Thank you!
hey, why my damage system is triggering only when player receive damage?
Perhaps you used the player entity store
Guys, I'm trying to spawn a chest in the west direction, but it always spawns in the south. I can't fix it no matter what. Can anyone help me?
How to prevent horse mount event?
Event named Mount not work.
I'm working on a mod where I'm considering an announcer voice + subtitles (for non-audio users).. would be so strange to hear a voice-over for cinematic shots 🤣
how to i get these place holders to register ive already done /Wpapi ecloud download all and nothing is working
is there a way to use a 3rd party app (like notepad++) to edit json files in the asset editor?
cuz i've tried to export them and then go to the folder they are and open them but the changes don't apply.
How do I get a mod or plug-in to disable player names on maps in my hytale server
Sooo, does anyone know the feasibility of making a block that behaves like "pipez" from MineCraft? From what I can tell, I can "easily" get the pipes to attach to eachother, but not so easily visually display if it's "pulling" or "pushing" from an adjacent tile. It comes to like 4096 possible states (4 states per side [disconnect, connect, push, pull] to the power of 6 for each possible connection per side combo). Baking in 4k models doesn't sound ideal or manageable with the current "ConnectedBlock" system.... so I'm not sure how to approach this.
I've explored having the block just be the base texture, then adding the "arms" to visually collect stuff as model assets for props, but that ran into other issues of removing them when the block is destroyed...
Guys, I'm trying to spawn a chest in the west direction, but it always spawns in the south. I can't fix it no matter what. Can anyone help me?
anyone knows how to get the drops on BreakBlockEvent?
I'm trying to set a custom damage in a DamageEventSystem
```
System.out.println("Base Damage: " + damage.getAmount());
damage.setAmount(100000f);
System.out.println("New Damage: " + damage.getAmount());
It prints that new damage schould be correct
But it just doesnt apply it in game
Doesnt matter if i set the amount to 0 or 100000 or anything in between
Hello, is there a way to block block placement in a certain zone but enable block breaking?
Have you tried just cancelling PlaceBlockEvent ?
I just figured it out thx
Hi, why is every fluid "flowing" downward in a column even tho i removed SpreadFluid. Is there anotherr option so i can have 1 block fluid source that doesnt spreat anyway?
```
"Ticker": {
"CanDemote": false,
-- "SpreadFluid": "Water" <- i removed this line and it stopped flowing sideways but still goes down.
}
anyone know of any server plugins that can add a bit of difficulty to mid-game/end-game without adding a system like food/water?
Is this the right place to find out how to make a prefab show up in world generation?
kinda stupid question here but in the "/world add (name) -gen=____" what do i put in the gen category for a superflat world?
"Flat"
thanks
It's either here or #discussion, or #map-making I think.
Ok, thank you 🙂
Does anyone know how to make a prefab show up in world generation?
I've done it in Worldgen V2, but it required making a whole new Instance with new biomes and assignments, so that might not fit your usecase.
Is there a way to do something like this? ik theres no word.getPlayers() so i wanted to know how to do it and get their pos:
```private static boolean isPlayerStandingHere(
World world,
BrokenBlockTracker.BlockPos pos
) {
return world.getPlayers().stream().anyMatch(player -> {
int px = (int) Math.floor(player.getPosition().x());
int py = (int) Math.floor(player.getPosition().y());
int pz = (int) Math.floor(player.getPosition().z());
return px == pos.x()
&& py == pos.y()
&& pz == pos.z();
});
}```
Happy to do whatever it takes, I just need my prefab building to be placed here and there when the world/chunks generates.
setBlock(int x, int y, int z, String blockTypeKey, int settings) has anyone figure out what i can do with the settings here? i'd like to place a block rotated upside down in code
Yeah, but I assume you want it to actually spawn in the existing world, as far as I'm aware what I did won't do that.
Does anybody know what is the proper way how to get entity by its id?
For me I think just having it show up in new chunks would be great. I don't want to force it to spawn in existing chunks because it should be more natural. At least for now.
What I meant is that the world you spawn into in adventure won't have it, it would only show up in a instance that you would have to get the player to. IE, the method I used won't make it spawn in the world you spawn in at all. It spawns them in a custom world that makes use of V2.
Did you end up having any luck?
Ah, ok, so I'd have to make a whole new custom WORLD.
Yeah, it's not hard to do because of the examples in the base code, but it doesn't sound like what you want.
Not so far. They published alot of docs online but I had no time looking at.
As long as it's a world the looks just like Hytale normally does, but has this building in some places, then it could be fine. But yeah, it does feel a bit heavy handed because I was hoping to have it be compatible with mods that do similar things.
At the moment it wouldn't be the same as normal hytale since V2 doesn't have most of the v1 stuff ported to a v2 world yet.
Ah ok, so what we play in, when we make an adventure world, is still v1?
Yeah. Now there are ways to get players to instances through gameplay, so you could have it be a separate world that you have some portal or some such to enter and exit, but again, that doesn't sound like what you wanted, so...
Yeah, it wasn't, but it's starting to sound interesting 😛
In that case you should poke around the docs for worldgen and the files in the HytaleGenerator folder, plus those in Instances.
Do you have a good link to the world gen docs, I've been trying to figure out where the official stuff is but I'm not sure. All I found was hytalemodding dev stuff.
I think the official ones are on hytalemodding dev docs. Those are the ones I used at least. They got updated like 3-4 days ago I think to be official ones on worldgen. I think.
Ok, awesome! Thank you! I feel like I have some real answers after days of trial and error 😛
Remember, the best references is using the node editor on the existing HytaleGenerator assets, and then referencing the docs. It is minorly painful, but it works.
Thank you! 
What is his language lol
Edit: oops sorry i didn't see it was an old message
Anytime.
bump
Decomp the base game and look at what they do.
how can i itereate over online players?
@strange tapir Is there any plan to add a method to suppress world leave broadcasts in DrainPlayerFromWorldEvent?
Currently AddPlayerToWorldEvent has setBroadcastJoinMessage(false) which works great for suppressing join messages, but there's no equivalent for leave messages. So we can hide "PlayerName has joined explore" but not "PlayerName has left explore".
has anyone gotten intelisence to work with the decompil;ed code or bc there is no documentation yet
Hi, I have a question. My mod worked perfectly before the update, but now, for some reason, the interaction effects don't work if there's a runtime delay beforehand. I'm not sure if I'm explaining myself well, but basically, now the particles, sounds, etc., don't work if there's a delay created by the runtime.
If anyone can help me, I'd really appreciate it. It's quite frustrating, and I don't know what to do, haha.
Honestly, it doesn't make sense that this isn't working. I think it's a bug in the new update. If anyone knows anything, please let me know.
I just tested the mod on the previous version and it worked perfectly
How to add interactions ? I created my mod to interact with an NPC, and added another mod with the assets (interaction + UI) but when clicking on the NPC I get "Missing interaction : Test_interaction"
Do the interaction mod needs to be in a .jar or just folders ?
can someone help how do I get a mod or plug-in to disable player names on maps in my hytale server
on my main class i do
```
protected LuckPerms luckPerms;
@Override
protected void start() {
this.luckPerms = LuckPermsProvider.get();
}
@Override
protected void setup() {
somethingManager = new SomethingManager(this.luckPerms);
}
and get it with
```
private final LuckPerms luckPerms;
public SomethingManager(LuckPerms luckPerms) {
this.luckPerms = luckPerms;
}
if (luckPerms == null) {
logger.atWarning().log("luckperm null");
return false;
}
```
but still my luckperm is null anyone have a idea?
What does LuckPermsProvider look loke?
any ideas how to modify jump hight?
Has any noticed or had reports of block breaking delay when passing the 30+ players mark?
TPS is constant 30+ TPS and CPU load averaging 6-7%
I’ve tried everything at this point
Became very noticeable after update 2
anyone who has gotten intelisence to work?
Anyone figured out how to add new keybinds yet?
In the executeSync method of CommandBase is there a way to set a block in the world the sender is in? Something like World.setBlock(x, y, z, "Rock_Stone")
Anyone know how I can get the commandBuffer?
you cant.
@full swallow @tawny seal regarding error 403. I've searched through the chat and seen a lot of people asking the same question. do you have to purchase the game in order to run the dedicated server? when using the installer after going through the authorization we are getting an error code 403 and the download does not continue.
🤔
yes
Well that's a bummer
are there any blocks that by default have interactions with projectiles like arrows?
Is there some easy way to track if a player right cliked some item?
Is there a plugin to add corner shallow roof pieces
```java
@Override
public SystemGroup<EntityStore> getGroup() {
return DamageModule.get().getGatherDamageGroup();
}
Is there a way to damage all Entities within a given range around a given coordinate?
(Without using ExplosionUtils if possible)
When I want to store a reference to a world, I could store a UUID or a name as a string, both allow me to do getWorld on the universe but I don't see how I would get the UUID of a world. Calling addWorld on the universe does not return a UUID but just a world and I don't see it holding an UUID
ah, it's part of the world config
Hi group,
I need help:
```java
package net.latinhy.nexus.systems;
public class ExampleBreakSystem extends EntityEventSystem<EntityStore, BreakBlockEvent> {
public ExampleBreakSystem() {
super(BreakBlockEvent.class);
}
@Override
public void handle(int i, @NonNullDecl ArchetypeChunk<EntityStore> archetypeChunk, @NonNullDecl Store<EntityStore> store, @NonNullDecl CommandBuffer<EntityStore> commandBuffer, @NonNullDecl BreakBlockEvent event) {
// Ignore empty blocks / air
if (event.getBlockType() == BlockType.EMPTY) return;
// Get the Player entity
Ref<EntityStore> ref = archetypeChunk.getReferenceTo(i);
Player player = store.getComponent(ref, Player.getComponentType());
if (player == null) return;
// Example Logic: Prevent breaking a specific block (e.g., the Nexus block)
// Let's assume we are checking for a specific block type string
String targetBlockName = "nexus:nexus_core";
if (event.getBlockType().toString().equals(targetBlockName)) {
// Send a message to the player
player.sendMessage(Message.raw("You cannot break the Nexus core!"));
// MY CURRENT WORKAROUND:
// I let the block break, but I immediately replace it to simulate it wasn't broken.
// event.setCancelled(true); <--- This is causing the issue I will describe below.
player.getWorld().execute(() -> {
// Reset the block immediately to simulate cancellation
player.getWorld().setBlock(event.getTargetBlock().x, event.getTargetBlock().y, event.getTargetBlock().z, targetBlockName);
});
}
}
@NullableDecl
@Override
public Query<EntityStore> getQuery() {
return Player.getComponentType();
}
}
I'm trying to cancel the event when a player hits a specific block. However, when I use event.setCancelled(true), the block visually keeps its 'crack' (damage) state at 100%. This means that if the player hits the block again immediately, the break event fires instantly without any delay.
If I wait a few seconds, the block eventually restores itself, but I need it to be instant.
Currently, my workaround is to NOT cancel the event (letting the block break) and then immediately using world.setBlock() to place it back, effectively resetting it.
Does anyone know if there is a proper way to programmatically reset the block's crack/damage level to 0 without having to replace the block entirely?"
does anyone know how to get an entity ref from InteractionChainData.entityId?
Anyone do a mod to make the toolbenches that do not access chests able to access chests? i.e the builder bench? Would be great if that worked the same as the block selection screen in the inventory-tied toolbenches and allowed you to see what blocks you can make based on your inventory + inventory of chests in range. Grabbing stacks to see what they can do in the builder bench can be very time consuming and clunky compared to using the inventory-tied workbenches
[2026/02/01 22:10:39 WARN] [Universe|P] Timeout or error waiting for player 'VarNotUsed' removal from world store
java.util.concurrent.CompletionException: java.lang.IllegalStateException: Invalid entity reference!
when trying to use
```java
freshStore.addComponent(freshEntityRef, Teleport.getComponentType(),
new Teleport(targetWorld, spawnPoint.getPosition(), spawnPoint.getRotation()));
Anyone experienced the same? is tp api bugged?
Did you check if it's null before creating the Teleport component
How can I iterate over the online players to get their location
I can't even figure out what component type to use for generic npcs
Hello! Someone knows how to interact with mobs healthbars ? I´m trying to figure if the fadein/out, distance before disappearing, things like that can be modified
Where do I get a List of the available Particle IDs accepted by "ParticleUtil.spawnParticleEffect"?
Welp I found a limitation 🤣
Caused by: ProtocolException: Packet UpdateBlockTypes serialized to 2028639560 bytes, exceeds max size 1677721600
they actually relased official docs for npc just today
been attempting top add adjustment of death penalty and day/night duration to my server through PingPlayers hosting but every time I try the server doesn't allow connection just default fails any attempt to join - Just removed death penalty adjustment and left time adjustment and can join, so death penalty is still holding back
does sandboxie work to have 2 hytale instances open? would reaaaaally like to test multiplayer plugins alone 😂
Why do you have a 2gb packet 
thats... impressively horrible lol
every mod ever?
though I thought the vanilla server broke up those into several packets, I guess not
yoo
Not sure why it ballooned like that. It started happening when I added a 3rd item that uses the same set of 4096 models with just a different texture...
where are they at?
fwiw, that's not 4k resolution, that's 4k models
are they the same model?
if so, consider... not doing that lol
okay well I finally figured out that it's the network id that the index is
how you get that without looping over every entity.. I have no idea
They aren't, they're different variations of an "item pipe" and I'm using block states to choose which one to use... "ConnectedBlocks" can't do what I'm looking for sadly.
It's 4 states per side (disconnect, connect, push, pull), then to the power of 6 for the 6 sides
okay cool. getNetworkId is deprecated.
So all 3 items were using the same exact set of models, but idk why it'd have ballooned up to 2GB 🙃
Is possible to cancel all commands expect some, is there some PlayerCommandEvent or smthng?
where can I find these?
I very much hate this code
```java
playerRef.sendMessage(Message.raw("ea sports ent id: " + item.data.entityId));
player.getWorld().getEntityStore().getStore().forEachEntityParallel(NPCEntity.getComponentType(), (index, archetypeChunk, commandBuffer) -> {
Ref<EntityStore> inner_ref = archetypeChunk.getReferenceTo(index);
var ent = commandBuffer.getComponent(inner_ref, NPCEntity.getComponentType());
if (ent.getNetworkId() == item.data.entityId) {
player.sendMessage(Message.raw(index + ": " + ent.toString()));
player.sendMessage(Message.raw("Role: " + ent.getRoleName()));
}
});
uh ignore the ea sports thing
definitely not debug madness
but hey, it works!! ||🗿||
ur stupid ashell
if you know a better way.. feel free to share.
this is my first time working with an ECS
anyone in here have a server that floods with these:
[2026/02/01 22:38:22 SEVERE] [World|default] Took too long to run pre-load process hook for chunk: 296ms 530us 600ns > TICK_STEP, WorldChunk{x=8, z=20, flags=00000000000000000000000000000100}, Hook: com.hypixel.hytale.builtin.fluid.FluidPlugin$$Lambda/0x000000002fc4d638@329b4b8b
[2026/02/01 22:38:23 SEVERE] [World|default] Took too long to run pre-load process hook for chunk: 357ms 591us > TICK_STEP, Has GC Run: true, WorldChunk{x=-8, z=6, flags=00000000000000000000000000000100}, Hook: com.hypixel.hytale.builtin.fluid.FluidPlugin$$Lambda/0x000000002fc4d638@329b4b8b
i thought it was my mod but when i remove all mods they are still happening on my server even with a new universe BUT someone else in another discord says they "dont get any severes" on their console or logs of their server" im trying to figure out if something is wrong with both my Gportal AND local hosted server or if this other person is just FoS. I would send a screenshot but i cant so just know the console gets FLOODED with them when players are walking around
and it's not like I have any documentation on this
I get those, it's probably just too many chunks getting generated for the processor, probably what it means by 'pre-load'
I mostly see that on new worlds when it's freshly generating everything around me
Hola, como están, soy modder pero nunca pude con Hytale ya que tengo un problema, realmente me compre el juego hace bastantes dias pero nunca pude probarlo por que para iniciar sesión me envian un codigo al hotmail pero nunca llega, tampoco para recuperar la contraseña o algo (yo tengo acceso al correo y si se cual es la contraseña) no se si a alguien le paso algo similar
Hi, how are you? I'm a modder, but I've never been able to get Hytale working because I have a problem. I actually bought the game a few days ago, but I've never been able to try it because they send a login code to my Hotmail address, but it never arrives. I also can't get a code to recover my password or anything like that (I have access to the email and I know the password). I don't know if anyone else has had a similar experience.
Any chance i can get someone to test something with me on my Skywars plugin rq?
yeah it only seems to happen when they explore new chunks
I wouldn't worry too much about that, it's just stuff in that specific chunk might lag a little. If world tps stays ok it's probably fine
i've found a video news of kaupenjoe, in that video it was the link
I have now Spent two days trying to debug that because this other person says it doesnt happen on their server so i just thought it was my oreGenLib doing it ugh lol
I use the EntityStore to store components on entities and ChunkStore to store components on blocks and such, but where can I store state in items?
yeah I can't find anything better than this for getting the entity out of an interaction
I guess it's amazing that I'm like the only person trying to do that?
maybe it's better to just make a custom interaction than do whatever this bs is
Did you solve your problem?
Is anyone still having issues with the Discord game server? When you enter the Forgotten Temple and exit through the portal, the game starts having problems and kicks you out. Is this issue still affecting most people?
Guys, I'm trying to spawn a chest in the west direction, but it always spawns in the south. I can't fix it no matter what. Can anyone help me?
Can't u just use ```java Vector3i pos = event.getTargetBlock();
event.setCancelled(true);
If any of you server dudes are using nocube bakehouse mods This is the correct output it should read.
```
{
"ItemId": "NoCube_Ingredient_Corn_Dough"
}
not
```
{
"ItemId": "Ingredient_Dough"
}
```
cant get ahold of the mod owner to fix it, but its like that with all his json files that have the wrong outputs. Looks like it was templated and just not updated. So if anyone is using just wanted to make ya aware enjoy. Had to manually fix there stuff on our own world.
is it @elder saddle maybe, same tag so maybe maybe not
Does anyone know what VectorSphereUtil and BlockSphereUtil are for? Can you use them to run code at each position in a sphere? Is vector sphere along the lines of how MC handles it's explosions, because that's exactly what I'm looking for?
are you receiving event when you do damage to monsters?
getEntityStoreRegistry().registerSystem(new MyDamageListener());
```public class MyDamageListener extends DamageEventSystem {
@Override
public Query<EntityStore> getQuery() {
// Return Query.any() to handle all entities, or a specific query
return Query.any();
}
@Override
public void handle(int index, ArchetypeChunk<EntityStore> chunk,
Store<EntityStore> store, CommandBuffer<EntityStore> commandBuffer,
Damage damage) {
// Get reference to the damaged entity
Ref<EntityStore> targetRef = chunk.getReferenceTo(index);
// Modify damage
damage.setAmount(damage.getAmount() * 0.5f);
// Or cancel it
damage.setCancelled(true);
}
}```
I'm trying to receive the player attack here ://
ok so custom interactions just don't seem to work at all??
I'm just getting Missing interaction: ABC
even though I very clearly registered it
Guys, I'm trying to spawn a chest in the west direction, but it always spawns in the south. I can't fix it no matter what. Can anyone help me?
Dude, why is there still no fix for Forgotten temple crashing the entire server???
Someone enters the portal and the server goes crazy
Let us at this point just disable those portals in config
You can disable it if you just edit the asset using the Asset Editor. (You'd have to make a new pack via the editor, and override the default portals.)
But it requires you to find all portals around the server? Or no
Nah, if you override how it works through a pack it effects all of them.
is there a way to get Player before the player disconnects?
Recommended for now?
If you're having issues with the temple then that's what I would do.
Yeah.. I can’t manage to find any mod that fixes the issue, will try this solution
Thanks
I hope it works for you.
Anyone know if there's any way to get syntax highlighting and suggestions for .ui files? surely there's something
I think there is an official plugin for it, but it doesn't really work in my experience.
there's a jetbrains extension
there's two, not sure how they compare. I use "Hytale ui Support" by Bungee
ill look into that thank you
yeah that happens a lot its really frustrating
Did you have a website link in it?
no, ofcourse not haha
just a link to my own X account
What does settings do here? Its an int
World.breakBlock(int x, int y, int z, int settings);
Yeah, I think all links are dissallowed.
ahh
For some reason when I do setBlockInteractionState it's causing it too fail to get the blockReference in the next tick.
I'm at full stop blocker right now haha, because I'm unsure how to trigger a block animation without this method
I would show code, but as soon as i do that it getting blocked...
