#server-plugins-read-only
1 messages ยท Page 100 of 1
ANybody know what I need to allow custom commands to be used without /op and use my custom ranks instead?
Register your command with permissions
not tested;
public class TeleportCommand extends AbstractPlayerCommand {
public TeleportCommand() {
super("tp", "Teleport to coordinates", "hytale.teleport");
this.addArgument(ArgTypes.RELATIVE_VECTOR3I);
}
}
#requirePermission("<PermissionString>");
Does anyone know where I can find the ID for all the items?
implement JsonAssetWithMap<String, DefaultAssetMap<String, MyAsset>> and create a codec for it that includes id (String), and extraData (AssetExtraInfo.Data)
Guys, where can I see a tutorial or a documentation to create Hytale mods?
aaaah i dont have the extradata field
Unsure if this is the right place, but is there a way to build a new AOT cache for the server? It doesn't explicitly work on Windows due to version mismatching.
[0.010s][info][aot] _jvm_ident expected: OpenJDK 64-Bit Server VM (25.0.1+8-LTS) for windows-amd64 JRE (25.0.1+8-LTS), built on 2025-10-21T00:00:00Z with unknown MS VC++:1942
[0.010s][info][aot] actual: OpenJDK 64-Bit Server VM (25.0.1+8-LTS) for linux-amd64 JRE (25.0.1+8-LTS), built on 2025-10-21T00:00:00Z with gcc 14.2.0
[0.010s][warning][aot] The AOT cache was created by a different version or build of HotSpot
[0.010s][error ][aot] An error has occurred while processing the AOT cache. Run with -Xlog:aot for details.
[0.010s][error ][aot] Loading static archive failed.
[0.010s][error ][aot] Unable to map shared spaces
hytalemodding dot dev, hytale-docs dot com
Anyone knows the difference between using ProjectileConfigs and the Projectile Assets? They seem incompatible but Projectile Assets seem to permit particle effects
are u guys using the new start command that comes with the update?
does anyone know of a mod that has a built in ui or side menu
PartyMod by Gaukh on curseforge
thanks
i need help, i keep getting the message "DISCONNECTED FROM SERVER".
Out of 19 Plugins I use 18 of them error:
missing or invalid manifest.json
Do mod makes have no integrity ๐
Solved the AOT thing, if anyone else wants to do it, move/remove the old AOT cache and run
java -XX:AOTCacheOutput=HytaleServer.aot -cp .\HytaleServer.jar com.hypixel.hytale.Main --assets ../Assets.zip --backup --backup-dir backups --backup-frequency 30
That will generate a new AOT cache with your system version of Java.
probably havent updated their mods after update 2 release
Where can I find good hytale devs?
Yeah I cannot OP myself, the permissions file gets reset ever time the server restarts
even Buuz135 simple claims latest version meant for this version does it. I assume might be some other error maybe not releated to the mod devs.
The /op command doesnt even work anymore wtf
What benefit does the AOT File bring me?
Faster server startup time. The new default start.bat/sh attempts to use the one provided by Hytale but it does not work unless your system is running the exact same version of Java on a Linux platform
any mod for make scripts without compile with hot reload?
anyone else spawn on world spawn and not bed spawn?
Is it such a benefit tho?
I mean the server starts in like 10s for me.
It's called the ahead-of-time cache, it skips the time the JVM needs to warm up. It's not crucial but there's no reason to not use it
It's not necessary at all, it just speeds up starting a bit. The only reason I'm using it at all is because Hytale provides a broken one and I wanted to fix it :p
Thank both of you for clarifying. ๐๐ผ
@urban onyx any luck w that
Anyone know what causes this w the new update?
java.lang.IllegalArgumentException: EventRegistry is shutdown!
at com.hypixel.hytale.event.SyncEventBusRegistry.dispatchFor(SyncEventBusRegistry.java:88)
at com.hypixel.hytale.event.EventBus.dispatchFor(EventBus.java:272)
at com.hypixel.hytale.event.IEventBus.dispatchFor(IEventBus.java:44)
at com.hypixel.hytale.server.core.asset.AssetModule.registerPack(AssetModule.java:332)
at com.hypixel.hytale.server.core.plugin.JavaPlugin.start0(JavaPlugin.java:61)
at com.hypixel.hytale.server.core.plugin.PluginManager.start(PluginManager.java:781)
at com.hypixel.hytale.server.core.plugin.PluginManager.start(PluginManager.java:248)
at com.hypixel.hytale.server.core.HytaleServer.boot(HytaleServer.java:377)
at com.hypixel.hytale.server.core.HytaleServer.<init>(HytaleServer.java:303)
at com.hypixel.hytale.LateMain.lateMain(LateMain.java:54)
at com.hypixel.hytale.Main.main(Main.java:43)```
anyone figured out how to detect when a block is placed / destroyed?
It looks like they broke ExitInstance in RespawnController in the world config under Death. Now the character gets multiple death screens and becomes broken with 0 HP, throwing an exception on any interact.
Has anyone encountered this issue recently?
PlaceBlockEvent and BreakBlockEvent
i just spawn on world spawn and not my bet
thank you
Anyone experienced in designing project structures for multi plugin servers?
what do u need
has anyone found out what is supposed to replace the BlockState class? (I need the Rotation)
Is it ok if we discuss in private? We have slowmode here.
dont thing this is the correct spot to ask, but added a testworld to the server, and want that to be a offlimite creative world where i can drop in to test stuff with out effecting the players inventor/ progrrees etc in the default world of the server. already make the test world and tp in to it. but got the same inventory .
any one know what config you should add or change when making a world to have it own inventor for the players?
Where is the hide armor configuration? I cant seem to find it in server config and world config
If I have 2 systems that I need to be constantly communicating with each other (One handles adding entities, the other handles ticking) what would the best way be to go about it?
both are registered to getChunkStoreRegistry
any tips on debugging what mod disable the use of birch wood in the builders table for my server? looking for a more efficient way other than disabling/enabling mods until I find the culprit
console logs likely
it doesnt fire any events, the birch wood can be placed in the table, but all options for crafting are greyed out
any teexture type mods? or build mods?
Im suspecting the build mods Im using are the culprit, but was just wondering if theres a way to use the asset editor or something to look for the broken piece
Have you found?
level / requirement locked perhaps?
Have you find it?
if it jsut began after update, wait for your plugin to update, many already have
some updated within minutes. if its easy or predictable. others might need a little time.
BetterMap updated fast af lol
like 7 mins
where to get or browse mods from then?
yeh over half of mine were ready to update when I got on today
whats the diffrence with using the old command?
Ive been using curseforge
for server mods?
yeah, and using modsync for easy updates
with modsync you have to use the given commands to add the mods for it to work though
I try searching for mods and theres nothing, just a billion "how to install mods" pages, without saying where to ruddy get them from in the first place
so a bit tedious to setup, but works great so far
not yet idk if it's implemented yet
Added new armor slot visibility toggles next to equipped armor, accessible directly in the character panel.
Server hosts can disable/enable this feature to enforce rules for PvP/Immersion purposes.
WHERE?
but in the patch notes it said that hosts can disable and enable
ik
EVERYONE wanting the ARMOR 2 not be HIDDEN: get over it. its hilarious. pvp has never been more chaotic!
have you tried creating a new universe to see if it generates new configs?
yes
TL:DR faster startup and its not forced updates i think ? is that about right?
0 documentation for devs
Faster startup is only true if youre using a specific Java version on Linux, it does not work unless you build your own AOT cache.
im woring on puting all functions on my website and made a system to people send comments to explain the funcitonality
they going to make in 1-1.5 month
Is anyone else getting kicked when clicking/pressing F on the memorial?
On our server, every time a player interacts with the memorial they get removed from the world (kick) and an invalid ComponentType error shows in the console.
Wondering if this is happening to others too.
problaby upgraded map problem
Thanks for the help!
Do you know if this can be fixed somehow, or is resetting/regenerating the world the only solution?
Does anyone know how to hook into NPC interact? I want to make a custom NPC interaction (via hitting "f")
how much file you have in \Server\universe\worlds\default\chunks
does anyone know how i update a server
im assuming its my mods, but i just want to make sure, has anyone on vanilla been getting kicked from the dragonspire weald in the new update?
update your hytaleserver jar and assets zip
how do u do that
are u using a server provider or running a dedicated server?
How to do this? "As this is a standablone server, OP yourself (/uuid) in the "permissions.jason" file while the server is off, or temporarily use the "--allow-op" program launch argument"
what to I put in permissions.json file?
my friend joined a server called the breakdown
with the new update i should re decompile the new server.jar right?
its a youtuber
hi everyone. I created small model in Blockbench (just really simple one) and trying to add it for entity via components. But for some reason point of rotation (pivot i think) is at bottom angle of hitbox, not centered as I want. How to solve this?
u wait for the youtuber to update the server so it matches ur client version
Well we watched a video of how to make it
any reason this wouldn't work? I can confirm that i get the "setting up block event handlers" message but upon placing a block it seems the event does not fire.
import com.hypixel.hytale.event.IEventBus;
import com.hypixel.hytale.logger.HytaleLogger;
import com.hypixel.hytale.server.core.HytaleServer;
import com.hypixel.hytale.server.core.event.events.ecs.PlaceBlockEvent;
public class BlockEventHandlers {
private final HytaleServer server;
private final IEventBus eventBus;
private static final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
public BlockEventHandlers() {
LOGGER.atInfo().log("setting up block event handlers");
this.server = HytaleServer.get();
this.eventBus = server.getEventBus();
eventBus.register(PlaceBlockEvent.class, event -> {
LOGGER.atInfo().log("block placement detected");
LOGGER.atInfo().log(event.toString());
});
}
}```
try registerGlobal
how can i check a block if is a chest in xyz
okay.
I think register only registers to the events of your plugin (not sure tho) but I had problems with register alone too
[0.198s][warning][aot] This file is not the one used while building the shared archive file: '/usr/lib/jvm/temurin-25-jre-amd64/lib/modules', size has changed
someone know how to fix that ?
i just got this working for a chest locking mod
stupid question does someone else also expierence the issue that this is now always null ?
Player player = event.getHolder().getComponent(Player.getComponentType());
var pref = player.getReference();
so pref in that case I can still get the player...
registerGlobal doesn't seem to have made a difference
is it on curseforge? is the name chest locker by concado
Oh nah it's my own
Did you find out? I really need that.
hi everyone. I created small model in Blockbench (just really simple one) and trying to add it for entity via components. But for some reason point of rotation (pivot i think) is at bottom angle of hitbox, not centered as I want. How to solve this?
[2026/01/24 18:28:55 SEVERE] [Hytale] Exception in thread: Thread[#3,main,5,main] Caused by: java.util.concurrent.CompletionException: com.hypixel.hytale.common.util.CompletableFutureUtil$TailedRuntimeException: java.util.concurrent.CompletionException: java.lang.IllegalArgumentException: World default already exists on disk! at java.base/java.util.concurrent.CompletableFuture.wrapInCompletionException(CompletableFuture.java:323) at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:359) at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:364) at java.base/java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:1015) at java.base/java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(CompletableFuture.java:995) at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:531) at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1794) at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1781) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:511) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1450) at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2019) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)
do i have to delete the current default world?
no unfortunately
that happened when ive put the new version
sad
How to retrieve player ip ?
tried it, also doesn't work on my side. at first glance it's a EntityStore Event only. Registering an EntityEventSystem and listening to that like that should work.
Hey guys
Did you find out? I really need that.
im confused. looking at references for everything, i dont see any references towards anything that says EntityStore or EntityEventSystem.
Anyone dealt with black grass in voide worlds?
'com.hypixel.hytale.server.core.universe.world.meta.BlockState' is deprecated and marked for removal
anyone knows what it will be replaced with
nope
might be possible via code though
PlaceBlockEvent extends CancellableEcsEvent
it's an ECS Event, and if you take a look down the road on how the event gets constructed and delegated it stays in the store and gets passed down to the systems only
hi everyone. I created small model in Blockbench (just really simple one) and trying to add it for entity via components. But for some reason point of rotation (pivot i think) is at bottom angle of hitbox, not centered as I want. How to solve this?
#blockbench will be more help
oh nvm that's related to both systems ๐
Hey guys, how's it going? I found a bug that's really messing me up in the game, it's the portals. Every time I enter one, I get completely bugged and keep teleporting forever. If any of the mods see this, please fix it!!!!
Oh I've seen something like this before. In Verse we have ?datatypes which means you can have ?string, ?float, ect.. you can put anything into them but typically you just use them as placeholders until you have the data necessary and then cast it correctly
wait... so regular users can kick and ban on a multiplayer server? not just admins?
How can i make a paragraph in .ui file that spans multiple lines?
This eurogamer article I am reading doesnt put those commands in the "admin" section
im actually dont sure where the problem is, but well, i'll should try blockbench chat too
are you inspecting the event prop to find this out? im relatively new and unpracticed with java development. trying to get a hang of it but im still ramping up so sometimes when people say something that should be obvious to a practiced java dev i need a bit more explanation or im just lost lmao
how are we able to create an entirely new world save using g-portal hosting? is it just deleteing the world file "default"?
im looking at the source for PlaceBlockEvent now though trying to see what you're seeing
guys, I have a java doubt here, how do I include a java library dependency in my plugin build? Im trying to add jackson
Yeah, take a look into the classes that construct PlaceBlockEvent. More specifically BlockPlaceUtils.placeBlock. There you'll see that the event gets passed into the entityStore. entityStore is Store<EntityStore> and in there you can take a look at Store<EntityStore>.invoke then you'll see what i mean
thank you much, i'll do some looking. really appreciate the pointers.
Trying to make this function:
public Player getPlayerByUuid(UUID uuid) {
try {
return Universe.get().getPlayer(uuid);
} catch (Exception e) {
LOGGER.at(Level.WARNING).log("Failed to get player by UUID: " + uuid, e);
return null;
}
}
But Universe#getPlayer returns a PlayerRef - how can I get the player from UUID?
This would work btw (don't forget to register the system!):
public class BlockPlacementTestSystem extends EntityEventSystem<EntityStore, PlaceBlockEvent> {
private static final HytaleLogger log = HytaleLogger.forEnclosingClass();
public BlockPlacementTestSystem() {
super(PlaceBlockEvent.class);
}
@Override
public void handle(int var1, @NonNullDecl ArchetypeChunk<EntityStore> var2, @NonNullDecl Store<EntityStore> var3, @NonNullDecl CommandBuffer<EntityStore> var4, @NonNullDecl PlaceBlockEvent var5) {
log.at(Level.SEVERE).log("HellOwOrld");
}
@NullableDecl
@Override
public Query<EntityStore> getQuery() {
return Query.any();
}
}
is there a way to set the server to all items dropped on death mode?
Have you found it?
That's how i do it
public World getWorld() {
return Universe.get()
.getWorld(ref.getWorldUuid());
}
public Transform getTransform() {
return getContainingEntityStore()
.getComponent(ref.getReference(), TransformComponent.getComponentType())
.getTransform();
}
public Store<EntityStore> getContainingEntityStore() {
return getWorld().getEntityStore().getStore();
}
public Player getPlayer() {
return getContainingEntityStore().getComponent(ref.getReference(), Player.getComponentType());
}
in short:
Get the World the player is in, get it's entity store from there and use getComponent with Player.getComponentType to get the player instance.
Watch out what thread you are on though, if you're not on the world thread this will crash. You can use world.execute() to force execution on the world thread
Basically I'm trying to do this from the packet - so all I have as input is PacketHandler
gotcha. this is a lot to try and process for me right now. i have a feelings its going to take me like days to really figure out whats going on with all this but thank you regardless lol.
does someone know how can I update a block's Component data on a UseBlockEvent.Post?
I modify the data getting the blocks reference with its position
Ref<ChunkStore> blockRef = worldChunk.getBlockComponentEntity(targetPosition.x, targetPosition.y, targetPosition.z);
but when I update the component's data, it doesn't get registered properly, like if its getting reset.
On the RefSystem, onEntityRemove event is triggering, i guess when the block changes its state, its get replaced, but I haven't figured out the way to update the component after that happens to keep the data
With Universe.get().getWorld(playerRef.getWorldUuid()) you can get the world of the playerRef. I don't know how safe this is, but it works.
hey guys, does someone know how to add a library to my plugin so its included in my build? Im trying to use jackson library but once i run the plugin in my test server it says can't find that library at runtime:)
Take a look at the ECS System part of the community hytale-docs. Even though it's explained by AI it does so not badly lol.
Anyone else experiencing world gen issues on update 2 during server startup?
[2026/01/24 19:05:03 INFO] [HytaleServer] Shutting down... 3 'Failed to load world gen!
Error while loading zone "/Server/World/Default/Zones/Oceans" for world generator from file.
Error while loading cave generator.
Error while loading caves for world generator from /Server/World/Default/Zones/Oceans/Cave/Caves.json
It's an option you get when making a new world, is there really no way to do this on a server?? #server-plugins-read-only message
ฤฐ am real baron @livid geode
Yo is this server download files updated for hytale update 2
Okay
Why did this new update break my plugin? What changed?
Anyone have like a list of things they changed?
okay, but that doesnt really tell me anything for my plugin, like i was hoping someone knew if they changed playerrefs or what
Anyone know if it is possible to create hitboxes that are not bounding boxes but made of multiple boxes?
how to make reload for guns??
it was an ECS update, ig it did tell me my b
Got this too. Anyone knows How to fix this problem?
Server is booting up! Please try again in a moment. [START]
Get the last assets of the game. It fixed after this.
I get it from ./hytale-downloader CLI, but problem still works...
Well... idk sorry..
Does anyone know how to go about displaying block component data in the ui that needs to update every second?
Hey guys, I'm looping over ItemStack array, I need to check for specific tag, I've looked through server code and I've found Item.getData().getTags() or Item.getData().getRawTags() but I'm not sure if I'm doing it the right way.
Heyy guys, i have a problem i made myself a localhost server and i was trying to make myself a plugin that just gives me a chat message but i builded it but it doesnt show up in the server if i drop it into /Server/mods/ what do i need todo that it runs ?
Guys how do I give spacing when using "LeftCenterWrap" LayoutMode in the UI
If i teleport a Player during PlayerReadyEvent to the spawnpoint the Player's rotation is slightly leaned forward. Has anyone else experience this?
anyone knows if hytale changed tokens scopes for the server ?
my tooling can still fetch valid tokens; but server now doesn't accept it
one question, can I code everything from world generation v2 in java instead of node editor ?
Is there any public documentation yet (even if unfinished)?
nvm, found the solution
Guys how do I get the Material/Item name from its id?
does anyone here know npcdialog plugin I dont understand the teleport player command
Can we glow swords, bow (default items)
Anyone know a pl like tab to see players in tab
item's id is its name, like idk Tool_Copper_Pickaxe
Yes some official docs are available at hytale modding dot dev, under official docs
is that not linked anywhere? or am i blind
Right, but how do I get the display name for the item id "Tool_Copper_Pickaxe"
Ah, that would differ from translation files I think, so you would have to get that translation somehow
You'd need to extend BlockType field with this
"Light": {
"Radius": 0,
"Color": "#ba9"
}
How ๐ญ
Very helpful, thanks!
Kind of hard to find but if you scroll on the left you can hardly see Official Docummentation and it has world generation, npc docs etc.
Hey, in this channel can we ask help for asset editor questions/issue ?
well that I wouldn't know, idk if it is even possible, it probably is, but it could be that only the game displays the names and the api doesn't expose them
so, Hytale's PlayerSkin doesn't support just completely replacing the player model, does it?
actually that doesn't even matter, I still need custom vfx/sound data and Hytale's PlayerSkin doesn't have those lol
hey uhm so DamageEventSystem fires on receiving but is there an event that fires when i send damage?
i'm guessing you can only get incoming damage without the source or something?
Maybe you can somehow get the source from that event?
How many people here actually knew about the Hytale built-in config system? it's very neat
but i dont want to get the damage source, players have a component that contains traits/abilities so i want to edit damage sources when the players swings a weapon instead of when it hits
my best guess it so use interaction type .main/secondary, get the weapon hes holding etc etc
I know nothing about it, how's it used? I've been using my own config system with Jackson that I wrote for Spigot a while back lmao
I did, not so neat when you need a map
mine uses Jackson serialization and does a bunch of dark sorcery behind the scenes to get around type erasure
Hello, just set myself up for plugin development. I want to make a new gamemode, but the gamemodes seem hardcoded into the GameMode enum in a final array. How can I make a custom game mode that works with the gamemode command?
i wrote my own json parser because uhmmm
It actually migrates your config file (and creates a backup) when new parameters are added
...migrates it where?
public class CoreConfig {
// Codec Builder
public static final BuilderCodec<CoreConfig> CODEC =
BuilderCodec.builder(CoreConfig.class, CoreConfig::new)
.append(new KeyedCodec<String>("ApiUrl", Codec.STRING),
(config, value, info) -> config.ApiUrl = value,
(config, info) -> config.ApiUrl)
.add()
.append(new KeyedCodec<String>("ApiInternalKey", Codec.STRING),
(config, value, info) -> config.ApiInternalKey = value,
(config, info) -> config.ApiInternalKey)
.add()
.append(new KeyedCodec<String>("RandomValue", Codec.STRING),
(config, value, info) -> config.RandomValue = value,
(config, info) -> config.RandomValue)
.add()
.build();
// Config Types & Defaults
private String ApiUrl = "https://api.hyrivals.gg";
private String ApiInternalKey = "SOME_KEY";
private String RandomValue = "HELLO WORLD!";
public CoreConfig() {
}
// Getters
public String getApiUrl() { return ApiUrl; }
public String getApiInternalKey() { return ApiInternalKey; }
}
When you add new values, the server automatically adds them to the existing config
Wow, this is ass.
any way to actually debug a plugin other than logs?
It's not that bad, but not very good either, I am using it currently and instead of a map I use a string array with : as a separator for key, value lol
nothing intended towards you ofc, but any kind of manual config system like this results in some serious code bloat over time, coming from AAA dev
fortunately Java is really good at avoiding this kind of thing, it's C++ where you usually see code like that
hang on lemme grab a sample
Is there any public src code for HytaleServer.jar? I am trying to poke around and figure out how item metadata storage works
There is, it's called decompilation lol, only way rn
IntelliJ has a decompiler built in, it's not source accurate per se but it is bytecode accurate and should give you an idea of what's going on
Decompile it ๐
Yea the IntelliJ stuff works, was just hoping there were comments javadoc laying around lol
Didn't they say they were gonna release source code for the hytaleserver.jar? Or did I dream it
or do I have to make a separate command that handles it? Seems to be the case from what I've seen
re: the config stuff
public final class ColorConfiguration {
public Color primaryColor;
public Color secondaryColor;
public Color messageColor;
public Color highlightColor;
public Color allyMessageColor;
public Color neutralMessageColor;
public Color enemyMessageColor;
}
that's it, that's the whole class. the library i wrote will automatically update configs on server launch when you add new fields to a class that's being serialized
no need to do any weird codec stuff
Hello guys, is there a way to detect the width and length of a prefab ?
plus the data in-memory is format-agnostic, so you can save it to json/xml/yml as you please
i had code to use SQLite and remote SQL servers as well for stuff like leaderboards but never got around to finishing that part lmao
downside is that you're still using text editors for it like you would with Spigot, but at some point I might add support for doing it through an ingame UI so people don't need FTP perms or whatever
How could I best save a block at a location? like an array of blocks in a radius?
Probably using its coordinates?
meow
gdi lmao
In the hytale-qna-live channel someone had asked about modding API and the answer given from Slikey was that it will be provided when they provide the source code of the hytale server ...I think that's what was said... and said it would be shortly after release? I assume soon'ish?
well, I want to know for the purposes of deleting it, replacing it and then returning it to its original value
yoo is there any1 here who knows how to query big servers for their player list etc?
so I need to actually save whatever is in there
can't you just create a map of locations to block data?
Well I guess you would save the block type and the coordinates in a map, don't know about chests and stuff that contains additional data, gonna have to ask someone else that
yeah I'm not sure how you'd handle the additional data, Hytale is supposed to use an ECS but it kind of breaks that encapsulation sometimes lol
I might create a block object that saves blocktype and its blockcomponents?
worth trying
Is this the right place to ask about the asset editor?
ask away, though I don't know how to work it other than viewing assets lmao
also, while i'm here, how would one go about loading a model through code? I saw something about ModelAsset
use configurate
how to fix black grass on void worlds?
scroll down, I have my own library lol
A+ username though, I like the icons
Well, I have an item that continuously performs an action while the button is held, with a looping animation that should be playing as long as the button is pressed. However, the animation is longer than the action cooldown, meaning the animation snaps to the first frame every time. Is there a way to simply play the animation on a loop until the button is released?
has anyone else noticed that that mods compiled with the latest server jar are not recognised by Hytale?
nvm I'm seeing this
ModelAsset modelAsset = ModelAsset.getAssetMap().getAsset("Minecart");
Model model = Model.createScaledModel(modelAsset, 1.0f);
are the models namespaced or can I just add a model called "Model" and load it this way
?
Yes, but this isn't a normal bug. I can't write it down; I can show it as an image or by live streaming.???
what
huge bug
does hytale have an defined dns service (srv)?
like minecraft for example has with _minecraft (_minecraft._tcp.cname)
tried _hytale but nah
No, it doesn't support srv resolution yhet
how do i use the update thing in the server config? i know how to manually update a server, but i'd like it to update every time anything comes out without manually doing it
Hi,
Has anyone ever had issues with addInstruction on a velocity component not being applied to projectiles?
It works perfectly fine on players and monsters, but for some reason it has no effect on projectiles once theyโre spawned.
If youโve encountered this or have any ideas, Iโd really appreciate the help. Thanks!
guys i updated the server files and cant see the map anymore,any solutions? linux btw
how will they handle paid mods will there be license checks or some kind of drm built in ?
There's no builtin handling, that depends on the mod authors
so i can make a service that obfuscates source code and provides an api for license checks per server basis
You could but it's most likely still bypassable as long as you ship the code to the user
It's a Java application, you can do anything you like. I'd just be prepared for people to try and bypass it
There's no perfect DRM, it just depends on how far you're willing to go & how far those trying to pi rate your content are willing to go
That word is censored, apparently
Everything is bypassable, its just how hard it is
The best DRM I've seen is dynamically downloading the JAR in memory and loading the classes that way. still bypassable, though, if you intercept it
Anyway, as long as your you mod does its job well people will pay for it if it's reasonably priced
If you spend more time on DRM than the actual content that'd be foolish
hey does anyone know if its possible to create 2 servers and connect them like how bungee cord on minecraft works
Yes, that is possible. Proxies are built into the server
thats why i want to provide this service to modders so they can focus on the content
thank you ๐
so ive setup portforwarding, ive opened my firewalls, and i still cant join any hytale server without using a vpn, my nat type is standard
Assets aren't namespaced you can just reference them by the exact name they are
hello, when was the maven repo published?
Even if its custom outside of Hytale:
guys i updated the server files and cant see the map anymore,any solutions? linux btw
How would one refresh a hud every second? I have been tinkering around for a bit but can't seem to get it right
cool, thanks. I'll probably "manually" namespace them with a prefix for safety lmao
One way is to center the entire service around a webserver. Require constant connection. Forward events and such to the web server, and do the business logic entirely there. This is a big downside for large production servers though, because they like to have control and no bottlenecks.
Eh, I guess you could, but I don't think people are going to be using it much. It's a mostly open-source community, and if people have no exposure to your mod they wouldn't even consider paying. That introduces demo/limited versions, etc. just very complicated and not worth it honestly
Unless you're like spark or luckperms nobody's gonna bother with paid mods. There will always be free alternatives, after all
nope
On another note, does Hytale use no damage ticks? I had the ability to configure no damage ticks in this Spigot plugin I'm porting over and I'm wondering how to reimplement it in Hytale to increase/decrease the frequency at which an entity can take damage
Depending on the amount of data you want to store in a given block, Hytale does have a Blockstate system, which is marked for deprecation, but all ingame chests use it as of right now
People already hate on ARR licensed mods enough, even if they're source-visible
I think one of the biggest things that hold back minecraft modding is that its just an hobby you cant gain your living with them
I have DamageDataComponent, but that just lets me set the last damage time lmao
so yes, it can be made with for example spongepowered, but JavaPlugins doesn't contains void's (saveDefaultConfig(), reloadConfig(), getConfig()) like in Bukkit
i attended a summit a few years ago where the CTO of Mojang gave a presentation and the top ~10% of Bedrock addon creators do in fact make a ton of money off their stuff, but...modding in general is a hobby, so I wouldn't expect to make a living off of it
basically, I want to delete every block in an area, replace the surroundings with a prefabricated item, and then after a delay return the surroundings to its original state
If your mods are big enough on modrinth/curseforge, you could very well make a living out of them tbf
There's many opportunities for monetization. You can offer support services for your mods, paid content that is loadable by your mods, etc.
Comeee joinnnnn Play.heroes.rest
I see, does it have to be physically changed or is it a visual effect solely for the player
I've got a library that might help, we're currently working on getting a maven repo up for it if you're interested
Codecs aren't so bad either way just alot of boiler
Guys, why Player not contains Location?
so how to get Player Location?
Does anyone know if it is currently possible to give each spawned NPC a distinct shop inventory in the data assets?
transform component
Anyone wrote a server plugin yet to make portals where you can set a world_name as target?
by might I mean it literally does this
I'm making JJK Domain Expansions, currently trying to make Coffin of the Iron Mountain work, so everything disappears, the inside of a volcano appears, and everyone except the user starts taking fire damage
so you're made a library with YamlConfiguration?
Actually i want to make one library and make creating Configs easy like FileConfiguration in Bukkit if you know about
yeah, I just ported over my old Spigot library. it uses Jackson instead of anything native to Spigot or Hytale
downside is that it might not be very familiar if you're used to manually reading/writing your configs
Do you know good job, auction or crate mod
the way I did it first was to create a new world and try to place a prefab in there, but for some godforsaken reason teleporting is broken right now
If you know, in Bukkit is best library - LunaSpring, but its not popular, i want to made similar in Hytale
Mind if I link you the old repo? The README is sort of relevant still lmao
I see, well blocks and their associated data are more than their blocktype, as I said earlier, some blocks do have blockstates attached to them like ItemContainerState for container blocks (Which contain their inventories)
yea ofc
Whats broken about it
is ItemContainerState not a component?
so for a different idea i have can i add sprites to entities dynamically, for example when a zombie got hit by a sword i want to add a scar to a specific place on its sprite
added you, send me a message whenever
Its a Blockstate in their system which is a Component<ChunkStore> but their Blockstate system they have right now is a wrapper for management
wdym with that?
But ItemContainerState is a Blockstate
need to get the TransformComponent from the player, which is done in a really roundabout way for some reason. hytalemodding dot dev has docs for working with this stuff, it's a bit weird
I previously got this from this server
public void addPlayerToWorld(Store<EntityStore> store, Ref<EntityStore> ref, World targetWorld, PlayerRef player){
player.sendMessage(Message.raw("Teleporting..."));
store.addComponent(ref, Teleport.getComponentType(), new Teleport(targetWorld, new Vector3d(1, 35, -22), new Vector3f(0, 180.0f, 0)));
}
which should put me facing the right direction. However, it puts the player at a weird angle. changing the rotation to 179.9f somehow changes the actual rotation in game by like 2 degrees instead. it's incredibly confusing. Also, I still haven't figured out how to place a prefab using code
ngl I'm still struggling to understand the point of the store/holder system
like, what does it offer over not doing that
Stores are data collections, (Containing refs), holders are containers made before they are turned into refs
no I mean
so youre wondering why ECS is better than OOP?
what exactly do you get out of doing that instead of just implementing a more straightforward ECS
flexibility
is blockComponentChunk a way to access components attached to blocks ?
making my minigames network anyone with experience making networks whats the best way to sync servers together currently im using redis to sync servers and feed data across servers but is there a better method?
Its probably just for scalability, they do use their own system internally in various odd ways
And easier serialization maybe? Stores are per world
perhaps, I'm comparing it to Unity ECS and not sure what the parallel is I guess
maybe you has an Method, cause i actually don't understand that
its aslo better for caching
it could be using radians and not degrees
I just wish I could do entity.getComponent lmao
var chunk = world.getChunkIfInMemory(ChunkUtil.indexChunkFromBlock(targetBlock.x, targetBlock.z));
var chunkRef = chunk.getReference();
var chunkStore = world.getChunkStore();
var blockComponentChunk = chunkStore.getStore().getComponent(chunkRef, BlockComponentChunk.getComponentType());
int blockIndex = ChunkUtil.indexBlockInColumn(targetBlock.x, targetBlock.y, targetBlock.z);
var blockRef = blockComponentChunk.getEntityReference(blockIndex);
var fooBarComponentType = getFooBarComponentType();
var fooBarComponent = chunkRef.getStore().getComponent(blockRef, fooBarComponentType);
So yeah it just gets the ref (For the individual block) and you read it back from the Store<ChunkStore>
Hyscript or Simple Scripting what is better
lame ash bruh whyd they have to go and redo the ecs and break my entire plugin, now i gotta go and relearn how ts works
Redid the ECS?
there was a huge memory leak ngl
THANK YOU YOURE CORRECT that pisses me off
i know, but they couldnt fix it without destroying the old system? lmao
probably not, if it was buried deep enough
it was prob something fundamental broken so it had to be changed
thats what the patch notes say and my stuff aint working anymore
right, so if I want a helper method to just get the entity location
public static Vector3d getLocation(Entity entity) {
Ref<EntityStore> ref = entity.getReference();
return ref.getStore().getComponent(ref, TransformComponent.getComponentType()).getPosition();
}
this feels so verbose lmao
they also redid the respawn system
If I were to ask a developer to make a Pixelmon-ish style mod for Hytale that uses my IP. What would be an acceptable amount for said project? I'm not trying to undercharge a developer, and obviously I don't want to overcharge either.
new Location(toPlayer.getTransformComponent().getPosition()))
What should i use, because getTransformComponent is deprecated
just posted a code snippet
Well, usually you already have a Store<EntityStore> in most contexts that you need it
oh thanks
I mean I understand them not having entity.getLocation in the event that an entity lacks a TransformComponent for some reason
something like that would be prob expensive ngl idk if alot of ppl understand how much goes into pokemon type games
I spent so long getting respawns to send you to the correct place man
If I want to store additional data on 'vanilla' items I need to create a component w/ a BuilderCodec, then attach that to some store somewhere then attach that during an interceptable process? Does this sound right or am I over complicating this
so, stores are per world, right? so entity.getStore() references the Store<EntityStore> for the world the entity is in?
Look at all these nerds, love yall ๐
What would classify as expensive? Looking for a price range
Is there an entity.getStore() I haven't seen that
as a developer it'd be in the 4 digits depending on how long it takes :p
bro just came here to call us nerds
er, sorry, entity.getReference().getStore()
๐ญ $1,000+
But yeah stores are per world, theres a Store<EntityStore> and a Store<ChunkStore> per world
swipez do you know what we going to use for blockstate now its deprecated
The chests use Blockstate still I assume but I haven't checked the update so maybe they've already switched off it
anyone have the old onyxium ores saved anywhere? i want to readd them with my mod
Probably not though if I had to guess haha, they've been deprecated for a while
Is it possible to add tooltip text at runtime?
okay
how can i get for an item id string the name from the localization?
Cool, I was looking at $500-$1,000 so that's within or at least close to budget at least with what I was hoping โค๏ธ thanks as well to your reply @rugged halo
I also would like to know this
I mean Ref's are weak links rather than strong ones so the ref object will never be nul until it is no longer used anywhere; the Entity could suddenly be deleted and any other systems using it wont know that its gone
no
so they're similar to C++'s shared pointers?
or am I misunderstanding what you wrote
WILD bug NEED HELP. My friend loads into an entirely differnt instance of a server after the updatre instead of the one we play one
Ah, well that's just bad I hope they rework it soon
you might be able to hack it via reflection, but I wouldn't know where to start with that
can anyone help me figure out what is being triggered to active the flying movement state, i want to hook into it for double jump logic
not the place for that
That being said, if anyone dev is interested in that let me know lol. I'm reaching out to some buddies first but yeah
more like the weak_ptr
theres a bug report on hytales webpage
where i go for help
yeah im waiting on it too i neeeeeeeed it
web page for hytale
I won't start a mod idea when I know there will be a rework for that specific thing soon, they said it somewhere right? Or did I misremember
"#id.TooltipTextSpans"
ah, that makes sense - what owns the reference?
cmd.set("#id.TooltipTextSpans", value);
also just realized Java has WeakReference anyway lmao
it is if you wanna make a plugin to fix it
What's that, does that work at runtime? And does it overwrite current tooltip text or adds new
how do i play with my friends non of us are able to join each others servers
how to add Ref<EntityStore> as codec field?
like with no artwork i didnt want to scare you off instantly but it'd be like $3-5k tbh i was chatting with my friend about it and even using ai agents alongside ourselves it'd be about that much and thats if its not super faithful to pokemon and missing some systems and considering artwork the cost just skyrockets
in general speaking set the text for the tooltip
i think the main driving point of the price is just hytale is just so incredibly new
but in the hell i dont know how i get the translation for an item id
I have my own IP. I have a fully flushed out TCG made for it lol so I'd make the 3D models for it, I'd also be okay with AI animation or default hytale animation. 3-5k would be a bit much but around $1k I could do. Thanks for the honest breakdown! It being so new makes sense, but I could also see that helping the price as it'd be a good paid learning opportunity for the game too โค๏ธ
anyone has experience adding another plugin as dependecy? Trying to add VaultUnlocked but i get
Caused by: java.lang.ClassNotFoundException: net.cfh.vault.VaultUnlockedServicesManager
VaultUnlocked is being loaded in my server though
Has anyone found how to distinguish a mob that is hostile vs passive?
np ๐ซก
RespawnSystems isnt even an ecs system anymore bruh
Need to redecomp
interacting with NPC AI seems a little wacky
Development side? Ive researched them yesterday
Its a mess, their whole system
Yeah, I was looking into it the other day. Looks like hell
More of a mess than my colony sim framework lol
so basically all world manager plugins like mine just dont work anymore
i would expect to deal with a lot of breaking changes this early into the game's lifespan
also anyone know if i can actually use worldgen2 providers? like void and flat?
2026-01-23 15:19:34.2251|INFO|HytaleClient.Networking.PacketHandler|ProcessJoinWorldPacket: FadeInOut is False
2026-01-23 15:19:34.2251|INFO|HytaleClient.Application.AppGameLoading|GameInstance.PrepareJoiningWorld()
2026-01-23 15:19:34.2251|INFO|HytaleClient.Application.AppGameLoading|GameInstance.StartJoiningWorld()
2026-01-23 15:19:34.3077|INFO|HytaleClient.Utils.SentryHelper|Sentry event captured: 7caf23147dec4949b5b387b1e5301b2a
2026-01-23 15:19:34.4266|ERROR|HytaleClient.Application.Program|System.NullReferenceException: Object reference not set to an instance of an object.
at HytaleClient!<BaseAddress>+0x3c3cc6
at HytaleClient!<BaseAddress>+0x3c40b8
at HytaleClient!<BaseAddress>+0x2e6290
at HytaleClient!<BaseAddress>+0x636a04
at HytaleClient!<BaseAddress>+0x635d85
at HytaleClient!<BaseAddress>+0x64cb0a
at HytaleClient!<BaseAddress>+0x64c99e
at HytaleClient!<BaseAddress>+0x11f9ab7
--------------------
2026-01-23 15:19:34.4266|INFO|HytaleClient.Utils.SentryHelper|Sentry event captured: 8c224ecb40af4d5f8b93a49db0726171
2026-01-23 15:20:03.9850|INFO|HytaleClient.Networking.PacketHandler|Received JoinWorldPacket
2026-01-23 23:12:20.1816|INFO|HytaleClient.Application.AppGameLoading|GameInstance.OnWorldJoined()
2026-01-23 23:12:20.1816|WARN|HytaleClient.Application.AppGameLoading|Removing mis-prediction: Hytale.Protocol.EntityStatUpdate
2026-01-23 23:12:20.1816|WARN|HytaleClient.Application.AppGameLoading|Removing mis-prediction: Hytale.Protocol.EntityStatUpdate
2026-01-23 23:12:20.1816|WARN|HytaleClient.Application.AppGameLoading|Removing mis-prediction: Hytale.Protocol.EntityStatUpdate
2026-01-23 23:12:20.1816|WARN|HytaleClient.Application.AppGameLoading|Removing mis-prediction: Hytale.Protocol.EntityStatUpdate
2026-01-23 23:12:20.1978|INFO|HytaleClient.Utils.SentryHelper|Sentry event captured: ebc6743d26a0450a87dfcb3790da6349
2026-01-23 23:12:20.3588|DEBUG|HytaleClient.Application.Program|Telemetry packet sent: event (seq: 15)
2026-01-23 23:12:20.3712|ERROR|HytaleClient.Application.Program|System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at HytaleClient!<BaseAddress>+0xa9106b
at HytaleClient!<BaseAddress>+0x3d8141
at HytaleClient!<BaseAddress>+0x3f44f3
at HytaleClient!<BaseAddress>+0x55185c
at HytaleClient!<BaseAddress>+0x550fad
at HytaleClient!<BaseAddress>+0x3c692c
at HytaleClient!<BaseAddress>+0x135d5c2
at HytaleClient!<BaseAddress>+0x3c488b
at HytaleClient!<BaseAddress>+0x3c4744
at HytaleClient!<BaseAddress>+0x3c3a86
at HytaleClient!<BaseAddress>+0x3c32d9
at HytaleClient!<BaseAddress>+0x2e67bb
at HytaleClient!<BaseAddress>+0x2e7078
at HytaleClient!<BaseAddress>+0x63a6e1
at HytaleClient!<BaseAddress>+0x636372
at HytaleClient!<BaseAddress>+0x64cb0a
at HytaleClient!<BaseAddress>+0x64c99e
at HytaleClient!<BaseAddress>+0x11f9ab7
--------------------
2026-01-23 23:12:20.3712|INFO|HytaleClient.Utils.SentryHelper|Sentry event captured: 26da75d8cd9c417ba8ebdea331703b19
Anybody have any idea what could be causing these client crashes?
i'm working mostly outside of hytale's ecosystem as a result lol
NPCs have an instruction set (Which can have sub instructions) and per instruction usually they have a Sensor (Entity tracker or event tracker) that sometimes provide positional data to the Instructions associated Bodymotion
message overshot by massive logs ^
You can override the position they want to do as long as you make your own sensor, tell it it fired, and provide a pos in the InfoResult
the store owns it; ref has isValid() to determine if whatever it is referencing is still in the store, since the weak link does not enforce that. they probably implemented it themselves because it is not exactly a pointer; it holds some data that identifies an object in a store(kinda like an index? im not too sure here tbh) but thats too deep for me lol
hytale devs running and screaming from behavior trees
I just made a dummy NPC with a single instruction, custom sensor and the built-in seek bodymotion (Which is goto with some stoppage parameters) and it worked perfectly well for my purposes
LOL๐
I'm trying to get the players position via a command but I get
java.lang.Throwable
at com.hypixel.hytale.server.core.entity.Entity.getTransformComponent(Entity.java:278)
at com.hypixel.hytale.server.core.universe.world.WorldMapTracker.tick(WorldMapTracker.java:138)
at com.hypixel.hytale.server.core.universe.world.worldmap.WorldMapManager.tick(WorldMapManager.java:148)
at com.hypixel.hytale.server.core.util.thread.TickingThread.run(TickingThread.java:89)
at java.base/java.lang.Thread.run(Thread.java:1474)```
and this is my code:
@Override
protected void execute(@NotNull CommandContext context, @NotNull World world, @NotNull Store<EntityStore> store) {
Ref<EntityStore> playerRef = context.senderAsPlayerRef();
if (playerRef == null || !playerRef.isValid()) {
throw new GeneralCommandException(MESSAGE_COMMANDS_ERROR_PROVIDE_POSITION);
}
world.execute(() -> {
TransformComponent transformComponent = store.getComponent(playerRef, TransformComponent.getComponentType());
Vector3d position = transformComponent.getPosition().clone();
context.sendMessage(
Message.raw("pos mabe ")
.param("posX", DECIMAL.format(position.getX()))
.param("posY", DECIMAL.format(position.getY()))
.param("posZ", DECIMAL.format(position.getZ()))
);
});
}
}````
im guessing it has to do something with world thread but im executing it in world?
Hey everyone, I was hoping someone could help me understand something. The patch notes mention a launcher script, what is that about? I can't find it anywhere in files:
Updated the release workflow to include launcher scripts (start.sh, start.bat).
for more complex NPC decision making it seems worse
Yes their HUGE state machine is written in JSON in Template_Intelligent for aggressive mobs
oh no...
You have can have a look at it in the asseteditor, its ridiculous
how to add Ref<EntityStore> as codec field?
I could probably come up with something to let people write cleaner behavior trees lmao
can I create portals on hytale creative that only enter with F key
Hi everyone,
Has anyone ever had issues with addInstruction on a velocity component not being applied to projectiles?
It works perfectly fine on players and monsters, but for some reason it has no effect on projectiles once theyโre spawned.
If youโve encountered this or have any ideas, Iโd really appreciate the help. Thanks!
if HyUI can turn HTML style docs into whatever eldritch CSS knockoff .ui files are trying to be, surely I can turn JSON into uglier JSON
oh dear god
Why? Are you not using a Component<EntityStore> ?
You shouldn't store refs definitely not persitently like that, if you need to store mobs store UUIDs
Wouldn't work they're runtime made, Refs that is
Hello, how can I prevent a player from picking up thing that are on the ground ? I tried the InteractivelyPickupItemEvent, the DropItemEvent, and even tried removing the PickupItemComponent from the player but couldn't achieve it
Oh by the way, for anybody making a custom NPC sensor, the sensor has to provide
provideFeature(Feature.LiveEntity);
Or a similar positional feature in its readConfig method or else the Bodymotions that need positions will not accept the sensor
Was driving me nuts
is it safe to store a Ref for something that's only present at runtime? I have a wrapper class (from a Spigot plugin where this was necessary) that handles storing things related to RPG gameplay for a given entity, but not sure what the best way to reference the Hytale entity is
anyone know why this class isnt calling?
new SpleefEndGameChecker(world);```
```java
public class SpleefEndGameChecker {
private final World world;
// Constructor carries over the world and the lobby manager
public SpleefEndGameChecker(World world) {
world.sendMessage(Message.parse("SpleefEndGameCheckerRuns0"));
this.world = world;
world.sendMessage(Message.parse("SpleefEndGameCheckerRuns1"));
}
// Method to run the check for all players
public void run() {
var spleefPlayerManager = HelloPlugin.SpleefPlayerManager;
world.sendMessage(Message.parse("SpleefEndGameCheckerRuns2"));
Collection<PlayerRef> playerRefs = world.getPlayerRefs(); // Get all players in the world
int i = 0;
for (PlayerRef playerRef : playerRefs) {
Store store = playerRef.getReference().getStore();
Player player = (Player) store.getComponent(playerRef.getReference(), Player.getComponentType());
String key = world.getName() + playerRef.getUsername(); // worldName + playerName
if (spleefPlayerManager.containsKey(key)) {
Integer value = (Integer) spleefPlayerManager.get(key); // Get the value for this player
world.sendMessage(Message.raw(String.valueOf(value)));
if (player != null && value != null) {
if (value == 1) {
world.sendMessage(Message.parse("GAME ENDED"));
}
}
}
}
}
}
in Spigot I just had LivingEntity as a field, but Hytale is a bit more complex
Well, if its exclusively runtime, it might be fine
How can I send a chat message to a player when they execute a command, for example?
I can't even see where you call the run method
But really you shouldn't store Refs in maps theres usually always a better way (An entitycomponent directly) to store data regarding an entity
Well from what is given it looks like you are only creating the object and never calling it with the run method in the class
Rather than just rewrite the ecs system and the respawn system i think they should have left the old ways in and just made emm depricated so that i dont have to have my server down to fix my skyblock system
EMM?
them im lazy asf anytime i can be
...what happens if I just have a field that's a LivingEntity?
Oh you really shouldn't store components like that for longevity, anything could happen to it
my understanding is that that corresponds to the in-world presence
Does anyone know of an NPC plugin where you can apply player cosmetics to NPCs?
Especially not the entity components, I mean I think those might swap out even, not sure, the game is weird
that's weird as hell. should I just use UUIDs?
Yeah
now I gotta figure out how to fetch stuff like position from those lmao
When possible
I was already using UUIDs in maps from Spigot anyway, since they're immutable
Does anyone know how to use the Spacing property when creating UIs
mi bio
okay, i took some time to read docs and also just ask AI to help explain some things to me and overall i think i have a general idea. what i was trying to do before was use an ECS system even inside of the event bus which doesn't work because the event bus is only meant to expose after effects of ECS events to plugin developers to use for their purposes. What you suggested with your code snippet is extending the ECS system so that we can override the ECS block placement event to use for my purposes, but that i guess feels like something the developers did not intend for us to have to do if the idea is for plugins to pretty much just go through the event bus? so i guess there should be some event bus event that should be useable for this scenario still, i just don't know what it is and need to look for it. or.. maybe it doesnt exist and the only thing to do right now is your suggestion of extending / overriding the ECS block placement behaviour.
private static final HashMap<UUID, KnockbackInstance> kbInstances = new HashMap<>();```
wtf was I doing recording knockback instances LMAO
do we know anything about modifying entity behaviours?
oh, it was for priority, so knockback didn't stack
Scroll up a little ways, we talked about it a few minutes ago - tl;dr simple entities are fine but it gets ugly real fast
I think that the event system itself is really buggy currently. There are some events that just simply do not work at all
I see.
not really buggy, but just occasionally buggy
The behaviors are defined in an entity's entityrole asset
As mentioned above they are quite a mess
making my server registry system for my server core to track all my servers using Redis with a logging system and I'm adding so admins can toggle verbose mode so see what's happening with all the servers like all the player movement between servers starting/stopping/restarting/connecting/disconnecting
What is the correct way to remove a hud on command?
player.getHudManager
Setting the hud to null crashes client with a npe
okay, thanks.. then I`ll probably wait a bit more for the source and maybe some tutorials
Hey,
how do I make a custom UI pop up when someone interacts with my custom block?
sorry, i didnt show this
SpleefEndGameChecker checker = new SpleefEndGameChecker(world);
checker.run();
So I figured out the issue
Hytale did change how the server validates tokens. The server now requires the UUID in the tokens to match the --owner-uuid parameter you pass to it... so if you have your own download flow setup, check that
i have two tools that authenticate & download hytale without using hytale-downloader..
anyway; hopes it will help someone
I think you need to disable certain components, disabling the whole hud at once probably won't work.
HudManager.setVisibleHudComponents
alright, I'm rethinking my domain expansion system. I need to figure out how to save and spawn instances on command
how can I save a world as an instance?
hi all. trying to set up a server on my mac M1. no one can connect because from what i understand... it needs tokens, so they can't connect.
any idea where i can get those tokens from ?
So after using "#setCustomHud" there isn't a way to set it to false hmm
oh damn, because HudComponent is an Enum right?
Guys, do you also encounter a bug where stone pickaxe does no damage to any ore?
A custom hud element would have to be registered to enable/disable the hud components specifically I take it
Yeah
in theory there is a resetHud inside of HudManager
Theory lol
resetHud worked fine for me, but had to be called async
what does "cannot edit instances when using launcher assets" mean
Would that also reset any other plugins huds however?
hello
guys please, any idea where i get tokens so friends can connect my server?
To all server plugin devs out there; Have we landed on a standard economy plugin or an api plugin that binds economy plugins?
Probably. Custom HUD management seems jank.
run "auth login device" in the console
Clearly lol
I'm avoiding using anything other than a custom HUD for the time being
it won't be running on a server with anything else that has a custom HUD for now, so
yeah anything builtin is basically uncustomisable
After you authed once, run "auth persistence Encrypted" so you don't have to login each server restart
how can I reference a local item? for example copying a world from the plugin jar file and adding it as a world to the current universe?
good question
I tried using
return Universe.get().makeWorld(ExpansionName, Path.of("/universe/worlds"), wc);
but this actually made the world at the root of my c drive
Ngl it's whack that you can programatically enable a hud element but seem to have to make a sacrifice to satan to disable it
that's because your path is equivalent to C:\universe\worlds in Windows
You want too use getDataDir or getWorldDir or whatever it was
same here. did you find a solution?
if you're trying to extract actual files from the .jar file you'll need to open the .jar file as a ZipFile
Universe.getWorldGenPath()?
I think so
Otherwise store them in the data directory under a worlds folder in there
pluginmainclass.getDataDirectory()
Paths starting from / start from the root of the drive, you have to use . for current directory or omit the first /. So it could be like ./universe/worlds, assuming the worlds are stored in that path relative to the server's working dir
Assuming that method doesn't modify the given path
What directory should custom UI be in?
has anyone experienced degrading over time of TPS after the update? spark profiler shows it's not mod related. and low usage of ram and cpu
Common.UI.Custom in your resources folder in IntelliJ, assuming a maven project
you can make subfolders, but it has to be there AFAIK
Hey guys, after updating the server to the new update, when trying to run the server it just auto shuts down and doesnt launch now
Looks like it's trying to create a new world when there is already one
yeah so when I boot up my server from intellij it works fine but if I put my .jar in my mods folder and play singleplayer suddenly some ui file doesnt resolve
FWIW I think Path.of has 0 awareness of your working directory
I might be wrong though
Anyone know where to find the code for Open_Container interaction, im trying to make my own block open and close?
does your manifest.json have IncludesAssetPack as true? just checking
yea
class OpenContainerInteraction
you can find a lotta interactions getting registered in the InteractionModule
thank you
Hey,
how do I make a custom UI pop up when someone interacts with my custom block?
is there an equivalent to Spigot's BukkitRunnable? I'd like to run repeating/delayed tasks, both synchronous and async, but all I'm aware of is CompletableFuture, which doesn't seem to have the option to do repeating or synchronous tasks
Btw what happened to RefillContainerInteraction?
Interaction just throws an error on case 19 now instead of delegating to RefillContainerInteraction
Was it disabled for some reason
opening the ui straight up kicks me and gives me Failed to parse or resolve document for Custom UI AppendInline command. Selector: #ElementList.
is it possible to modify the default inventory UI?
World implements Java's Executor but that's all I can find for synchronous execution
maybe HytaleServer.SCHEDULED_EXECUTOR could help here; I have no clue though.
HytaleServer.SCHEDULED_EXECUTOR
Every world in the universe runs on a separate thread, that's most likely why
Ah - go into your settings in the game client, scroll to the bottom under General, turn on developer mode or w/e
if it's just a .ui file error, you can load in, and you'll get an error log instead of just getting kicked
gotcha, thanks
its already on ๐ญ
...damn, you really are getting cooked by this UI file
its literally the file from the itemrepairelement from previous patch but with a name change
Someone sells skywars plugin | bedwars | hungergames? MD
public static final ScheduledExecutorService SCHEDULED_EXECUTOR = Executors.newSingleThreadScheduledExecutor(ThreadUtil.daemon("Scheduler"));```
so uh...this offers `schedule`, which is neat and all if I want a single delayed task, but let's say I want a task on repeat, like periodically backing up player data or something
currentWorld.execute(Runnable)
i'm guessing i'd have to implement the looping in that runnable then (i have no idea if this runs the Runnable on repeat or not, sorry)
for example:
public class AutoSavePlugin extends JavaPlugin {
private ScheduledFuture<?> saveTask;
@Override
public void onEnable() {
// Save every 5 minutes
saveTask = HytaleServer.SCHEDULED_EXECUTOR.scheduleWithFixedDelay(() -> {
saveAllPlayerData();
}, 5, 5, TimeUnit.MINUTES);
}
@Override
public void onDisable() {
if (saveTask != null) {
saveTask.cancel(false);
}
// Final save
saveAllPlayerData();
}
}
...wait, i wasn't seeing that second numeric argument
Anyone not able to mine copper/iron, if you have this mod it's the reason why:
romnas-quality-crafting
Hey, I might be wrong but I have noticed that only one block in multi-block models like furnace or connected chests holds the actual state. My custom block checks for the states of blocks above and below it. When dealing with connected chests, I only successfully get the state if I place my block under the right side of the double chest. However, when I place my block above a furnace, I get null regardless of whether it is on the left or right side using world.getState(x, y-1, z). Am I doing something wrong? Should I be checking blocks in a radius, even though that is expensive, or am I missing a key part of how these blocks are handled? Thanks for help!
Hey,
I've got the issue that when I am executing my command, it says "You do not have permission to use that command." even when I didn't specify any required permissions. How do I solve this?
i see now there's fixeddelay and fixedrate, thanks
np
public boolean hasPermission(CommandSender sender) {
return true;
}
inside of your command
Yes, come in dm
Ah okay, thank you!
what is the permission to keep inventory on death? If I give myself Hytale.* i keep my inventory but I want to disable this.
Damn just figured out how to make custom portals, so you can have portals to different worlds โค๏ธ
furnace has a BenchState I think? different than how containers save things
Hi, i want to freeze and cancel all interactions of a player. Does anyone has done this and can send me his GH?
guys how i can change the "press F to interact" to like "press F to open <block name>" like the chest? i've done a new interaction, extended from SimpleBlockInteraction
looking at the per-world version I'm seeing that it uses a "task queue" internally
public void execute(@Nonnull Runnable command) {
if (!this.acceptingTasks.get()) {
String var10004 = this.name;
throw new SkipSentryException(new IllegalThreadStateException("World thread is not accepting tasks: " + var10004 + ", " + String.valueOf(this.getThread())));
} else {
this.taskQueue.offer(command);
}
}```
and then it consumes that task queue at some point
```java
public void consumeTaskQueue() {
this.debugAssertInTickingThread();
int tickStepNanos = this.getTickStepNanos();
Runnable runnable;
while((runnable = (Runnable)this.taskQueue.poll()) != null) {
try {
long before = System.nanoTime();
runnable.run();
long after = System.nanoTime();
long diff = after - before;
if (diff > (long)tickStepNanos) {
this.logger.at(Level.WARNING).log("Task took %s ns: %s", FormatUtil.nanosToString(diff), runnable);
}
} catch (Exception t) {
((HytaleLogger.Api)this.logger.at(Level.SEVERE).withCause(t)).log("Failed to run task!");
}
}
}```
but this doesn't actually offer support for repeated tasks so that's interesting
also, it seems like it consumes the task queue twice per tick, possibly because `entityStore` and `chunkStore` tick between those two consumptions
how do I get a string from a command? how do I even make a command that takes in extra data?
Okay, rewriting my plugin was worth it forsure, the server runs waaaaaayy better now, i can fly around at 10x speed forever with no issues now
hytalemodding,dev/en/docs/guides/plugin/creating-commands
Yeah, I check for it like this ```java
if(southState instanceof ProcessingBenchState furnace){
CombinedItemContainer furnaceItemContainer = furnace.getItemContainer();
this.processFurnaceOutput(furnaceItemContainer, hopperContainer);
}
but it returns null , it works if I place my block below furnace
How i can add mods to my Server that contains "Server" folder ?
put it in the /server/mods folder
No i mean its not an .jar File just a folder called server
okay, so looking at TickableSystem, you could put that in the world I guess
hmmm probably has to do with the fact that benches aren't single block things; idk though
Yeah, I guess so :(, I'll probably have to check in radius
you need the .zip or a .jar, if its not one of those its not a mod
is there any way of modifying the inventory UI? or at least adding a new ui to it?
can't modify existing UI afaik
nope; you'd have to remake the full ui
So you mean i can try add the zip to servers mod folder? Thats it? Thought it must be a jar there
Can someone explain me this? So i can actually add custom items into Assets/Server/Item/Items/.../MyItem.json. Is there a way to add items without having to modify Assets.zip or providing the Assets unzipped to the server? I dont want to repeat that manual unpacking and file placement everytime an update is coming out.
Is it possible to create a field where the player model is located? To place the model in the UI?
anyone know where to find or have a list of all item ids?
you'd have to look at the client ui and figure it out; but since the builtin inventory has it i think it should possible
You could probablt use the assets
no, thankyou its okay i don't do dm
nah you can install mods or plugins to servers and they'll both auto download for players
its so fun using the decompiled files to find how stuff works๐ฅ
just examine Assets.zip/Server/Item/Items i guess.
fr, especially when they rewrite it on you and you gotta go an relearn with each update
I guess what I could do is write a custom executor that adds an implementation of TickingSystem<EntityStore> to the world if it's not already present, then that ticking system handles executing runnables on repeat lmao
this is what we did with Minecraft back in like 2010 before Forge tbh
minecraft coder pack and all the obfuscated class names lmfao
this is a bit stupid but it is what it is
Ok i need some help. How do i go about registering a new instruction action that will allow me to programmitcally control my NPC?
i remember that,fuck orbfus
Ive been trying to find some sort of guide or something on this
i dont think itd be as fun if it was obfuscated ๐
obfus
but i cant find ANYTHING. Does anyone have anything i can look at?
Is there a way to offset the model of a bench? Right now my custom one is centered into the block it's placed on, instead of taking up two blocks like a furnace.
anyone making a uhc server? or nope
I'm sorry if this is not the right channel to ask, I'm planning to run a server for our circle of friends(there's just 3-4 of us).
Is 2vCPU and 4GB memory enough. (AWS EC2 t4g.medium)
Ill just figure it out..... This channel is always so flooded with people asking for help lmao! ๐
I may have to just switch to using blocks to resolve my issue i am currently having
So with about 4 players, my server used between 7-8 GB ram. You may be able to rent a cheap VPS from OVH and install something like "AMP" onto it to let you host an affordable server while also letting you manage it from a webpage
I run a 4core vserver, with 8GB RAM and SSD, with chunk distance of 12 and its actually playable as long the world generator did the heavy lifting in a new world, + you have to wait per player to let server settle down when entering portals to different worlds/instances.
Can someone explain me this? So i can actually add custom items into Assets/Server/Item/Items/.../MyItem.json. Is there a way to add items without having to modify Assets.zip or providing the Assets unzipped to the server? I dont want to repeat that manual unpacking and file placement everytime an update is coming out. Or is creating a server plugin the onliest way doing that?
guys how ฤฑ find to api that ฤฑ want to use
does anybody know how can you get a block's rotation based on the blocks rotationยฟ
how to disable armor hide on server, pls help
man before this new update me and 4 friends playing was using 27gb ram my heart dropped because i'm rn coding a full blown minigames network and i really feared that i wouldn't be able to do it without either making a crazy workaround or waiting for them to fix it
or id have to buy like a TB of ram
i have 256gb rn but holy
any ideas why this isnt working?
it shows the sout message so it should work, also not getting any errors on the server either but when i go check the game it says "An unexpected error occured"
private void referToLobby(PlayerSetupConnectEvent event){
System.out.println("Referring player to server...");
event.referToServer("imagine a valid ip here", 5520);
}
i need people who work in my server
you have the event registered?
i mean he said the sout appears so I assume the event is registerd
you'd be suprised
๐ญ
yes, otherwise i wouldnt be able to see the sout
this.getEventRegistry().register(PlayerSetupConnectEvent.class, this::referToLobby);
Hi everyone,
Has anyone ever had issues with addInstruction on a velocity component not being applied to projectiles?
It works perfectly fine on players and monsters, but for some reason it has no effect on projectiles once theyโre spawned.
If youโve encountered this or have any ideas, Iโd really appreciate the help. Thanks!
make sure the server your trying to send the player to is the same version there was just a update today so ๐คท๐พโโ๏ธ
is it possible/reasonable to save a prefab as a list of positions and block types? I kind of want to spawn a structure over a duration, but I don't know how to do that
anyone know where i can find the Pages/name.ui files?
probably in the assets.zip -> ui/common/custom/pages
yeah i just updated all servers like an hour ago
Trying to make a plugin makes me feel so dumb lol. I've been working on the same theory and idea for 3 damn days
I swear I looked there but didnt find it at first :/
1 week for me XD
it took me a full week and now im at a point where things finally work
its just the niche things for me, i can make the logic i just need the entry points tbh
i'm porting my spigot plugins (library + rpg core) and i feel the same lmao
It does make me feel better knowing it isn't just me xD
dow anyone know if it's possible to make .js scripts and load withou server restart like with hot reload?
Anyone have a clue on what the quality param does in the Tool Specs?
in the same boat buddy
hey guys , can anyone give me in a zip file the folder with the node editor ? I m on linux and I don t have it, I m trying to find out if I can use it
I got the library working just fine, because it was mostly outside of Spigot's ecosystem, but the RPG core relies more on actual gameplay stuff and finding equivalents in Hytale is killing me
Sounds like you took something complex as your first plugin, I made a veinminer with a twist that all blocks are damaged simultaneously and it took me 2 days with no prior java knowledge (I did know C++)
the pure pain of scouring the source
Yeah when i first time ran the game on my pc i was like wtf is that RAM hog, but now after moving the server part to the vserver, to even be able to play the game with a friend together, it runs all super nice, we have 300+ FPS and RAM usage is just 4GB, serverside its fine with 8GB all the time.
We have HytaleServer.SCHEDULED_EXECUTOR for repeated sync tasks but there's no equivalent to that per-world so I'm putting one in my library ๐
are you able to login to two different game profiles at the same time if they're on one account? anyone tried?
For consistency I'm trying to implement it as a TickingSystem so it executes at a predictable point in the world tick
folks at nucleus coop were able to do it on the same PC
amazing
Is there a way to prevent players from dodging fall damages by being on the border of a block ?
like...mantling?
what does mantling means ?
Although input is not in a usable state, I guess they are waiting for gamepad support I think you should try to login it should work with different PCs
Yes Update simple claims mod ๐
mantling is when you're able to grab a ledge and pull yourself up
some games, hytale included i think (i haven't played enough to remember), have it where you won't take fall damage if you manage to catch yourself on a ledge before hitting the ground
Anyone know how to update their server with this new update
people cant join my server anymore its not like a paper or spigot file I just update
yeah that was my plan, just a vm or my laptop for testing multiplayer stuff
what do I do?>>>>>>
dude i was gonna make the server stop loading chunks after an arena is loaded to keep the ram usage as low as possible
I keep my inventory upon death for a reason I dont know! I was thinking it was a mod or setting in the universe. so renamed the mod folder and renamed universe folder. Removed op from my permissions under permissions folder. But it still happens! Does this happen for you as well? I am running HytaleServer v2026.01.24-6e2d4fc36 (release)
hytale uses more RAM than my 300+ mod rimworld lmao
are you on singleplayer or a server?
oooh ok i see thanks for explaining, and yes that's what i meant, theres no way to prevent this ? I'm making a Thimble and if you can do that you can basically break the game
server, HytaleServer v2026.01.24-6e2d4fc36 (release)
Try sandboxie if it doesn't work, it helped me run 2 steams and 2 instances of my game that I was making in Unreal (for fun) for testing multiplayer
tyvm @wintry dawn
hey guys , can anyone give me in a zip file the folder with the node editor ? I m on linux and I don t have it, I m trying to find out if I can use it
not sure tbh, I don't think there's an event that fires when the player mantles
You could try tracking the player's position/velocity and determine how far they fell if their velocity abruptly slows to near 0, as a workaround
Is there anyone who can help me with the .ui files, please?
this is what i use maybe it'll work for u (who knows why but i'm just making guesses atp)
public void sendPlayerToServer(PlayerRef player, String host, int port, byte[] sessionData) {
player.referToServer(host, port, sessionData)
Hello guys. How can I reload a embed packet (UI files). When I reload my plugin, it says: [{PluginName}|P] Asset pack Group:GroupID already exists, skipping embedded pack. Does anyone know how to reload assets correctly? I missed
anyone know a good way to edit .ui files easily?
Is there anyone who can help me with the .ui files? Please send me a DM.
Yes, i've hesitated to do that at first, just check the y when they are not falling anymore, ill probably do that, thank you again !
hytale,ellie,au has a web app for it
this is why all the survival games servers have tiny ass maps ๐ญ
i'll let you know if i discover a mantle event lol
is it the world that's eating all the RAM?
yeah
Thank you!
do you have to enable anything on the target server?
Does anyone know why it shows an error?
Group {
LayoutMode: Left;
Padding: (Full: 8);
Label #Icon {
Background: "MUERTES_BRAWL.png";
Anchor: (Width: 24, Height: 24);
}
Label #IconText {
Text: "Label";
Style: (FontSize: 16, Alignment: Left);
Padding: (Left: 8);
}
}
What error give you?
It won't let me log into the server and just says โCustomUI fail load.โ
Hi, i want to freeze and cancel all interactions of a player. Does anyone has done this and can send me his GH?
no it should just work do you have the port open?
But, do you have enable "Diagnostic Mode" active in the "General" configs of your game? This gives you more details about the error
i'm assuming you do but idk
yeah i can connect manually too
No, how can I activate that?
Background: "MUERTES_BRAWL.png"; I am not sure you can load images like this? Are we not supposed to use TexturePath
and chance you can try to connect using your plugin then showing me the log of both servers
In your game, go to the Settings panel. At general section, go down and you'll see that config.
Wrong quote, but yes, it is hahaha
after looking through the game's code more i finally figured out how to register it.. i learned a lot today thanks to you.
this.getEntityStoreRegistry().registerSystem(new BlockPlacementEventSystem());
no problem, good luck continuing
I did ask you, I didn't mean you are not supposed to use that, I meant like generally, but I did ask you lol cause you probably know
I've already activated it, so how can I view the information?
I'm a genius! I hypothesised the solution to my problem, it's rock solid I tell you ๐
Ahhh sorry, but yes, it could be TexturePath as I see into UI default assets..
For example: Into Common.ui you can see Background: (TexturePath: "Common/ContainerHeader.png", HorizontalBorder: 50, VerticalBorder: 0);
When you join to your server, you see an overlay message in your screen
Looking for builders/developers to help make a PvPvE server. Send me a dm if youโre interested
In which folder I put .jar plugin?
Now I'm getting this error. Could not find document
"mods"
I can't get hyxin to work with my plugin. Is this expected?
LayoutMode: Left;
Padding: (Full: 8);
Label #Icon {
Background: PatchStyle(TexturePath: "PathToYour/Whatever.png");
Anchor: (Width: 24, Height: 24);
}
Label #IconText {
Text: "Label";
Style: (FontSize: 16, Alignment: Left);
Padding: (Left: 8);
}
}``` Try doing this, replace the texture path with your own
man i just added the hub game type to my game system ill be annoyed if it doesn't work for me either ๐
public enum GameType {
/**
* Hub game type - entry point for players joining the network.
* Immediately funnels players to a MAIN_LOBBY or GAME_SERVER servers using their server type (e.g. SkyWarsLobby).
* Used for load balancing initial connections.
*/
HUB("Hub"),
how do you generate a new world on the server?
THANK YOU, I'LL TRY IT NOW.
hey does anyone know of a plugin that allows players to jump from server A to Server B like same IP but different Ports like Bungee cord on MC?
im sure theres alr a plugin for this but you can make one pretty easy
Is there a way to make a player immune to fire damage?
I see yes ๐
I wanted to look into mobs that sound like they would be immune to it (Found Embersomething - it still burns tho)
I'm curious about this too, does Hytale support some kind of transfer to another server natively or do you need to be behind another proxy
There is a Fire resistance modifier. but idk if it is implemented
its native
Do you know how to apply a modifier? (Be it programmatically or ingame)
no proxy system needed BUT you can make one if you want to do it like that
see im using redis to sync my servers and its completely automated
Ehmm... there are some armors with that modifier, you could copy some and add your personalized armor with a Fire Res 100% and see if it works
How do I get a player's position? I see the getTransformComponent method but it's deprecated. What's the other way?
Ok thank you :)
Now I'm kind of curious if it is possible to make it so you transfer to a server without any loading when for example entering one room, hytale doesn't kick you out instantly anyways, and the proxy could act as if there was a connection for the time of the transfer
Try getting the TransformComponent from the entity store like any other Component :)
Let me try that
actually this might be possible using the universe system and some packet black magic
Not that I would attempt it now because I learned java enough to make a mod literally 5 days ago but it would be cool lol
i think the hardest part would be making it seamless
Guys I wanna make a plugin, I need java 25, but how can I make a plugin which I created with AI?
I try using IDEA, but it doesnt go up to java 25
I mean it would still probably be some lag, like you wouldn't be able to open chests and stuff for the time being but better than a loading screen lol
okay, so I have a working wrapper for HytaleRunnable, which is analogous to BukkitRunnable, and then i have a separate SynchronousRunnable that needs to be run on a SynchronousRunnableSystem attached to a world, and that should execute consistently on world tick
Hey kinda stuck on something trivial
I'm on EntityEventSystem<entitystore> A and I want to get a hold of entitytickingsystem<chunkstore> b how do I get that
use maven or gradle
you just download jdk from eclipse or whatever provider and target 25
...you created a plugin...with AI? and you would trust that? lol
I downloaded the JDK java25 and what can I do with that? Sorry not a real coder here :/
did you download the zip or the installer
never gonna compile ๐ญ
I like how when using jdk 25 it throws a huge ass red error about hytaleserver using something deprecated every time I start it
I downloaded the SDK: Oracle OpenJDK 25.0.2 and added to project structure
Is there a way to make the player mount a rideable entity without using the minecart type controller?
protected void execute(@Nonnull CommandContext context, @Nonnull Store<EntityStore> store, @Nonnull Ref<EntityStore> ref, @Nonnull PlayerRef playerRef, @Nonnull World world) {
TransformComponent playerTransform = store.getComponent(ref, TransformComponent.getComponentType());
assert playerTransform != null;
// spawn the honse
Pair<Ref<EntityStore>, INonPlayerCharacter> result = NPCPlugin.get().spawnNPC(store, "Horse", null, playerTransform.getPosition(), new Vector3f(0, 0, 0));
if (result != null) {
Ref<EntityStore> horseRef = result.first();
Vector3f attachmentOffset = new Vector3f(0.0f, 1.6f, 0.0f);
//i want to ride honse, but not minecart
MountedComponent mountedComponent = new MountedComponent(
horseRef,
attachmentOffset,
MountController.Minecart
);
//add this to the player
store.addComponent(ref, MountPlugin.getInstance().getMountedComponentType(), mountedComponent);
context.sendMessage(Message.raw("riding a honse!"));
} else {
context.sendMessage(Message.raw("no honse :("));
}
}
this is all i could figure out :/
the red jumpscares me every time
the beauty of it
atp i just started ignoring the errors and only trusting the compiler
Yea, I just learned to ignore it lol, but I do look for anything other that is red... AND THEN I FIND REALOCATED: 11373MB
I can't even paste my errors because the server thinks I'm advertising. Genuinely insane
if i know i got solid code and its giving me bs errors BOOM compile anyway
I received this error:
Your build is currently configured to use incompatible Java 25.0.2 and Gradle 9.0.0. Cannot sync the project.
The maximum compatible Gradle JVM version is 24.
Possible solution:
- Use Java 24 as Gradle JVM: Open Gradle settings
yep
taking a guess here but idk what build system you're using or if you're just raw dogging with java commands but you typically target the jdk version like this java { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }
just use gradle 9
Step 1. use maven, nobody actually likes gradle and if you do you're wrong
has anyone got a decompiled version of the server that can compile?
Dots are usually the problem for some reason
gradle is better for large projects
you will never convince me
you need gradle 9.1.0 to use java 25
gradle kts >>
I dont even know if im using maven or gradle ๐ญ; I just used kaupenjoe's template and it worked
๐ฃ๏ธ ๐ฏ
I am using gradle rn 
my build times are 300ms as opposed to 4 min
Gradle
on maven?
...how big is your project? i'm used to literal 30+ minute build times from my last job but that was a multi-million line C++ codebase lmao
REAL
build times are still like a min tho
but like how big is the project that's taking 4 minutes to build on maven? genuinely asking
has anyone got a decompiled version of the server that can compile?
bro, what you're doing
i nver got 4min builds
only on android apps and just once
exactly
call of duty unironically has the biggest, most complicated codebase i've ever seen
1.8 mc server
Mine takes like 2 seconds on gradle, if even that much
full codebase ~300k lines maybe? of just our source not including libs
idk my largest maven project is like 15k lines so
my mc server core is like 400k lines and it takes 1min to compile i cant imagine why it'd take 4mins unless your running a potato
idk maybe its more like 2 min
Do I fix that to put this in the wrapper.properties?
Cause: downloads.gradleorg/distributions/gradle-9.1-bin.zip
im still very much for 300 ms as opposed to minutes tho
is that the actual server and not just a plugin?
gradle/wrapper/gradle-wrapper.properties
just the plugin ๐ญ
a 400k line plugin would be truly insane lol
all the plugins
what on god's green earth is that plugin doing that takes 400k lines?
everything
Man, mods are going to be amazing in hytale
1.8 mc server mono repo
cosmic factions style
well in his case apparently it's just the plugin lmao
1000s of switch case for the hytale UI ๐
i'd love to know what the hell it does that takes 400k lines though, jesus
i have cosmicpvp's entire code base its not that big ngl
Hey guys, sorry fro the offtopic, but can I also ask questions here regarding running a dedicated server? I can't find any other technical server on this discord :(
thats the old one
we remade from scratch an entirely separate ctest
Sorry guys, I feel like a dumb*** hahah. It says it failed creating the ShadowJar ๐
...shaded .jar? you shouldn't be shading anything with a basic plugin
They will but I'm lowkey feeling dread at the fact one of the popular modding tutorial videos that I see people going to and sharing opens up by saying "Hytale recommends Java 25, but Java 21 works fine :)" and then shows himself creating a J21 project ๐ญ
and then cc went down for a few days and decided not to do full release
it had 0.3 mstp with 300 players tho
ran like butter
Shouldn't I ?
Does anyone know how to stop Label Text from clipping off?
if you're making a basic Hytale plugin with no other libraries there is no need to shade anything, shading involves including a library with your packaged .jar
do any of you know how to debug mixins in hytale? Mine is not working, despite the hyxin mod showing it loaded my class
its possible to create npc?
provide more context, are you using maven gradle where are your build scripts at this moment any advice is based off feelings
by mixins do you mean like...serialization stuff or
only mixins I'm familiar with, sorry :p
Can someone get into a quick call rather? x"D
insert code in a java function
i wouldn't know how to debug something that's supposed to interface with the actual game code, sorry
Does anyone know how to stop Label Text from clipping off in UIs?
is it supposed to be something like Harmony for C#?
its basically a fully featured minigames network with like 20 games its not finished either but it has everything even seasonal/holiday events and the games system is super dope because you can change the game on the fly ./game set <game> the map changes and everything instantly seamlessly without even moving the player to another world the map updates right under their feet also bedrock support
wait, are all of the minigames in the same plugin?
After the latest update, i'm getting this when trying to connect to my server "connected handshake was canceled due to configured timeout of 10 seconds. what is causing this, as the only thing that changed was this new update
I use Gradle 8.5, I now try to get it to 9.1.0, but it doesn't work still.
Actually I guess they have to be, if it's in the same world lol
i.e. you can't just run separate servers that only run the relevant plugins
Itโs 9.2.0 no ?
idk what build script* you're usin
Is there a mod that allows to keybind shortcuts for the Utility slots? (Z Menu)
Muhahaha!
Managed to detect the JBR Hot Swapping using ByteBuddy agent so now a coroutine later I have a fully working force plugin reload after JBR swaps the classes.
actually they are their own jars thats loaded by the plugin on the fly so we can isolate the code of each game making creating games a lil faster because having to compile the whole core every time we work on a game eats up hours
holy brain fart
GROOVY DSL
okay again where is the script
Locally?
i'm doing the same system for my hytale server rn
no the code bro where you target your jdk version in your script
Hahahah bro I am sorry man I dont code
Guys, how do I limit block breaking? Is it only through code, or are there in-game commands?
code gango
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(25))
}
}
``` this is for kotlin dsl, find something that works like this for groovy
If I want to store some data, and i want it to persist, do i store it on the player or a json file state?
java {
toolchain {
languageVersion = JavaLanguageVersion.of(25)
}
}
what is the stack trace when you build
what's gango? lol
you can store persistent data on entities. hytalemodding,dev/en/docs/guides/plugin/store-persistant-data
Personally I hate this and am using JSON anyway
kotlin only goes to 24
just slang brudda
depends on what type of data, you can use embedded databases like h2 or sqlite too
but also I have a library that makes it incredibly easy to add/remove fields from data classes and have that change transfer over to config/data files
Sorry bro, u ask me too technical stuff I cant follow
I want to save positions of blocks, like waystones
with kotlin 2.3.0, you need stuff like:
kotlin {
jvmToolchain(25)
}
//
// We explicitly set the JVM target to 24 which is the highest supported by Kotlin 2.3.0
// TODO: Remove the JVM 24 overwrites once Kotlin supports 25!
//
tasks.withType<JavaCompile>().configureEach {
options.release.set(24)
}
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_24)
}
}
with gradle 9.2 at least
I see, english is not my first lang
tbf I didn't know it either and English is my first language
probs can use like h2 or sqlite search up jdbc if you're unfamiliar
i don't know if using a database is necessarily the play
it is the red thing nwhen you click build and the compiler complains
that seems like an extremely simple thing to store as JSON
so there isnt any basic storage on the server that persists?
granted, flatfile storage gets slow as you have more players iirc
are there any servers that are free to join?
you see my explanation of my games system majority of the code is literally just everything thing else but the games LOL permissions, social features, events, achievements, leveling etc
registering things as Components that you attach to entities works, but it's very verbose, see the link i sent
okay thank you
you can use player components but it will use ram, which hytale already uses a lot of... i don't think it's really smart to do that
you can use storage memory with db or flatfile, but flatfiles like json or csv has slower latency than relational db
what do other mods use? the jdbc you said?
jdbc comes with java it's just an api to interface with db
Can u at me @quartz wave ?
i guess i just struggle to understand how that reaches 400k lines i suppose, but also i do a lot of reflection stuff, i'm sure my plugins would be much larger without it
Does the hytale server have a json loader or a yaml loader? Or do I need to pull one in for my plugin?
like think of all the features n stuff hypixel or the other big networks have i have ALL of that stuff
Anyone noticed any block lag after Update 2 on 40+ pop servers? It's just mining and chopping wood. ANYTHING else is fine
FWIW I used HikariCP over raw jdbc last time I worked with databases
oh okay, and that runs in the server? nothing externally needed?
<- never played on big networks
okay paste your stack trace (the red error when you attempt to build) in pastes dot dev
Constant 30 tps
the api layer, but the implementations for each db will have to be shadowed into your jar unless they're included with hytale. im not sure what dirvers they have but tldr try connecting to the db, if it complains the driver isn't there then include it using shadow jar, if anything is unclear clarify with an llm
Phew, this number logging sure is HARD! At 1000 cases now.
case 1:
LOGGER.atInfo().log("odd");
break;
case 2:
LOGGER.atInfo().log("even");
break;
case 3:
LOGGER.atInfo().log("odd");
break;
case 4:
LOGGER.atInfo().log("even");
break;
case 5:
LOGGER.atInfo().log("odd");
break;
case 6:
LOGGER.atInfo().log("even");
break;
case 7:
LOGGER.atInfo().log("odd");
break;
}```
also reflection stuff does eat up a lot of it ngl also i refuse to make my commons a separate plugin (i really should atp) ngl that alone is like 8mb with all the libraries we use ngl
Heey just had this problem as well. Is it okay to do the registering in the start() method?
ragebait
anyone good with ui's?
building them serverside?
My output contains an URl I acnt paste it in here
probably better to do that even
Alrighty ^^ Then i'll go with that for now ๐ ty
ngl i refuse to use the component system more than needed any persistent data i need goes into the player profile system because i need to minimize memory usage as much as possible for minigames
hey guys can anyone send a link to were can I download the plugin API to make hytale plugins and its documentation , thanks
ya same issue , i am unable to launch my pvp server im working on a minimal rust implementation
okay can you describe relatively what is the issue though is it unable to locate an artifact or is it a compile error etc
there are no official docs; googling will get you some community/AI docs but theres nothing else
bro im working on my arena system im making it so the server only loads the chunks needed for the arena nothing else because it just eats up too much ram i went and paid for a 256gb dedi im genuinely worried it might not be enough tbh
Yeah "pregenerating chunks" is highly recommended if you dont have that much RAM on your server.
I now try gradle 9.0.0 and its says its incompatible gradle jvm
ok thanks, what about the API , I was only able to find a github from someone whos not directly linked to hytale
best off decompiling the source and reading that
java 25 only works with gradle 9.1.0
there is nothing else
Hello, how can I prevent a player from picking up thing that are on the ground ? I tried the InteractivelyPickupItemEvent, the DropItemEvent, and even tried removing the PickupItemComponent from the player but couldn't achieve it
I try, but it gives unexpected characters
Guys how do you get the Player UUID in CustomPage
I thought hytale was about modding at its core lmao, ok thanks
I mean they had 8 weeks, now 9 to make the game even playable; no time to get modding stuff in. They are working on it though
oh ok alr
facts i'm actually about to test memory usage for world gen 2 maybe its better if it is im prob gonna literally disable regular world gen and only use world gen 2 for arenas and maps
I think it tried now to download everything. So, the error with 9.1.0 is gone. But now I also havge an API error: error: package com.hypixel.hytale.server.core.api.command does not exist
import com.hypixel.hytale.server.core.api.command.Command;
depending on what worldgen is generating, the time it takes somewhat varies. i basically gone through all Portals_ instances to see the worldgen in action. Some of them generated pretty quick while others were somewhat slower. Cant really tell if worldgen2 is safe to be used, really just did a peak and made it generate the "map circle" from the center, so further visits in these worlds dont cause CPU drama ๐
ooh and i generated them using /instances command, then stopped server, renamed the directories to simpler names, dropped the bson file (so they dont disappear).
I am.. there a way to fix caves.json ? I canโt start my server
new to modding, but can anyone lead me to the right path? i want to make a plugin that adds a new property for a block and i want to make it configurable / able to just add it to vanilla blocks as well through the asset editor.
TLDR: plugin that adds to the block / entities json files like new physics to entities movement
Hi, is there an update to the instance?
Yesterday I managed to spawn at specific coordinates in my instance, but now no matter what I do, I spawn at y=140.
Does the hytale server have a json loader or a yaml loader? Or do I need to pull one in for my plugin?
did u figure this out
Do note that the game is still in early access
Like, literally just became playable 2 weeks ago
We donโt wipe save files, our clients are free to retain their saves.
I canโt speak as to what will happen at full release, but youโd always have access to you files I donโt see why you couldnโt just load them
I haven't had any problems with it but an alternative way would be to list all the dependencies that you need so that your plugin is only started after them, I didn't do that tho
I want to Encrypt some data with a key, That will be decrypted by another server on the other end with a Different Key
What would be the best way to approach the storage of the key?
- Store the key inside a configs.json file?
- Have a reference to a key file in the configs.json?
- A third way, Please elaborate?
idk if i didn't far enough but you can use asymmetric keys
I dont know what that means
Can someone PLEASE help me out, I think the solution is quite easy, but I can't figure it out..
I was just gonna use a Public/Private key solution with like RSA or something
certainly not
just use yeah like rsa or ed25519 should be good enough the public key is safe to distribute
Where did you find this code? You're clearly copying it from somewhere. It's not working because, well, there is no such package.
The goal here is
Server A will have Server A's Public Key, and Server B's Private Key
Server B will have Server B's Public Key and Server A's Private Key
So the two servers can communicate securely
i think we need to use the asset editor to make new instances
This will be part of a validation chain (As part of my Inventory Sync Protocol between two servers)
Yes I try making it together with Claude AI
what is the goal of the software?
Hi, no one create instance there ?
that would do it ๐
Well, there's your issue
Its a Hytale Mod for Jumping between servers with support for bringing your inventory along
cmon dude claude code can figure out your build scipr
You may need to tell Claude its being extremely dumb, I've had no issues
Build script is not the issue here...
2 ppl saying there is your issue and one says it could fix it easily....
what is the issue
Dont be afraid to abuse your AI till it gets it right
It's literally hallucinating nonexisting packages
that package and class literally doesnt exist
I also dont let the AI actually write the code, I try to understand the code and put it in myself
Its knowledge cutoff was probably much before hytale even released
well yeah
Also to @quartz wave
If you give it access to the Decompiled Server it should have no major issues
so are you saying server a will transfer the inventory to server b with no other server involved right
yeh thats how people should be using ai ngl
And vice versa yes
The server is like 300k+ lines of code, no way your context window is large enough for that tbf
Correct, There is no middleman here
you use something called a vector db idk why you're hating on ai
You're not very intelligent if you think it needs to have the entirety of the server in context
Just tell it what you're wanting to do and to search the server files, It'll do it
So can someone still help me out or not? Does someone has experience coding with Claude for Hytale?
isn't this the reverse of what you want..... the private key should only be known by its owner, e.g. server A has privvate key A and public key B...
man, what do you mean "server/world/config.json.bak" uses compression method 8"
Well Server B needs to have the Private Key to decrypt what Server A sent it, Unless its the other way around then Yes
no, it doesnt -- it needs the public key
its the other way around
Yes thats correct, There is no middleman
We literally just run an HTTP Server on the Hytale Server
encrypt with private key; decrypt with public
thats the whole point of assymetric encryption lol
Ok I gotchu, That makes sense
it's vice versa, the public key is the one you expose
Yeah I was getting confused xD,
thats why it is called a PUBLIC key
Yeah I gotchu
The whole mod already works, I'm just adding a Validation Layer atm
Encryption, and Host Origin Whitelists and etc
in any case, I can personally attest to the fact that they arent stupid lol, I have seen their projects, and they are pretty competent