#server-plugins-read-only
1 messages · Page 109 of 1
We created AI gang are we srs.
"Buh god created us 2 create!!!" Gang is creating a thing which creates more things not an application of that so called purpose
lmfao
No it's not, it is creating a thing so we don't have to create anymore
not yet i'm still in the planning phase i'm still considering all the possible optimizations and qol changes i want to make also still figuring out how i will do those optimizations like wrapping features in a quantized version would be great but wouldnt be nearly as fast as if i would just recode those entire systems for what i need specifically
Because be honest, it's not you creating those images, it's the machine
added you as a friend
You tell it what you want to see, and it makes it for you. It's as creative as searching something on Youtube
/world settings worldgentype set HytaleGenerator
HytaleGenerator: v2 Default
Default: v1 Default
Flat: v1 Flat
Void: v1 Void
Technically thats the humans creativity that the ai is just using so i kinda get his point, but also his point of "I can detect and AI image from a mile away" is just incorrect. If you got the right model it can make videos that arent even detectable unless you dive really deep into it
Atleast with a Coding Assistant, I am fully in control of the process, what actually makes it in, The flow we are taking, And I can actually sit there and analyze what its asking me to do
Im not asking the coding llm to "Create a hytale mod that lets you jump servers and takes your inventory with you"
The invention of interchangable parts by elie whitney made it so that proprietary parts for weaponry wouldnt have to be made as it created standardization of its design.
Is elie whitney thus evil and deserving going to hell as he has created something which makes less people create things, thus disturbing humanities purpose?
and how do you get it to actually use the node editor? changed it to that and it's still the normal world
Im asking the coding llm "Look in the server files and tell me how I can grab the Player reference, these are the variables I have access to right now"
This already in the base game why would you
We are all evil and deserve to go to Hell. But to answer your question, I'd argue so.
No it isnt
You are a moron
yes it is bruh
Ain't we all?
You cant jump to another server and take your inventory from one server to another
😂 ✌️ no that's you exclusively here
Blahhhhh
Your inventory doesnt follow you between servers in the base game
bruh when you change instances you keep your inventory
they mean servers, not worlds, like, seperate servers on different machines, running their own copy of java
Servers
There you go
Physically different servers
See now your statement is correct
What
they didnt say worlds from the start though?
I said servers from the start
im slow ash you did
Bruh hes having a stroke
that message wasnt even editid lol
oh, thats what that means, I had to google that sentance 💀
I've temporarily put Nylaro's WorldGen V2 guide in my bio, check that please
I was about to say i had to code a way to remove inventories and give them back for my minigame plugin
thanks
Might start working on a new mod tonight though
Anyone know why this dont work? I also tried the UseBlockEvent and that didnt work either
public class MenuItemListener {
private static final String MENU_ITEM_TYPE = "Deco_Book_Pile_Small";
public static void onMouseButton(@Nonnull PlayerMouseButtonEvent event) {
// 1. Check for Right Click using the string name to avoid "Symbol not found"
// Most Hytale enums for buttons are "RIGHT" or "BUTTON_1"
String buttonName = String.valueOf(event.getMouseButton());
if (!buttonName.contains("RIGHT") && !buttonName.contains("BUTTON_1")) {
return;
}
// 2. Validate the item in hand
Item itemInHand = event.getItemInHand();
if (itemInHand == null || !MENU_ITEM_TYPE.equals(itemInHand.getId())) {
return;
}
// 3. Get the Player and PlayerRef directly from the event
Player player = event.getPlayer();
PlayerRef playerRef = event.getPlayerRefComponent();
// Use the Ref provided in the constructor (inherited from PlayerEvent)
Ref<EntityStore> entityRef = event.getPlayerRef();
if (player == null || playerRef == null || entityRef == null) {
return;
}
Store<EntityStore> store = entityRef.getStore();
// 4. Cancel and Open
event.setCancelled(true);
player.getPageManager().openCustomPage(entityRef, store, new MenuPage(playerRef));
}
}
What's the error
Click my tag
shouldn't that run on the world thread?
no error, it just doesnt work
Everything builds, game runs, just doesnt cancel the event and doesnt open the ui
add logging to the early returns
Log everything thats variable thats needed to proceed through the code
@copper summit it may be something to do with the right click (I havent used this particular event yet), but:
// CRITICAL: Dispatch to world thread for any world-modifying operations
world.execute(() -> {
// Re-validate on world thread (entities might have changed)
if (!entityRef.isValid()) {
return;
}
Store<EntityStore> store = entityRef.getStore();
if (store == null) {
return;
}
// Get PlayerRef from store (required for PageManager)
PlayerRef playerRef = store.getComponent(
entityRef,
PlayerRef.getComponentType()
);
if (playerRef == null) {
return;
}
event.setCancelled(true);
player.getPageManager().openCustomPage(entityRef, store, new MenuPage(playerRef));
});
Why are you doing this
String buttonName = String.valueOf(event.getMouseButton());
if (!buttonName.contains("RIGHT") && !buttonName.contains("BUTTON_1")) {
instead of
if (event.getMouseButton().mouseButtonType == MouseButtonType.Right){
What is BUTTON_1
Llm moment
fr
Well i already know that everything but the get mouse button works, i can use my ui using the same method and the rest of that is all basic api
Your llm failed to know what was the correct method
also I would just put a breakpoint and step through it to see which return its hitting (or thrown exception)
I control clicked the event class and it told me how to do it
I always make sure to call out my coding assistant if something looks stupid or wrong
my chaotic evil agent would just open my webcam and say "its you" ;_;
"You are absolutely right!"
"This you?"
Actually once it reiterated the implementation was correct after double confirming against the server files and my own implementation
Actually ig i could log the getiteminhand event too to make sure that works
how to check for fluid at a location?
I wasnt sure if it was mouse 1 or right, that shouldnt matter though
sometimes it mouse 0 and 1 sometimes its left right
public enum MouseButtonType {
Left(0),
Middle(1),
Right(2),
X1(3),
X2(4);
oh crap
literally control click on it
it would be 2 huh
i gotcha, either way it still should work, that line should be the error
oh is it case sensitive maybe
ill try that
oh damn that makes sense
Well no because an enum is not a string its an enum
So even comparing it to the value of 2 is wrong
Yeah i already got told that lmao
Fair
I actually found this out the hard way at work, Because we can call java from js code but I wasnt able to do it because I couldnt make the enum type in js
Cause in js an enum is just strings and numbers
Anyone working on a koth plugin at all?
Yes I am
koth? is that a minigame?
if so im making a generalized minigame plugin you can use to create basically any type of minigame
I'd say its more of a server event, it's King of The Hill
But yeah it'd probably be considered a mini game as well
oh, yeah my plugin can do that, its got a win position condition, ill add a time limit to that win condition
@fleet sphinx i don't really want to clutter #showcase; i have instructions on the readme
but tl;dr, grab the Hybric jar from the github releases, place it next to your HytaleServer.jar, extract the assets folder, and then run the Hybric jar
as long as HytaleServer.jar is in the same folder right next to Hybric.jar it'll launch
Ah, I see. Hybric is responsible for launching the Server with new context
yep, Fabric launches before Hytale (or minecraft) and transforms it as it's loading
aka the loader ---> loads server jar ---> loads mixins ---> loads plugins
yep
Cool stuff. I've just been doing mixins with Hyxin
My minigame plugin can be used to create any type of minigame from skywars to competetive parkour, and ill add the time condition too so it can do koth too
i needed an accessor for something so I spent longer than I'd like to admit doing this
its got a class system, inventory management and everything
I haven't yet had a need for more flexbility yet. Waiting on the Hytale client to be more flexible first. But I'm sure there's a ton of people who could use that flexibility right now
I'm waiting on the Hytale client to support symlinks on unix-like systems
-# casual 50mb free on my main disk 😅
Can you explain to me why you needed Fabric's modloader for this? I made an accessor and mutator with Hyxin
from the Hyxin curseforge:
Accessors, invokers, interface injection, and similar features are not production ready.
What the heck is Hybric
#showcase thing I made
Hmm... I didn't have any problems with it
it didn't work for me 🤷♂️
How so? Thrown error? Or just didn't work
So this is for loading Minecraft mods in hytale?
no, you can package a hytale mod in the same way you can package a minecraft mod, which means you get to use features like fabric's dependency management and (most notably), mixins
Are you familiar with mixins?
hytale's standard modding doesn't support mixins
Im sure itll be added in time
Hytale's native modding support is not very great right now. Mixins allow for modification of the server itself at runtime to add features, remove features, and change existing functionality
It supports early plugins that get loaded before the server
We want stuff now, so we do it now. Not waiting on them
30% of end users aren't gonna be able to create the earlyplugins folder for 'em
changing the .jar that gets run on server start is even more technical
-# i made a mod where (back in the day) you had to move a file from .minecraft/essential to .minecraft/mods for it to work and that was easily 75% of the support requests of "help this doesn't work" "did you move the file" "how?"
if you're running a dedicated server, not particularly
Modifying the JAR bytecode is a large margin more technical and involved then using an already established API like fabric + the modloader
I mean you can also decompile and recompile the server tbf
Not as easy as it sounds
But understandably thats a bit prohibitive
good luck with that
There's unsupported bytecode, compiler optimizations, native stuff, recompilation errors from missing dependencies, so much stuff that could go wrong.
for testing I extracted the server.jar and merged it with Hybric (~100MB of .class files) and it took > 3 minutes to merge it into a single .jar on my mac, even without compiling it
Not to mention it's probably breaking IP law to do that
Imagine the development cycle of waiting 3 minutes every time you want to test a change
i have serious respect for the hytale devs who actually do that
They probably have a nice toolkit for hot reloading and stuff but still.
Not easily available to the average developer
I bet the fact that most of the vanilla functionality is implemented as proper plugins helps with iteration times
Okay so, added logging and it doesnt have any of the logs display in chat
public class MenuItemListener {
private static final String MENU_ITEM_TYPE = "Deco_Book_Pile_Small";
public static void onMouseButton(@Nonnull PlayerMouseButtonEvent event) {
Player player = event.getPlayer();
if (player == null) return;
Item itemInHand = event.getItemInHand();
player.sendMessage(Message.raw("Debug - Item ID: " + (itemInHand != null ? itemInHand.getId() : "Empty Hand")));
String buttonName = String.valueOf(event.getMouseButton());
player.sendMessage(Message.raw("Debug - button= " + buttonName));
if (itemInHand == null || !MENU_ITEM_TYPE.equals(itemInHand.getId())) {
return;
}
PlayerRef playerRefComponent = event.getPlayerRefComponent();
Ref<EntityStore> entityRef = event.getPlayerRef();
if (playerRefComponent == null || entityRef == null) {
return;
}
Store<EntityStore> store = entityRef.getStore();
if (store == null) {
return;
}
event.setCancelled(true);
player.getPageManager().openCustomPage(entityRef, store, new MenuPage(playerRefComponent));
player.sendMessage(Message.raw("Menu opened successfully!"));
}
}
Hi All,
I added a custom npc ot my server, thought it doesn't get picked by my entity uuid loop.
All other entities and players are picked up in the world store except for the custom one. Any ideas?
Sounds like player is null or you don't register it correctly
I don't know what you mean by "added a custom npc to my server" and "my entity uuid loop"
this.getEventRegistry().registerGlobal(com.hypixel.hytale.server.core.event.events.player.PlayerMouseButtonEvent.class, MenuItemListener::onMouseButton);
I basically made a custom npc as a mod, then imported the mod into the server plugins file and it loaded just fine
Now I'm looping through all entities in world.getEntityStore, I can see it's uuid does exist but....
Hang on i gotta dig into this more haha. Weird stuff going on...
log to the server output before every return (or set a breakpoint if you have it configured on your IDE):
getLogger().at(java.util.logging.Level.INFO).log("Returned from here");
also I think you should cancel the PlayerInteractEvent:
this.eventRegistry.registerGlobal(PlayerInteractEvent.class, event -> event.setCancelled(true));
still no logging
public class MenuItemListener {
private static final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
private static final String MENU_ITEM_TYPE = "Deco_Book_Pile_Small";
public static void onMouseButton(@Nonnull PlayerMouseButtonEvent event) {
Item itemInHand = event.getItemInHand();
String buttonName = String.valueOf(event.getMouseButton());
String itemId = (itemInHand != null) ? itemInHand.getId() : "None";
LOGGER.atInfo().log("Button={}, Item={}", buttonName, itemId);
if (!MENU_ITEM_TYPE.equals(itemId)) {
return;
}
Player player = event.getPlayer();
PlayerRef playerRef = event.getPlayerRefComponent();
Ref<EntityStore> entityRef = event.getPlayerRef(); // Using the inherited getRef()
if (player == null || playerRef == null || entityRef == null) {
LOGGER.atWarning().log("Could not open menu: Player or Ref was null.");
return;
}
Store<EntityStore> store = entityRef.getStore();
if (store == null) return;
event.setCancelled(true);
player.getPageManager().openCustomPage(entityRef, store, new MenuPage(playerRef));
LOGGER.atInfo().log("Menu opened for player: {}", playerRef.getUsername());
}
}
then you probably don't register it correctly
Happen to know how i'd register it if its not this?
this.getEventRegistry().registerGlobal(com.hypixel.hytale.server.core.event.events.player.PlayerMouseButtonEvent.class, MenuItemListener::onMouseButton);
wait
is it because i put the whole import
how do you replace water_source with lava? i tried lava_source and it just replaces it with air. trying to modify the worldgen v2 volcanic zone
What are you trying to do?
no
Is the block id not Fluid_Lava?
When the player right clicks with "Deco_Book_Pile_Small" in their hand i want it to open
player.getPageManager().openCustomPage(entityRef, store, new MenuPage(playerRef));
and cancel the event
yeah but why does it use water_source in the node editor
idk haven't used the node editor yet. sry
ohh i see how it works now
Okay, so I have the uuid of my custom npc which was loaded in via a modpack, but there's no server reference to the custom npc, so I can't use this:
System.out.println(world.getEntity(uuid).getClass() + " is the entity type");
Any ideas how to make my custom npc visible or registered to the plugin? I can spawn it in by the entity tools
hey ai bot can u make a kit plugn for my server !!
tf are you on abt
not you ai bot??
ive been coding for over 8 years, it doesnt matter that i use ai to write a class here and there
I thought you are ai bro really sorry
I thought you are a discord ai bot who codes
🙏🙏🙏🙏
Wow okay, wild concept, thought you were tryna mock me for the ai anotations on my file
how to run command as console in a plugin? i cant seem to find it in CommandManager, it needs a player value

Might make my own Power Standard, That can eventually integrate with Hyperion whenever that releases
Hyperion?
Its a community driven power standard project apparently
Like electricity
@marsh edge
like the nuclear reactor?
You need to register an interaction for it
Its an api for integrating power so we dont have 50 different power standards that are incompatible with each other
god send, what do you mean by that? lmao im ngl i still barely understand the api
hytalemodding dev/en/docs/guides/plugin/player-input-guide
this.getCodecRegistry(Interaction.CODEC).register("ShubshubServerJump", ShubshubServerJumpInteraction.class, ShubshubServerJumpInteraction.SSJInteractionCodec);
Anyone have an idea on preventing an npc from moving?
i didnt know this website existed, thank you for this sir
Keep in mind those docs are ai generated
And could be inaccurate in parts
No, hytalemodding,dev is authored
they're not ai generated
Oh ok theyre different than what ive seen previously then
Is there a plugin out there for server transfers with gear yet?
Wait how do i register a packet handler?
public class MenuItemListener implements PacketWatcher {
private static final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
private static final String MENU_ITEM_TYPE = "Deco_Book_Pile_Small";
private static final int PACKET_ID_SYNC_INTERACTIONS = 290;
@Override
public void accept(@Nonnull PacketHandler packetHandler, @Nonnull Packet packet) {
if (packet.getId() != PACKET_ID_SYNC_INTERACTIONS) {
return;
}
SyncInteractionChains chains = (SyncInteractionChains) packet;
if (chains.updates == null) return;
for (SyncInteractionChain update : chains.updates) {
if (update.interactionType == InteractionType.Secondary) {
if (packetHandler.getAuth() == null) continue;
PlayerRef pRef = Universe.get().getPlayer(packetHandler.getAuth().getUuid());
if (pRef == null) continue;
Ref<EntityStore> entityRef = pRef.getReference();
if (entityRef == null || !entityRef.isValid()) continue;
Store<EntityStore> store = entityRef.getStore();
Player playerComponent = store.getComponent(entityRef, Player.getComponentType());
if (playerComponent == null) continue;
ItemStack heldItem = playerComponent.getInventory().getItemInHand();
String itemId = (heldItem != null && !ItemStack.isEmpty(heldItem)) ? heldItem.getItemId() : "None";
LOGGER.atInfo().log("Item: " + itemId);
if (MENU_ITEM_TYPE.equals(itemId)) {
playerComponent.getWorld().execute(() -> {
playerComponent.getPageManager().openCustomPage(entityRef, store, new MenuPage(pRef));
});
}
}
}
}
}
I just copied and edited the code on that website but idk how to register it ngl
public class MenuBookPlugin extends JavaPlugin {
public MenuBookPlugin(@Nonnull JavaPluginInit init) {
super(init);
}
@Override
protected void start() {
getEventRegistry().registerGlobal(
PlayerReadyEvent.class,
MenuBookPlugin::onPlayerReady
);
PacketAdapters.registerInbound(new MenuBookPacketWatcher());
}
...
Ty sir!
It gosh dang works, ive been struggling with this for hours now. Thank you both!!!!!!

Its probably very easy to hook into the player data given they are saved separately
it is
I'll put my code in here
setting up a player migration plugin probably wouldnt take much then
If not, you could even track it yourself
then hook into that
nah super easy, i have a inventory management system that saves everything to a txt document so you could just read it from the other server
I am far from being able to code. So was hoping there would be a plugin I coudl use/try out.
2026/01/29 07:12:21 error printing version: error fetching server manifest: could not get signed URL for manifest: could not get signed URL: HTTP status: 403 Forbidden
learning to code starting with hytale is not a bad idea, hytales api is so easy to use
private static void saveAndClearInventory(Ref<EntityStore> ref, PlayerRef pRef) {
try {
// If they already have a saved inventory, DON'T overwrite it.
// This prevents saving a minigame inventory if they join multiple games.
if (savedInventories.containsKey(pRef.getUuid())) {
LOGGER.atInfo().log("Player " + pRef.getUsername() + " already has a saved inventory. Skipping saveAndClear.");
return;
}
Store<EntityStore> store = ref.getStore();
World world = ((EntityStore)store.getExternalData()).getWorld();
if (world != null) {
world.execute(() -> {
try {
Player player = (Player) store.getComponent(ref, Player.getComponentType());
if (player != null && player.getInventory() != null) {
LOGGER.atInfo().log("Saving and clearing inventory for " + pRef.getUsername() + " in world " + world.getName());
// Save a clone of the current inventory before clearing it
// Stored as JsonObject to avoid NPE on unattached Inventory
savedInventories.put(pRef.getUuid(), cloneInventory(player.getInventory()));
// FULL PERSISTENCE: Save to JSON file for server restarts
saveInventoryToDisk(pRef.getUuid(), player.getInventory());
// Clear the contents of the existing inventory instead of replacing the object.
// This maintains the link between the containers and the client UI.
Inventory inv = player.getInventory();
inv.getStorage().clear();
inv.getArmor().clear();
inv.getHotbar().clear();
inv.getUtility().clear();
inv.getTools().clear();
inv.getBackpack().clear();
pRef.getPacketHandler().write(inv.toPacket());
// Update disk persistence
saveSavedInventories();
}
} catch (Exception e) {}
});
}
} catch (Exception e) {}
}
??? ;-;
even if its going to be volatile at times it’s still pretty simple
@tidal sandal Send me the apis in dc
Private message sorry I’ve been having so much trouble
Send them to you? Do you mean documentation?
Does anyone know what it could be?
i made a super deep and accurate code based documentation with lots of examples for using literally everything from the server jar (Asset Editor pages coming very soon) check my bio if you find it helpful give the repo a star
Yes please my chat events won’t work for some reason wrong api probs
Thank you
check my bio i made documentation for this
Could you send me the link as well?
i checked and every page i clicked on had nothing
your master branch doesnt have the individual pages
What part on your wiki holds chat events ?
Event System, Event Types basically everything that has anything to do with events prob has an example using some type of event i have another public repo called Simple Color you can see a simple usage of the PlayerChatEvent in the ChatListener class
I'm trying to use HeadRotation to set the rotation of the player's head
does calling setRotation on a HeadRotation not actually do anything?
Do I use the HeadRotation to update the transform component instead?
ill just try it actually idk why I asked 😭
i have the one example on how to use PlayerChatEvent in my wiki but theres many ways to use my docs is very new btw so there may be typos and mistakes everywhere fair warning
@opal glen
if anyone that's using my docs (in my bio) and you find any errors or issues please feel free to create an issue on the repo or if you want to make an addition or had an idea feel free to create a pull request (I'm accepting literally all pull requests) and if you find the docs/wiki helpful please give the repo a star
how can i pause time by code?
Does anyone know why my buildings break when I place them block by block in the script if I remove the bottom block?
is there a way to edit held item description or other data field in runtime/code so i can save data to it ? like position of right clicked block. or other storage i can access/make to hold data from event/interaction
or should i just make a class and init it in JavaPlugin main class so i can access it and store what i need there
I believe that's the metadata methods on ItemStack
ok will try it thx
Anyone who knows how to code that wants to join a project? we are working on making a highly runescape inspired server and are looking for more people who want to join the cause 😄 if you want to join or just want more info hit me up!
Tab in chat for command how works .
I made a plugin that lets you define a custom 3D region (selection) in the world using the Editor Selection Tool and turn that region into a trigger zone. When a player enters the selected area, the plugin detects it and can automatically fire off custom events or actions, based on how the trigger is configured.
very
i was just conidering buying a 512gb server because i want to make a minigames network but i think i should try to make a fork of the current jar and try to fix the memory usage issues
i gotta test how much ram a smaller map with 100 players for games like battle royale i alr started coding i'm so worried about memory usage
exactly why i need to make this server fork
i'm still in the planning phase i'm still considering all the possible optimizations and qol changes i want to make also still figuring out how i will do those optimizations like wrapping features in a quantized version would be great but wouldnt be nearly as fast as if i would just recode those entire systems for what i need specifically
like i was going to only wrap world features like chunk data, entity stats and player/entity movement
and use quantization to minimize the sizes but idk if wrapping would be the most efficient instead of just recoding the systems
i gotta do some super deep diving into the server and try to find any memory leaks (i doubt it tbh the nature of ECS and they way they have it implemented its prob just super memory hungry vs any memory leaks but it doesnt hurt to check
tbh I wouldnt overly worry too much, Considering the creator of the largest and most popular Minigame Server is in charge of the game
In time the Server jar will definitely be more than capable
ram usage of an exploration server is also extremely different from a minigame server with small, fixed maps
Hello, I have a doubt. I am creating a plugin with an interface but when I enter the world I get an error that it cannot find the UI that I have as a route.
Though your expected playerbase goes from 10-100s to 1000-10000s
When the server code is open source, hopefully you can contribute fixes back upstream 🙏
hi is there a Scheduler system in Hytale server API?
is it possible with the asset editor to create a custom projectile that can replace blocks it flies over?
I am have this routes:
private static final String KIT_MENU = "Common/UI/Custom/Pages/kit_menu.ui";
private static final String KIT_CARD = "Common/UI/Custom/Pages/kit_card.ui";
absolutely thats the goal i want to make a fork that everyone can use thats way more performant and a lot of qol additions
HytaleServer.SCHEDULED_EXECUTOR
and if no, where are projectiles located in the source code
I mean back upstream to the vanilla server
ik i'm hoping we can merge it with the vanilla server i forgot to mention that
i got blinded by my hatred of the PlayerChatEvent again
like WHY is the format a String and not a Message
Anyone?
i have docs that i created check my bio you should be able to find what you need there i have hundreds of examples of literally everything (Asset Editor page coming soon with video examples/tutorials)
Check example plugins i have a Scheduled Tasks example in there /wiki/Example-Plugins#scheduled-tasks-plugin
ty...
if you find the doc/wiki useful please give it a star also if you find any inaccuracy's, typos or issues in general create a issue and if you want to make an addition please msg me or create a pull request
Hello, My assets are not visible in game when i build my jar file.
in manifest.json i have this enabled:
"IncludesAssetPack": true
When i move my assets to separate folder it shows up in the game
¿What is my error?
private static final String KIT_MENU = "Common/UI/Custom/Pages/kit_menu.ui";
private static final String KIT_CARD = "Common/UI/Custom/Pages/kit_card.ui";
Error is in the console or server log
double check folder structure
Its fine, i can use it as asset pack and not plugin. Could provide screenshot but its blocked
left with reason: Crash - Could not find document Common/UI/Custom/Pages/kit_menu.ui for Custom UI
either the file is in the wrong spot, or you have a syntax error
But i have this file
src/main/resources/Common/UI/Custom/Pages/kit_card.ui
does anyone know how i can have a projectile replace blocks it goes over?
src/main/resources/Common/UI/Custom/Pages/kit_menu.ui
try "Pages/kit_menu.ui" instead
And where I have the java file that does everything, I have it in src/main/java/com/luva/luvasurvival/ui/KitUI.java .
I'm going to try, but the last time it didn't work for me
Then you have a syntax error
Nice bro
🫡 if you find the doc/wiki useful please give it a star also if you find any inaccuracy's, typos or issues in general create a issue and if you want to make an addition please msg me or create a pull request
Idk what happened, restarting pc worked xD
anyone?
Okk
btw an official docs site is coming soon also 8 different translations will be added all open source
i think imma downgrade to a 128gb server just for testing out my minigames server software before buying a huge server because if i can get memory usage more reasonable i can prob stick with 256gb
still trying to get an answer
I'm building a custom HUD and need to show player avatars.
What I have:
- PlayerRef and PlayerSkinComponent
- Access to CosmeticsModule.createModel()
- Custom UI working with UICommandBuilder
What I need:
- A way to display a player's 3D character model (or render
it to 2D) inside my custom UI
Is there a specific UI element type for this? Or a rendering
utility I'm missing?
I believe currently, you need to send all assets like textures to the client ahead of time. But maybe you can render out all face cosmetics for your asset pack and then layer them on demand?
i have a server running on a dual xeon with 256GB RAM... with twenty players, there are 43GB full after 3hours.
I have a general question. Is it possible to create plugin only with java code or assets are required (except visual).
For example, I want to create custom stat for every user like Attack Speed or RPG stats like Strength, Dexterity and etc.
As I can see default stats like Health and Mana are implemented via assets. So should I do the same or is there programmatic way?
In Java, the heap is meant to get used and regular garbage collection is not a bad thing
Hello, I have a problem with my server; somehow people are ending up on separate worlds. Is there a way to change this?
health and mana are tracked in the EntityStatMap component:
var statMap = store.getComponent(ref, EntityStatMap.getComponentType());
statMap.get(DefaultEntityStatTypes.getHealth());
Yes but they are getting serialized from assets as I can see
Its nearly possible to do a lot via Asset Editor so I ask question in general: what should be done with Java code and what should be placed in JSON for assets?
Doing as much as possible with assets gives you and your plugins users the most flexibility
How could I check if a player is damaged from an arrow? I tried if (source instanceof Damage.ProjectileSource), but it returns false
I thought it should be vice versa, lol
Anyone know a NPC plugin like Citizens for Minecraft?
There isnt currently one
I found this in the getDeathMessage implementation. is it helpful?
DamageCause damageCauseAsset = DamageCause.getAssetMap().getAsset(event.damageCauseIndex);
String causeId = damageCauseAsset != null ? damageCauseAsset.getId().toLowerCase(Locale.ROOT) : "unknown";
I think that might work, thanks a lot
is custom component remove on player quit/server restart?
I believe if your codec is set up correctly, it should save/load fine. Sounds easy to test though
alright, thank for your answer
So I have setup folders following way: "resources/Common/UI/Custom/Pages/MyCustomUI.ui" but when i add the ui script everything is just red and doesnt work why is that?
what do you mean by "everything is just red"? red squiggly lines in your IDE? red x's on white background in Hytale?
So in the development space in my ui file there is squiggly lines under everything
I bet it's misinterpreting the .ui file as some programming language
tell it to interpret it as a plain text file instead
so not doing .ui or?
Hytale's ui is a custom DSL and your IDE won't know the syntax
@west elk Do you know if its possible for a plugin to run a command as a specific player?
I see so can i make the file without the .ui then?
yeah /sudo
Thanks
No, the file needs to end in .ui. But you have to tell your IDE to not freak out over it
How I can create a ah plugin?
If it's your first plugin, you might want to start with something smaller, but check out HyUI to create the UI
Ok thx
Assuming "ah" meaning Auction House
Ah I see thanks for the help!
Yes
Hey, dunno where I can get help for this so I'm posting it here. I've moved the "universe" folder from my local game on macbook to public server that lays on Raspberry. I have problem with time in-game. Time for merchants seems to be frozen and it counts from zero year: 0001-01-01T00:00:00.000000000Z
I tried to remove barter_shop_state.json algonside with Time.json and changing game time to 0: "GameTime": "0001-01-01T00:00:00.000000000Z", so the server can re-create proper files but it does nothing. GameTime passes normally but the merchants are frozen in time and I do not get the restocks properly.
Also I downloaded the mod to show in-game time with command /time and it seems to count time normaly from GameTime, e.g. 1m irl == 1m in game so when I'll make 0001-01-01T01:00:00.000000000Z it'll be 1:00AM and after 5m it will say it's 1:05AM. However days passes normally in-game, like config says and time that shows when going to bed is also working normally.
Any idea how to deal with it?
Man im so close to getting it working but now it says Failed to load CustomUI documents
So, I attempted to make a farming skill - Can make it give xp for harvesting, picking stuff etc lets use example pumpkins or wheat, so if we harvest the pumpkins or wheat we get xp - However you can -ctrl click to place the item wheat or the item pumpkin on the floor when doing this if you then press F to harvest it again.. Will get xp - It seems when placing the item with ctrl click turns it back into the original crop item? Anyone getting around this issue?
HyUI - Also dont forget.. If you have other plugins with invalid docs that will impact on your errors too
What is HyUI? Sorry im pretty new to the plugins and yea I only have mine turned on for now to prevent other impacts
Its basically a library that does all the hard work for you - Hud's and normal interfaces I found it so much easier than trying the customui route - basically allows you to build the full ui in java
Ohhh I see I will for sure check that out thanks! Just so annoying cause I followed a short tutorial on yt and his works but not mine
Probably a syntax error
Customui route using the ui files is so finnicky at the moment, the slightest mistake and boom - Look for the Hyui github and follow the instructions - I bet you'll have a UI in no time
Could be ill try an easier ui file for now to see if i get it working
Is there a way to get the original en-us language pack so I could be able to translate it into my own language ? if someone has it please send it to me
It's in Assets.zip!/Server/Languages/en-US
I dont get error anymore and instead the command doesnt work hurray!
IT WORKS
Thanks for all the help!
Hi, The mod SimpleClaims-1.0.25.jar no longer works. Is this happening only for me, or for everyone?
Better ask in Buuz135's discord
guys which fluid id is water and lava?
You can see it by hovering over it in the creative inventory: Fluid_Water, Fluid_Lava
it is supposed to be an int not a string
or getFluidId is just returning the block id which i should check its type?
I don't know what you're trying to do, but that sounds like it can make sense
well im doing a fishing mod, so i need to check if a position is water
Does anyone know how to remove/despawn an entity?
how?
how what?
to ask in Buuz135's discord
ahaa ok
Guys
in case i want to create a custom block/entity with custom behavior do i have to create the entity/block using packs and then write a code for the behavior (plugin)? or the plugin can cover both?
plugin covers both by including the json necessary for custom assets (the block/entity definition) inside the .jar
Does anyone know if it's possible to assign a command to a photo in custom UI so that when the player clicks, the command is executed?
I would think you can make a simple button with the image as the background texture?
Where do you get all this coding info from?
trying a bunch of stuff, looking at the decompiled server code, and community guides like hytalemodding,dev
what are the best mods / must haves?
NEP by SketchMacaw
So my ui pops up and everything and im trying to add image right now this way
Anchor: (Width: 200, Height: 400);
AssetPath: "WarriorClass.png";
}```
The ui file and png is in same folder and i have this in a group that works but when i open ui its white image with red x over it so im guessing it still doesnt find the png any ideas why?
Is there a way to reload plugins without relogging into the server? I'm tired of having to rejoin to world every time to see plugin changes.
I had the same issues with images until I used the full path instead: AssetPath: "UI/Custom/CaretActive.png";
/plugin reload <pluginName> exists, but you have to make sure to do livecycling correctly
So even if i have Common/UI/Custom/Pages in resources do i still only reference UI/Custom/Pages/WarriorClass.png?
ty
yeah like you do when you call uiCommandBuilder.append(), right?
oh so for you it might be AssetPath: "Pages/WarriorClass.png"; then?
i spent a lot of time trying all sorts of paths and then stopped touching it once it worked ^^
the red x on white background means it can't find the image, yeah
Yea "Pages/WarriorClass.png" didnt work so ill test like a bunch of paths to see if anyone work. Im thinking otherwise if the image file is to big maybe
IT FREAKING WORKS
I tried like you "UI/Custom/Pages/WarriorClass.png" and then it works
I think images are all taken from UI and when calling uiCommandBuilder it works from after Custom
👏
You truly a goat do you usually sit around helping people? Its super appreciated the help you provide!
hmm
ya i work from home and just have discord open on my computer on the side :)
thats awesome bro
Might not be the right place to post, but I’m curious if anyone has had success in running the /update command for your servers? I get an error stating assets.zip and my start batch are located in there and should not be? I tried to do a force update and it wouldn’t take. I’ve been just manually doing it myself, but it’d be nice to get the /update to actually work.
Is there a site already for mods?
curseforge, modtale, etc
Thank you.
Anyone?
this is the setup!
Hello ! Is there a plugin that can link a Discord role from a Discord server with the whitelist ?
It seems like the only ones I have found only allow a whitelist using a simple code sent by a Discord bot
how would you indentify someone from their discord role?
You could do discord oauth on the server, but that sounds like much more work with the user's experience being almost the same, lol
Is there a way I can select a chunk section from the server without a selection chunk tool or /selectchunksection command handler? The only idea I got was using coords and using the command handler but selectchunksection doesnt work with coords, the selection tool also doesn’t have a command right? I thought I could do like a select tool so that I can manually select the coords from the command and automatically select the section of the chunk with a selection handler
i think it all depends on what u want to do 😅
for my server i making a website, and from there you can do oauth to discord, twitch, youtube, kick, etc.
can i search for help in that channel if my server wont start?
no, this is for talking about making java server plugins and mods. For support try #game-discussion
Possible to spawn then track and command enemies/friendly creatures/npcs? Just need a yes or no not how to do it specifically thank you! Have an idea but have not jumped into the entity side of plugins.
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
It does involve code, but I haven't found a plugin that does this with a specific role, or at least the explanations provided weren't clear enough. If you have any recommendations, I'm interested!
How do I set the value of a checkbox in the Ui? #id #Checkbox.Value isn't working :/
you cant read the players info from discord, thats the issue. at least not the info you need to put into a whitelist.
After the newest update i have some problems applying the Projectile_Configs, anyone else too?
Is it possible to show a custom message while trying to connect to a Hytale server that could generate us a specific code that we could then enter with a command on a Discord bot that is running on the Hytale server and then could whitelist the person trying to connect if they have a specific role ?
Is there any plugin like vault to merge all economy system in one?
One that all other plugins like shops are following
question can we do relative velocity or "local velocity" for projectiles does anyone know if this even exists
How do I add add a new attack to an npc?
I copied the skeleton mage but when I change the attack in the json file, to my custom interaction the npc just disappears. everything is spelt correctly. When I change it back to the original interaction it works normally
can i somehow add component to the player/playerref so that they will stay with the player/playerref even after server restarts, player death and such?
Yeah you could send a code in chat and spawn them in a holding lobby and if they verify they get a new rank or permission and get moved out of that world.
guys, how is the lobby system being implemented? Is it just one server with multiple worlds, or is there already some kind of bungeecord with multiple server?
Anyone know? 
there is a client referral packet that can be used to send clients to other servers.
oh... how do I do this? Is there any documentation explaining how to do it?
ok, ty ❤️
ever since update i crash every time i melee with fist, but attacking with any weapon is fine
is there a spawn event class?
I've been looking online on how to add an interaction but when I type tick0 in SimpleInteraction, it doesn't give me a function
Is there another way to add an interaction to a block?
How to register consumer on PlayerMouseButtonEvent event? It works for PlayerReadyEvent but not for mouse button
Why does ui.set("#id #Checkbox.Value", true) not work? it gives me:
Selected element in CustomUI Command was not found. Selector #id #Checkbox.Value
🙁 it's basically the same as adminUI does it... i don't understand why it's not working
is it possible to use the eventtitle just for one player and not entire server?
or do i have to create a command just for that
Does anybody know why effects (like particles and sounds) on some interaction work and on other not?
It depends if it's embedded?
I'm kinda not understanding right now
hope they add this next update
"/eventtitle test --player=playerName"
or even for a specific world for dungeons, eventtitle test --world=worldName
whats the ID for an AIR block?
i tried "air", "block_air", "void" nothing seems to match
Empty
i love u
its funny if you place blocks you break empty
you're extending the class and overriding the method, yeah?
make sure you're extending the correct class from the com.hypixel.hytale.server.core.modules.interaction.interaction.config not the protocol package
Unless you need to scale horizontally, there is not much you gain from running multiple servers. Hytale runs every world in its own thread, so it's very optimized for big servers, and it supports different mods for different worlds.
Is there anyway of previewing a block placement of multiple blocks? I know the Paste tool in BuilderTools allow for this but only in creative mode, I was trying to do it for the adventure mod.
Different mods for different world? How do you do that?
I'm not 100% sure if there are any other effects related to ItemLevel, but one effect of it is order of the item's recipe in a bench. For example, items are usually ordered alphabetically by recipe in a crafting bench. But items with a higher ItemLevel will be ordered after items with a lower ItemLevel, allowing you to set a custom recipe order in a bench.
EventTitleUtil.showEventTitleToPlayer(
playerRef, title, subtitle,
isMajor, icon, // icons are not implemented yet
duration, fadeIn, fadeOut
);
Ah that was the issue, thanks
i already know it, its just that the game has the command but not for player only for entire server, i put it in the feedback so it might be able in the future updates, just wanted to use it for purchase just dumb to have it in game and not being able to just sent it to one player
That's a very nice baby's first plugin idea. Go make the command yourself! :)
rather wanna wait for it to be able to sent it to one player, and focus on more important stuff lmao
there is just nowhere to find info other than here🥲 im too noob at stuff does anyone know how to bind a textbutton to actual java logic?
When I create a new npc in the asset editor (by copying from another npc) how can I strip it from its behavior? meaning i just want it to stand there, not to wander around like every npc
you can go to source instead of edit, then remove those wandering sections
hytalemodding dev/en/docs/guides/plugin/ui#interactivecustomuipage
do you mean this for example:
{
"Type": "Variant",
"Reference": "Template_Spirit",
"Modify": {
"Appearance": "Spirit_Frost",
"DropList": "Drop_Spirit_Frost",
"MaxHealth": 81,
"IsMemory": true,
"MemoriesCategory": "Elemental",
"NameTranslationKey": {
"Compute": "NameTranslationKey"
}
},
"Parameters": {
"NameTranslationKey": {
"Value": "server.npcRoles.Spirit_Frost.name",
"Description": "Translation key for NPC name display"
}
}
}
yeah, it is inside the asset editor that is what i meant yeah
I beleive you can maybe by pinpointing a packet send to that specific UUID?
Bump
this source view is also nice for just edit a shop, instead of click open the sections on edit view lol
okay..
but there isn't any property that "talks" about wandering here (sorry I'm still not very familiar with the tools)
Yess indeed
im just gonna wait for one day we can do /eventtitle test --player=name or --world=name
to store information about a block (a counter, for example), is there any mechanism in place, or is the way to just store it in a separate file?
Likely a wrapper somevodyw I'll provide. I doubt it wi be a standard Hytale thing. If we can already do it.
Does Hytale support Unicode characters?
Not all of them, no
Ah, rip. Alright. So I would need to add custom Unicode support using custom assets?
Yeah, create a ChunkStore component and assign it to the block
Is there a programmatic way to hook into worldgen v2/HytaleGenerator so I can write custom noise functions etc but still make use of the generator prop pipeline for biomes, vegetation distribution etc?
cant really remember what its called but i saw there was inside the "Instructions":
it said something about the npc would look at the player, then walk or wander i just removed those and they just stand still for me, while they look at players near by
thanks, will look into it
has anyone figured out custom naming conventions for items yet? without renaming all instances of the item? Ex: in minecraft, something like an iron pickaxe being named "Starter Pickaxe"?
Also is there an alternative to {itemId}:{num} for different item states?
I see
some1 knows why this isnt working:
player,
"pos1 --x=" + posX + " --y=" + posY + " --z=" + posZ
);
cm.handleCommand(
player,
"pos2 --x=" + pos2X + " --y=" + pos2Y + " --z=" + pos2Z
);
is it bcus of player argument?
okay
TY :>
i know this aint minecraft at all but i just see that command like /title, it could be insane if this could be used for spec worlds or even just to sent it on one player, but at this time i guess making a title command is fine 
I mean, if they added one it would basically be the same, just built in 😄
Is there anyway to cancel a player swinging a sword or combat entirely?
Good day, lads. Has anyone experimented with displaying custom, dynamic data on an ItemStack, such as in the tooltip? I know we can modify the metadata, but I haven't been able to find any clear way to change tooltip display data. I'm planning to allow a lot of customization on a per-itemstack basis and making a unique item in the config for every combination would be unreasonable.
usally in Damage, if your new i sometimes check how others make them if they released it to gitHub
Yeah check Buuz135's AdvancedItemInfo mod, it's open source
Oh? I'll take a look... I thought that custom data was bound to custom UIs ;o
I'm not new just ideally want to cancel any swinging packet or animation
sadly i have no clue 
haha lol no
that would make the game unplayable because then no input other than walking and jumping would do anything
Achy you can send event titles to a target player.
what is the command? i tried /eventtitle
Oh i thought you meant through code, not sure about the command
it just says Could not find an optional argument with the name or unique abbreviation of "player"
and i tried "/eventtitle test --player=AchyMake"
This channel is about plugin development, not vanilla commands
extending the vanilla non-targeted command to accept arguments is the easiest excercise
There is no way to send it to one player through the command
Yeah, Buuz is accomplishing this with a CustomUI rather than adding additional info to the tooltip seen in the inventory.
Can we display the player’s inventory on the HUD in an interactive way?
Hytale has a CommonAssetsIndex.hashes file for their assets, do I need to make my own for my asset packs? And what checksum algorithm are the hashes using?
That's for the common assets, json assets don't need that afaik
If I do have common file assets, how do I make the index hash for it? This is just when creating an asset pack - no JavaPlugin involved
Is there a way to check if a block has been spawned by your plugin or not? (Outside of creating your own custom block)
sad times
Okay I figured its sha256sum
It's just pairs of sha256 path/to/asset
Okk
From what I've read it is possible to cancel the packet, but that won't prevent the client from showing the animation, so that's not really any better than just preventing the damage from happening.
Does anyone have an example on how to detect the closing/dismissing of a custom ui page? Using the CustomUIEventBindingType#Dismissing I can't get it to work properly. It needs a selector assigned and only when that selector is clickable and then clicked does the event trigger. I would like the event to trigger when the page is closed tho
not a coder but first thing pops out to me is there is no reference "1" in your first string like there is a reference "2" in the second string when referring to the x, y, and z positions later in the string.
Is there a way to know which player placed a block or do I need to track that?
If you're interested in how the forgotten temple does things, in Server/Instances/Forgotten_Temple/config.json, GameplayConfig points to Server/GameplayConfigs/ForgottenTemple.json which contains:
"Combat": {
"DisableNPCIncomingDamage": true,
"DisablePlayerIncomingDamage": true
},
Which allows you to disable damage for NPCs and Players across a world or instance. If you want granular control where this only applies to some players though you'd need to do something more involved.
does that tp player to spawn point if they fall into void?
yeah, I'd check the server code to see how the combat config is implemented/enforced
ok hytale asest editor not loading my project in save mods folder anymore
hey
In the gameplay config there's:
"Death": {
"ItemsLossMode": "None",
"RespawnController": {
"Type": "WorldSpawnPoint"
}
},
And I'm pretty sure that references the spawn point in the Instance/config.json.
oops, wrong reply -.-
nvm i added if the damage cause is out of world in a plugin, can't find this in the server files 😅
@quartz plover Could you send me a link to the discord with people implementing servers? I'm working on an implementation myself and would like to join.
Heya, I'm working on a 'lib' or 'core' for my mods and I'm having an issue with dependancies. Let's call the library "Library" and the dependent "Essentials".
Library has no dependencies in the manifest, Essentials has "Trinex:Library" as a depedent.
Obviously when I run the server without the Lib present, I get:
[PluginManager] Failed to load 'Trinex:Essentials' because the dependency 'Trinex:Library' could not be found!
But when I put the TrinexLib jar file in ./run/mods I start getting this:
java.lang.IllegalArgumentException: Found cyclic dependency between plugins:
Trinex:Library waiting on: [Trinex:Essentials]
Trinex:Essentials waiting on: [Trinex:Library]```
This is while running Hytale from the "Essentials" IntelliJ environment. The Trinex:Library manifest has no dependancies in it.
If anyone has ideas please let me know!
just do it like hytale server
<dependency>
<groupId>com.hypixel.hytale</groupId>
<artifactId>HytaleServer</artifactId>
<version>2026.01.28-87d03be09</version>
<scope>system</scope>
<systemPath>${basedir}/lib/HytaleServer.jar</systemPath>
</dependency>
<dependency>
<groupId>org.achymake</groupId>
<artifactId>Essentials</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/Essentials-1.0.0.jar</systemPath>
</dependency>
</dependencies>```
I'm trying to add a component to a player, but for some reason I'm getting crashes
WARN||ERROR - java.lang.IllegalArgumentException: Entity contains component type: ComponentType{registry=class com.hypixel.hytale.component.ComponentRegistry@1347899590, typeClass=class trs.plugin.components.BlankComponent, index=144}
WARN||ERROR - at com.hypixel.hytale.component.Holder.addComponent(Holder.java:201)
...
WARN||ERROR - java.lang.IndexOutOfBoundsException: Index out of range: 0
WARN||ERROR - at com.hypixel.hytale.component.ArchetypeChunk.getComponent(ArchetypeChunk.java:159)
store.addComponent(ref, blankCompType, blankComp);
BlankComponent result = store.getComponent(ref, blankCompType);
It crashes when getting the component specifically, even when it's a dummy component with no data
com.hypixel.hytale.server.core.modules.interaction.components.PlacedByInteractionComponent
I believe this is what you are looking for
Hm, the template I used for my mod is using gradle, that's maven syntax isn't it?
also does anybody know how to set the skin tone when customizing the character
when I edit the file to a another valid color, it just resets it back to what it was before
yeah ive never gotton used to gradle, maven i like its simple and easy
Hi, I'm having trouble registering my event on certain documents; I see that they need to call eventbus!
Registering listener or calling the event?
is there a gitHub for the hytaleServer.jar? just instead of using the systemPath
ty so much my dude
Hey all. Anyone aware of some way of recreating the paste tool's prefab preview without being in Creative mode? From what I can gather the selection is sent as packet to the client but even if I send the packet in adventure mode I am not seeing any preview
In fact I cant even get it to work in Creative mode if I'm using a different item
guys how to spawn npc in hytale
Ola
Take a look at the NPCSpawnCommand in the source code its a good starting point
NPCPlugin.get().spawnNPC(store, "Kweebec_Sapling", null, position, rotation);
Actually on the note of npcs, how do I make a custom spawned one have a despawn timer? Im sure I just need to add a component but idk what one
There is a DelayDespawn action. I haven't used it though
Hello guys, can anyone help me? how to disable bow on server? this not work
Player player = e.getPlayer();
Ref<EntityStore> entityRef = player.getReference();
if (entityRef == null || !entityRef.isValid()) return;
System.out.println("1234");
PlayerRef pref = player.getReference().getStore().getComponent(entityRef, PlayerRef.getComponentType());
if (pref == null) return;
if (SafeZoneProtectionSystem.playerInSafeZone(entityRef.getStore(), pref.getReference())) {
player.sendMessage(Message.raw("1"));
e.setCancelled(true);
}else {
player.sendMessage(Message.raw("2"));
}
}```
I was going to ask the same question, it doesn't work for me!
about instances, can you make one permanent? or do you have to create a new one every time?
Are custom inventories possible in hytale? Like a player vault?
Permanent instances are worlds
Yeah you can serialize an inventory and save it somewhere else
thank you
Guys PlayerInteract deprecated??
thanks, I will look into the add world command I found
hola
nice, how do i get the NPC?
Could even store it on the player with a player component but idk how that would go performance wise because I dont know the ins and outs of how that kinda thing impacts server performance
like as object which i can use stuff like .teleport with
Hey question how would one remove the staff's charging so it instantly fires
That returns Pair<Ref<EntityStore>,NPCEntity> iirc
oh ok thx
So to get the npc just do pair.second()
Im trying to register an EntityTickingSystem and im having problem with the query can someone help?
Do we have chunk loaders yet? The lag on these teleporters is ridiculous.
Maybe see in the asset editor if there is a charge time or something there
is thar a way to make a block move? like falling sand in minecraft or to make a block float in water?
You'd have to elaborate on the problem
The EntityTickingSystem requires a Query to return in getQuery(), but i do not know how im supposed to obtain this query
You're supposed to construct it from the Query builder. It's used as a filter to only execute your System on entities that have the components you're looking for
Hi all. How can I trigger a interaction via code? Or change a block state?
Im currently copying the way EyeSpy does it with Query.and(Player.getComponentType()); but it always crashes because Query in AndQuery cannot be null (Index: 0)
If you're only looking for a single component, you don't need the .and():
public Query<EntityStore> getQuery() {
return Player.getComponentType(); // Only run for Players
}
I've always used PlayerRef with it though. Might be a separate issue if the Player componet type is null?
i can try PlayerRef it this doesnt work
I tried Player and PlayerRef and it is still null :/
Registering the System should happen in setup() right?
yes
hey i need help i want do the use block i mean a printer and i dont how i do this i ask gemini pro for do the code
Hey people, are there any plugins that allow me to connect several servers , so I can have mini games on one and a normal world on another ?
is it possible to use PlaceBlock at a distance, like a staff that casts a projectile and it places a block?
Hytale runs every world on it's own thread so you can have minigame worlds on the same server as your normal world. they won't affect each others performance
Oh
do not ask gemini ask claude ai also you need to understand how moding in hytale work and ai wont help you becase the game is still new just open yt and learn XD
Anyways
public Query<EntityStore> getQuery() {
return Player.getComponentType();
}
just crashes with Cannot invoke com.hypixel.hytale.component.query.Query.validateRegistry(com.hypixel.hytale.component.ComponentRegistry)" because "query" is null
is thar a way to make a block move? like falling sand in minecraft or to make a block float in water?
Anyone figure out how to read Shift clicking or Shift right clicking? thats the only thing stopping me from completing my custom inventory
Is there a way to check whether if a block has been spawned by your plugin or put a marker on it?
Where is the best place to find plugins
CurseForge
the term you're looking for is "Interactions". Interactions allow you to listen to player input packets
Okay, which interactions should i be looking at for this?
what kind of input?
modules? Protocol?
hytalemodding dev/en/docs/guides/plugin/player-input-guide
thanks ill take a look
Protocol wiki[dot]hytaleservers[dot]host/Protocol
Did you have @Override
This seems is outdated, it's only v1. Current protocol version is 2.
I have
@Nonnull
@Override
public Query<EntityStore> getQuery() {
return (Query<EntityStore>) Player.getComponentType();
}
And just to clarify that is inside your EntityTickingSystem class right?
EntityTickingSystem<EntityStore>
I'll update it now
Would you be able to share the code for the class and how/where you register it also it might need PlayerRef instead of Player
In the Plugin setup() i use:
this.getEntityStoreRegistry().registerSystem(new MYSYSTEM());
and the class is empty aside from the constructor which is empty and the tick() function.
+this is basically just the PlayerTickingSystem from EyeSpy
I believe its PlayerRef.getComponentType()
There is a guide for the plugin/ mod creation info?
hytalemodding has a few useful things for starting out
That still return null
Unfortunately im not sure why thats happening then sorry
This is just what EyeSpy did but its not working here
question about dedicated servers, has someone figured out where the displayed image is located or a way to change it? same goes for styling of the server name / tought maybe i could be an plugin thing?
I got the mod to remove durability loss, but it would be nice to be built into the game. 🙂
How do you create your own component or archetype?
This is the place to put feedback like this ❤️
https://accounts.hytale.com/feedback
I've done that already. 🙂
hytalemodding dev/en/docs/guides/ecs/example-ecs-plugin#practical-example-poison-system
I know. I thought I was in game-discussion.
My default role has a ton of commands in /help that are not meant for them- some worldedit stuff, etc. Does anyone else have this problem and know how to get rid of it?
I am using LuckPerms
I was just looking into that website, ty xD
Use the requirePermission() function in your command constructor
guys how i fix the Authentication Error?? pls help
You could get the Directional Vector in which the player is facing when firing the staff, multiply it by a distance and add it to the player location to get the Coordinates where to place the block
im thinking of getting the coords where the projectile hits and place the block ig
You might need a custom projectile for it
i have made that part in the asset editor, i guess now i have to do actual code
Updated for version 2. I think Hytale must use code-gen for their packets
Glad they took the 64-byte protocol hash out though, that was a bit over the top
Question, is there any way of getting the UUID from an username ?
-# It is something that needs to work on offline players but to get player refs of offline people it seems that I need the UUID
try adding entitymodule as a dependency inside your manifest.json if you haven't figured it out yet
Hey does anyone knows what i need to use to make stuff in chat "clickable", Also is it possible to make HUD Elements clickable?
"entitymodule": true ?
"Hytale:EntityModule": "*"
Has anyone found out how to get the selection from the selection tool?
They probably do, and they fixed their generator to not use that weird null bit counter thing, so it's increased by 1 per nullable field
It now registers, thanks
You can use ProfileServiceClient - there's a getProfileByUsername that takes a username and a token
They had weird stuff like this before: rs define_packet! { InteractionChainData { fixed { required entity_id: i32, required proxy_id: Uuid, opt(1) hit_location: Vector3f, opt(4) block_position: Vector3i, required target_slot: i32, opt(8) hit_normal: Vector3f, } variable { opt(2) hit_detail: String } } }
(From my rust impl, with the same order)
ah nice you're doing one with Rust macros lol
Yeah, I know that one, was just hoping I could avoid making api calls
I have one with Java reflection:
@WikiDocumented("Protocol#Connect_(0x00000000)")
public record Connect(
@NonNull
@FixedLength(64)
@CharacterSet(ASCII)
String protocolHash,
@NonNull
ClientType clientType,
@NonNull
UUID uuid,
@Nullable
@VariableLength(max = 128)
@CharacterSet(ASCII)
String language,
@Nullable
@VariableLength(max = 8192)
@CharacterSet(UTF_8)
String identityToken,
@NonNull
@VariableLength(max = 16)
@CharacterSet(ASCII)
String username,
@VariableLength(max = 4096)
byte @Nullable [] referralData,
@Nullable
HostAddress referralSource
) implements CodecSpecifiedPacket<Connect>
You'll have to unless your plugin caches the player profiles when they log in. It should be fine to hit their API though - as that's what their built-in commands (e.g., ban do)
Connect is so ridiculous though
Yeah definitely
define_packet! {
Connect {
fixed {
required protocol_crc: i32,
required protocol_build_number: i32,
required client_version: FixedAscii<20>,
required client_type: ClientType,
required uuid: Uuid,
}
variable {
required username: BoundedVarLen<AsciiString, 16>,
opt(1) identity_token: BoundedVarLen<String, 8192>,
required language: BoundedVarLen<AsciiString, 16>,
opt(2) referral_data: BoundedVarLen<Bytes, 4096>,
opt(4) referral_source: HostAddress
}
}
}```
This is so goofy
I'm still seeing a bitmask for it in Connect
They still use bitmasks, it's just that the bit position is incremented sequentially
Instead of jumping around
wasn't it always based on the position of the nullable field relative to other nullable fields?
It was always in ascending order inside of the fixed block and variable block separately, but these 2 blocks used whichever bits they wanted, leading to a structure like this
I'm gonna assume you're fighting the chat filter now lol
I hadn't seen your message
oh mb thought you were sending more code
I see your first example though - that's wild
Now imagine that in a packet that has like 40-50 fields, with 30 of them being optional
Like ItemBase or BlockType
did they use multiple bytes?
Yeah
okay yeah they must be generating this and fixed some stuff in the generator or something
There were even sneaky ones like this: ```rs
define_packet! {
ItemEntityConfig {
fixed {
opt(2) particle_color: Color,
required show_item_particles: bool,
}
variable {
opt(1) particle_system_id: String
}
}
}
If you didn't notice the swapped 1 and 2 your whole codec balks
lol
I had a lot of those, it took a while to fix them all
are you conformance testing against their implementation?
I didn't explicitly test each packet, but I've been using a proxy in the middle that I've modified to try and decode each packet using my library
It logs any fields that fails to decode
Yeah that was my second thought lol
The hard part is actually the asset codecs tbf
are you using proc macros or just template macros?
okay so all the macros lol
Yep
I like the idea of splitting fixed and variable, I was just thinking about doing that. I've been combining reflection with a 'specification' that lets me deal with weirdness a bit more directly:
@UseCodecSpecification
public static final CodecPacketSpecification<Connect> SPECIFICATION =
new CodecPacketSpecification<>(Connect.class, 0, List.of(
// Byte indicating which nullable fields have been set.
nullMaskField(),
// Fixed-block fields
definedField("protocolHash"),
definedField("clientType"),
definedField("uuid"),
// Dynamic-block fields
// TODO: offsets
definedField("language"),
definedField("identityToken"),
definedField("username"),
definedField("referralData"),
definedField("referralSource")
));
Are you just implementing the protocol btw?
Or rather, making a spec out of it to generate the markdown for the wiki
Both
The above auto-generates serialize and deserialize logic based on the annotations, field types and specification. I just split the two so I can have a cleaner class definition that doesn't include all the offsets, etc,.
Yeah all the reflection logic and custom annotations was the fun bit honestly
I haven't managed to automatically generate the macro calls yet, though
The benefit of having it in Java though does mean that I can essentially import their JAR and throw in a bunch of unit tests to check conformance
Like parsing the deserialization logic out of the java classes with ASM and generating the rust code for it
Yeah, I would've liked to be able to to do that as well
I would maybe focus on serialization logic actually - it's much cleaner (as the source of information)
Or you could stub out their methods and run their code so it builds an in-memory representation that you can then just write out as Rust code actually looking at it, I don't think that's doable
It's slightly harder to parse I think, with deserialize I can just look for obj.fieldname = value. Variable-length is also easy to differentiate with the fieldnameLen = VarInt.peek calls
I've actually done this, it's just that there are outliers that rely on inheritance
Anyone coders 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!
WindowAction, Interaction and Selector to be specific, they don't have their fields so I can't rely on the class' fields to see the exact types
But without the fields, I lose type information for maps
Does anyone know how to get an axe a sword or anything besides a bow/staff/wand to fire projectiles.
Hello, i have 2 questions and i would be glad if you could help me.
If you can answer with a tutorial or documentation that would help me very much.
- How can i get the name or data of a Player thats currently offline? (My case would be to get the Displayname, i have the uuid)
2.How can i make a NPC mine blocks? i already gave him a pickaxe in his hand.
Thank you
You could find all classes that extend the packet
So just replace WindowAction with the list of classes that extend it instead
They all have an abstract serialize method so it should be fairly easy to know when to defer to that logic too
Hola
how do i update o replace item in hand after adding modifiing metadata?
Tbf I could hardcode their packet definitions and generate the rest as well
That too lol - in fairness code gen will only get you so far as if they change the whole layout in an update it'll break the code gen too
Anyway, my priority is to handle codecs and get the client to join the world, even if it's an empty one
For now I'll just git diff with each update to see what's changed and manually fix
Have you got your parsing stuff on GitHub?
Yeah, I can send over dms
Hey does anyone knows what i need to use to make stuff in chat "clickable", Also is it possible to make HUD Elements clickable?
How can I make my custom ore block be spawned in the world with regular world gen?
Does anyone know how to define the parameters of an ExplosionConfig in code? I found explosion config entries in the asset editor but ExplosionConfig class doesnt have getters or setters, and I'm not sure if its supposed to or if im supposed to define parameters in a roundabout way
anyone know why prefabs / copy / pasting doesnt include entities, even though I have that enabled?
Guys, can we get world in Shutdown? i mean world.execute(() -> { ?
is it possible to set a default item animation? I want to have the same animation playing no matter what the player is doing atm. Or do I have to set all of the possible animations?
Anyone know how to write one of the KeyedCodecs for a
Map<String, Pair<Map<String, Float>, Map<String, Float>>>
Aka Map<LocationName, Pair<Location, Rotation>>
Kind of trying to replicate this from the player save:
"Transform": {
"Position": {
"X": -66.171142578125,
"Y": 120.0,
"Z": 178.0512237548828
},
"Rotation": {
"Pitch": 0.0,
"Yaw": -0.8700768351554871,
"Roll": 0.0
}
},```
My brain can not figure it out haha
what class i need to extend from when i want the console be able to use it?
I think I've got it... had to make my own data class w/ a codec
data class Home(
var location: LocationMap = emptyMap(),
var rotation: RotationMap = emptyMap(),
) {
companion object {
val CODEC: BuilderCodec<Home> =
BuilderCodec.builder<Home>(Home::class.java, { Home() })
.append(
KeyedCodec("Location", MapCodec(Codec.FLOAT, ::HashMap, false)),
{ data, value -> data.location = value },
{ data -> data.location }
)
.add()
.append(
KeyedCodec("Rotation", MapCodec(Codec.FLOAT, ::HashMap, false)),
{ data, value -> data.rotation = value },
{ data -> data.rotation }
)
.add()
.build()
}
}```
CommandBase i think
Did they change the way UI commands work since last night? none of my code works anymore
Hello i need some help with a plugin im working on i want to select a chunk without the player being on it i wanted to make the player select it with the selection tool pos1 and pos2 automatically but i keep getting some errors 'an error ocurred executing the command'
this is the code that selects:
cm.handleCommand(player, "pos2 "+ "--x="+ posXArg.get(context) + " --y="+ posYArg.get(context) + " --z="+ posZArg.get(context));
Or is there an easier way to select a chunk, cus i wanna replace the blocks in it
Yeah use a class for that. Using a bunch of maps and pairs is not nice lol
They didnt, but i literally havent changed a thing i did since last night and it was working before i went to bed, get on this morning and its not working anymore man wtf
Hey does anyone knows what i need to use to make stuff in chat "clickable", Also is it possible to make HUD Elements clickable?
Game is alrdy dead oh no
No i need it for creating some stuff but i can decompile it and look in code then if u know which one xD
Go delete it then, id rather not have people like you playing the game anyway. if youre gonna complain about something you shouldnt be a part of it
Stating the obvious, they released a game and said here go decompile the jar and make a server even though it’s so bad
how to check if a plyer is an operator commands during moding
Yeah im tired of seeing you "minecraft defenders" sitting here saying "this game has no content" and shiz. go play with creepers my guy
7k twitch viewers
The game was cooked 4 days out from release it’s chill though. Have your fun g lol
Nah, you're cooked. This game is too complex for you lil 12 year olds to understand so you sit in the Emerald Wilds saying "This game has no content"
Attention span rotted from tiktok
???
You dont need to do any of that to make a server fam
This guy is obviously here to troll
It's not even released m8
I forgot that Minecraft launched in 2009 with full modding tools and 600 hours worth of content
Lmaoo
Meanwhile mincreaft with its 4 or 5 blocks on release im pretty sure
Yk why it has 7k twitch viewers? Cause most of us are adults who dont watch other people play games on twitch, thats 12 year old shiz
And its 1 or 2 new things to do with each major release that nobody asked for
Ah yes because twitch is everything XD the hytale framework and vision is what you dont see which takes time and life before you grasp
I hear Hytale is doing alot better on youtube anyway
Why would anyone watch someone play if you can play the game yourself
I like watching people play games I dont have the time to sit down and play
Requires less mental energy
Minecraft modding has always relied on 3rd party loaders to do anything with it. The current mod support Hytale has is 100x better than what we have for Minecraft even after 16 years.
@copper summit get a grip you’re defending an alrdy dead game with little support in 2026 made by a multi million dollar company
Yes I know 😛
Some enjoy listening to others game for background noise. I often will have streamers on my second monitor while I program or play a game that i enjoy but don't want to listen to in that moment
Just reinforcing your point 🙂
Everyone just blanket ignore this purp guy till he goes away
Is there a way to force an entity to not play any animations other than the one I played ?
Nah, you're just a tiktok brain rotted little kid who cant play the game more more than 10 minutes without pulling his phone out to watch more tiktoks
Stop feeding him bro
Your brain is as smooth as your pfp
What would be the best way to lock an item in a hotbar slow so they cant move/drop it and such?
Notch made a better game sitting on his toilet 😂
says you who has to glaze it every 5 minutes and convince everyone that its the best game ever made
alguem brasileiro pra jogar
Bro's trying to rage bait don't feed the troll
Exactly like where is the glaze from, the game released with almost no documentation for server creators after repping that the game is so multiplayer modding focused. It is legit laggy has horrible performance
Hardly holds players
Legit Laggy? Bro I think you need to get a better computer
No not fps as in server side is
true, multiplayer focused and releases with the worst netcode known to mankind
You must have no players
had a bit of lag using portals other then that server seems fine to handle
We've got 20 Players on a server
you could make a map for integers and with DropItemEvent.PlayerRequest.class you could get int slotnumber = event.getSlot(); and like some extra method for checking if that integer = locked ones if its event.setCancelled(true);
Yes idk how you make a game in 2026 choose UDP, then still see mega lag and release it
that wouldnt prevent players from moving it in there inventory though
no thats only for dropitem event
is there a way to do the other?
you tab out for few seconds and your game is already like 10 mins behind the server 😭
effeciently
it's a 2020 engine, not 2026 fresh out of the oven.
oh right didnt see "nt" right there lemme check if there move item event
i dont think there any way than listening events and disabling if they fit
So hard to update networking huh lol, even more reason to show it’s rushed
Oml, this whole morning ive been trouble shooting my plugin and its not even my plugin that was broken, the new update for RPG Leveling is either broken or interfering with my plugin somehow
I play and host a sever that has like 6 or 7 online at once with a pc that has integrated graphics and i don't lag at all
Bro clearly doesnt actually know the story of Hytales dev process
Hypixel is hiring, go apply and rewrite the engine. I expect you to deliver lag-free experience by summer 2026.
You do know the concept of Early Access right? It's literally rushing to get the players a playable game to play throughout development
LivingEntityInventoryChangeEvent check this one problaby the transaction details you can get slot number and with that you can check
ngl i would be able to rewrite this engine in a few months and make it 5x more stable
@modest burrow also, this is a channel to discuss server plugins, not the state of the game. move over to #game-discussion , would you?
Do it!
i would but i cant spend that much time on something that doesnt bring me anything
Valid but they had only a few months to scrape together what we have now from who knows what they had. I'm sure in a few months they'll iron out many kinks
Then nobody needed to know what you could or could not do.
aka: I was just making stuff up for sound cooler
so according to you, i should give up all income and become homeless in order to prove 2 people on discord wrong?
Where did I say any of that
Do it, u wot m8
how else are u expecting me to prove it
How can i access the world in an abstract async command?
What happened to open source full documentation as soon as early access
Do you just work 24/7/365? You got downtime fam
you can't even reply to the correct user/message. how about we cut it here?
They've already stated they are waiting on legal. They've also said for now just decompile the game. Takes like 10 minutes big chief
thats because im not talking to you lol
Why are you still here bruh, dont you have some minecraft to play?
It doesn't look like there's an event you can cancel to prevent moving an item unfortunately.
You might be able to kill the packet before it gets to InventoryPacketHandler by registering a filter using the PacketAdapters class, but I have not tried it.
they said in 2-3 months
Oh wait i forgot you're probably watching people play minecraft instead of playing it yourself
is there a way i can do something like this?
World world = HytaleServer.get().getConfig().getWorld;
no getworld from getconfig returns private String world = "default";
I don’t play anymore I program
So how could I get the world?
where you tryna getting
Grazed more like Glaze
Good job, go make a game that is better than Hytale, I believe in you
from an AbstractAsyncCommand
Sorry I’m not a multi million dollar company don’t have time for it
You can just develop in your freetime. Schedule 1 was a solo dev project until recently
need people to help develop, test, and build for a server, any takers? 🙂
whats the content
My free time is taken by other projects
good addicting content 😂
Cool, then not related to modding nor gaming so doesn't matter here
Prison
Player player = context.senderAs(Player.class);
World world = player.getWorld();
this should work but i suggest you use abstractplayercommand
The most passive aggressive comment towards someone saying, in a developing channel, that they develop 
like...complaining in Discord?
I’m not complaining I am just being factful
You are complaining in a discord: #server-plugins-read-only message
Much more specifically a modding channel
So report him, or ignore him. Stop acting like youre somehow better than them.
Oh I'm not any better, reported but won't ignore sorry King
Would also like to point out, nowhere did I indicate that I'm any better at anything.
reporting someone for pointing out flaws in your favorite game
Yea idk I think I can have my opinions. And state them in the only developer channel in the discord
Probably better to just stop at this point. Youre not gaining fans doing it.
There's literally a modding #discussion channel
When the mods clean up, and start moderating, channels then yall can complain. Until then, let's just get along and be courteous. It costs you nothing to be kind.
I mean technically it costs nothing to be argumentative as well but I digress
You have bigger issues than being argumentative, Ill admit.
Nothing but your own time!
I have many issues youre not wrong
The sheep fear the wolf, dont stand down @vast yacht
So my plugin implements custom ui, but if i add any other plugin with custom ui into my server it breaks my server saying "Cannot load CustomUI commands" but both plugins work by themselves just not together, anyone know the reason for that?
open diagnostic mode
in general top bottom
wym by diagnostic mode?
you can open by going to settings > general > bottom there diagnostic mode enable that
I have a pic with the same pose king
oh shiz thank you, i didnt know this was a thing
Real knows real 🤝
You indeed know ball. You take care king ima hop out. Stay swole 💪
what sv?
To my knowledge, that is because Hytale currently only has one CustomUI slot you can use. So when 2 mods implement a CustomUI, the game doesn't know how to handle that. Checkout MultipleHUD mod.
Its an oceanic server ask @brave dagger
oceanic? like everything is just sea?
Geographic region
Down undah
ok bud
People never heard of Australia
interesting, ill do that yeah looks to me like it just breaks the server
[2026/01/29 21:49:15 SEVERE] [SERR] decodeJson: class com.hypixel.hytale.codec.DocumentContainingCodec
[2026/01/29 21:49:15 SEVERE] [SERR] decodeJson: class com.hypixel.hytale.codec.DocumentContainingCodec
"Selected element in CustomUI command was not found #Panel.Anchor"
👀
IIRC the entire custom UI system is deprecated and will be replaced at some point
did you know that australia is wider than the moon?
Likely, the client seems to already use the new framework
I'm avoiding it for now until we get more info on that
Is there any way to edit chat size, font size, font type etc in Hytale at the moment?
dang thats lame ash, i have to have this plugin as a prerequisit for my plugin now
Hello guys, do you think it's a good idea to put a license of GPL v3 for my mod ? I want that modifications are forced to be shared with others. What kind of license are we allowed to use with hytale mods ?
Hey guys anyone know a good /home Mod for Hytale?
Is there any way to edit chat size, font size, font type etc in Hytale at the moment?
Anyone know if its possible to enable pvp on certain instances but not others?
mi perfil
No tiene gente bro
when i make a particle system for a weapon skill mod, every time i log out and return to de world where i made the particle system, the particles just don't appear. the sound is still playing but the particles aren't.
if someone knows how to solve this i would need your answer
Well New Zealand specifically
hey guys, how can I add text on screen without the blue banner, I just want text popping up in the middle of the screen
Why can't I see the change when I call world.setBlock(x, y, z, "Rock_Stone")?
So i am listening to the ClientPlaceBlock packet which i can use to get the blockID placed. Any ideas on how to get the blocktype or use the int to identify which block has been placed?
I am trying to bundle assets with my server plugin and have set up a separate ``manifest.jsonand set"IncludesAssetPack": true` and
"Dependencies": {
"Hytale:AssetModule": "*",
"Hytale:EntityModule": "*"
},
The asset is cached:
Added cached reference to asset 66773cbd...: 1, UI/Custom/Hud/MyHud.ui
But still fails:
System.Exception: Could not find document UI/Custom/Hud/MyHud.ui
Anyone know what could be the culprit?
who has a plugin up for monetization?
What are your guys preferred models for Coding Assist?
Anyone here using Claude Haiku 4.5?
You might be better off listening for PlaceBlockEvent. Then you can just use the block from the provided ItemStack
Yeahh, only problem being is that it is called before the block is placed i assume , and provides an itemstack instead of the placed block. It’ll have to do i suppose
ItemStack.getBlockKey() should give you the block
😮 period okay that helps thank you , im dumb dumb haha
No I've just spent too long reading through the jar lol
Is it possible to add a new workbench category to an existing work bench? I can't find anything in the Asset Editor
Is there something existing for timers that I'm missing? Just like something that fires every period of time or something
Does Hytale support pushing ui files to client from server? Or do you have to manually add the ui files to client?
Also I see no packets are sent to server when single clicking inventory slots on client. This forces server side inventory GUI's to require double click's for actions instead of single.
can i add plugin to a private world?
yes, it still runs a local server
haha well i appreciate your extensive reading haha
Although this gives you a string, i guess i think i am wording myself wrong. I have a class that extends Component<ChunkStore> that i guess is then used to add custom logic to a block? I think i have implemented this all wrong to be honest
Add a thread pool to your plugin singleton. Executors.newScheduledThreadPool(n) works pretty well
yo, is there a way to check entity UUID via in-game commands somehow?
At the point when your component is created it's definitely too late to cancel the event
does anyone know how to use custom ui, it keeps telling me that the ui configuration is bad and the code is good in ui...
Im not cancelling really, im detecting if a specific block is placed, and storing the class instance into a hashmap for later use i guess... idk im still working through my implementation lols
its late and my brain be tiny and smooooth
anyone want help?
where i place the jar?
Hello, is there a way to create variable via plugin and call it from asset editor? I.e. for statCondition purposes (RPG Level). Add XP on hit from the weapon etc?
Oh I'm not sure then. The event fires before the components are created, and as far as I can see there's no event for block components like there is for entities
Maybe you could use the event to schedule a task and check that location for the component?
You'd still want to filter it by block/item type to avoid spawning a task for every block placement
Does anyone know about mumi troll syndrome in hytale? I ran into some problems with that
Looking to see if anyone would like to run a Dedicated hytale server with me, get it ready for the full release of the game
You should not be listening to the packet. Use PlaceBlockEvent then grab the block key from itemstack and call BlockType.getAssetMap().getAsset(key) to get the BlockType
PlaceBlockEvent is literally handled in the handler for the packet
I'm struggling to find how to implement getComponentType
I was following Kaupenjoe's implementation of custom components, but he doesn't deal with getcomponenttype at all, and I'm trying to create multiple secondary mana systems
ComponentType<> is returned by the registration method. If you use the Singleton pattern for your plugin class you can store it as a class member and access it with a getter.
I'd link you to an example but GitHub is blocked here lol
Right click your World in the World Selection > Open Folder
I currently have
public class AnareMana implements Component {
public float currentMana;
public float maxMana;
public float regenRate;
public AnareMana(float currentMana, float maxMana, float regenRate) {
this.currentMana = currentMana;
this.maxMana = maxMana;
this.regenRate = regenRate;
}
public static Query<EntityStore> getComponentType() {
return null;
}
}
, with the system
public class AnareManaSystem extends EntityTickingSystem<EntityStore> {
@Override
public void tick(float v, int i, @NonNullDecl ArchetypeChunk<EntityStore> archetypeChunk, @NonNullDecl Store<EntityStore> store, @NonNullDecl CommandBuffer<EntityStore> commandBuffer) {
}
@NullableDecl
@Override
public Query<EntityStore> getQuery() {
return Query.and(
AnareMana.getComponentType()
);
}
}
and I figured I'd implement a query to make it more resource efficient
You will have to register both of those in the setup method of your plugin class
The registration method returns the ComponentType
protected void setup() {
LOGGER.at(Level.INFO).log("Running setup");
executor = Executors.newScheduledThreadPool(4);
RegisterVMObjects.Register();
ComponentRegistryProxy<EntityStore> entityStoreComponentRegistry = this.getEntityStoreRegistry();
invocationComponentType = entityStoreComponentRegistry.registerComponent(InvocationComponent.class, "InvocationComponent", InvocationComponent.CODEC);
this.getCommandRegistry().registerCommand(new TestCommand(this.getName()));
}```
Is there a good intellij plugin i can use to visualize .ui files for hytale?
Kaupenjoe told me to just make an empty component interface, does that still work with the componenttype?
Anyone elses world crashing for other people when ur in a different dimension? and until you leave the dimension the server doesn't work for other players
I'm not sure why you would do that instead of implementing Component<EntityStore> directly, but it should be fine
nah, ive got multiple instances on mine and its working fine
oh what.
Ive made 2 different servers and everytime someone comes out of dragonspire the world crashes and becomes null
I could do that too, is that recommended? I figured following a kaupenjoe tutorial would work out well, but generally the documentation is all over the place right now, hytale-dev is even outdated
bump
What ever plugin you're using for instances is probably being interfered with by like an essentials plugin or something, i made my own world management system
hi guys, im learning how to store persistent data but even tho it looks the same as on the modding wiki page it has some errors
public class CurrencyComponent implements Component<EntityStore> {
private float currencyAmount;
public static final BuilderCodec<CurrencyComponent> CODEC =
BuilderCodec.builder(CurrencyComponent.class, CurrencyComponent::new)
.append(new KeyedCodec<>("CurrencyAmount", Codec.FLOAT),
(data, value) -> data.currencyAmount = value, // setter
data -> data.currencyAmount) // getter
.addValidator(Validators.nonNull())
.add()
.build();
}
i think the main error is: Cannot resolve method 'append' in 'Builder'
Java won't care either way, it's still a class that implements Component<EntityStore>
ah... Not sure what'd be causing that. I dont have essentials
try staying in the default world and doing /inst and see if that also breaks the server, if not than its an issue with your instance plugin
it keeps complaining about the clone method, and when I implement it, it complains about not using the super even though there really isn't a super
Didn't break
How would i find which plugin is doing it then? lol
id look at a different instance plugin, might just be an issue with that
which one
It's safe to suppress that warning for direct descendants of Object.
idk i made mine before any were released so i never cared to look at em
@SuppressWarnings("MethodDoesntCallSuperMethod")
If you were extending another class you would have to call the super method, though.
you can also just right click the warning and supress it there if youre on intellij
For some reason intellij didn't want to give me a suppress option for that warning!
oh interesting
The way Java handles cloning is annoying in general. It should not be part of Object at all
fdcfdrgvhbyjnumkgbvfcdx sz
Cat moment
so how do you actually use that componenttype? like setting the static? should I keep a static type on each component for queries to reference?
getting closer to finish my fishing minigame mod, will need to do some good animations
You'd call YourPlugin.get().getSomeComponentType(). If you look at the decompiled code for any of the base game components you'd see they do the same thing
ig ima cat now
I could also do something with archetypes, although I do not understand their purpose? I have 4 different mana types, I could bundle them as each player should have all 4?
any body knows tha angle they use for icons in hytale?
Is intellij straight bugging for anyone else? everytime i stop my server i have to end the task with task manager and reopen it for it to actually stop. ive even reinstalled it and its still doing the same thing
it wasnt doing this last night
reinstalled, restarted my vps, nothing fixes it
and it keeps on desyncing the memory edits with the saved edits
i guess u can check it in asset editor?
they are generated there
Huh, you should at the very least be able click on the stop button again to send a SIGKILL
The first one sends a SIGINT which is the same as ctrl+c, but 2nd click is usually a surefire way to stop the task
nope, it just doesnt work
How are you launching the server?
"With gradle" says very little about how you launch the server
Do you have a specific task for it? What is the task definition like?
Are you using some plugin that adds that task?
okay what do you want me to tell you? its running on my intellij console with all the basic launch arg that youd use anywhere else. i figured all that information would be just a basic assumption
If it's having some issues it's clearly not just using a basic JavaExec task or just a console task with java -jar. What do you mean by and it keeps on desyncing the memory edits with the saved edits, though? Are you using the remote development option to directly edit the file in your VPS?
You dont have a clue what youre talking about. I asked if anyone else was having issues, thats it. i dont need you to try and toubleshoot nothing for me i know exactly what im doing and its the exact same thing ive been doing since launch.
If you're not asking for help, are you just here to complain about it? That's fine, let it all out.
so my plugin should be a singleton? are javaplugins singleton by default, or do I need to implement that myself? and then I should have a bunch of getters for each component?
I already told you my guy can you read?
Yes you should use the Singleton pattern for your plugin, and no it's not built into JavaPlugin. Yep, you should add a getter for each ComponentType
you guys like hytale?
When using onEntityAdded() can we get the position of the entity?
also you clearly dont understand how intellij works if my very basic sentence explaining exactly what is happening doesnt make sense to you
It will be a Singleton automatically if you just only instantiate it one time I think but I am not a Java super genius
Tell us how you really feel
Hi all. Modding development question: Is there a way to "insert" custom data into a block? Like a tag or something. I want to make something like a "light level" for a certain type of block
Yes you can give the block a block entity and put components inside it
That info is stored in the TransformComponent
I will have a look at that. Thanks
Oh, I guess it's my fault for assuming you're looking for help while you were merely looking for like-minded people with the same issue. I will not be trying to help you further, let this be the end of this.
I already did, i came here to ask one simple question and this "smart guy" thinks he knows better than me and is trying to tell me that what i literally just said isnt true and he clearly lacks knowledge on intellij anyway if he cant understand my very basic sentences
hytale
perfect thank you
If you mean BlockStates, those are deprecated. You should use Component<ChunkStore> to attach data to blocks
Oh great now I have to change everything in my mod haha
That's what I get for modding an early access game but it's still frustrating
I may just be unable to find any documentation on this since hytale is rather new, but is there a way to add custom logic to blocks, so that it does something randomly (alike minecrafts random tick)?
Anyone got any recommendation for a full essentials mod for my server? I want to start with one and stick with it, I've been looking at EliteEssentials, EssentialsCore, and EssentialsPlus.
It's very clearly marked as Deprecated lol. You will have a warning anywhere you reference BlockState
I use one of them but I honestly can't remember lmao
Yeah it's my fault. I just ignored all the squiggly lines and powered on.
tbf we've been using the deprecated sun since launch lmao