#server-plugins-read-only

1 messages · Page 118 of 1

ornate raven
#

yeah that get is completely wrong assetmanager doesnt even exist

west elk
#

It's part of the HytaleGenerator builtin plugin

ornate raven
#

you was looking right you can get AssetModule assetModule = AssetModule.get();

misty horizon
ornate raven
#

and use like this

public boolean assetcheck(String assetPath) {
    AssetModule assetmodule = AssetModule.get();
    if (assetmodule == null) return false;
    
    for (AssetPack pack : module.getAssetPacks()) {
        Path path = pack.getRoot().resolve(assetPath);
        if (Files.exists(path)) {
            return true;
        }
    }
    return false;
}

boolean hasgrass = assetcheck("Server/Item/Items/Soil/Grass/Soil_Grass");

misty horizon
#

not ideal but okay for what i'm doing with it

ornate raven
#

if this doesnt work try without Server/ i think root one up from server/ but could be wrong

sacred atlas
#

...tried to share a mclo.gs link.. blocked by automod

snow owl
#

Hytale modding everything is blacked out, gui blocks/items are blacked, but placing or holding it looks normal.

snow owl
snow owl
halcyon harness
#

Is there a way to add an Image to the UI, like a Server Logo for branding in the bottom left without any mods, just by using the asset editor?

hushed totem
halcyon harness
analog patrol
hushed totem
#

There are many UI files so that would require altering them all

#

UI assets are sent to client on login

#

But it’s not a single UI file for everything

#

create your own UI instead

halcyon harness
#

Is there a way to create a UI file that sends the logo to the client?

hushed totem
#

? That doesn’t make sense

#

You mean a UI file with logo?

halcyon harness
#

UI file that has the logo as an assetpath and sets the position of it

hushed totem
#

Yes as long as the logo is in proper UI location

hushed totem
#

Check out UI examples on docs

hushed totem
clever raft
#

It ain't really ideal to display a server logo if it won't show up for everyone.
Hence why it would have to be a plugin.

halcyon harness
#

$C = "../Common.ui";

Group {
LayoutMode: None;
Background: (Color: #2a2a2a);
Anchor: (Width: 800, Height: 500);
Padding: (Full: 0);

AssetImage {
Anchor: (
Width: 64,
Height: 64,
Left: 12,
Bottom: 12
);
AssetPath: "../Custom/serverlogo.png";
}
}

#

Something like this maybe? Does not work tho

hushed totem
#

Why wouldn’t it show up for everyone? Anything sent to client in common ui path will be loaded

halcyon harness
#

Stuff created in the Asset editor are practically plugins that get sent to client so its possible

low mortar
#

pages need to be registered

#

don't think there's a way around it unless you take over another page

hushed totem
#

See Buuz135 Advanced-Item-Info as good example

#

But your logo wont magically appear on hytale UI unless the UI files are modified

#

I haven’t tested modifying delivered UI files

ebon abyss
#

Has anybody had any luck opening a crafting menu by right clicking with an equipped item?

ruby zealot
#

Whats the difference between Player and PlayerRef why are there two classes to handle the player?

sick creek
#

The PlayerRef never changes, from what I tested, but the Player is recreated everytime you join a world.

#

I may be wrong about the last one, but sometimes the PlayerRef exists without a Player, i.g: login screen

ruby zealot
#

Thnx for the info
it'll take me a whle for all fo this to make sense 😂

distant crane
#

is it possible to create world borders?

#

Like how big a world is ? like for example 16x16 or 32x32 or something like that

shut widget
#

Anyone that need a dev for complex task or whatever feel free to hmu 🙃

ornate raven
# distant crane is it possible to create world borders?

you could make code when plugin starts from 0,0 say you what 512blocks limit calculate every coord from height limit to 0 creates barriers from that but still idk if you can but if you cant place blocks even with plugin to higher than hightlimit people can still climb up

stoic swan
#

if a player is mounted on something, how can i teleport the mount and the player?

stoic swan
haughty laurel
#

whats the trail to it

#

update on this

#

guessing no one has solved the leave message lol

west elk
distant crane
#

Whats the proper way to store custom data for my plugin ? Is there an example somewhere ? Shouldnt get resetted after server restart

distant crane
#

Ah with codec builder ?

#

How would i then access the data ?

west elk
haughty laurel
stoic swan
#

how can i teleport an NPC?

stoic swan
west elk
stoic swan
west elk
stoic swan
#

someone know if there is a way to teleport an npcmount and the player?

stoic swan
# west elk would be cool if you can share how

yes, here

public final class LeaveMessagePacketFilter implements PlayerPacketFilter {

    private static final Field MESSAGE_FIELD = findField(ServerMessage.class, "message");
    private static final Field MESSAGE_ID_FIELD = findField(FormattedMessage.class, "messageId");

    private static Field findField(Class<?> clazz, String name) {
        try {
            Field field = clazz.getDeclaredField(name);
            field.setAccessible(true);
            return field;
        } catch (Exception e) {
            throw new RuntimeException("Failed to access field: " + name, e);
        }
    }

    @Override
    public boolean test(PlayerRef playerRef, Packet packet) {
        if (!(packet instanceof ServerMessage)) return false;
        try {
            FormattedMessage msg = (FormattedMessage) MESSAGE_FIELD.get(packet);
            if (msg == null) return false;
            String id = (String) MESSAGE_ID_FIELD.get(msg);
            return "server.general.playerLeftWorld".equals(id);
        } catch (IllegalAccessException e) {
            return false;
        }
    }

}


distant crane
#

After registering a Resource how do i add the resource to a world? SO for example some worlds have it and some dont ?

distant crane
# stoic swan what you mean?

I see worlds have a resource directory which seems like the ECS system for worlds. SO id like to add a custom resource to a world with custom data

#

I registered the custom resource in my plugin but im kinda lost on how to add it to the world

fathom dune
#

its a place to store worldsettings and zone info

tender monolith
#

Is there any docs yet?

fathom dune
#

only ai generated docs, one for npc and one for ui, and what ever you can read out of the source.

soft harbor
#

There's much more than just AI generated docs.
Worldgen, NPC and UI documentation are all official docs by Hytale on hytalemodding dev.
There's also a few other sites that have docs

fathom dune
#

Yeah when people ask about docs I will assume they are asking about official docs, since generated docs and ai docs are easy to find or make on your own.

void gust
#

need to resume looking into this

fathom dune
#

I think they solve the per world thing but having the resource accessible to all worlds, but only added to some.

void gust
#

still needa figure water out

fathom dune
#

What you need to do with fluids?

#

KaupenJoe had a youtube where he showed how to make a new fluid and what block it will create when encountering another fluid.
as for generic spread and update thats probably the DefaultFluidTicker, it handles spread and filling in blocks below.

#

So i bet there is a way to use a customfluid ticker if one have better ideas how to handle spread and fill of water.

storm heron
#

you want to have some way to initialize it for only the worlds you want

haughty laurel
#

how to remove the /spawn default commands?

distant crane
surreal flame
#

i really need some advise on ui files. all my ui is working but as soons as i use Image #imageID { Anchor: (Width: 80, Height: 80); Texture: "my.png"; } my ui wont load anymore at all my.png was in the root of the resource folder of my plugin.

west elk
surreal flame
west elk
surreal flame
west elk
regal burrow
#

so you can access world threads using world.execute

#

and systems must be registered on the main thread

#

so despite there being the concept of game worlds it's not like separate ecs worlds ?

fathom dune
regal burrow
#

they aren't isolated

fathom dune
#

no not 100% since data need to be shared between worlds.

#

More isolated that load is split betwen active worlds, and the entities associated with the world.

#

I think you can even crash a world and the others keep going.

regal burrow
#

yeah I was more just wondering regarding events

barren fiber
#

there's anything for connected player discord id or smth else?

#

or i should use hytale oauth?

regal burrow
fathom dune
regal burrow
#

but either way works

west elk
fathom dune
#

It depends what the server wants to track.
Maybe you want to keep some highscore or count that you use the break event to add to the value, than no matter the world its only relevant that a block was broken.

#

Or a player death, or other things, i allways see events as globla things that would need to be filtered to specifics if need be.

regal burrow
#

yeah but you can do it either way upstream or downstream with isolation

fathom dune
#

Yeah. There is no one solution to this. Just my mindset. 🙂

regal burrow
#

it doesn't really matter though I just wanted clarification so I do world threads in the best way

fathom dune
#

If i wanted to track BlockBreaking, i would probably add a BlockBroken component to some entity and process BlockBroken components in a BlockBrokenSystem. Because, i am weird like that.

west elk
#

Both breakblock and player death events are handled by ECS systems

regal burrow
#

doing minigames utilizing world threads and need certain events

fathom dune
#

I might be overly paranoid as well, i know that events can cause serious performance issues depending on implementation and time of execution etc.
Seen multiplayer ecs games where you could lagspike all players, by just opening a specific ui in game.

wintry basalt
coral wraith
#

Hello o/
I'm trying to create a PvP plugin and i'd like to be able to test it myself, so I don't annoy my friends and such
For me to be able to launch two hytale instances at the same time (on the same computer ideally) and make them join a same server,
I assume I have to pay another copy of Hytale (i'm ok with that), but should it be a new game profile on my main account, or should I make a brand new account ?
Did any of you walk this path before ?

barren fiber
barren fiber
#

anyway 😄 i hope oauth2 publish soon

pliant brook
#

Feb 11 10:14:32: [2026/02/11 10:14:32 SEVERE] [World|default] Failed to run task! should this be any of a concern? server seems to be running fine

copper anchor
fathom dune
# barren fiber and i though hytale already auth with discord so if i use hytale oauth probably ...

Oauth is a general type of auth that can come from a large number of sources. Facebook, Google, Microsoft, Apple, Apperently Discord and many other that already have user Authentication.
It is just a way to use a general Authentication that validate that a user is correct, but at the same time can limit the data the original auth provider shares back with the one asking, where Discord info of any kind would have to be explicitly stated as part of it.

Unless someone explicitly say it will share Discord information, I would not assume that it would. It would simply say that a the user is authenticated.

quartz plover
# coral wraith Hello o/ I'm trying to create a PvP plugin and i'd like to be able to test it my...

I think you can do it with 2 profiles on the same account? I haven't done it myself, but there is a dropdown for the profile you want to launch the game with on the launcher.
As for the 2 instances thing, I can do it just fine with a single profile - the older one's session gets invalidated but it's totally possible to launch the game twice on the same device. I presume you could launch with the 2nd profile instead and be fine.

coral wraith
copper anchor
#

You will need an isolated VM to run another

coral wraith
quartz plover
#

How is that so? I can launch 2 instances just fine

#

All you have to do is launch the launcher again as the first instance's launch button will be grayed out

copper anchor
#

Did they change it..?

wintry basalt
coral wraith
#

I just tried and when I pressed "Play" on the second Hytale Launcher it gaves me the error "Can't start the game: Another Instance of Hytale is already running"
And I waited for the first launcher to close itself before pressing the Play button on the second

quartz plover
wintry basalt
#

you can use the mod mAuth if you want separate auth on your server, what you are describing has to be implemented yourself @barren fiber

quartz plover
#

I also have a launcher written in rust if you want to try, in case it's a launcher limitation and not a client limitation

coral wraith
#

I'm on win10 atm, so maybe !

wintry basalt
quartz plover
#

How is it against ToS?

wintry basalt
#

Client modification are against ToS, please read them

quartz plover
#

It's not a client modification whatsoever

wintry basalt
#

what you are describing is

quartz plover
#

It simply launches the client with a set of parameters

#

Which is what the vanilla launcher also does

wintry basalt
#

you aren't meant to circumvent it

#

custom launchers for minecraft do exactly that btw

quartz plover
#

Yeah, they are the same in essence - a launcher

#

They simply spawn a new process with the actual executable & params for it

#

There's literally no difference to using a vanilla launcher vs a 3rd party launcher if viewed from the perspective of hypixel, unless they would just be butthurt about it for some reason. There's no extra telemetry on the launcher either, all it does is manage the versions of the client, the launcher itself and the JRE

quartz plover
coral wraith
#

I think I'm going to play it safe and start another account and buy a standard edition with it

quartz plover
#

I mean the solution I had also involved you having 2 accounts to begin with, just doing it on the same device

coral wraith
#

and play from another computer, gonna undust the laptop

coral wraith
quartz plover
#

I see

surreal flame
#

Anyone knows how to reference Images in my resource folder with the AssetPath of an AssetImage ui element? tried different things none seems to be able to use images from my plugin resource folder. is there any convention where to put such image. i tried root resource folder, same folder like the ui file none seems to work

fathom dune
thorny minnow
#

how does #suggest work, is it supposed to act like tab complete? It doesn't seem to work from my implementation


textAlreadyEntered = textAlreadyEntered.toLowerCase();
            if ("false".startsWith(textAlreadyEntered)) {
                result.suggest("false");
                result.suggest("true");
            } else {
                result.suggest("true");
                result.suggest("false");
            }

late ridge
#

Hello,

I was wondering if anyone has found a solution to hide the three skill bar on a weapon? I'd like to either hide it but not disable it, or override it to partially modify it (without modifying the client).

Is it completely impossible to do this now?

Thank you

coral wraith
# late ridge Hello, I was wondering if anyone has found a solution to hide the three skill b...

UI isn't handled by the client in Hytale but by the server, so no client modification here
The server decides what the user sees

I didn't tackle with UI yet, but as the original assets cannot be changed, I would suggest you override the (UI page?) the player see while wandering, and put the opacity of these 3 skills at 0%, this is a dirty way with an intuitive approach, not optimal though

fathom dune
#

You can't change the original assets since they are shipped with the game but you can override the original assets by adding your own implementation of the same file in your project with the same name and location.

#

With the changes you want.

late ridge
late ridge
#

To set the opacity to 0, it would be necessary to modify the native UI of the abilities or apply a style to this component. However, we don't have access to this file (it's not in Assets.zip / it's not overrideable), and the HudManager API doesn't offer an "Abilities" component.

coral wraith
#

mmh, TroubleDEV has a video for making UIs and I saw him talking about "UI Pages", and when he did one, it completely hide the hotbar + health + stamina + skills icons
but maybe it is something alike the inventory and not a HUD to have when moving ?
Either way, I don't know enough to help sorry
Maybe UI components are inside a UI folder available through java plugins but not through the asset editor ?

late ridge
#

Thank you for your help anyway!

kindred flower
quartz plover
kindred flower
quartz plover
#

Also, I don't have an amd card to begin with, so there's no reason for me to waste my time with it

kindred flower
primal wedge
#

Is it not possible to modify player inventory UI or overlay a UI element over the inventory UI?

gleaming temple
#

as far as i know there is currently no way to modify the client ui
and the curren customui system doesn't support overlays
but maybe you could cancel the default ui call to the client and replace it with a custom ui

but customui is quite limited atm, hoping for the UI update from hytale myself

rich dagger
#

Hey everyone 🙂
I have a weird thing going on the hytale server 🤔 every 24h i am getting this error [ServerAuthManager] No refresh token present to refresh OAuth tokens, and the server is going down

proven gyro
rich dagger
high bane
#

/auth storage Encrypted I think is the command

rich dagger
high bane
#

You do that after doing /auth login <method> of course

rich dagger
#

like after a new log comes on

wispy anchor
high bane
tropic axle
#

How do I make a Label bold in UI?

high bane
high bane
tropic axle
#

tysm

coral wraith
#

I'm following HytaleModding at dev server plugins tutorial, I managed to open the template and give a JDK to use to IntelliJ but gradle doesn't seem to find my Assets.zip, even after I fed the path to it in "hytale.home_path" in the gradle.properties file
when the build fails, it logs me that an Assets.zip should be at the path i gave him...and it does !
What should I do ? :<

coral wraith
olive ridge
#

Is there a real-time combat log somewhere?

fathom dune
#

Finally i just learned how to apply a scope so i can search in he hytale source without getting hit on every default javalibrary in history.

fathom dune
# olive ridge Is there a real-time combat log somewhere?

CombatActionEvaluatorSystems have a context logger, that will log npc combat if the logging level is set to finest (300) no idea how you would set it. It's also just a npc combatevaluation logger.
so more on the level if an attack times out or failes or simliar. rather than damage done by who to whom.

#

Really depends on what you define as a real-time combat log.

hexed creek
#

Hi everyone.
We’ve run into a problem — the server doesn’t see assets.zip.
By accident we uploaded a new update that included a “server” folder and completely wiped the server.
Now we’re trying to roll everything back somehow. We downloaded all the files from the previous hosting via FileZilla, but it still doesn’t work at all.
Has anyone dealt with something like this before?

olive ridge
fathom dune
#

there should be plenty of events or systems handling damage, and info from damage, take a look around and see what you can find.

west elk
olive ridge
#

(Or, I assume there is, could you point me in the right direction?)

faint void
#

Does anyone know how to check if an item has recipes tied to it? I need to check if an item has a processingBench recipe.

fathom dune
olive ridge
#

Thanks @fathom dune

fathom dune
#

I hope it will help.

olive ridge
#

Should. Experienced Unity dev here and dipping my toes into HT modding for the first time.

#

I did run into Britakee's modding website, looks like they have several "Getting Started" tutorials plus some good docs.

fathom dune
#

Had to try it myself, i replicated the base of the setup from the CameraEffectPlugin and based my CatchDamageEventSystem on the CameraEffectSystem but removed everyting loading external resources just kept the handle function and the query declarations.
Gonna try it later and see what i get.

analog patrol
olive ridge
#

Added to my "Sumo has nothing better to do" tab. 🙂

analog patrol
#

There are some good docs on there too

#

Some are official from Hypixel studios

next axle
#

published it on curseforge with github documentation and sourcecode now

ruby zealot
#

why is the hytale UI language is so sh1tty?? couldnt theyve just used simple html and css?

west elk
#

and no worries, the ui engine is in the process of getting replaced with Noesis which will give us a lot more flexibility

ruby zealot
#

;-;, bro took me an entire day to create a simple page
atlest they couldve kept css naming conventions for the properties

west elk
#

it's not css though

finite vault
ruby zealot
#

but they couldve used similar names for properties

#

maybe some random dude tried to show off that they couldve create their own .ui format...

finite vault
#

I mean for a while I think alot of dev tools were made in house by hytale

#

they only recently moved over to blockbench before riot cancled it or something

oblique copper
west elk
#

yeah their first priority was to get the game working. Now they're moving over to improving the tools for long-term support

#

jank is expected

finite vault
#

sooner or later we'll also get wsywig editor, for it. then it won't be as bad

#

can't wait for the Figma plugin to come out :kek:

ruby zealot
#

lol

west elk
#

Noesis has a very powerful visual editor

ruby zealot
#

i mean creating a transpiler for a .ui format or a custom .css (like the one react native has, the StyleSheet stuff) should take almost same time

finite vault
high bane
#

Using Tailwind / React in Hytale when?

finite vault
high bane
#

I can't help it, I'm a react dev as my dayjob, lol.

high bane
#

We can't even add anything to the HUD and we're here expecting a full web framework to run, I know how unreasonable that is

finite vault
#

i've seen tons of mods adding huds

ruby zealot
high bane
#

people calling UIs "HUDs" need to know wtf "hud" actually means.

#

A menu is not a HUD.

west elk
#

I think you're just missing something

finite vault
west elk
#

There are UI Pages and UI HUDs in Hytale

high bane
#

Only HUD I ever saw was hijacking the "quest" window they didn't implement

finite vault
#

maybe I just don't know what a HUD is haha

west elk
#

Custom HUDs
Persistent overlay elements drawn on top of the game world:

Display-only (no user interaction)
Always visible during gameplay
Lightweight and non-intrusive
Perfect for: quest objectives, status indicators, server info panels
hytalemodding dev/en/docs/official-documentation/custom-ui

fervent lava
#

HUD = heads up display. Anything that appears on the screen to alert the player is a HUD

high bane
fervent lava
high bane
#

The hotbar and ability slots are HUDs. The inventory menu is not.

west elk
ruby zealot
#

a popover that doesnt close and doesnt fak with your regular actions?

high bane
#

(sorry, I know that sounded dismissive, wasn't my intention, I meant, it's a lot easier with full examples)

west elk
#

It's very similar to UI Pages, just doesn't support interactivity

high bane
#

It's strange, I've seen Hyphen's videos and maybe the other one that called it a HUD sounded the same but talked about just UIs

finite vault
west elk
#

The majority of Page-related information is also applicable to huds

finite vault
#

they are just mini UI widgets on your screen

west elk
#

HUDs and Pages are both UI

high bane
#

Ah well, I'm at work now, I'll have to try again tonight.

finite vault
#

be like me, typing here mid standup

high bane
#

I actually implemented a weapon upgrade system in the vampire survivor style, every level you can hit F to pop up a window to select an upgrade. But I want to show these stats/level somewhere, so definitely a real HUD is gonna be a game changer.

pliant brook
#

player removed from world but its not a crash? what this mean?

tough robin
#

Hey all. I'm creating a plugin and having a lot of fun with it. But I'm running into a memory issue after destroying worlds.

My flow is: create a world → transfer a player to it → transfer the player back to the default world → destroy the world.
Each time I run this loop, about ~550 MB of memory doesn’t get freed.

I added logging to track total heap and used heap, and I’m also triggering manual GC after destroying the world and every minute to monitor cleanup.

I spent a full day investigating my own code and stripped most of it out, but the issue persists. universe.getWorlds() no longer returns the created world after destruction, so that part looks correct.

Is this a known issue, or is there additional cleanup required beyond calling world.destroy() when creating worlds programmatically?

west elk
harsh current
#

How to debug "failed to load customui textures" error? Which texture?

west elk
#

that might give you some more info

#

otherwise, time to remove all textures and add them back in via binary search

harsh current
pliant brook
west elk
fathom dune
#

Couldnt that also happen by simply teleporting from an instance?

#

They should be removed from any world instance they leave?

ornate raven
#

anyone free to test with me sm with me i gotta just try one command on someone

royal mural
#

anyone know how to get the world where an entity died? World world = Universe.get().getWorld(uuidComponent.getUuid()); returns null

west elk
royal mural
#

Yeah just realized that when writing it here xdd, what would be the method to find the world of an entity uuid? im working on a death detection system

west elk
royal mural
#

ty

hushed totem
tough robin
velvet pivot
#

Does Anyone know which event I would you to check if one players tries to interact with another player (right clicks another player)

ornate raven
#

looks like you tryna do something with instance-forgetten_temple while its null or you tryna spawn it and file not exist

daring goblet
#

Can we get a server plugin to disable the stupid online authentication check?

ornate raven
#

pricey right

daring goblet
#

Hurr hurr

#

I paid the 20 dollar. I want a product that works without failing everytime my internet blinks.

ornate raven
#

if you mean you dont wanna auth everytime

west elk
#

circumventing drm, anticheat, or technical protection measures are against the eula

ornate raven
#

you can use auth encryepted or sm

daring goblet
#

So who do we have to complain to in order to get the devs to listen? I have filed an official request on the website. Multiple of us have brought it up in the main discussion channel endless times. Everyone knows Minecraft tried the same thing in the beginning and dropped it because it was customer-unfriendly. Who actually listens?

west elk
daring goblet
#

Yep, that's where I submitted.

west elk
ornate raven
#

what you having problem with?

daring goblet
#

I got no response

#

Also no response on a possible bug report I made weeks ago

ornate raven
#

the game not fully released yet not even its 3 month with this big of a team and this big of a community they can be busy

misty horizon
#

have you figured it out? would be interested too in how to open a link from the UI

gusty socket
#

does anyone know if there is a vanilla command or a mod out there that can unload a world and delete it completely? /world remove just unloads the world...

royal mural
daring goblet
#

Sorry, I know I'm coming across like a butthole and I don't mean to. It's just frustrating because the game is literally SO GOOD but I cannot invest in more copies until the server is untethered from the internet requirement.

misty horizon
royal mural
misty horizon
#

ah it just has the link method i overlooked it earlier

daring goblet
# ornate raven you can open game offline

Right. It's just the dedicated server constantly phones home to check your creds, for no good reason. Whether it's cached or not. Doesn't matter, it's still calling home to verify. If your internet is spotty, your dedicated server is just screwed.

ornate raven
#

can you bind link to eventdata?

ornate raven
alpine creek
ornate raven
gusty socket
#

yes i know about that setting, but i am hoping there is a way this can be done by ops inside the game (without having to edit the world config file)

alpine creek
#

Make a new command for it? 😄

valid wolf
#

can anyone help me with adding an interaction to an item - i need the item to call a method on rightclick

gusty socket
valid wolf
#

@here

royal mural
# valid wolf can anyone help me with adding an interaction to an item - i need the item to ca...

you can create an interaction in your plugin by extending SimpleInstantInteraction for example, there you implement the call to the method. Then register it, for example in my case I do this.getCodecRegistry(Interaction.CODEC).register("HYCPCastFishingRod", CastFishingRodInteraction.class, CastFishingRodInteraction.CODEC);

Then you can use that interaction in the asset editor and map it to right click

valid wolf
#

i'll try that thanks!

hushed totem
#

Any reason why checkboxes cant be set inline using appendInline method? I can set Groups and labels fine but everytime I use checkboxes, it crashes

wind leaf
#

Is it possible to make the output of a bench random? And is it possible to make multiple recipes for the same item?

fathom dune
# wind leaf Is it possible to make the output of a bench random? And is it possible to make ...

When you declare a recipe you give it a id and inputs and result out, so you can differ the input and get the same item. You could even make the same item with the same ingredients I assume, and have two choices in the craft menu with no difference betwen them. As for random, probably not with just json, but i bet you could catch the craft event and just return a random item instead of a specific one.

#

Or even return a boxed "needs assembly kit" and have a random item drop from a given drop list when you interact with the item.

#

And probably even more ways.

clear berry
fathom dune
#

I don't know it, but i get the idea.

#

argh, broke something so my jar is not added to the project, so time to figure out what i broke. Not used to intellij or gradle setups.

versed sleet
#

if i wanted to disable the default join/leave messages, how would i do it? is there functions i can override or should i intercept the packets?

fathom dune
#

Ok I give up for today, downloaded a new version, followed the instructions to change the path to use my install dir since i didn't use default.

west elk
fathom dune
#

I need to specify it at gradple.properties in the user folder and in gradle.properties in the project folder. If i did one or the other, it simply merged the default path with my specified path in the middle.

tough robin
distant crane
#

Any Idea why after i register a resource im not able to seethe resource inside the world directory for each world? Do i have to attach the resource to the world?

var storeRegistry = this.getEntityStoreRegistry();

    var resourceType = storeRegistry.registerResource(HideoutResource.class, HideoutResource::new);
    HideoutResource.SetResourceType(resourceType);
slim quest
#

hey quick question how do I get the mod's root asset pack Path ? (I used getInstance().getFile().getRoot() but it returns null everytime)

slim quest
#

ah yes but the thing is it's an .zip file how do I write files in it or create directories and then access it ?

charred abyss
#

why does NPCPlugin#spawnNPC spawn an npc with extremely broken ai? the chunk is loaded before spawning

#

spawning with commands or creative tool works

slim quest
empty wyvern
#

is anyone experience with TabNavigation in UI?

gusty socket
#

does anybody know if you create a command with the same name as a vanilla command, will both commands work in tandem when the player uses the matching command, of will the plugin command fail to register?

thorny brook
gusty socket
thorny brook
#

no, that will fail too

gusty socket
#

you already used that one didn't you

thorny brook
#

turns out pascalcase is requiered not optonial, i just learned this after like 15 hours of banging my head agasin "asset name dose not exsist"or "unknown command"

gusty socket
#

it's not required for command names...

thorny brook
#

it is

gusty socket
#

not on my server it isn't heh

thorny brook
#

have u tried to generate a world using worldgen v2?

fervent vale
#

is there any official api or guide to make mods??

thorny brook
#

yeah! good luck reading them, the dev team said stright up its for tech docs, but when the examples in it are broken, so idk

#

nevermind, even chaning all ref to the correct Pascalcase, iam still getting asset name does not exsist, omg

gusty socket
fervent vale
#

Hi, I want to make a mod that, when you use /races, opens a menu with several buttons to change races in the game. Can someone guide me a bit? Thanks

thorny brook
fervent vale
thorny brook
#

curseforge

ornate raven
cerulean belfry
#

How can I set my server (which I have set up to run with my plugin dev environment) to ignore asset validation issues? I don't want to have the game not let me launch the server just because an asset that was working fine 2 updates ago is now causing validation issues and the server refuses to start... besides, the way of fixing these issues would be to open the Asset Editor, which I cannot do if I can't launch the server to connect the Asset Editor to...

high bane
#

Oh... OH...

  • Added an Anchor UI system, enabling server plugins to add UI elements to client pages, such as the world map. This will allow modders to insert into various predefined points as we add them.
thorny brook
cerulean belfry
thorny brook
cerulean belfry
#

I am with you there with it being particularly maddening, more than other issues.

thorny brook
cerulean belfry
#

they said you can turn it off for singleplayer, I don't know if that means only for singleplayer worlds (why?) or if it had already existed for servers

thorny brook
#

i turned on javas debug options, followed the stack closley, took hours, i still cant pinpoint the issue

ornate raven
thorny brook
#

so yeah, all code no lazy mans editor

cerulean belfry
thorny brook
#

i tried using a friend to create a test one, worked on his fine, moved to my server for testing, same results, unknown asset name

#

my theory is they all worked on windows machines, and the code is meant for that, so me being on linux, most of my hytale tools are just stirghte broken it seems prob due to linux strict case and path sensativity

cerulean belfry
thorny brook
#

I also noticed it was made for 1080p, i have to code at that reso or i just cant read shhiz

cerulean belfry
#

I got two spare 1080p monitors from a friend who didn't need them which I can now use alongside my 1440p ultrawide monitor to help with Hytale. this is literally in part due to the Asset Editor issues. but they're still off to the side, meant to be used as references, it's a bit tricker to actually use them for interaction like in the asset editor (the monitor arms I have aren't long enough for the 1080p monitors to properly wrap around, since they have to get past a particularly wide central monitor due to it being ultrawide, and this means that they have to be mostly flat on the same plane as the central monitor, meaning they are thus further away from me)

thorny brook
#

i just got one 4k curved color accerte one, had some photowork gigs years ago, now i mostly use it for games and coding, but even setting steamsOS display scale up, or even zoom tool, it stays small! what is this black magic!?!?

cerulean belfry
thorny brook
cerulean belfry
#

you could just set a relatively small (as long as it is enough for the OS and some extra applications on top) portion of your storage aside for Windows, don't need much storage if it's not your main OS

#

of course, be careful resizing existing partitions, back stuff up before doing so. sometimes things work totally fine but sometimes something may go wrong or you may make a simple mistake and all of a sudden you've lost data

thorny brook
cerulean belfry
#

yeah I mean, I wouldn't entirely switch to Windows for just one purpose (like this). I'd just keep a Windows partition around so you can use that for just what you need to use it for

thorny brook
ebon abyss
#

Is there a way to reduce the tool range? E.g. can I make it so I can only mine the block directly next to me?

distant crane
#

Is there a way to spawn an instance but change the name after so the instance is not named after the instance name?

#

For example this is how the instance is getting named in the world directory: instance-Challenge_Combat_1-4ed7f36d-1893-48bc-a839-ea0da4c1e67d

edit: (solved) spawn instance can take another argument worldname

surreal flame
#

hey there, when i hardcode a background: (TexturePath: "xxxx.png" ); in the ui file everything works but when i use cmd.set to set the property the same image can not be loaded instead its white with a red cross. where does try to find the image while cmd.set?

ornate raven
surreal flame
#

i have them in the resource folder of a the plugin under UI/Custom/Images/Shop/ for instance, but i would like to rather load it from the pluginfolder where the configs also are aka: mods/modfolder/Images/Shop/

ornate raven
#

so inside .ui you use Shop/xxx.png right? am i wrong

surreal flame
#

the ui Pages are in Common/UI/Custom/Pages/ and from there its it ../Images/Shop/<imagename>.png

ornate raven
#

then you use Images/Shop/<imagename>.png inside .ui?

surreal flame
#

Background: (TexturePath: "../Images/Shop/empty_shop_image.png", Border: 0);

ornate raven
#

yep okay with cmd.set

#

you gotta put Pages/ in the start

ornate raven
#

does it not work without ../

surreal flame
#

ofc not since: Common/Ui/Custom/Images/Shop is the images path and the page path is Common/Ui/Custom/Pages/ is the ui file path

west elk
#

I would experiment in this order:
../Images/Shop/<imagename>.png
Images/Shop/<imagename>.png
Custom/Images/Shop/<imagename>.png
UI/Custom/Images/Shop/<imagename>.png

surreal flame
#

but originally i wannted them to be loaded from /Server/mod/pluginfolder/Images/Shop/

ornate raven
#

i think thats not possible .ui etc that kinda things doesnt load without being under common

west elk
#

I just looked how I did it and lol! I made separate elements for every image and set them all Visible: false; and dynamically turn on the one I want to show

ornate raven
west elk
#

I would expect an unmeasurable performance overhead, but layout-wise there is no difference since Visible: false; completely removes an element from the render tree

#

But who knows, maybe dynamically loading an image would be worse for performance

#

Lol

surreal flame
#

thats pain to have a shop running with custom images when i need to hardcode every image the shop could have. additionally i currently manage the shop items via json config from the pluginfolder but i need to upload a new plugin,jar everytime i add items just to show the images

west elk
#

Maybe the problem is that you need to put a path object into the setter, not a string

#

Idk though maybe check how the Memories page does it?

surreal flame
#

those images are inside the Asset.zip

west elk
#

Yes

#

Assets.zip is the vanilla modpack

#

The vanilla plugins interact with those assets exactly the same way as our plugins interact with the assets in our resources folder

surreal flame
#

The set(String selector, String str) method just wraps the string as a BsonString — it doesn't parse the composite (TexturePath: "...", Border: 0) syntax.

sinful storm
#

what do you do on a pre-release server to have it load plugins that are did not update specifically for the update instead of just crashing?

faint void
#

Is there a special CODEC for saving fields? I have an attribute I want to save but I don't want it to be settable in JSON.

versed sleet
green tendon
#

Concept for a Hytale server system:

A fully server-side automated PvPvE castle event running on a scheduled timer (every X hours) within a defined region.

Core mechanics:

  • Region-based event trigger
  • Persistent scheduler (survives server restarts)
  • Pre-event cleanup and full area reset
  • Wave controller spawning minions at randomized points inside the region
  • Boss entity spawned as the final phase
  • Loot chest tied to a configurable loot table that unlocks on boss death
  • Global broadcast when the event begins
  • Automatic shutdown and cooldown

Server protections:

  • Disabled building inside the event zone
  • Teleport restrictions
  • Respawn control
  • Anti-exploit safeguards

Advanced possibility:
Dynamic scaling based on online player count (mob density, boss HP/damage, reward tier).

Structured as a modular system (Region Manager → Event Scheduler → Wave Controller → Boss Handler → Loot Manager → Cleanup Service) to ensure reliability and repeatability while minimizing manual intervention.

toxic delta
#

Is there a way to transfer server data from one to another?

#

My friend made a server based off his own IP and it hasnt been working so now we are trying to attempt to purchase a server in order to play. We are looking to see if we can transfer the data from the current one to a new server?

regal burrow
#

why is the /enviroment command tied to the players gamemode

long birch
gritty bronze
#

is there a way to add a subcommand to an already existing hytale command?

versed sleet
#

is there anyone available to test a custom command i made with me? i'd ideally need 2 people

versed sleet
digital pond
rigid hound
digital pond
#

mind if i help

#

what ever you need help with

#

if anyone needs help on there world hmu im down to help with whatever is needed

versed sleet
#

dm whenever

digital pond
#

its blocked

#

cant bc we arent friends

west elk
fathom dune
#

Do people recommend the kauptenjoe example plugin, or some other, for windows (non default install dir)?
Or do you use another or just set up your project manually?
I just can't get it to reference the sources correctly any more, and i have no idea what i do differently this time. Also unsure if its a gradle or intellij setting or file, can't find anything in the gradle files, but adding library dependencies in the project in intellij won't let me browse the decompiled server as before.

#

I get warning in my plugin that it can't find the references in red, but it still compiles without warning, and decompile server run without errors.

west elk
fathom dune
#

ok seem like i missed something, Build-9/Hytale-Example-Project?

#

ah

#

i will see if that behaves better

#

Oh oh oh, build-9 have unofficial vs code support.

clear berry
#

Never used gradle before but i think i understand how it works and how i need to sort stuff

fathom dune
#

the funny thing is that i have written an entire webproject setup trough graddle once.

#

but as soon as time pass and you never do it again...

stoic swan
#

how can i get the highest block un a location?

fathom dune
#

get the chunk get the xz in the chunk, start at the highest y values loop to to lowest return if you encounter a block.

#

if the location is not a single block but a volume, loop trough the volume, store the highest y, use the highest y as the end of the loop for all other xz.

#

I am assuming that Hytale uses xz for ground plane and y as height now.

#

you could make a cache that stores heights for locations, and listen to events to update the height if there are block events that fall in to the area of the location.

clear berry
#

is there any good tutorial/explanation what the "assetmap" is, i looked at the implementation of the DefaultEntityValue (or smth like that) where you define components (health, stamina, etc) as well as a get function for each. at the bottom you have all these values being mapped to assetmap of the same string (i think) and idk why thats being done

fathom dune
clear berry
#

i see, gotta read into that more. I was trying to setup a currency system where each mob spawns with a coin value and if you kill that more you get more coins

thorn kindle
#

(I’ve made the Hy*X plugins ) * being each various plugin like HyEssentialsX

#

Has the built in templates plus auto server setup and auto jar deploys to server including building the new jar huge time saver

clear berry
thorn kindle
#

I did have to update my gradle to make two jars one being a dev jar so that one is always copied to the test server otherwise once I had multiple versions / jars in the folder it wouldn’t always pick the right one (could of also just deleted the old jar versions but eh wasn’t hard

#

If anyone is great at making assets I’m on the look out for help my team is branching into mod development it’s just slow moving due to asset creation

thorn kindle
fathom dune
#

The problem I had turned out to be exactly the problem people had stated elsewhere, specify the jdk version to 25, even if the Gradle default one said 25, it would only find the hytaleserver.jar if i changed it to the local jdk version of 25.

grand kernel
#

tip of the day use maven over gradle, not only does it work better for java 25, it gives you readable errors. it has sped up my work so much. it was annoying to get gradle work with java in the first place,

fathom dune
#

That said, then you have to figure out how to get it to work in maven instead, for me, thats just shifting the problem to another repoistory and build system that i am not used to, so doesn't feel worth it now that its up and running again.

grand kernel
#

for hytale so far i've had a better time using maven

fathom dune
#

I usually don't do java development, and that is the only encounter i have had with maven projects, last time was 8-10 years ago. Gradle is only like 3-5 years ago. ^^

#

I just realized with the flexibility in hytale modding, it would be possible to create a VTT plugin.

spark sequoia
#

i just spent 3 hours trying to make a custom featherboard 🥲

fathom dune
#

whats a feather board?

spark sequoia
#

a board that shows details like money, online players, a bunch of stuff

#

i cant put pictures anywhere 🙁

fathom dune
#

Tried to google an example but only got "A featherboard is a safety device used when working with stationary routers or power saws such as table saws or bandsaws."

grand kernel
#

what kind of currency are you using?

spark sequoia
#

custom one

#

we make all our plugins

grand kernel
#

ahh yeah i was too lazy to make a custom one so im just using essence as currency

spark sequoia
#

search hytale hyvize server should pop up the first one and theres our (my) site

fathom dune
#

A lot of people have problem showing images.

#

One of it seems to be that people feel a disconnect between images being in the client resources, but referenced in the ui files in the server resources.

#

from what i understood it.

high bane
#

No they mean they can't post screenshots on this server, lol

fathom dune
#

oh.

#

haha nevermind then.

winter lava
#

is there a way i can get a free hytale server?

clear berry
clear berry
#

singleplayer hytale is also a "server" local alr, idk if you can share that ip or if you need a seperate server like most people setup to test plugins with

#

@fathom dune do you know if singleplayer is on a specific ip, iirc minecraft worlds always hosted on the same port, is hytale the same

fathom dune
#

i am just connection towards local host ip, but your external ip should be the one if all ports are open, or if you are in the same lan, your lan ip.

novel barn
#

hi guys, thanks for you answer about server, but is it possible ton have a console in solo world ?

clear berry
#

If you are more deep into the plugin dev setup you can also integrate the server start into gradle, but i havent done that yet personally Just heard its really useful

last dagger
#

Another clean win on the dashboard. Orders flowing in, notifications ringing nonstop, profits locked. Quiet moves, loud results. We build, we scale, we dominate.

dense gull
dense gull
high bane
#

It's not gloating it's just advertising.

dense gull
#

idk whats being advertised

last dagger
high bane
#

I bet it's a hosting service for hytale servers

last dagger
high bane
dense gull
#

^

dense gull
#

alos i feel like locked profits implies no more profit, like its capped, id reword that part

high bane
last dagger
high bane
last dagger
dense gull
#

this doesnt feel like making silent moves anyomre

last dagger
#

Why're you curious 🧐

fathom dune
#

This is an example of when just using Enterprise, HR Hyperbole, just breaks down into a complete mess.

high bane
dense gull
#

its not curiousity, its calling you out for being random with your posting in a plugin forum

high bane
fathom dune
#

It's serious strong bot vibes in the level of expression and deflection.

runic shard
#

Is there an inventory open packet?

dense gull
#

to move in silence would be not shi-posting on random forums. this is the exact opposite of 'quiet moves' lmfao

runic shard
#

Can't seem to find it

high bane
#

if not that, could be 200 OpenWindow

fathom dune
last dagger
#

Bro just chilling don't know what you taking this conversation to

dense gull
high bane
#

Did you know, if someone's acting inappropriately you can report them by right-clicking a message and doing App => Hytale => Report , or by using the /report chat feature? It helps the staff keep the chat clean 🙂

runic shard
#

just trying to stop the player from opening their inventory essentially

#

and open my own ui

fathom dune
runic shard
subtle sage
#

what permission is the help command? i just cant manage to unlock that sht for my users

runic shard
fathom dune
fathom dune
#

I was unsure about that, thats why i didn't mention it before i tried to figure it out but have different things taking my focus. ^^

void pendant
#

Anyone knows how to use the /npc spawn Trork_Brawler --position= Command? Im trying to use it but always get an error Invalid Vector3d format

runic shard
fathom dune
runic shard
#

now we know yippeeee, time to yeet the old player inventory out the window 😈

fathom dune
#

I am trying to figure out why my query returns with null when i try to get damage events.
Unsure if i need to set dependencies to other systems or if something else gone wrong.

high bane
random briar
#

is there a way to get the players target block?

runic shard
#

Is there no way to stop the default inventory from appearing for a split second? I'm intercepting the packet and closing it then opening my own UI

#
public static void register() {
        // Create the menu page once
        menuPage = createMenuPage();

        // Intercept inbound ClientOpenWindow packets (client -> server, packet ID 204)
        PlayerPacketFilter inboundPacketFilter = (playerRef, packet) -> {
            if (packet instanceof ClientOpenWindow clientOpenWindow) {
                LOGGER.atInfo().log("[CLIENT_OPEN_WINDOW] Packet detected from player %s, windowType: %s",
                    playerRef.getUsername(), clientOpenWindow.type);

                // If this is opening the PocketCrafting (player inventory when pressing Tab)
                if (clientOpenWindow.type == WindowType.PocketCrafting) {
                    LOGGER.atInfo().log("[CLIENT_OPEN_WINDOW] Intercepted inventory open (Tab key) from player %s",
                        playerRef.getUsername());

                    // Mark this player as intercepted
                    MENU_STATE.put(playerRef, true);

                    // Open our custom menu
                    Ref<EntityStore> ref = playerRef.getReference();
                    if (ref != null && ref.isValid()) {
                        Store<EntityStore> store = ref.getStore();
                        if (store != null) {
                            World world = store.getExternalData().getWorld();
                            if (world != null) {
                                world.execute(() -> openMenu(playerRef, store));
                            }
                        }
                    }

                    // Don't block the packet - let it go through
                    return false;
                }
            }

            return false;
        };

        // Intercept outbound OpenWindow packets (server -> client, packet ID 200)
        // Block the server from sending the inventory window to the client
        PlayerPacketFilter outboundPacketFilter = (playerRef, packet) -> {
            if (packet instanceof OpenWindow openWindow) {
                // If we intercepted this player's inventory request, block the server response
                if (MENU_STATE.containsKey(playerRef)) {
                    LOGGER.atInfo().log("[OPEN_WINDOW] Blocked server inventory window response for player %s",
                        playerRef.getUsername());
                    // Remove from state after blocking
                    MENU_STATE.remove(playerRef);
                    // Block the packet
                    return true;
                }
            }

            return false;
        };

        inboundFilter = PacketAdapters.registerInbound(inboundPacketFilter);
        outboundFilter = PacketAdapters.registerOutbound(outboundPacketFilter);

        LOGGER.atInfo().log("PlayerMenu ClientOpenWindow filter registered");
    }
fathom dune
high bane
#

it's the point of the channel though ¯_(ツ)_/¯

fathom dune
#

The plugin just have a
this.getEntityStoreRegistry().registerSystem(new ListenToDamageEventsSystem());

and the ListenToDamageEventsSystem
is just

public class ListenToDamageEventsSystem extends DamageEventSystem {

    @Nonnull
    private static final ComponentType<EntityStore, PlayerRef> PLAYER_REF_COMPONENT_TYPE = PlayerRef.getComponentType();
    private static final ComponentType<EntityStore, EntityStatMap> ENTITY_STAT_MAP_COMPONENT_TYPE = EntityStatMap.getComponentType();
    @Nonnull
    private static final Query<EntityStore> QUERY = Query.and(PLAYER_REF_COMPONENT_TYPE, ENTITY_STAT_MAP_COMPONENT_TYPE);

    @Nullable
    @Override
    public SystemGroup<EntityStore> getGroup() {
        return DamageModule.get().getInspectDamageGroup();
    }

    @Nonnull
    @Override
    public Query<EntityStore> getQuery() {
        return QUERY;
    }

    public void handle(
            int index,
            @Nonnull ArchetypeChunk<EntityStore> archetypeChunk,
            @Nonnull Store<EntityStore> store,
            @Nonnull CommandBuffer<EntityStore> commandBuffer,
            @Nonnull Damage damage
    ) {
        EntityStatMap entityStatMapComponent = archetypeChunk.getComponent(index, ENTITY_STAT_MAP_COMPONENT_TYPE);

        assert entityStatMapComponent != null;
    }
}
#

damn i forgot the code format syntax.

high bane
#

```java
code
```
(note it's backticks not accent aigue)

fathom dune
#

Caused by: java.lang.IllegalArgumentException: Query in AndQuery cannot be null (Index: 0)
So the player ref component gets evaluated to null i guess.

#

So either i should initialize it later, or i need to specify something making the PlayerRef component store accessible, or something totaly different.

high bane
#

I did this instead ```java
@Nullable
public Query<EntityStore> getQuery() {
return Query.any();
}

and then did early checks and returns
fathom dune
#

Ah.

high bane
#

if you want to check...
(github.com)/eslachance/EchoesOfOrbis/blob/main/src/main/java/com/tokebak/EchoesOfOrbis/systems/ItemExpDamageSystem.java

random briar
#

anyone knows how to get players target block?

clever horizon
#

TargetUtil has raycast methods you can use

random briar
#

this just gives me integer and not block from getBlock
world.getBlock(playerRef.getTransform().getAxisDirection())

fathom dune
#

Ah the assignment to QUERY triggered the exception.

random briar
#

what am i supposed to do with a number from getblock?

random briar
fathom dune
clever horizon
random briar
runic shard
clever horizon
random briar
pliant brook
#

hey how do i identify and safely delete chunks without resetting the builds of players?

fathom dune
clever horizon
#

Your best bet might be creating a system and resource to track which chunks players place non-natural blocks in. I don't think the game does this for you though

fathom dune
clever horizon
fathom dune
#

But essentially the once with changes in them will still be a minority.

#

The question is mainly how large or small change you perimit before a reset, but some system where players can mark a chunk as protected would probably be the easiest. any chunk with in the radius is not reset.

#

then again if there is no change, a reset would probably not be needed unless changing world gen.

broken dragon
#

ok im getting lost here. After looking around at code its getting me nowhere. if I want to get the component of a specific block using InteractionContext. do I look in the archtypeStore, chunkStore, commandBuffer, entityStore or somewhere else?

clever horizon
#

Block components are actually stored in the BlockComponentChunk of a WorldChunk. Getting at them is different depending on where you start from

broken dragon
#

ok world chunk first and then blockcomponentchunk. thanks

#

do we have something like an ESC index or directory map to know where to find all this?

clever horizon
#

BlockModule.getComponent() gives you a general method for getting block components from a global position. Unfortunately blocks use several different coordinate systems and indices so it can be a little confusing

broken dragon
#

BlockModule seemed to be returning ChunkStore with getComponent not he component within blocks

clever horizon
#

getBlockEntity returns a Ref<ChunkStore> but getComponent does return Component<ChunkStore>

broken dragon
#

ok im going to see if this works

    public Component<ChunkStore> getThisComponentByInteraction(ComponentType componentType, @NonNullDecl InteractionContext interactionContext)
    {
        Vector3i targetBlockV3i = getBlockV3iByInteraction(interactionContext);
        World myWorld = getMyWorldByInteraction(interactionContext);
        
        
        return BlockModule.get().getComponent(componentType, myWorld , targetBlockV3i.x, targetBlockV3i.y, targetBlockV3i.z);
    }
#

literally had to build some helpers just to keep the size of these methods down

#

i dont like hopw we have both BlockPosition and traditional Vector3i

clever horizon
#

I think that's part of the legacy serialization system

#

Just looking through it you can tell a bunch of the netcode is halfway through being replaced

clear berry
#

anyone know under which file the chest loot is safed under

broken dragon
#

i mean v3i does work as all blocks are just an integer apart in every direction

dire cloak
#

how to download pre-release server files please?

clever horizon
#

I would use v3i everywhere that doesn't require BlockPosition. And probably make sure it's the one from the math package and not the protocol package

broken dragon
#

uh oh red alert

#

coffee is wearing off. RED ALERT!

clear berry
#

if i have a variable n and i want to give a player n cobblestone, whats the syntax? is it with sendinventory?



        if (player == null) {
            LOGGER.atWarning().log("Error: Command opencrate called with player==null");
        } else {
            player.sendMessage(Message.raw("===== CRATE REWARDS ====="));
            player.sendMessage(Message.raw(n + "x " +));
            player.sendInventory();
        }```
broken dragon
broken dragon
#

oh never mind that doesnt allow you to add or remove anything

clear berry
woeful grove
#

hi how can i import right things i cant find eventsubscriber

pine needle
#

Dumb question, but what is the easiest way to get all worlds

#

Thanks

severe heart
#

hey everyone ! when iam transfering my world to another server do i lose my characters ?

broken dragon
#

does onEntityAdded within a component automatically hook into the event system or does it require set up?

clear berry
#

whoops wrong ping i mean @broken dragon

broken dragon
#

unless you want somethning more comples than just a max min and weighted items

clear berry
#

weighted should do fine for now

broken dragon
#

something like a zero tolerance feature or losing streak breaker to avoid player frustration

clear berry
#

but i dont actually have an entity yet, just a command triggering it

broken dragon
#

better off starting with the item in the asset editor since thats the easier part

severe heart
#

what do you mean by refer?

#

hmmmm

#

let me check my current server's folder

#

yeah is the folder players enough?

#

i did transfer my world

#

yeap yeap

#

thank you

boreal hamlet
#

hay guys, i need help i was trying to run my own server on my own pc but i am having some issues, after i've created start.bat my cmd despairs immediately, i've got logs but i don't know how to make any thing out of them.

severe heart
#

if i have changed my worlds name does it matter?

boreal hamlet
#

well it supposed to look like this right? "java -jar HytaleServer.jar --assets Assets.zip"

severe heart
#

so it does not have any connection with the players right?

boreal hamlet
#

your start.bat was diftent but the outcome is the same, what exacly do you mean by cli?

sweet rain
#

I am making a plugin that extends the echo command, where is the echo command located in the file structure?

stable tapir
#

hi

sweet rain
#

ty

broken dragon
#

does anyone have a snippet of how to get a block component and access its values please because all I'm getting from getComponent in BlockModule is a generic class

boreal hamlet
#

right the whole problem was that for some reason windows hasn't extracted my version file properly and it was completely empty, i did what you said again and it worked, thanks 🙂

boreal hamlet
#

can you lads tell me if that ready start.bat has turned on backup? there is something in there but i dont see any path info around it and wonder if it is what i think it is

#

ok thanks that that just saves it in the same folder? does "--backup-dir backups" servs the role of path in here?

#

thanks again young man

fathom dune
#

Are there any easy quick properties you can tweek in intellij och the gradle project to get quicker startup in debug.
I like breakpoints when i want to make sure whats actually going wrong.
But in release it takes 1.6 second to start up the server, looking at the log info when starting up in debug it took 6 miniutes 17 seconds.

royal mural
#

guys is playerRef.getUsername() same as displayName?

tawdry dragon
#

Are there any guides that show how to create vendor NPCs?

#

I meant official ones, did Hytale release anything yet regarding documentation?

fathom dune
#

DisplayName is the name used when sending messages, the name to display. When coming to a userref its the username.
Is there anyway to change the name in game, without registering another name?

#

And when i say user name, i don't mean what ever you use to login, but the name you registered when you bought the game.

royal mural
#

Does it mean you can change ur displayname ingame?

#

So as far as I understand there is a Hytale Account Id. Then for each game profile associated to the account you have a different id and username.

But i dont see any place where to customize the displayname, so I guess username = displayname, at least for now? Or is there any functionality that allows you to change the displayname?

boreal hamlet
#

ok i think i've set every thing up, but i dont know i am trying to test it and i can't connect to my server by my ip address, only by "localhost" is this normal? will others be able to join me (ofc i've port forwarded my shift and all)

#

ok thanks for the last time i hope XD ♥️ but i swer it whould have been easer to go fist fight my internet provider than port for on this dog s***t of a router

plain finch
#

is it possible to change particles by code?

royal mural
#

hmm ty I will continue my investigation as well

pliant brook
#

hello still quite new to the whole modding thing, when deleting a chunk lets say -2,-11 , i just have to look for the -2,-11 region.bin right? or is that different?

frail ingot
#

guys
does anyone know what might be causing this error:
[2026/02/12 18:36:31 SEVERE] [ChunkStore] Took too long to pre-load process chunk: 34ms 440us 200ns > TICK_STEP, Has GC Run: true, WorldChunk{x=-10, z=-4, flags=00000000000000000000000000000100}
[2026/02/12 18:36:31 SEVERE] [World|default] Took too long to run pre-load process hook for chunk: 43ms 487us 800ns > TICK_STEP, WorldChunk{x=-9, z=-5, flags=00000000000000000000000000000100}, Hook: com.hypixel.hytale.server.core.modules.block.BlockModule$$Lambda/0x00000000a6a477f0@22349ad3
[2026/02/12 18:36:31 SEVERE] [ChunkStore] Took too long to pre-load process chunk: 35ms 253us 600ns > TICK_STEP, Has GC Run: false, WorldChunk{x=-14, z=3, flags=00000000000000000000000000000100}
(context: using a simpleinstantinteraction upon clicking an item (the item is a block) i send a message containing the players display name, when i change the message to be the held item id the error disappears)

broken dragon
#

omg. there's chunk components AND entity components. and blocks can use BOTH?! no wonder this wasn't working for me

frail ingot
#

what does that mean 😅

#

i took this code snippet from the documentation

#

and modified it

fathom dune
#

the chunk and chunk component is probably for when its part of a chunk and renders as part of other blocks in the chunk in the world.
the entity component is probably for when its realted to your inventory, an item in the world or in your hand.

#

but could be wrong

royal mural
#

yeah I got that, but internally using Player.getDisplayname() still returns the default username() right? So you basically cant customize it, you would need to attach a component and replace display name in every place where it could be shown

#

I wonder if its possible to replace the displayname from chat

hearty dragon
#

A component is just set of data that you slap on something to be used by a system. Most entities have many components. A block needs to hold data for a variety of purposes, and thus needs numerous components for these purposes.

fringe herald
#

Seeds do apparently not have their own resource type. Is there a way to add it later on?

royal mural
#

yeah, basically player class has this:

    public String getDisplayName() {
        return this.playerRef.getUsername();
    }
#

there is even a DisplayNameComponent, which is related to messages

#

But yeah, my question was mainly about default game functionality, to make sure u couldnt customize the displayname somehow rn, other than with plugins

fathom dune
fringe herald
tiny vale
#

How to make it so that in the JSON file created by the plugin, there are consecutive parameters under one name, as shown in the example here.

    "Provider": {
      "Enabled": true,
      "UseLuckPerms": false,
      "DefaultDenyWhenUnavailable": false
    },```
Is this a list or what?
distant crane
#

Is there anything that speaks against using config files as like a database thing? To for example persist data between startups like user data or other things?

#

Only thing that comes to my mind would be that other plugins cant access that? I suppose?

tiny vale
distant crane
#

Yea thats what im trying to figure out what the difference is to safe it as a component on the player or globally

#

For example lets say an auction house. I would assume listed items would be safed globally not on the user no ?

tiny vale
distant crane
#

Ah i see that clarifies something! What would be the approach for an Auction House like global shop

tiny vale
distant crane
#

What would be the approach? Like an actual external database ? Or is there a way to safe something globally for the universe?

tiny vale
#

although I would destroy a regular database, e.g., SQL

tiny vale
distant crane
tiny vale
stoic swan
#

Nameplate is the text you see below the character

distant crane
#

because when i would release the plugin wouldnt it be hard

#

i think it needs to be local no ?

fervent lava
#

Anyone have a good lib or systems to use particles/projectiles etc in hytale?
I really /dont/ wanna use the asset editor

tiny vale
# distant crane and by database you mean actually an external databse like mongodb or something?

It could be MongoDB or something like that, and from what I've seen other modders use databases, and it's possible to do it so that the person uploading the mod doesn't have to create any databases or anything for it to be created on its own, you just have to search the internet well, I'm sure it's possible, I know that CoreProtect, for example, uses some kind of database where it creates itself and you don't have to As a user of this plugin, you don't need to create any databases for it to work. Just download CoreProtect from curseforge, decompile it, and see how they did it.

tiny vale
tiny vale
# fervent lava wat

Sorry, that's not right. Now you have what I wrote, now you'll understand.

surreal flame
#

can i alway load a world when the server starts and keep it loaded like the default one? or how to i load all chunks from a world with a x/z boundary?

fervent lava
#

does anyone know if the Defense on the tab menu ONLY Shows the Phys resist and no others?

alpine creek
#

eventBuilder.addEventBinding(CustomUIEventBindingType.ValueChanged, "#ScaleInput #Input", EventData.of("@Scale", "#ScaleInput #Input.Value"), false);

I found in UIs eventBinding like this.
I believe it put the value from the field to the data.
But when I try to do similar thing, I just get a text "#ScaleInput #Input.Value"...
It requires any config or specific use?

broken dragon
#

literally going to scream here.

public <T extends Component<ChunkStore>> T getComponent(int index, @Nonnull ComponentType<ChunkStore, T> componentType)

WHICH index does it want because I STILL haven't managed to find how to get a component from within a block. multiple classes have getIndex. ComponentType. Worldchunks. Blockchunks. I.m about to ThrowChunks.

alpine creek
#

I believe you working with "ArchetypeChunk<ChunkStore>". Didn't you get the index in the method, that gives you this architype?

broken dragon
#

honestly dont know at this point. everyone seems to have different ways of getting components from entities and it all seems to depend upon what the entity is and what the componenttype is

#

i came up with this

int blockIndex = ChunkUtil.indexBlockInColumn(targetBlock.x, targetBlock.y, targetBlock.z);

and since most getIndex return long but this utility returns int. and the chunkcomponent version of getComponent requires an int index. I'm hoping this works

#

i feel sorry for the guys at hypixel who need to untangle this spaghetti

#

if i figure out an end to end way to go from interaction to block componet I'll post some snippets y'all and copy as a reference

#

actually i'll do it on my X/Twiiter. easier to find in future then

distant crane
#

So i just checked, I could create a withConfig json which contains the data since the config is globally for the server. I dont think all clients have that or am i wrong here ? For example i could just create an auctionHouseData which would be safed like a config and whenever a user adds an item i just expand it or remove the item so all other players can see it

#

So i could use that like a database no ?

broken dragon
#

huh didn't expect that. I appear on google now

#

i guess the analytical footprint was large enough to be picked up

dusty venture
#

Is there a ui element that allows me to drag items from inventory to my custom page?

broken dragon
#

right i qut for the day if anyone can explain why this doesn't work please reply

               int blockIndex = ChunkUtil.indexBlockInColumn(targetBlock.x, targetBlock.y, targetBlock.z);
                assert worldChunkComponent.getBlockComponentChunk() != null;
                MyComponent myComponent = (MyComponent)  worldChunkComponent.getBlockComponentChunk().getComponent(blockIndex, ModMain.getMyComponentType());

               if(myComponent == null)
                {
                    player.sendMessage(Message.raw("ERROR: null myComponent"));
                    return;
                }

basically I the message never fires and the method continues as if none of this ever happened and completes successfully.

clear berry
#

like if you replace the player.sendmessage with a log output do you get that

barren fiber
#

there's npc names list?

broken dragon
#

the issue is that although the interaction recognises the blacktyoe, the transform data and the helditem it just cannot detect what components are within a block

fringe ether
#

Sometimes while joining to the server, players get this error: "We have not received the asset type of translations." This happens sometimes and trying to rejoin to the server for a few times it fixes. Do someone know why this happens and how to fix it?

broken dragon
#

the problem is that when i look around i see some suggesting BlockModule.getComponent, others EntityStore, others BlockChunk.

#

tried them all today over the last 4 hours. no results or incompatible ComponentType errors.

inner spruce
#

Any ETA when we will be able to configurate custom names, lores to items?

fathom dune
broken dragon
#

odds are i need to switch back to ChunkEntity again then although its giving my problems too due so this

<ChunkEntity, T>

issue with it not being compatible with ComponentType.

granite palm
#

Hi everyone, I have a PvP arena plugin, and if a player starts hitting the air or any entity before entering the arena, the game crashes.

It throws the following exception. Does anyone have any idea what might be causing this error?

2026-02-12 20:43:08.0637|DEBUG|HytaleClient.Application.Program|Telemetry packet sent: event (seq: 7)
2026-02-12 20:43:08.7265|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>+0xa9b14b
at HytaleClient!<BaseAddress>+0x3dfd83
at HytaleClient!<BaseAddress>+0x3f62f8
at HytaleClient!<BaseAddress>+0x55703a
at HytaleClient!<BaseAddress>+0x3cabaf
at HytaleClient!<BaseAddress>+0x3cad5d
at HytaleClient!<BaseAddress>+0x3c8f2f
at HytaleClient!<BaseAddress>+0x3c7bfa
at HytaleClient!<BaseAddress>+0x3c7a84
at HytaleClient!<BaseAddress>+0x3c6dc6
at HytaleClient!<BaseAddress>+0x3c6519
at HytaleClient!<BaseAddress>+0x2e976b
at HytaleClient!<BaseAddress>+0x2ea038
at HytaleClient!<BaseAddress>+0x6409e1
at HytaleClient!<BaseAddress>+0x63baf0
at HytaleClient!<BaseAddress>+0x653747
at HytaleClient!<BaseAddress>+0x6532ec

granite palm
# stray pasture Anymore info we can get?

No, that's all.

What I can add is that it happens during an "arena transfer" when it starts applying inventory changes, and if it's done a few milliseconds before the programmatic teleport is called.

stray pasture
#

Oh. You may need an await or a check for verification the person your operating on exists. Since your getting an out of range error, its likely who your trying to operate on is non existsnt?

#

But you state its when their hitting air. So it could also be the player is being augmented and that argumentation isnt real.

(Good luck deciphering my thought process. :D)

tacit carbon
#

Help me, please
I can´t host my server for an error 0x80072743
i'll wait for their answers.

stray pasture
#

Anymore info?

Is that an error code? memory address? Whatever else it could be? What did you do? What are you doing? OS? Docker? Phase at which your in?

lament reef
#

someone can help me with server issue?

stray pasture
#

Maybe! That depends on if you tell us what you need help with besides it being a server issue.

lament reef
#

026/02/13 00:42:58 error printing version: error fetching server manifest: could not get signed URL for manifest: could not get signed URL: Get "https://account-data.hytale.com/game-assets/version/release.json": oauth2: "invalid_grant" "The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. The refresh token is malformed or not valid."
New update available, downloading version ...
2026/02/13 00:42:59 error fetching manifest: could not get signed URL for manifest: could not get signed URL: Get "https://account-data.hytale.com/game-assets/version/release.json": oauth2: "invalid_grant" "The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. The refresh token is malformed or not valid."
container@pterodactyl~ Server marked as offline...
[Pterodactyl Daemon]: ---------- Detected server process in a crashed state! ----------
[Pterodactyl Daemon]: Exit code: 1
[Pterodactyl Daemon]: Out of memory: false
[Pterodactyl Daemon]: Aborting automatic restart, last crash occurred less than 60 seconds ago.

stray pasture
lament reef
#

I was live 2 days. After i wanted to swith to pre release this happened

stray pasture
#

CLI Downloader? Did it fail to download the new pre release version perhaps?

lament reef
#

it downloader it. But when i started it server crashed. after that it didnt start. I tried reinstall everything. I alreay accepted to lose the world but now i cant even startup

#

for me its no problem to complete reset i only tried server test and testing the game.

stray pasture
#

Hmmm. Somebody else who may have more pterodactyl experience maybe able to assist if they see this. But I lack the info.

I would try running through AI and see if ya get something useful out of it.

lament reef
#

AI only says contact customer service from hosting...

#

But thanks for trying

analog patrol
#

how do you log to console, the plugin logger doesnt seem to have any method to send, only methods to check what the logger level is set to etc

analog patrol
granite palm
#

When I create a "handle" for my event, it tends to be a "void" method. Question: Is using "return" within that handle the same as letting the event occur if no condition is met?

west elk
fringe herald
calm birch
clever horizon
#

Has anyone figured out how to draw like a beam of particles between two points? It doesn't seem like there's a good way of doing that yet

analog patrol
#

how do you add optional dependencies?

compact shard
#

Hi everyone, does anyone have examples of scoreboards using .ui so I can learn how to make good UIs?

distant crane
#

Hey! I came across something weird. for some reason setting the uuid like this for a world:

var loadingWorld = InstanceManager.CreateInstance(templateName, worldName, defaultWorld, playerRef.getTransform());
    if (loadingWorld == null) return;
    
    loadingWorld.thenAccept((world) -> {
      TryCatch.Try(() -> {
        var worldConfig = world.getWorldConfig();
        worldConfig.setDeleteOnRemove(false);
        worldConfig.setUuid(worldId);
        
        Logger.Info("HideoutManager - CreateHideout - Set UUID TO: " + worldId.toString());

        InstanceWorldConfig instanceConfig = InstanceWorldConfig.ensureAndGet(worldConfig);
        instanceConfig.setRemovalConditions();
      });
    });

The uuid only is set after the server restarts any idea why? Do i have to call something to make it apply the changes or something ?

#

Also is it ok to call Join() to wait for a future ? Or is that bad practise? For example when a playeruses a command that spawns a world is it ok if i call join in that thing or no ?

pliant brook
#

Hey, how do i find the chunks that contains inside the region.bin? thanks!!

bright pelican
#

Any IntelliJ users?
How can I hot reload my plugin without restarting the server?

split vale
#

jeje

analog patrol
#

is there a way to decide if my event goes first or last?

low mortar
#

you can set EventPriority

blissful nebula
#

Why can I pass through some parts of a hitbox but not others?

versed sleet
#

if /plugin reload says it failed to reload it, you're forced to restart the server.
safest way is first /plugin unload, then (IMPORTANT) delete the old .jar from the mods folder, then upload the new one, then /plugin load it
do not just replace it as sometimes it just breaks the reload thing

plain finch
#

hi, have you figured out how to get rarity from Item?

quartz plover
# distant crane Also is it ok to call Join() to wait for a future ? Or is that bad practise? For...

If you call join, you're blocking the current thread to wait for the future to complete. Since each world runs on a thread, you'd stop the whole world if you block it. Futures are usually handled with the callbacks instead, such as thenAccept, thenRun, etc. (which is what you already have in the code block above)
Unless your code absolutely can't function without the result of the future like authentication via some http call, there's not much reason to await the result of a future.

#

Also, you don't need a TryCatch.Try thing, you can just add another callback for the exceptional return case with .exceptionally()

thick crag
leaden vessel
#

I'm making a box pvp server in hytale (like in minecraft) and I'm looking for someone who is experienced i offer you a co-owner position and we can split the profits of the server

vocal kelp
#

Hey guys, I'm setting the players known recipes with getPlayerConfigData().setKnownRecipes(Recipe.base.keySet()); and I can see its setting it correctly when I print out the recipe list but its not updating in game. Maybe there is something special I need to do? public void setKnownRecipes(@Nonnull Set<String> knownRecipes) { this.knownRecipes = knownRecipes; this.unmodifiableKnownRecipes = Collections.unmodifiableSet(knownRecipes); this.markChanged(); }

clear berry
#

is there a way to add an ItemStack to a players inventory and make it stack with already present items? e.g. if a player has 20 dirt in his inventory and I add another 45, it should increase the stack to 65 instead of creating another of size 45

void gust
#

need to look into this again

clear berry
#

actually my program already stacks it it just ignores hotbar

#

thats even more surprising lol

#

does getStorage excluded the hotbar

storm heron
#

you'll want to use getCombinedHotbarFirst for storage + hotbar
or vice-versa if you want storage first

fathom dune
vocal kelp
dim pendant
#

dose anyone know how i can go to my creative HUb in a server?

rapid kayak
#

where can i find server links

fathom dune
west elk
vocal kelp
# fathom dune item config defines how it should read from its json file, what values is assign...

` public static void Warp(Player p)
{
// grab player references
Ref<EntityStore> ref = p.getReference();
assert ref != null;
Store<EntityStore> store = ref.getStore();
PlayerData data = store.getComponent(p.getReference(), PlayerData.component);
assert data != null;

    // set the known recipes to base
    p.getPlayerConfigData().setKnownRecipes(Recipe.base.keySet());
    CraftingPlugin.sendKnownRecipes(ref, store);`
#

I think that should work but its not. I guess I'm not getting the Ref<EntityStore> or Store<EntityStore> correctly

viral pollen
#

is it possible to lock a player to a mount?

#

so they can't press F to get out

fathom dune
vocal kelp
#

I'ma go to bed lol, night night

sinful locust
#

Has anyone found a fix for asset loading issue, that armor, weapons load game base stats not the ones overriden in asset?

#

Or does anyone knows how to contact devs. Seems like this is game breaking bug affecting all the mods loading assets.

unkempt lark
#

em.. sorry if I say something basic, but how do you set water from these IDs? I dont see a .set version of any of these methods ;o.o

clear berry
#

got it fully working now, randomized weighted crate system done. now i gotta read myself into how to use the codec to safe and read crate lootpool data

clear berry
west elk
# unkempt lark em.. sorry if I say something basic, but how do you set water from these IDs? I ...

the PlaceFluidInteraction does it like this:

// get fluid from id
int fluidIndex = Fluid.getFluidIdOrUnknown("Water_Source", "Unknown fluid: %s", "Water_Source");
Fluid fluid = Fluid.getAssetMap().getAsset(fluidIndex);
if (fluid == null) return;

// get target location from chunkstore
var target = new Vector3i(0,0,0);
var chunkStore = world.getChunkStore().getStore();
Ref<ChunkStore> section = world.getChunkStore().getChunkSectionReference(
        ChunkUtil.chunkCoordinate(target.x),
        ChunkUtil.chunkCoordinate(target.y),
        ChunkUtil.chunkCoordinate(target.z)
);
if (section == null) return;

// get fluidsection component
FluidSection fluidSectionComponent = chunkStore.getComponent(section, FluidSection.getComponentType());
if (fluidSectionComponent == null) return;

// set the fluid
fluidSectionComponent.setFluid(target.x, target.y, target.z, fluid, (byte)fluid.getMaxFluidLevel());

// mark the chunk as ticking (probably so it starts flowing)
Ref<ChunkStore> chunkColumn = world.getChunkStore().getChunkReference(ChunkUtil.indexChunkFromBlock(target.x, target.z));
if (chunkColumn != null) {
    BlockChunk blockChunkComponent = chunkStore.getComponent(chunkColumn, BlockChunk.getComponentType());
    blockChunkComponent.setTicking(target.x, target.y, target.z, true);
}
#

Note how this uses the ChunkStore system rather than the deprecated methods on the WorldChunk class

dreamy heron
#

Hello can someone help me ? I did the last update of hytale but when i start my server with hostinger i can't connect? How to see the update of Hytale on Hostinger or how to fix the problem please?

west elk
dreamy heron
#

can't send screen here sadly

#

In the game nothing, just connecting while 5minutes and failed to connexion to the server but in the logs of the server idk how to see it

#

That's why it might be the update which is not the same than the server

#

because its the once thing that change with last time i connect to it

#

@west elk

west elk
#

If you can't access the server's console/logs, everything is speculation

#

my speculation based on your message is that the server is off or doesn't accept connections

dreamy heron
#

i can access but i don't know where

west elk
#

try Hostinger support

plucky oasis
#

Is it possible to time how long the titles display for? It seems to default to 5 seconds no matter what I try. I'm wondering if anyone knows if this is change-able or not.

Also another question, how do you play a sound specifically to one player? And is there a list of available sounds anywhere at all that we can play around with?

dreamy heron
#

ah its good i see the deployment log

west elk
dreamy heron
#

is it deployment log ? @west elk

plucky oasis
west elk
dreamy heron
#

@west elk can you accept friendly request

west elk
dreamy heron
#

its not for that

#

i have the message of error but i don't know what is it and the discord don't allow me to send here

#

ah its good i launcher the previous version and that's work

#

but idk how to update my server version

west elk
dreamy heron
#

ok ty

tulip briar
#

hey Im working on the camera in hytale and I want to have two modes one with a cursor and one without
thing is if I change from the default settings to the cursor one it shows the cursor and does what it suppose to do (same as with the other one it does what it suppose to do) but If I change from the custom view to a new custom view it applies all changes except the cursor I tried debugging it and the packet im creating but i dont see a problem with the ServerCameraSettings object

plain finch
#

guys, is it possible to change particle of the model runtime?

fathom dune
fathom dune
#

A plain model doesn't have a particle system. So what does the particle system belong to?
There should be plenty of ways to change something in the game for something else in the game, given one knows what one is changing, what exactly are you wondering if you can change?
Regarding runtime, while the game is running, in the middle of the particle system running? Change how, the system for another, change the particles in a defined particle system?

plain finch
fathom dune
#

Sure thing, just consider that the more specific you are the easier people can help you. If you have a specific item as an example or where there currently is a particle effect, it helps people help you.

fringe herald
#

Has someone figured out how to permantly boost the players movement speed? I tried to find the spot where the creative menu gives you the "move speed" factor option, but no luck so far

fathom dune
# fringe herald Has someone figured out how to permantly boost the players movement speed? I tri...

I know i tried to help with something similar. The problem being that there are a lot of things that modify your movement speed etc, so figuring out exactly what is responsible for the base speed of the player character was not that easy. The thing i considered next when figuring this out, is the dog transmutation potion, since your speed increase when transmuted, somewhere it sets "some value" at least. Figuring out what that "some value" is would probably help.

#

But i haven't had time to dig deeper at the moment.

fringe herald
#

i need to play the game (even) more 😄 Played at release for a while, but I often think there are still many areas I haven't seen 😄

fading bolt
#

anyone know why when i load my prefab, all the blocks are correctly loaded but the getMin and getMax function i use to get the size of the prefab are both 0, 0, 0

dusky plume
#

how do i trigger on chunk view? xd

fringe herald
tulip abyss
#

Many players on my server are reporting there's not enough mobs spawning. I know there's a Mob Density plugin but I seen it hasn't been updated in a while so not sure if I should use that. Any other advice?

analog sinew
#

Look into the mod Spawn Control

clear berry
#

I am trying to setup codecs for my lootcrate plugin, but I am not able to figure out how to use a already setup custom codec in another one. Specifically, I have:

    private int maxWeight;
    private List<LootItem> items;

    public static final BuilderCodec<RarityTier> CODEC = BuilderCodec.builder(RarityTier.class, RarityTier::new)
            .append(
                    new KeyedCodec<Integer>("RarityTierMaxWeight", Codec.INTEGER),
                    (rarityTier, maxWeight) -> rarityTier.maxWeight = maxWeight,
                    (rarityTier) -> rarityTier.maxWeight
            )
            .add()
            .append(
                 new KeyedCodec<List<LootItem>>("LoottableItemList", Codec.?????)
            )
            .add()
            .build();
}```
#

LootItem looks the following:

    private String name;
    private int rollWeight;
    private int unitWeight;
    private int minAmount;
    private int maxAmount;

    public static  final BuilderCodec<LootItem> CODEC = BuilderCodec.builder(LootItem.class, LootItem::new)
            .append(
                    new KeyedCodec<String>("LootItemName", Codec.STRING),
                    (lootItem, value) -> lootItem.name = value,
                    (lootItem) -> lootItem.name
            )
            .addValidator(Validators.nonEmptyString())
            .add()
            .append(
                    new KeyedCodec<Integer>("RollWeight", Codec.INTEGER),
                    (lootItem, rollWeight) -> lootItem.rollWeight = rollWeight,
                    (lootItem) -> lootItem.rollWeight
            )
            .addValidator(Validators.greaterThan(0))
            .add()
            .append(
                    new KeyedCodec<Integer>("UnitWeight", Codec.INTEGER),
                    (lootItem, unitWeight) -> lootItem.unitWeight = unitWeight,
                    (lootItem) -> lootItem.unitWeight
            )
            .addValidator(Validators.greaterThan(0))
            .add()
            .append(
                    new KeyedCodec<Integer>("LootItemMinAmount", Codec.INTEGER),
                    (lootItem, minAmount) -> lootItem.minAmount = minAmount,
                    (lootItem) -> lootItem.minAmount
            )
            .addValidator(Validators.greaterThan(0))
            .add()
            .append(
                    new KeyedCodec<Integer>("LootItemMaxAmount", Codec.INTEGER),
                    (lootItem, maxAmount) -> lootItem.maxAmount = maxAmount,
                    (lootItem) -> lootItem.maxAmount
            )
            .addValidator(Validators.greaterThan(0))
            .add()
            .build();
}
viral pollen
#

has anyone here messed with mounts and know if it's possible to lock a player to a mount

west elk
#

no wait, an array codec with the lootitem codec inside

halcyon rapids
#

guys I have a broken indestructible hitbox that can't be replaced by any block since I can just place blocks inside of it. how do I remove this thing?

west elk
# clear berry I am trying to setup codecs for my lootcrate plugin, but I am not able to figure...

From MemoriesPlugin.java

   private static class RecordedMemories {
      public static final BuilderCodec<MemoriesPlugin.RecordedMemories> CODEC = BuilderCodec.builder(
            MemoriesPlugin.RecordedMemories.class, MemoriesPlugin.RecordedMemories::new
         )
         .append(new KeyedCodec<>("Memories", new ArrayCodec<>(Memory.CODEC, Memory[]::new)), (recordedMemories, memories) -> {
            if (memories != null) {
               Collections.addAll(recordedMemories.memories, memories);
            }
         }, recordedMemories -> recordedMemories.memories.toArray(Memory[]::new))
         .add()
         .build();
      private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
      private final Set<Memory> memories = new HashSet<>();

      private RecordedMemories() {
      }
   }
distant pollen
#

hello is it poissible to show a hologram only for a specific player?

west elk
broken dragon
#

that is exactly 44.78% of an answer

fathom dune
#

Doing code, there is 0% chance of any answer being 100%

surreal flame
#

how can i add a new flat world to the server whats the --gen XXX for that?

sleek wren
#

I'm currently creating a mod that overrides a bunch of the default branches (Branch_Corner, Branch_Long, Branch_Short) for all type of logs to make them craftable for decoration purposes. Is it possible that there could occur some kind of load order issues? When loading the world only a number of branches are appearing in the workbench and it's different ones every time. When changing any minor detail on any missing branch through the Asset Editor the recipe magicaly appears in the workbench again. It feels like the game is loading the vanilla branches after my mod has been initialized and thus overriding my modded items with their default behavior.

Is there a way to prevent this and only load my mod after all wood items have been initialized? From my understanding mods are always loaded after the base game has been initialized or am I wrong here?

fathom zealot
#

is there any way to know which mod is causing my weapon workbench to turn into a pink/black block ?

finite vault
# sleek wren I'm currently creating a mod that overrides a bunch of the default branches (Bra...

From my understanding mods are always loaded after the base game has been initialized or am I wrong here?

I have no idea if you are wrong or not but! I do see here in the hytale modding site that there common null pointer exception error that gets fixed by defining hytale modules in your dependenies on that manifest.json so If i was gonna answer based of that. I think your assumption is false.

but I really don't know

#

I would link it too you but it get's blocked for advertisement 😅

sleek wren
fathom zealot
sleek wren
surreal flame
#

how can i scale an spawned NPC in it size so its getting bigger over time?

fathom zealot
heavy plank
#

Is there a way to get Mouse press/release/position inside UI?
MouseInteraction packet is not sended on standart camera and i dont want to modify it to Custom just to listen for mouse and prevent switching from first person to third and possibly conflict with other mods

compact shard
#

Hi everyone, how can I make the action of opening a specific chest (by its ID) be blocked/canceled until a certain condition is met?

granite palm
#

If a player is dead and the respawn screen is displayed, would PlayerRef.isValid() return false?

spring sedge
#

how do I change the default spawn location for the players? I don't see any coordinates in the world's config. I made a custom /spawn command so it overrides the current one and can't use the default command 😂

heavy plank
spring sedge
#

but I can't find anything, so I guess that I have to stop my server and disable my plugin to do that

heavy plank
spring sedge
clear berry
# west elk From MemoriesPlugin.java ```java private static class RecordedMemories { ...

can you help me again, i now have nearly the entirely same setup as the memoriesplugin but i still get an error warning underline at "(rarityTier.items, lootItems) in the collections.addAll brackets

    private int maxWeight;
    private final Set<LootItem> items = new HashSet<>();

    public static final BuilderCodec<RarityTier> CODEC = BuilderCodec.builder(RarityTier.class, RarityTier::new)
            .append(
                    new KeyedCodec<Integer>("RarityTierMaxWeight", Codec.INTEGER),
                    (rarityTier, maxWeight) -> rarityTier.maxWeight = maxWeight,
                    (rarityTier) -> rarityTier.maxWeight
            )
            .add()
            .append(
                    new KeyedCodec<>("LoottableItems", new ArrayCodec<>(LootItem.CODEC, LootItem[]::new)),
                    (rarityTier, lootItems)->{
                        if (lootItems != null){
                            Collections.addAll(rarityTier.items, lootItems);
                        }
                    },
                    (rarityTier) -> rarityTier.items
            )
            .add()
            .build();
}```
fathom dune
#

Could there be a case where items is null that you should check for, if its just a warning i mean.

clear berry
#

I dont really understand the warning, it suggestest assigning a boolean to the coolections.addall

#

Cant Post screenshot sadly

#

okay i think i found th error, lootItems is a FieldType and not LootItem[], however there is no way to change that. If i double the getter it wierdly becomes a LootItem[]

#

i am fully confused now

blissful nebula
#

Does anyone know if there's a way to remove the compass bar for all players?

compact steppe
#

Hi. Is it possible to access a players block selection (with the Selection Tool) programatically? For example in a player command?

gusty socket
#

what asset can i edit to add something to the starter temple?

stable jewel
#

Hey folks, first of all, nice to meet you all, I am Elfamir!

I have been loving Hytale and am tying to port an old MC datapack I developed, Solar Radiation, to be a full fledged Hytale plugin.
I am loving the existence of ECS, but am having some difficulties using it.
Could someone explain to me how I should add a custom component to entities (for now just players will do)?

I was able to do so through a command, but I would need it to be added when the player joind the world or is ready.
I tryed with a custom event, but can't figure out how to access the store to check and add components.

public class EntityReadyForRadComponentEvent {
    public static void onPlayerReady(PlayerReadyEvent event) {
        Player player = event.getPlayer();
        player.sendMessage(Message.raw(player.getDisplayName() + " is ready for a radiation component"));

        Ref<EntityStore> playerRef = event.getPlayerRef();
        player.sendMessage(Message.raw("ref from event: " + playerRef.toString()));

        // Add RadiationComponent if entity does not have it.
        // HOW DO I GET ACCESS TO "store"?
    }
}
olive rampart
nimble flame
#

So im still kinda new to all this..

Iv noticed alot of mods on my server use / commands to get there UI up for players, i want to take that and make it so when a player rightclicks with an item it will open that UI screen, iv tried using "Type:" "OpenCustomUI" but cant seam to figure out how to connect that to the UI i want it to pull up

#

is what im trying to do actually possible

#
          "UIAsset": "PetsPlus:UI/Custom/Pages/Pet_List.ui"``` 

For example this is how its set up in the Json
vocal kelp
#

Hmm, CraftingPlugin.learnRecipe does not search for custom CraftingRecipe in asset editor. Only default recipes. Hypixel_Think

olive rampart
#

is there syntax highlighting for .ui files in vs code or anything?

nimble flame
#

NVM found a mod that lets me pull from commands for interactions

sleek wren
royal mural
#

finally i got my leveling system

#

showing leaderboard in website

compact shard
#

Hi, what event is related to opening chests?

fringe herald
west elk
vocal kelp
#

has anyone managed to hide/show recipes with the playerconfig knownRecipes? Mine isn't working

pliant brook
#

heyy currently running a server on hosting, was about to sleep already but suddenly being pinged because of an issue, then i check that the "default world config could not be found" something like that. well it worked after i restarted the server but i wanna know what was the issue? i did not touch any of its configs though

west elk
#

then it would have disabled itself

coral kestrel
#

crazy

pliant brook
west elk
oak cypress
#

Hello, I have a question: is there a list of all the permissions in the game? I am creating a server and I am looking for what permissions a player needs, etc.

pine holly
#

there's perm mods

pliant brook
red matrix
#

Hi, please add the missing storm skin to the game?

west elk
#

Ooh he's asking for someone to make a mod that makes Storm Leather obtainable in exploration mode

#

I thought he's talking about Marvel Rivals, lol

broken dragon
#

does anyone know this this returns a blockRef for crafting blocks and crops that haven't finished growing. but returns null for any other world block?

Ref<ChunkStore> blockRef = worldChunkComponent.getBlockComponentEntity(targetBlock.x, targetBlock.y, targetBlock.z);
hoary cloak
#

anyone can help with why my world keeps unloading on my server every couple hours ?

west elk
#

You'd have to share the error message

hoary cloak
#

it just happens randomly every couple hours so i dont ever catch it

west elk
#

all log files are kept in the logs directory

hoary cloak
#

do you know what I should be looking for ?

west elk
#

a stack trace hopefully

hoary cloak
#

do you know what that literally looks like or part of it? So I can CTRL + F and share ?

west elk
#

not really. just scroll through it around the time the problem happened

#

you'll be able to tell quickly which messages are likely not part of the problem

hoary cloak
#

i found the error but it wont let me send

#

in this chat

#

[2026/02/13 23:13:01 SEVERE] [Hytale] Exception in thread Thread[#3740,WorldThread - Spawn,5,InnocuousForkJoinWorkerThreadGroup]:
java.lang.IllegalStateException: Assert not in thread! Thread[#138,WorldThread - default,5,InnocuousForkJoinWorkerThreadGroup] but was in Thread[#3740,WorldThread - Spawn,5,InnocuousForkJoinWorkerThreadGroup]
at com.hypixel.hytale.component.Store.assertThread(Store.java:2306)
at com.hypixel.hytale.component.Store.getComponent(Store.java:1215)
at ThirdPartyPlugin//com.minimalpulse.combatlog.events.DeathDetectionSystem.tick(DeathDetectionSystem.java:37)
at com.hypixel.hytale.component.Store.tickInternal(Store.java:1930)
at com.hypixel.hytale.component.Store.tick(Store.java:1900)
at com.hypixel.hytale.server.core.universe.world.World.tick(World.java:406)
at com.hypixel.hytale.server.core.util.thread.TickingThread.run(TickingThread.java:89)
at java.base/java.lang.Thread.run(Thread.java:1474)

tulip briar
#

hey I have created an event which changes a component
and I have a system that suppose to detect that change but it doesnt
to change the component im using the function **store.replaceComponent **
and the query of the system is Archetype.of(<component type>);
does anyone know why it doesnt trigger the oncomponentset function?
It does change the component but it just doesnt trigger the system

west elk
hoary cloak
tulip briar
#

this is the event handler


    @Override
    public void accept(ChangeCameraModeEvent event) {
        if(!event.playerRef().isValid()) {
            return;
        }
        TacticalCameraComponent newComponent = new TacticalCameraComponent(event.mode());
        var store = event.playerRef().getStore();
        var currentComponent = store.getComponent(event.playerRef(), TacticalCameraComponent.getComponentType());
        if (currentComponent == null) {
            return;
        }
        System.out.println("Replacing component");
        System.out.println(currentComponent.getCurrentMode() == event.mode());
        store.replaceComponent(event.playerRef(), TacticalCameraComponent.getComponentType(), newComponent);
    }

this is the system

public class OnCameraChangeSystem extends RefChangeSystem<EntityStore, TacticalCameraComponent>{

    @Override
    public Query<EntityStore> getQuery() {
        return Archetype.of(TacticalCameraComponent.getComponentType());
    }
    ... irrelevent code
    @Override
    public void onComponentSet(@Nonnull Ref<EntityStore> ref, @Nullable TacticalCameraComponent oldAttachment, @Nonnull TacticalCameraComponent newAttachment,
            @Nonnull Store<EntityStore> store, @Nonnull CommandBuffer<EntityStore> commandBuffer) {
            
        System.out.println("oncomponentset");
        ServerCameraSettings settings = CameraPacketBuilder.build(newAttachment.getCurrentMode());
        PlayerRef playerRef = store.getComponent(ref, PlayerRef.getComponentType());
        playerRef.getPacketHandler().writeNoCache(new SetServerCamera(ClientCameraView.Custom, false, null));
        if(settings != null)
        {
            playerRef.getPacketHandler().writeNoCache(new SetServerCamera(ClientCameraView.Custom, false, settings));
        }
    }
}
stoic swan
#

where are you registering the system?

#
        getEntityStoreRegistry().registerSystem(new OnCameraChangeSystem());
tulip briar
#

in the javaplugin setup

    protected void setup() {
     

        var registry = getEntityStoreRegistry();
      
        
        registry.registerSystem(new OnPlayerJoinSystem());
        registry.registerSystem(new OnCameraChangeSystem());

        getEventRegistry().register(ChangeCameraModeEvent.class, new ChangeCameraModeHandler());
        

    }
tulip briar
#

nope still doesnt work even after restarting the server

sinful storm
#

What's up with error printing version: error fetching server manifest: could not get signed URL for manifest: could not get signed URL

tulip briar
#

how your manifest looks like

sinful storm
#

just restarted the server and won't boot anymore, nothing related it's outright error printing version: error fetching server manifest: could not get signed URL for manifest: could not get signed URL: Get "https://account-data.hytale.com/game-assets/version/release.json": oauth2: "invalid_grant" "The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. The refresh token is malformed or not valid." New update available, downloading version ... 2026/02/14 00:04:38 error fetching manifest: could not get signed URL for manifest: could not get signed URL: Get "https://account-data.hytale.com/game-assets/version/release.json": oauth2: "invalid_grant" "The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. The refresh token is malformed or not valid."

sinful storm
#

da hell is a signed url, this game has DRM everywhere D:

#

I can't do auth because this error happens before boot.

#

it's the very first thing that happens on execute, doesn't get to do any of the loading steps, first line is that error

tulip briar
#

yeah I think you need more fields

{
  "Group": "",
  "Name": "",
  "Version": "1.0.0",
  "Description": "",
  "Authors": [
    {
      "Name": "ggeldar"
    }
  ],
  "Website": "",
  "ServerVersion": "*",
  "Dependencies": {},
  "OptionalDependencies": {},
  "DisabledByDefault": false,
  "Main": "me.location.location",
  "IncludesAssetPack": true
}
west elk
#

the error is talking about the hytale version manifest, not the plugin manifest

sinful storm
#

I have never touched that file I'm not sure why it now doesn't want to boot,

sinful storm
#

as this is hytale's api stuff throwing the error hm

west elk
#

i can start my dev server without problem. try quickly running a separate server on your system

#

I'm guessing it's a network problem?

sinful storm
#

none the test server I had just up, restarted right now...

#

same error. Wait... is this an API ban or ...?

west elk
#

I'm guessing network problem

#

you can test by authenticating a remote server

sinful storm
#

it's a dedicated machine hosted on datacenter, I am connecting to it fine

west elk
#

so you have the same problem on a server in a datacenter and on a server on your local machine?

sinful storm
#

I run 2 hytale servers on the same dedicated machine, the live one, the side test one for mods and all that jazz

west elk
#

I would try running a temp server on your computer right now to test if that one can authenticate correctly

#

then you'll know if it's a network problem or an account problem

low mortar
#

is there a condition for interactions that can be applied so the "press [key] to interact" message doesn't show up if it doesn't pass (i.e. a creative/op only menu for a block)

sinful storm
west elk
sinful storm
#

Can't run singleplayer... but can connect to servers. oof.

west elk
broken dragon
#

just a warning to anyone encounting an issue with getting blockRef.

Ref<ChunkStore> blockRef = worldChunkComponent.getBlockComponentEntity(targetBlock.x, targetBlock.y, targetBlock.z);

blockRef will return NULL if the targetblock ONLY contains components from your plugin. In order to fix the issue you MUST include a native Hytale component such as the Farming component. I'm going to raise this as a bug report ticket.

dusky sable
#

How can I prevent players from picking up dropped items?

broken dragon
#

disconnect them from the server

dusky sable
broken dragon
#

sigh giving up so easily....

dusky sable
broken dragon
dusky sable
broken dragon
#

could create a plugin that ticks continually to delete every item being dropped

dusky sable
broken dragon
#

since hytale items are cooked with existing components that handle interactions you're in for a chore changing their behavior

ebon abyss
#

I'm using a Postgres database to handle stuff but i'd be flagging player accounts as different roles and then building the logic around the roles

broken dragon
#

first thing I'd do is find out which of the existing entity components handle the pick up. then have a system remove that component from every spawned entity and replace it with your own version. you then add a UUID to each item to define how can and cannot pick it up

sinful storm
# west elk idk, I haven't seen something like this

I have proxied the server boot and asked a staff to authenticate the device on his account. That at least brings the server back online.

This is legit wtf for me, have never ran into something like this

broken dragon
#

alternatively, add a UUID to every spawned item and eject them from a player inventory if the UUID doesnt match. they'd pick it up still but spit it out again.

west elk
sinful storm
#

yeah I did it'll take its time, if people who lost game access after buying are waiting for a week I imagine this is not quick