#server-plugin

1 messages Β· Page 4 of 1

hexed valley
#

but I have found no way to remove it like no event is being called at that point

somber lodge
#

the block removal is unconditional and happens before the pickup event is even created.
in performPickupByInteraction, removeBlock(...) runs before interactivelyPickupItem(...).
InteractivelyPickupItemEvent cancellation wont affect whether the block is removed it only affects what happens to the already-generated drops

sterile forum
#

You would have to stop the perform pickup by interaction.

somber lodge
#

^

sterile forum
#

Why are you triggering that if you dont want to pickup or break the block?

somber lodge
#

or restore the block afterward maybe

hexed valley
sterile forum
#

Or do you want a block you can infinitly farm?

hexed valley
#

Or can I just disable the interaction module?

somber lodge
#

gamerule interact deny?

hexed valley
hexed valley
#

Ive seen that in some servers inside the player claims you can't pickup items as well

hexed valley
#

Ohhh wait I think I found it

somber lodge
#

πŸ‘€

austere cloak
#

Still not working for me and I don't know why. I tried every combination with Text and TextSpans in java and in the .ui file. When I am using TextSpans in java it randomly says command was not found. And sometimes my .ui file was not found

#

UI File part:

Label #GoblinArmyLabel {
Padding: (Full: 0);
Text: "Cleared 0%";
Style: (TextColor: #ffffff, RenderBold: true, Alignment: Center);
}

UI Builder:

commandBuilder.set("#GoblinArmyLabel.TextSpans", Message.raw(text));

Show and set UI/Text:

hud.show();
hud.setVisible(true);
hud.setText("Cleared 0%");

versed basin
#

is there any way to be able to get specific keystrokes from the client to execute commands? I looked into packet handling but this doesnt track "unused" keys. I want to call commands on keystrokes to create something like rpg skills. I know im able to get supported hotkeys, like O or even the hotbar ones (they get unusable for normal use then though)

remote chasm
#

you can only capture specific actions, not key presses, and those actions are defined client side

unborn nebula
#

Can confirm. Custom keybinds are not currently possible

remote chasm
#

otherwise you'd just be able to straight up keylog people

versed basin
#

yeah

remote chasm
#

there are a couple of options on how to handle it safely, but all we can do is wait for hypixel to implement one of those

versed basin
#

any of you know if they plan to add custom keybinds, so players can bind test/commands to them?

unborn nebula
#

They do, yes, it's one of the most requested features from modders

remote chasm
sterile forum
#

You could add skills to the toolbarnumbers if you are willing to sacrife the block spaces. Is the closest i can think.

remote chasm
#

if you come from minecraft, you need to get out of "this needs to be a command" headspace. we have options here

versed basin
remote chasm
#

hiding them with key strokes would be enough i guess
nope, no need to engage command system at all

versed basin
sterile forum
#

You are not hiding them you qre making interactions/events.

remote chasm
#

it's still jank, hidden or not.

I'd rather just see an api to add custom interaction types. So rather than saying "key x executes y command", server tells the client that there is "custom_action" action, please bind it to some key you like

sterile forum
versed basin
#

yeah, this all feels like a bandaid πŸ˜„

remote chasm
#

no need for command payload, parsing and processing. "this needs to be a command" is not a valid approach here

sterile forum
#

It is but if you dont want to wait.

versed basin
remote chasm
#

we can alerady do custom interactions with currently available keybinds. right click on most blocks is "free" for example

sterile forum
#

I rather be able to build test and replace than wait. ^^

#

Right click or o could give a menu with choices not great for fastpace but infinite options.

remote chasm
#

in my plugin I just add "Secondary" type interaction to all chests to quick stack to clicked chest. but it's a charged interaction, so if you hold it down for a second, you stack to all nearby chests instead

versed basin
#

im trying to implement moba like skills, so fastpace is a requirement, well im just gonna wait and develop the rest

remote chasm
#

iirc there are 2 unused skill actions

#

Ability1 is Q by default, but there are also Ability2 and Ability3 which are not bound by default (?) and you can just enable them for blocks, items or unarmed by just adding them to the base interaction structure

remote edge
#

hello everyone πŸ˜‰ I try to setup a basic plugin from a template found in the Hytale documentation and i can't run server with the plugin cause of joptsimple.OptionArgumentConversionException: Cannot parse argument of my main plugin function.
I am a starter java dev so some basic things could be missing .. πŸ˜…

remote chasm
#

it should tell you exactly which line the issue is in

remote edge
# remote chasm paste a full stacktrace and code it points to if possible
 ./gradlew runServe
...

> Task :runServerJar FAILED
joptsimple.OptionArgumentConversionException: Cannot parse argument 'C:\Users\mohlc\Documents\hytale-template-plugin\build\libs\ForgottenTemple-0.0.1.jar' of option mods
        at joptsimple.AbstractOptionSpec.convertWith(AbstractOptionSpec.java:92)
        at joptsimple.ArgumentAcceptingOptionSpec.convert(ArgumentAcceptingOptionSpec.java:277)
        at joptsimple.OptionSet.valuesOf(OptionSet.java:223)
        at com.hypixel.hytale.server.core.Options.parse(Options.java:362)
        at com.hypixel.hytale.LateMain.lateMain(LateMain.java:18)
        at com.hypixel.hytale.Main.main(Main.java:43)
Caused by: joptsimple.ValueConversionException: Path must be a directory!
        at com.hypixel.hytale.server.core.Options$PathConverter.convert(Options.java:448)
        at com.hypixel.hytale.server.core.Options$PathConverter.convert(Options.java:429)
        at joptsimple.internal.Reflection.convertWith(Reflection.java:124)
        at joptsimple.AbstractOptionSpec.convertWith(AbstractOptionSpec.java:90)
        ... 5 more
...
#

i can paste full output because i can send more than 2000 chars here xd

remote chasm
sterile forum
#

its so funny. Put on a event tutorial on youtube in the background. First thing he covers is how to prevent a player from breaking blocks. πŸ˜›

remote edge
#

I don't think the problem is with the configuration, but rather with my plugin, since I can build the .jar file, but when I add it manually, my map doesn't launch. I'm not doing anything special in my plugin, just logging.

#
/**
 * Main plugin class.
 * @author ymohl-cl Oxy
 * @version 1.0.0
 */
public class ForgottenTemple extends JavaPlugin {

    private static ForgottenTemple instance;

    /**
     * Constructor - Called when plugin is loaded.
     */
    public ForgottenTemple(@Nonnull JavaPluginInit init) {
        super(init);
        instance = this;

        getLogger().at(Level.INFO).log("[TemplatePlugin] Plugin loaded!");
    }

    /**
     * Get plugin instance.
     */
    public static ForgottenTemple getInstance() {
        return instance;
    }
...
#

and if i define the path manually, i have the same error

hytale_home=file:/C:/Users/mohlc/AppData/Roaming/Hytale

With a random path i have an other error which say hytale installation not found

neat pelican
sterile forum
#

Yeah i am probably way off

nova bronze
#

what if I like typing commands q.q

austere cloak
#

Is there a way to execute code on shutdown/player exits world? I want to remove NPCs I spawned before

neat pelican
# austere cloak Is there a way to execute code on shutdown/player exits world? I want to remove ...
  • ShutdownEvent: Pretty much the last thing that gets called in the lifecycle. I believe the worlds have already been shut down so you can't modify NPCs anymore.
  • DrainPlayerFromWorldEvent, RemovedPlayerFromWorldEvent (next update): These are closer to what you're looking for, but the former only gets called in the case where a world is drained of all players at once.
  • RefSystem<EntityStore>: This has an onEntityRemove method that gets called any time an entity is removed from a world. I believe this is what you're looking for.
austere cloak
neat pelican
#

Check if HytaleServer.get().isShuttingDown() is true

sterile forum
# nova bronze what if I like typing commands q.q

In the end, what ever you do that ends up with the result you want to a performance that is acceptable you have done it right.
There is no right or wrong in software development if you solve the task at hand, only opinions.

nova bronze
#

unless you make ai do it for you

sterile forum
#

Well that falls on the fact that you have no idea about the performance requirements or whether the thing you asked for actually did the thing you asked.
I think someone stated that the wide adaption of AI code in software and central systems have backed cybersecurity with about 40 years.

#

CODECS became a lot easier when someone said it was essentially just
"Type, Setter, Getter"

#

on repeat.

#

where the type can just be another codec as well.

remote chasm
#

no rocket science

sterile forum
#

Yeah, its just that java is so damn verbose, it's not obvious to figure out what a tri consumer actually is.

verbal ginkgo
#

I would like to speak with a Hytale developer about the server instability, crashes, and chunk loading errors. The developers of my server managed to resolve these issues. If you want help resolving this problem, then contact me on Discord. We want to help the Hytale developers make the game stable.

neat pelican
near onyx
maiden relic
#

Someone will use AI to scrape it. πŸ˜‚

neat pelican
near onyx
#

well then i guess i missed that part πŸ˜‚

neat pelican
#

Yeah we will see how the contribution workflow will turn out. And how much capacity they have to review and accept stuff

maiden relic
#

I wonder if this is going to be the beginning of forked servers then. (e.g. PaperMC, Spigot)

near onyx
void wagon
#

Is the layering in Blockbench completely borked? I made a selection, and now I have a permanent blue outlined selection layer... and if I delete it, well... it clears the layer it was a selection of.

hexed valley
#

Hi guys do you know how to add opacity to a background in hytale UI for a label? Ive seen people using "#ffffff(0.5) for the opacity but it didn't work for me :/

surreal orbit
#

spectator

knotty vigil
#

Definitely is to come, I'm sure...

eternal spade
#

I have models for an anvil + anvil with a molten ingot on it, is anyone aware of what I can do/modify to make it so it changes textures/model or becomes animated similarly to how the furnace is?

austere cloak
#

How can I execute a command in world context (java)? So not for a specific player

neat pelican
austere cloak
neat pelican
#

What command string?

#

Oh I see

austere cloak
#

I want to execute a command like /ambience setmusic

neat pelican
austere cloak
knotty vigil
#

I'm sure there's a way to execute commands via code somehow though.

austere cloak
#

I think they are creating custom commands with AbstractCommand etc. but I want to execute existing commands

neat pelican
#

sorry for the confusion

austere cloak
knotty vigil
austere cloak
knotty vigil
#
AmbienceFX ambienceFX = (AmbienceFX)this.ambienceFxIdArg.get(context);
AmbienceResource ambienceResource = (AmbienceResource)store.getResource(AmbienceResource.getResourceType());
ambienceResource.setForcedMusicAmbience(ambienceFX.getId());
austere cloak
austere cloak
#

Well, it seems that the commands "/ambience setmusic" and "/environment" are buggy. It won't work even with ingame prompting

#

For example:

/ambience setmusic Mus_Goblin_Army

And it says"World forced ambience music set to Mus_Goblin_Army" but nothing changed

#

And

/environment Goblin_Army

says "you haven't made a selection"

#

same for build in music and env

neat pelican
austere cloak
neat pelican
austere cloak
#

Before the last hytale update the environment temporally changed when you selected a env in the asset editor. So I think there should be a way

neat pelican
#

What's wrong with just playing audio to your players directly? it feels like you're trying to abuse all sorts of unrelated systems that play audio in some way or antother

#

Are you actually trying to change the environment? Or just want to play audio to players?

austere cloak
neat pelican
#

you can update the selection with BuilderState#pos1(), .pos2(), .update(), etc, apply an environment via .environment(), and undo it with .undo()

#

just be careful to not lose your undo when doing multiple changes

austere cloak
austere cloak
neat pelican
#

Correct me if I'm wrong, but Environment looks like it's applied to every individual block

#

Via EnvironmentChunk (Component<ChunkStore>) and EnvironmentColumn

austere cloak
neat pelican
#

You could edit worldgen to force only a single environment to be used, and then edit the asset itself

austere cloak
#

So the question is whether it is possible to to force a specific environment globally at runtime

#

The world gen V2 graph is not really runtime it seems that changes trigger a command to regenerate chunks. But chunk regeneration for simple environments change at runtime would be bad

austere cloak
eternal spade
#

is anyone aware if there's some sort of listener for something like onCraft, via the asset editor or otherwise somewhere? I want to do something when a player hits craft for an item

eternal spade
#

If I want to make a custom interaction, do I need to code that?

warped sentinel
#

does anyone know of a way to manually change a pre existing's biome type. like in an already generated world, switching one biome to another?

sterile forum
sterile forum
sterile forum
warped sentinel
sterile forum
warped sentinel
#

simply to remove an areas spawns completely so I can set my own

sterile forum
#

a listener for when a spawner component is added, check the env its in and remove it if its the wrong one.

warped sentinel
sterile forum
#

design and code yourself.

warped sentinel
sterile forum
#

At least i dont think there is a command for it.

#

Once a world have been created, you would have to change the world type and trigger a regen right?

#

Or could one just toss the world data in the folder?

minor elbow
#

Hi !
Anyone know how to group block and transform to entity ?

#

Or at least, how do I create an entity? Or register new entity ?

neat pelican
# minor elbow Hi ! Anyone know how to group block and transform to entity ?

An entity is a collection of components. Check out NPCPlugin.get().spawnEntity() for an example:

  1. Create a holder via Holder<EntityStore> holder = EntityStore.REGISTRY.newHolder();;
  2. Create components (Component<EntityStore>) and attach them to the holder: holder.addComponent(componentType, component)
  3. Add the holder to the store to spawn the entity: Ref<EntityStore> ref = store.addEntity(holder, AddReason.SPAWN)
    The resulting Ref<EntityStore> is the handle to your entity
neat pelican
minor elbow
sterile forum
#

I migh have looked at a bad example. That one i saw sent in one env or env id for a column retrived by x,z in the chunk. I assumed it took a base env as config data and from it read out the distinct y level details.

But it could be other examples do multiple passes and only set env for the area it manipulates.

Yeah otherwise you couldnt have a mixed chunk environment...

sterile forum
#

The core generation logic is not super complex. But it opens up for so many different implementations.

I am digging in to this more tonight to make a specific world generator for my needs and probably realize i been wrong about a lot all along. ^^

neat pelican
minor elbow
#

I'll go check the function, thanks KweebThumbsUp

sterile forum
#

You can extend from Entity for simpler visual entites, LivingEntity for... well yeah what its named. If you are not going for a NpcEntity.

But then the codec for your entity require you provide the same data as the base requires.

minor elbow
#

The idea is to have an entity that takes the place of a block

sterile forum
#

Yeah judgement call then if you gain anything from extending the predefined Entity or if its just a waste of data.

minor elbow
#

Well, I think a simple entity will be sufficient.

hexed valley
#

How can we add opacity to a background with UI? There is no opacity field in the style nor it is possible to add #fffff(0.5) to background hex color?

sterile forum
#

And the hex doesnt also take 8 instead of six hex values?

neat pelican
sterile forum
#

So if (0.5) doesnt work 8 values wouldnt either i guess?
Is it that you have some additional element behind that shows or that the element is a compound element and you just set parts of it transparent?

#

Or do as i do constantly? change the ui file before i close the server and it syncs back the file to before the changes where made and i end up starting with the old values?

#

Dani. You are the most knowledgable Java dev i know.

Any suggestion or best practice for code/file generators in java?

neat pelican
#

I just use IDEA's Alt+Insert contextual generators

sterile forum
#

Ah ok. I was considering something that might autogenerate event bindings and ui references from named parameters in a ui file or the reverse.

But i guess i could figureout a gradlestep that just runs some logic and output to a file when triggered.

hexed valley
#

Im gonna see where that comes from then

neat pelican
#

make sure to enable debug mode in your client settings

austere cloak
#

Is there a way to change a model of a npc/entity at runtime? Or exchange a npc with another?

I've found this but there is no setter method like SetModel()...

ModelComponent model =
store.getComponent(Ref, ModelComponent.getComponentType());

#

Maybe this way?πŸ˜… I remove the model component and add a new one.

ModelAsset modelAsset = ModelAsset.getAssetMap().getAsset("NewModel");
        Model model = Model.createScaledModel(modelAsset, 1.0f);
        Ref.getStore().removeComponent(Ref, ModelComponent.getComponentType());
        Ref.getStore().addComponent(Ref, ModelComponent.getComponentType(), new ModelComponent(model));
brave mural
#

Does anyone know how i can trigger my own custom events to other plugins like hytale does?

Do i need to use EventBus ?

unborn nebula
#

Just plugin interaction?

brave mural
#

yea custom event something that i trigger in one plugin and for example react in another plugin

unborn nebula
#

sounds interesting - I don't know the answer but I'll be watching

sterile forum
#

You can register global events i think that goes outside ecs or ecs events.

I am still not sure if you need some reference if linking to other mods events. There is some type discovery in java i dont quite get.

spark sail
#

Hi guys does any one know if I can UICommandBuilder.set("#id.Style.TextColor", ...) is this supported?.

neat pelican
austere cloak
oblique onyx
#
  "Spawners": [
    {
      "SpawnerId": "Falling_Leaves_Crystal_Particles",
      "FixedRotation": true,
      "PositionOffset": {
        "Y": 0
      },
      "TotalSpawners": 1,
      "LifeSpan": {
        "Min": 0,
        "Max": 0
      },
      "SpawnRate": {
        "Min": 0.01,
        "Max": 0.05
      },
      "StartDelay": 0,
      "WaveDelay": {
        "Min": 1,
        "Max": 5
      },
      "MaxConcurrent": 5
    }
  ],
  "LifeSpan": 0,
  "CullDistance": 50,
  "BoundingRadius": 0,
  "IsImportant": false
}
#

what do i need to change if i want more particles?

sterile forum
austere cloak
sterile forum
#

Spawnrate

flat nest
#

hello! how do i identify which chunk to delete? like is the coordinates in the game the same as the region.bin files it stores in the server

viscid lily
#

hello how can i add commands node "coins.admin" like this. without "com.example.coins.admin"?
or should i remove com directory as a what i want?

sterile forum
#

what is a commands node?

viscid lily
sterile forum
#

You are talking about the text translations?

neat pelican
viscid lily
#

nvm i fix it thx

neat pelican
viscid lily
unreal dust
#

Is update 4 pre-release error handling broken?

[2026/03/05 15:38:28   INFO]                    [HytaleServer] Shutting down... 9  'client.disconnection.shutdownReason.pluginError.detail'```

How is one supposed to know which plugin did error if the error that tells what error did error is also having an error?
sterile forum
#

did you look in the log files and look in the console output, did you run the server with --debug?

maiden relic
#

I was gonna say, maybe they lowered the default verbosity.

unreal dust
#

--debug doesn't work with aot cache letme see if I can disable that

unreal dust
sterile forum
#

i assumed you where running the server trough an idea with gradle runserver.

unreal dust
#

ah no just cloned release into pre-release and seeing what errors it's facing, but it's not letting me where which plugins are triggering error

maiden relic
#

maybe --log=debug

unreal dust
#

client.disconnection.shutdownReason.pluginError.detail this seems to be a bug, it's unable to throw the error

sterile forum
#

but if you are just flipping from release to prerelease with old mods, then you should expect everything to break.

neat pelican
unreal dust
#

yeah just preparing need to get past the mods that proper broke because I know there's a bulk of mods no longer being maintained

sterile forum
#

That is true.

unreal dust
sterile forum
#

But in that case you could add them one by one instead of all at one go and hope.

maiden relic
unreal dust
#

yeah it makes this much much harder to go through to find what mod is it, funtimes ahead

sterile forum
#

Well you could also do the binary search, and half of them, if it still breaks, take half of them, once they are validated you can start breaking down the other onces. Then you might get fewer checks for broken ones.

neat pelican
#

but I doubt that'll help in this case

unreal dust
#

isn't all enabled by default when the config is empty?

sterile forum
#

in release i would expect it to be severe or maybe warning

neat pelican
#

No, when I log in my plugin, nothing at FINE or lower get's logged unless I pass --log MyMod:FINEST

prime echo
#

I think there's a big problem with the Attitude System, and the best example would be: You can't easily have "other NPCs" treat an NPC as it would treat the Player.
The NPC (Ex: Skeleton_Fighter.json) or the template it's derived from (ex: Template_Intelligent.json), can have an AttitudeGroup set to [something] or "Empty".
It is often "Empty". In that case Attitude will depend on the defaults: DefaultPlayerAttitude ("Hostile" in this case) and DefaultNPCAttitude ("Ignore" in this case).
The NPCGroup(s) the NPC belongs to is only used in the "target" portion of an AttitudeGroup definition(Ex: Hostile : GroupX, GroupY)

I created a new NPCGroup called "PlayerTeam", and I added/modified AttitudeGroup(s) to have specific attitudes towards this group and vice-versa.
But unless I "override" every single NPC (or at least the Templates) to change the AttitudeGroup from "Empty" to one that "has" Attitude definitions for the PlayerTeam, I cannot have other NPC treat my NPC as it would the player.

What WOULD make sense to me would be to have the NPCGroup (and other Groups) determine the Attitudes towards other groups. Or at LEAST permit the NPCGroup to override and AttitudeGroup from the NPC/Template. (fitting today's environment of group identity politics ?!)
It would allow you to create a group, assign a bunch of templates/NPC to that group and presto you have Attitude management for that any and all members of that group.

Or for this exact use-case: Add a parameter in the NPC definition that would set this NPC as a "PlayerAlly", which would cause the DefaultPlayerAttitude to be used instead of the DefaultNPCAttitude

But if i'm missing an easy solution, please enlighten me. I'm actually hoping for that.

unreal dust
#

Ok pre-release deff need to be updated again before release because no way the error handling is working.

[HytaleServer] Shutting down... 6 'client.disconnection.shutdownReason.validateError.detail' how is one supposed to make sense of it D:

hoary viper
#

Hi, any one know how i can restrict a player form interaction with a block (F key) and also restrict breaking of the block?

nova bronze
#

which comes first? the block or the interaction? lmao

hoary viper
#

block πŸ˜…

nova bronze
#

I never miss an opportunity for a dumb joke

remote flicker
unreal dust
# remote flicker That message is the one that gets displayed in the client if its the one that bo...

I'm tad confused, the validateError will output the plugins it's

this one client.disconnection.shutdownReason.pluginError.detail does not, I was removing mods until I found what was causing that sudden shutdown without further logging, after removing the culprit that It got to client.disconnection.shutdownReason.validateError.detail

edit: Ok it was Simply Trash causing the boot fail, the server just continued to boot normally past the Failed to setup plugin message so it didn't look like that had anything to do with the shutdown.

verbal carbon
#

Hello, I would like to know how to solve this problem. I don't understand, even though I imported my 3D model correctly and I think I did everything right, I can't figure out how to easily create potions. For now, I based it on the bandage, thinking it would be simpler, but now my model looks weird (unfortunately, I can't post a screenshot here). Could you help me solve my problem?

#

-# I see that the @

velvet meadow
#

How do you get the spawn point of the world? I can only find methods which pass world and uuid (of entity?) as parameters. I assume every world has a spawn point to begin with?

verbal carbon
#

Can someone help me fix my texture bug, please?

near onyx
sterile forum
hoary viper
#

UseBlockEvent is this for every kidn of intraction to a block ?

pressing teh F key on a chest bench or bush ?

sterile forum
#

Block the interaction.

hoary viper
#

We dont have thing like TNT or Hoper right in this game ?
just thinking of edge cases

nova bronze
#

there's perm systems if you're not trying to dev something

brave mural
#

Does anybody know how to get a entity component in the event player connect and player disconnect?

neat pelican
# brave mural Does anybody know how to get a entity component in the event player connect and ...
public class WelcomeSystem extends RefSystem<EntityStore> {

    @NullableDecl
    @Override
    public Query<EntityStore> getQuery() {
        return PlayerRef.getComponentType(); // Only run for Players
    }

    @Override
    public void onEntityAdded(@NonNullDecl Ref<EntityStore> ref, @NonNullDecl AddReason addReason, @NonNullDecl Store<EntityStore> store, @NonNullDecl CommandBuffer<EntityStore> commandBuffer) {
        var component = store.getComponent(ref, myComponentType);
    }
}
#

This is run every time a player joins and leaves a world

brave mural
#

Mhh, i need it when he joins / leaves the server

neat pelican
#

that's before and after the player is in the entitystore, so too early and too late to interact with it

brave mural
#

Does that also get triggered like leaving world and entering world

#

when he joins / leaves?. Has to right ?

neat pelican
#

if the server has no worlds for example, the player connects and disconnects (due to error) without ever joining a world

brave mural
#

Mhh, well i want to save data to a database whenever player joins / leaves the server but i need access to the component system which doesnt work i suppose

brave mural
#

when swapping between worlds?

neat pelican
#

haven't tested it

shell hawk
#

Is someone able to explain to me how i have to register an Entity Interaction?

austere cloak
#

Why is this not working?
The code gets executed and no message or error in the log.

PersistentModel pModel =
store.getComponent(Ref, PersistentModel.getComponentType());

    ModelReference model = new ModelReference("Model_Form2", 1.0f, null);
    pModel.setModelReference(model);
tardy vortex
#

does anybody know why this is happening sometimes, but not always? most of the time it will load just fine, but sometimes this just happens for seemingly no reason

[2026/03/05 22:12:19   INFO]                 [World|hub] Added world 'hub' - Seed: 1769135867403, GameTime: 0001-01-22T06:12:51.031187711Z
[2026/03/05 22:12:19   INFO]            [SimpleClaims|P] Registered world: hub
[2026/03/05 22:12:19   INFO]            [SimpleClaims|P] Registered map for world: hub
[2026/03/05 22:12:19   INFO]                [Universe|P] Removing world exceptionally: hub
[2026/03/05 22:12:19   INFO]                 [World|hub] Removing individual world: hub```

Its not even alive long enough for this check to see it
``` Universe.get().getWorldConfigProvider().load(finalPath, worldName)
                        .thenCompose(config -> Universe.get().makeWorld(worldName, finalPath, config))
                        .thenAccept(w -> {
                            if (w != null && w.isAlive()) {
                                LOGGER.atInfo().log("World '" + worldName + "' loaded successfully on attempt " + attempt);
                                registeredWorlds.add(worldName);
                                activeOperations.remove(worldName);
                                processTeleportQueue(worldName, w);```
brave mural
#

Can someone explain to me how Armor is not in the default stat map ? Where does that come from ?

tardy vortex
# tardy vortex does anybody know why this is happening sometimes, but not always? most of the t...

then here is the exact same code just working

[2026/03/05 22:31:33   INFO]             [DungeonSystem] isDungeon check for 'hub': false
[2026/03/05 22:31:33   INFO]     [AdminManagementSystem] Loading world 'hub' (attempt 1 of 3)
[2026/03/05 22:31:34   INFO]                 [World|hub] Loading world 'hub' with generator type: 'HytaleWorldGenProvider{name='Default', version=0.0.0, path='null'}' and chunk storage: 'DefaultChunkStorageProvider{DEFAULT=IndexedStorageChunkStorageProvider{}}'...
[2026/03/05 22:31:34   INFO]                 [World|hub] Added world 'hub' - Seed: 1769135867403, GameTime: 0001-01-22T06:12:51.031187711Z
[2026/03/05 22:31:34   INFO]            [SimpleClaims|P] Registered world: hub
[2026/03/05 22:31:34   INFO]            [SimpleClaims|P] Registered map for world: hub
[2026/03/05 22:31:34   INFO]            [WorldGenerator] Loading world-gen with the following asset-packs (highest priority first):
[2026/03/05 22:31:34   INFO]            [WorldGenerator] - [  0] Hytale:Hytale:0.0.0 - [C:\Users\Administrator\Desktop\Server\Assets.zip]
[2026/03/05 22:31:34   INFO]            [WorldGenerator] Set prefab-loader config: path=/Server/World/Default, store=ASSETS
[2026/03/05 22:31:35   INFO]            [WorldGenerator] Initialized ChunkGenerator-1 executor
[2026/03/05 22:31:35   INFO]            [WorldGenerator] Found location for unique zone 'Zone1_Spawn' -> Position: {392, 310}, Score: 86.80%, Time: 0ms
[2026/03/05 22:31:35   INFO]            [WorldGenerator] Found location for unique zone 'Zone1_Temple' -> Position: {627, 226}, Score: 81.83%, Time: 0ms
[2026/03/05 22:31:35   INFO]               [World|hub|M] Initializing world map generator: com.buuz135.simpleclaims.map.SimpleClaimsChunkWorldMap@3b3bb79b
[2026/03/05 22:31:35   INFO]               [World|hub|M] Generating Points of Interest...
[2026/03/05 22:31:35   INFO]               [World|hub|M] Finished Generating Points of Interest!
[2026/03/05 22:31:35   INFO]     [AdminManagementSystem] World 'hub' loaded successfully on attempt 1
[2026/03/05 22:31:35   INFO]          [InventoryManager] Saved ADMIN inventory for GrazedGaming
[2026/03/05 22:31:35   INFO]    [GlobalInventoryWatcher] Saved inventory for GrazedGaming leaving world default
[2026/03/05 22:31:35   INFO]             [PlayerSystems] Removing player 'GrazedGaming (GrazedGaming)' from world 'default' (1b515282-db5d-4dc1-8ccd-1357bbb99d59)```
neat pelican
spring cedar
#

Was anyone able to make chests drop items from a custom spawn table?

unreal dust
#

Any alternative to Weapon Stats Viewer plugin? Hasn't been updated sadly

gusty hull
spring cedar
#
  • the chest needs to respawn which is making the whole process harder
gusty hull
spring cedar
#

Yeah

#

I’ve looked around in the Asset Editor but I wasn’t able to find anything useful

gusty hull
#

This will more than likely require a mod/plugin and not an asset to work

spring cedar
#

That was expected =/

#

Thanks

gusty hull
#

Is there not one on CurseForge already?

oblique onyx
#

nvm, got this too work

spring cedar
gusty hull
#

what is your vision

spring cedar
#

Have an admin place chests that have randomly generated loot

The chests respawn the loot after x amount of time

gusty hull
#

Let me see what I can do for you

spring cedar
#

Amazing, thanks!

heady locust
#

Does anyone know where I can find the list of all Item Ids in a text file?

sterile forum
#

Is the documentation old or recently changed or did i just do something weird?
I added a component in a on entity add event on a player entity, with add Component. It saves it loads etc.
But reading the official documents afterwards it states that the component will only be added in memory and not saved and should be added with put in case one wants it to save?

shy narwhal
#

It doesnt seem to mention, what happens once your refresh token expires after the 30 days?

#

Am I expected to have to log in via a browser and grant a new one? Like... do I write it in my calendar to go and get a new refresh token twice a month?

Is there really no way to automate extending the refresh token, or using it to get another before it has expired?

sterile forum
shy narwhal
sterile forum
#

i think its the main oauth work flow when utilizing refresh tokens.

dry pagoda
#

does anybody know why calling:
velocityComponent.addInstruction(new Vector3d(0, 129, 0), null, ChangeVelocityType.Set);
on a player works fine but :
velocityComponent.addInstruction(new Vector3d(0, 130, 0), null, ChangeVelocityType.Set);
breaks completely and just keeps sending the player infinitely upwards

remote flicker
remote flicker
sterile forum
knotty vigil
sterile forum
# knotty vigil So say someone has a rank or type of currency, would you recommend me to use a d...

Component system is meant to make things smaller, and more losely coupled, if you intend to store data for that server for that user, i would say it would be stored on the player, I would probably use a component. in the majority of cases I would say, never use a database, unless you have very good reasons to do so. I would even say dump a file to disk with your own logic before going trough the trouble of setting up a database.

Unless you need very specific cross mutliple running servers tracking of data.

If you add a component to a player and set up det codec correct it will save all the component data to disk in that players file that already gets created each time the player is saved by default.
Using a datbase, that would mean setting up a database mapping for user on ids, creating up the tables making sure read and writes happen at the right time, and all other database angst and queries.

The core idea of components is that you can have specific system that applies just the logic that is needed without having to know the rest of the entity structure, that only need to get the relevant components in question to do said logic, without needing to pull all other data, also they get organized better in memory, and could if done right give quite the performance boost.

#

The systems essntially comes in the flavor of triggered by event, or triggered by tick depending on what you need, might be cases i miss.
So if you need a ui that track all players current currency in realtime, that would probably be a ticking system talking with a custom ui, using data from the currency component and player component.
If you are shopping, being just a one off thing, it would probably be a AttemptPurchase event, that might change into other events as each ImplementedEventHandler, does it thing and decides what happens next, or a single larger event doing it all. Depends a bit on preference as well.

knotty vigil
#

First of all, I want to say thank you for this detailed response. It most definitely cleared the questions I had. I have nothing to say. You answered that well πŸ‘

unreal dust
#

Does anyone know if Violet will maintain the furnishings mod update before the release update next week?

The furnishing mod fails asset validation on update 4, and I'm not sure why. But if can't fix before the update it'll fail every placed object

#

The update 4 server is more strict, it will refuse to boot if the mod ain't removed unlike attm.

unborn nebula
unreal dust
unborn nebula
#

If you mean on single player worlds, there's a checkmark in the "Advanced Options" for the world

unreal dust
#

doing it with a lauch parameter yeah --accept-early-plugins --auth-mode authenticated --assets Assets.zip --bind etc, but it refuses the parameter

it's a dedicated server on linux

#

I just searched on discord just saw someone else asking if they removed this option on pre-release

unborn nebula
#

well. that sucks.

unreal dust
#

hypixel be like authoritarian regime on modding, it's either the modders update every update or no deal xD

#

I just bringing this up because the last thing I want is furniture content mods failing (macaw's one fails too) and if the modder doesn't provide the update before release there's no going back once placed blocks fail

#

I fear violet's furniture will be one of those, so finding what needs to be done to fix, I'll just try to fix on my side beforehand

unborn nebula
#

to be fair though people shouldn't be deploying actual servers on pre-release

unreal dust
#

I need to go because how else will you know what breaks and prepare for an update set to release next week

a side test server not the main server on pre-release ofc

unborn nebula
#

ok so... now you do know which one will break, so... wasn't that a successful test?

unreal dust
#

I know it breaks, the problem is, unless I want a tsunami of purple blocks decorating everyone's buildings I must find a way to have the mod survive update 4

unborn nebula
#

I'd say the only real way to know whether a plugin will be updated will be to look on the comment section in curseforge and see what's gong on there. Unless you want to ping violet directly. that's also an option.

unreal dust
#

It's a hugely popular mod violet will surely be pinged, after it breaks and there's no recovery, the only way is updating during pre-release before servers update to update 4

#

right now almost nobody knows what's ahead of them if the furniture mods break, the updates need to be provided ahead of time or placed blocks fail

unborn nebula
#

@nova bronze would you like to weigh in ?

narrow flare
#

Does anyone know how to hide all entities except a certain one for a player?

unreal dust
#

it's not that violet :p

unborn nebula
unreal dust
#

it's the hypixel violet, she got hired

#

On update 3 the only issue was the validation warnings, that can be skipped. This time it seems to be something more strict, if it can be bypassed fine but that skip option seems to have been removed, perhaps someone will find a workaround

maiden relic
#

Looking at her mods, I can see why they hired her tbh

unreal dust
#

Oh I just told macaw he'll fix it on his side and let violet know \o/

maiden relic
#

who is that?

unborn nebula
unreal dust
#

macaw? Just search macaw in curseforge xD

nova bronze
#

lmao

#

you guys can skip mod validation too btw

unreal dust
sterile forum
#

Probably those that didn't fix calls that where marked deprecated functions in code last time around.

unreal dust
#

yeah maybe it's that. On update 4 the server doesn't log these errors by default, it just lists following mods failed: X X and X and you have to remove them to boot

remote flicker
unreal dust
# remote flicker Can you share/elaborate because the logs absolutely should have why it failed

Ok for example Violet's furnishings mod on current pre-release, server will fail to boot, it will log this:

Mod Violet:Violet's Furnishings failed to load. Check for mod updates or contact the mod author.
[2026/03/06 16:43:28   INFO] [HytaleServer] Shutdown triggered!!!
[2026/03/06 16:43:28   INFO] [HytaleServer] Shutting down... 6  'client.disconnection.shutdownReason.validateError.detail'```
When I search the log for messages related to the furnishings mod, it only shows the one where the pack loads, and this error at the end. I'll need to dig through every error on the log it didn't mention the mod on the error message perhaps
remote flicker
#

This is what I get when I tried to load it

#

these are all the asset errors which is why the mod is not loading

unreal dust
remote flicker
#

If you want to make the world still load you can use --ignore-broken-mods in the server arguments, this replaces the old --skip-mod-validation and is named better for what it does.

Or you could extract the asset pack's zip so its a folder, so the pack is "mutable".
When a pack is mutable we allow it to load with errors, and when its mutable it also allows you to modify the assets with the asset editor so you could possibly fix the issues yourself if you need.

nova bronze
#

yes

#

that's what I said earlier too

#

skip mod validation was more clear

unreal dust
#

that's helpful thanks! Yeah I was confused on it refusing the skip tag so it just got renamed

#

gonna filter my logs better for the SEVERE lines shouldn't have missed those error lines

remote flicker
nova bronze
#

that's

unreal dust
#

on linux dedi at least you don't need to do anything to skip the mod versioning, that changed from that initial confusion with update 3 didn't it?

#

I just went mod by mod .jar and manually edit the manifests anyway

brave mural
#

How do you increase an entities Max HP ? Via code? I could not find a way in the entityStatmap to setMaxValue or something

austere cloak
#

Since Update 3

remote flicker
austere cloak
# remote flicker Do you have a basic example or way to replicate this?

Maybe this helps:

  1. Install any mod which adds content like weapons
  2. Create a new world
  3. Create a pack mod (Don't know if this is important but the first letter should be earlier in the alphabet than the other mod).
  4. Duplicate an Item or Weapon from the installed mod to the newly created pack
  5. Add the installed mod as dependency in manifest.json
  6. Pack the custom mod to a .zip
  7. Move it in the global mods folder
  8. Create a new world with the custom mod and with the dependency mod
  9. The interaction will not work and logs say missing interaction
#

And maybe interesting to know it worked a few times in my world where I am creating the mod (No missing Interaction etc ). But never when I packaged it to a .zip.

tardy kelp
#

Is PlayerMouseButtonEvent called by the server when you interact with an entity?

shy narwhal
knotty vigil
#

@sterile forum Sorry to bother you but I figured you would be the best to answer this question with what we were talking about earlier today.

I am wondering how you would organize shared data. Lets say each user can create a world, nobody can join/edit that world unless the owner allows the user to do so via inviting them or letting them temporary visit. Where would I store the data for the world data so the server knows who's the owner and who is coop in the world, etc. Do you understand what I am asking?

knotty vigil
#

There's an interaction event I believe

tardy kelp
knotty vigil
tardy kelp
neat pelican
remote flicker
spare meteor
#

@tardy kelp Might want to check out InteractionModule

#

ItemUtils.interactivelyPickupItem

frustrates me so much, the event triggers but modifying the item doesn't work since it never reads the itemStack from the event...

spare meteor
#

What catagory am I supposed to put it under?

neat pelican
#

I'd do feedback

#

Right now, it's intended behavior with being able to override it being an oversight, not a bug imo

spare meteor
#

For sure, just inconstancy when looking at other event events.

Example being ItemUtils.throwItem

knotty vigil
#

So I want to add "tags" to permission groups. What's the standard for doing so? Shall I link a database entry to the group and read off there? Or is there a way to add it to the pre-existing permission provider by hytale?

spare meteor
#

Do you mean like subgroups? or something else

knotty vigil
#

I'm thinking that I need to make my own permission provider and attach to a database.

spare meteor
#

AbstractCommand:

private List<String> permissionGroups;

groups are just strings from a quick look up, but as far as I know there is no limit to number of groups a user can have

knotty vigil
knotty vigil
spare meteor
#

Fair enough, I would have just used groups for storage and fetched what groups a user has, then modify based on groups they have

knotty vigil
#

Like the admin would be able to easily do /rank setprefix <rank-name> <prefix> with the predefined groups from the hytale permission system.

spare meteor
#

Gotcha Gotcha, would need to look for what storage mechanisms the game has. I know there is the Config which could be written and read on boot, and saved while running.

com.hypixel.hytale.server.core.util.Config: While this meant for setting for your mod, I can see a case where you could design it to be a datastore for such information

remote flicker
remote flicker
knotty vigil
remote flicker
#

Yeah you would probably want to implement your own PermissionProvider so you can store the data in a different way. Doesn't need to be a database but at least in a different structure so that you have that extra data you want to save for a group.
You don't have to do it that way though, you could simply store extra data that uses the group name as the key.

Since you would need a way to fetch that extra data anyway it doesn't really matter if its in the same thing the server uses or a separate thing alongside it.

neat pelican
#

One of the most common things that trips up people here

main valley
#

has anyone hosted, a hytale server using the discord? A discord I'm in just got Game servers featured enabled so, we are wondering how the experience is, etc...

near onyx
gusty hull
gusty hull
#

I have not seen one yet.

acoustic shuttle
#

Is it possible to create custom visuals (in world space, not HUD) that are visible through blocks like health bars?

gusty hull
acoustic shuttle
gusty hull
#

I haven't seen any, but haven' t looked for that specific thing.

gusty hull
acoustic shuttle
knotty vigil
knotty vigil
gusty hull
cerulean harbor
knotty vigil
#

Are instances meant to be temporarily worlds that are unrecoverable/not meant to be saved, something like bedwars, skywars, etc? And worlds meant to be more permanent saves like survival worlds, skyblock, tycoon’s, etc.

neat pelican
#

instances may be configured to be saved, but they're intended to be ephemeral and spun up/down on the fly

eternal spade
#

So, I wanted to make it so my bench is animated while I'm in the crafting interface so I changed the state id: crafting to StateData, my animation works as intended, however the crafting interface doesn't show up anymore and I'm not sure how to get both the interface and animate the bench at the same time

burnt eagle
#

πŸ”Œ SmartInventoryBridge – Looking for Beta Testers!
Hey everyone! πŸ‘‹

I've been working on a server plugin for Hytale that synchronizes player inventories across multiple servers – perfect for anyone building a server network.

What does the plugin do?
πŸ”„ Inventory Sync – Your inventory automatically transfers when switching servers
πŸ›‘οΈ Dupe Protection – Prevents item duplication with a freeze system during sync
πŸ—„οΈ Flexible Database Support – MySQL, MariaDB, PostgreSQL & Redis
⚑ Crash Recovery – Inventories are safe even during server crashes
🧩 Mixin-based Protection – Blocks automatic item pickup during synchronization
Who am I looking for?
I'm looking for beta testers who want to put the plugin through its paces before release! Ideally:

You run (or plan to run) a Hytale server with multiple servers
You have experience with server administration
You're willing to report bugs and provide feedback
What you'll get:
βœ… Early access to the plugin
βœ… Direct line to me for support & feature requests
βœ… Credit as a beta tester when the plugin is released
Interested? Just send me a DM! πŸ“©

quasi echo
#

why would you want a mod that lets you have the same inventory on multiple servers?

burnt eagle
#

For example, citybuild systems that are distributed across multiple servers like CB1, CB2, and so on, or when you want to keep farm worlds completely separate from the citybuild server. πŸ™‚

quasi echo
#

oh right i kept thinking about different server needs like factions or smp

burnt eagle
#

πŸ˜„

tawdry geode
#

I am trying my teeth on type 3 inventory rn, every join spawns you with the Same inventory but you can upgrade its parts

verbal carbon
#

Hi! I need some advice for my WizardTale project. I'm looking to implement:

Wands: A system so that there are several that work (visual change only).

Spells: A selection menu (wheel or list type) accessible via right-click with a wand, and I would like them to be obtainable by finding spell pages or something similar.

How would you advise me to organize this technically so that it is fluid and easy to code? Thank you!

near onyx
#

""official"" links are allowed
not github tho Hypixel_Sad

sterile forum
#

all projects on github are not offical from Hytale.

near onyx
#

well i know that πŸ˜‰ just sucks you cant share libraries or snippets or anything.
or "hey, here's my class, help me"
because ... "no advertising"

knotty vigil
# hearty sinew Wait, are links allowed now?

It’s a community page made by known people in here. I’m sure it’s fine. I believe I’ve seen it posted before. I don’t see why it would be an issue…

neat pelican
#

It's also the place where Hytale's official docs (custom ui, npcs, worldgen) currently live. That's why we asked for the whitelist

versed hinge
#

Anyone have any good resources/advice for remaking open computers in hytale?

hearty sinew
unborn nebula
unborn nebula
#

heck if you can find the opencomputers source code... would be even better

versed hinge
#

That would probably be a good first step haha

ionic ermine
#

Hi all,
If I wanted to cut a field(?) "Default Attachments" out of ModelAsset and throw it into the ApplyEffect interaction under EffectId, how could I do that? Learning Java has been going... real slow.

ionic ermine
#

If it is as simple as migrating the DefaultAttachments part of the code from ModelAsset and throwing it into the ApplyEffect Interaction, then guidance on how to do so would be tremendously appreciated!

sterile forum
#

But finding the right language, with a good vm is really important.
In the ideal world, the vm for each machine is isolated or partially isolated to that machine as well. So any crash that brings down the vm interperter due to error in one machine, only that machine crash due to the "hardware failiure" instead of bringing down the entire VM environment for all machines on the server.

void wagon
#

How might one handle breaking double beds? With single beds, you cannot break another users bed... because that just makes sense. For double beds, the story is slightly different. There are three options I can think of:

  1. Anyone can break the bed.
  2. Only owners can break the bed.
  3. Only the primary owner (first registrant) can break the bed.

I prefer 3, but it does prevent your base partner from redecorating. 2 comes with a trade off where a troll comes along, enters someone else's bed, and then breaks it. Unless there's a suitable 4th option?

maiden relic
#

Are you tracking the bed entity after ownership?

#

Like if someone picks it up, and is in their inventory, and when they place it back down they would still have ownership? Or I guess how are you determining "Ownership"

void wagon
#

Nah, ownership works in a similar way to interacting with a bed for the first time after placing it. You give it a name. That assigns your UUID to the Bed's RespawnBlock component. When it comes to double beds, it's just allowing two UUIDs to be assigned and you would be co-owner in a sense.

#

So breaking the bed would remove all owners as it would if it's a single bed. Logically, that's the simplest most vanilla-like implementation

stark holly
# void wagon How might one handle breaking double beds? With single beds, you cannot break an...

Mix a permission system with a microClaim system where you "Grant decorating" in your house with your "partner" or "Co-Dweller" and then only you two can place the bed in "home areas" which prevents the Trolling of placing beds in someone elses house and claiming them (you build that into the claim perm where only people with permissions may sleep in the bunkbed or any bed if you want) then anyone with deco or sleep perms could break it or redecorate and avoid trolling but exploring beds are free for all for anyone to break them

#

If you want to prevent Land Claim trolling where people claim large areas make it a Block you place when you First join the game and you only get one each so coDwellers can have a bigger area vs solo dwellers (Caution with your claim depth though or the claim owns it all the way to bedrock and noone can mine through the lower areas [in some cases this is a good thing but in others not so much]) you could also allow upgrading of the landclaim block for larger areas the more they play but that beets the co-dweller system cause you would have to have a radius around them that anotehr person couldnt claim in so there is room to expand

snow monolith
#

I've been stuck on this for more than one day, and your solution doesn't seem to solve my problem (marker showing on compass, but not on map ?)

        UserMapMarker userMapMarker = new UserMapMarker();
        userMapMarker.setId("user_test" + UUID.randomUUID());
        userMapMarker.setPosition(250, 250);
        userMapMarker.setName("Test marker");
        userMapMarker.setIcon("User1.png");
        userMapMarker.setColorTint(new Color((byte) 140, (byte) 255, (byte) 0));
        userMapMarker.withCreatedByName("Moi");
        userMapMarker.withCreatedByUuid(playerRef.getUuid());

        WorldMarkersResource markersStore = world.getChunkStore().getStore().getResource(WorldMarkersResource.getResourceType());
        markersStore.addUserMapMarker(userMapMarker);```
Are you spotting a error on my part ?
near onyx
#

looks about the same as my code, i would assume it would work

snow monolith
#

hum

near onyx
#

i would recommend maybe trying to get the marker by id, and try remove it first just in case its cached or something.
Ex:

WorldMarkersResource worldMarkersResource = store.getResource(WorldMarkersResource.getResourceType());
UserMapMarker oldMarker = worldMarkersResource.getUserMapMarker(id);
if (oldMarker != null) {
    worldMarkersResource.removeUserMapMarker(id);
}
worldMarkersResource.addUserMapMarker(userMapMarker);
#

then again your ID is random so that shouldnt happen

snow monolith
#

I've removed the markers before with a command so idk

near onyx
#

im le stumped sorry

snow monolith
#

Do you need to update the map or something after the command ?

near onyx
#

i have nothing in mine to update

snow monolith
#

ok ok

near onyx
#

just gonna ask a silly question, but to verify:
userMapMarker.setPosition(250, 250);
You're near that position that it would show on your map, yeah?

snow monolith
#

Yea i'm on it, also i'm running around the marker (on the compass) lol

near onyx
#

long shot, try without the color

snow monolith
#

gonna try, good idea, gonna remove some values also

sterile forum
#

It's nothing stupid like the issues people had with codecs, where it really dislikes lowercase on the first letter of keys.
Can you change SetId to "User_test" + ...?

near onyx
#

also to verify, User1 is a custom one?

sterile forum
#

Probably not it, but if it is, it would be hell to find i guess.

snow monolith
near onyx
#

i dont see that one, i see UserA

#

these are all the ones i see in the file
Campfire, Coordinate, Death, Home, OutsideViewMarker, Player, PlayerAbove, PlayerBelow, Portal, PortalInvasion, Prefab, Spawn, Temple_Gateway, UserA, UserB, UserC, UserD, UserE, UserF, Warp.

snow monolith
#

It was the Icon..

#
public void handleUserCreateMarker(PlayerRef playerRef, CreateUserMarker packet) {
      Ref<EntityStore> ref = playerRef.getReference();
      if (ref != null) {
         UserMarkerValidator.PlaceResult validation = UserMarkerValidator.validatePlacing(ref, packet);
         if (validation instanceof UserMarkerValidator.CanSpawn canSpawn) {
            Store var13 = ref.getStore();
            UserMapMarkersStore markersStore = canSpawn.markersStore();
            DisplayNameComponent displayNameComponent = var13.getComponent(ref, DisplayNameComponent.getComponentType());
            String createdByName = displayNameComponent == null ? playerRef.getUsername() : displayNameComponent.getDisplayName().getRawText();
            UserMapMarker userMapMarker = new UserMapMarker();
            userMapMarker.setId("user_" + (packet.shared ? "shared" : "personal") + "_" + UUID.randomUUID());
            userMapMarker.setPosition(packet.x, packet.z);
            userMapMarker.setName(packet.name);
            userMapMarker.setIcon(packet.markerImage == null ? "User1.png" : packet.markerImage);
            userMapMarker.setColorTint(packet.tintColor == null ? new Color((byte)0, (byte)0, (byte)0) : packet.tintColor);
            userMapMarker.withCreatedByName(createdByName);
            userMapMarker.withCreatedByUuid(playerRef.getUuid());
            markersStore.addUserMapMarker(userMapMarker);
         } else {
            if (validation instanceof UserMarkerValidator.Fail(Message displayNameComponent)) {
               playerRef.sendMessage(displayNameComponent.color("#ffc800"));
            }
         }
      }
   }``` Here's the vanilla method, since I saw the User1.png, I thought it worked lol
#

Thanks A LOT, been stuck for embarassingly too much time and I tried so many classes and methods and finally it was just a png error lool

austere cloak
#

Is there a way to play an animation on a npc in java? (I have a ref to the npc "Ref<EntityStore>")

near onyx
snow monolith
#

It's maybe old code, or it's never null in practice and so no one realized the png doesn't exist anymore πŸ€·β€β™‚οΈ

near onyx
#

thats the problem when you use Strings everywhere in your code, and forgot to change it... silly HyDevs

spare meteor
#

Going to sound stupid... probably.. I am trying to create a class for modifying components stored on a player by my plugin, accessible by other plugins.

In order to be thread safe I need access to CommandBuffer, but this interface would be outside of Events/Ticks. So how could I make this class tick once per cycle OR access the commandBuffer to add something to the queue

viscid lily
#

Can i add stats to item like helm stats? Is it possible? Not a custom item. For default items example daggers, swords, bows, helm, gauntlet

knotty vigil
#

I have no need for the default permissions/group system provided by Hytale. Is there a way to disable PermissionsModule?

neat pelican
knotty vigil
#

Cool thanks

lone crag
#

i have a .zip mod that has items that glow, but they are very bright. where would i look to change the values of each item?

neat pelican
#

you can directly use the unzipped in your mods folder

lone crag
neat pelican
#

If you tell me which mod it is, I can take a look

lone crag
sick ridge
#

is there a way to make the npcs restock instantly?

neat pelican
lone crag
neat pelican
#

turn down the color values

#

oh do you mean the light it's emitting?

lone crag
gusty hull
#

This would be in the JSON file

lone crag
gusty hull
#

look for particles

neat pelican
#

Server/Item/Items/CrystalGlass/*_Crystal_Glass_* -> Block/BlockLight/Color

#

In the JSON it's BlockType.Light.Color

lone crag
#

that gives me the color code for the light, but how would i change the intensity value?

neat pelican
#

make it darker

lone crag
neat pelican
#

you need to edit both unless you only use one of these in your world for some reason

lone crag
neat pelican
#

if you do it via the asset editor, you see it updated live

lone crag
neat pelican
#

just make sure you have the unzipped file in your mods folder

#

zipped mods are read-only

lone crag
neat pelican
#

yep!

knotty vigil
#

Is there any stats on the players that we can use by default like firstJoined, lastJoined, playTime?

quasi echo
#

there are

knotty vigil
#

Wondering if there's a component for that I suppose.

#

Where is it located?

quasi echo
#

idk the specifics i use a mod on my server that has tags for that

knotty vigil
#

So it's not.

#

It's not via hytale. Thanks though, you answered my question without intending to!

lucid vapor
#

Does anyone know how to fix the random assets breaking. I try /update download --force but doesn't force the download.

viscid lily
lone crag
lone crag
#

would fuel quality refer to the burn time?

#

fuelquality:60, is that 60 seconds?

eternal spade
#

Does anyone know where/what is making plants/assets move in the wind?

lone crag
#

whatever the item is, it should have an animation file or something

eternal spade
#

Nvm I fixed it, wasn't an animation

earnest seal
#

Can npcs do charged attacks?

neat pelican
# viscid lily <@138345057072840704> sorry for ping. Do u know how can i do this?

I do not know. But quickly looking at Template_Weapon_Sword.json, it specifies Root_Weapon_Sword_Primary as the root interaction which specifies Weapon_Sword_Primary and looks like this:

Weapon_Sword_Primary (type: Charging)
Starts the primary interaction chain Weapon_Sword_Primary_Chain & handles stamina via Weapon_Sword_Primary_Thrust_StaminaCondition

Weapon_Battleaxe_Primary_Chain (type: Chaining)
Handles the fork between the different attack interactions (left, right, down)

Weapon_Sword_Primary_Swing_Left (type: Simple)
Handles swing animation and sound

Weapon_Sword_Primary_Swing_Left_Selector (type: Selector)
Handles trail effects and selects affected entities, and defines interactions for hitting blocks and entities

Weapon_Sword_Primary_Swing_Left_Damage (child of DamageEntityParent, type: DamageEntity)
Triggers camera effect for impact and the DamageEffects (Knockback, World Particles, Impact Effect)
On hit, it also modifies the entities SignatureEnergy stat by 1. (this is the charge required for the big signature attack)
It also specifies "DamageCalculator": {"Class": "Light"}. I don't know what this means, and I can't find a reference to this in the asset pack.

There is the Weapon_Damage (type: DamageEntity) interaction which specifies "DamageCalculator": {"BaseDamage": {"Physical": 5}} So if you start editing these interactions, that's where I would start

covert lintel
#

Anyone ever come across this weird issue during debugging where your custom pack is loaded prior to the Hytale:Hytale pack? If that happens your pack will end up throwing an exception that says the asset pack already exists because it attempts to register it a second time when the main pack is loaded.

viscid lily
snow monolith
#

I've been experimenting with objectives and stuff on hytale but I'm curious on how you guys would tackle my problem. I want to show more information to the players during the objective and at the end of it (for example showing markers for the reachLocations of the current objective). I already know how to create markers but how would I link the objectives and the markers, should I use add a kind of listener to detect when a objective starts and goes to the next step ?

mild gate
#

Does anyone know if it’s possible to hide a block from players in Adventure mode or any other way? I know this can be done with entities, but it seems like there’s no way to manipulate block visibility on a per-player basis

neat pelican
mild gate
#

I think its just a matter of removing the block from the cache list and sending it manually whenever needed

sterile forum
#

Is it only me that wish that they used a different name than Chunk when it comes to the storage of entity/component related things.
I know a chunk is just a separated piece of something by definition, but it becomes confusing when you have block chunks as a more central concept in voxel games, and then suddenly a ArchetypeChunk that has nothing to do with block chunks but is a separate piece of the store where the Archetype data is gathered together.

At first i was convinced it was a specific store for a chunk to update it's internal entities only as some kind of performance logic when something in a chunk needed to do a lookup.
I actually had to make another look and make sure that they ChunkStore actually do referer to blockChunks.

brave mural
#

is it possible to create uis in the asset editor or something ?

sterile forum
#

No. They are currently reworking the ui, maybe the new version will have some kind of ui editor for the new format, or eventually have one.
There are some third party and online versions, or external apps where you can make and see the .ui files when making them.
I don't know if the .ui format will remain at all in the long run or if it will be straight out dropped when the new version arrives.

ember violet
#

Anyone know which class is referServer or refer to server in

brave mural
#

is it possible to make damage numbers to different colors ?

brave jetty
#

So is there a bed wars or any pvp servers made yet or na

unreal dust
#

Has someone understood the logic of asset re-downloads on server connect? I just don't get it, I just get in, download whole assets again, restart the client, and suddently I have to re-download assets again.

Does this have some logic to it? Because I'm not making sense of redownloads when no files have changed.

austere cloak
tribal patrol
#

more recently I think I've noticed I don't always have to redownload assets, but I'm not sure why. I think it more reliably works after server restarts and I'm kicked as part of shutdown. But whenever I completely close the client or maybe go to main screen, it requires it again.
If I'd guess it probably has some sort of connection hash to check assets are still valid and there is some remanent of the past session, but I don't think it has a long expiry time or persistence and probably doesn't check the files much.
Likely will get better with time, though mods may make it more complicated

lone crag
#

@neat pelican gm, i got another question about that scuffed glass pack, if i wanted to changed to pattern of the particle bit, like say cyan. if i change the pattern to look a bit like stained glass pattern, what file png would i need to edit?

neat pelican
lone crag
viscid lily
#

Hi @neat pelican I'm building an enchantment system for Hytale. I can get health and mana working fine on armor, but I can't get weapon damage or crit to actually register during combat.

Any idea how I can fix this or properly intercept the hits to include my custom stats? Thanks!

spark sail
# viscid lily Hi <@138345057072840704> I'm building an enchantment system for Hytale. I can g...

So the reliable fix is: intercept the Damage ECS event and modify Damage#setAmount() (and/or cancel it) before the damage systems apply it.
In the server source, Damage is a cancellable ECS event and it has getAmount()/setAmount() plus a Source that can be an EntitySource with a Ref<EntityStore> to the attacker. (See com.hypixel.hytale.server.core.modules.entity.damage.Damage in your server sources.)

#

Does anyone know a good doc to lear deapply customUI

plucky glacier
#

is this the correct channel to ask on how to use commands for things like world edit and such?

brave mural
#
{
  "Type": "Selector",
  "Selector": {
    "Id": "Raycast",
    "Distance": 5,
    "Offset": {
      "Y": 1.6
    }
  },
  "EntityMatchers": ["Player"]
}

Does anybody know how to trigger a failed when it doesnt have a player in this? Because r ight now this a lways passes which confuses me

rotund monolith
#

Context?

rough estuary
#

I was trying to use mods but I keep dependency problems like 18nModules, AssetModule and NPC

little sparrow
brave mural
#

But i couldnt make it trigger a fail

neat pelican
neat pelican
rough estuary
spark sail
#

Does anyone know a good doc to lear deapply customUI

neat pelican
neat pelican
tardy kelp
#

Please, someone know an event for block interaction that actually work?

lime cairn
#

Hello, I've tried to spawn a prefab through an interaction from a custom block but it seems it doesn't work for some reasons (either because I may be doing something wrong but idk what exactly I'm doing wrong or it's not working at all?) but when I try to use Example_Portal1.prefab.json, it works. Even Goblin_Thief_Chest works.... I don't get what I am doing wrong...

{
            "Type": "SpawnPrefab",
            "Next": {
              "Type": "SendMessage",
              "Message": "done"
            },
            "PrefabPath": "Goblin_Thief_Chest.prefab.json",
            "OriginSource": "Block",
            "Failed": {
              "Type": "SendMessage",
              "Message": "failed ;( "
            },
            "Force": true,
            "Offset": {
              "Y": 0,
              "X": 2
            }
          }

This works but when I try to put the name of the prefab I made recently, it just does nothing...
Is it because Goblin_Thief_Chest.prefab.json/Example_Portal1.prefab.json are inside the Asset.zip of the game while the prefabs we make are in the "prefabs" folder of the server? but doesn't make sense because when u do /prefab load, when choosing server instead of assets, it shows the prefabs

EDIT: I've tried to add my prefab inside assets.zip/Server/Prefabs and somehow it works. Why it's working when it's inside the assets.zip but not in prefabs folder of the server? It doesn't even throw an error if it's wrong path or anything else (unless it's empty, because then it throws that string is null). Anyone knows how to make it use the prefabs from the server?

earnest jackal
#

is there any information on the character preview component for UI as I have tried to use it however each time I try to add the page containing the component to the UI builder for the player it kicks me off the server with a client error

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.InvalidCastException: Specified cast is not valid.

was wondering if anyone had any clues on this?

quasi echo
#

its better to ask content creation issues over on the modding discord

warped sparrow
#

have you been able to get it working since?

neat pelican
warped sparrow
#

hopefully it gets fixed with the full release tho

neat pelican
warped sparrow
#

im pretty sure its just a mac issue

#

ill see if i can get around it somehow

regal bronze
#

What are some good mods to add to me and my friends world? We have a good amount but I'm trying to find more that I cannot find.

quasi echo
# regal bronze What are some good mods to add to me and my friends world? We have a good amount...

Ymmersive Melodies
tinymessage
TextSigns
Sit!
Simple Claims
Perfect Parries Perfect Parries - Souls-Like Parrying
MultipleHUDs
MMO Skill Tree
LuckPerms
HyFarm
HydroHologram
Essentials Essentials Core | NEW: All messages customizable
Emotes
Better Training Dummy
BetterScoreBoard
[Animated] HyScoreboard - Configurable
adminUI
BarterChests [Player Run Chest Shops]
Aures Livestock - Livestock Skins
Aures Horses - Horse Skins

shell geyser
#

I'm trying to get an entity by UUID as opposed to entitystore ref, is that possible?

quasi echo
shell geyser
# quasi echo thats the point of the entitystore though?

i cant use entitystore refs here because they're not really representative of the entity id (they can be overwritten and represent another entity in the future and so forth), uuids will always be the same for an entity if they have the uuid component

quasi echo
#

so make your own entity id component

shell geyser
#

ok cool how do i then get an entity by that id
and no thats what uuidcomponent is for?

#

is it possible to get all entities in a world with a specific component type?

quasi echo
#

Direct Lookup via EntityStore
While a Ref (reference) is a safe handle for an entity that tracks its "alive" status, the EntityStore serves as the WorldProvider and can lookup entities directly by their persistent unique identifier.
Internal Map: The EntityStore uses an internal map named entitiesByUuid to store these associations.
Persistent ID: Every entity has a UUIDComponent that the store uses for these lookups.

neat pelican
#

store.getExternalData().getRefFromUUID(uuid)

shell geyser
neat pelican
#

It's what Titan said

sterile forum
#

yeah I use that with a listener that tracks enitity add and remove events to keep a list of current active entitys in the world.
But i did realize that i just as well could have a system qurying for the uuid component and use the uuids there for a look up i think.

shell geyser
#

do entity adding/removing events also trigger when an entity is simply loaded from unloaded chunks?

sterile forum
#

I think so.

astral birch
#

When noesis πŸ«ƒ

neat pelican
#

Sometime in between now and 1.0

astral birch
#

Im losing my mind over trying to make current UI look okay

quasi echo
#

i wouldnt even bother

regal bronze
#

whats the radius for the chests and workbenches

quasi echo
neat pelican
neat pelican
#

there is also mods on Curseforge exactly for this so you can check how they do it

regal bronze
#

what mod?

neat pelican
regal bronze
#

found it

neat pelican
#

hm they are all jars so you'll need to check the code for reference.

sacred phoenix
#

Hello, my friend and I are trying to setup an environment for plugin development. We've got a dedicated server, and wanted to try and setup plugin testing on it. Every tutorial I see online keeps using a local server though.

neat pelican
sacred phoenix
#

Right, right. Well the thing is, I'm not developing the plugin myself. Someone else on the server is doing the bulk of it. Perhaps I'll have them setup something locally, and then they could upload the JAR via FTP when needed?

neat pelican
#

yep, that's a common, basic workflow

open chasm
#

Hi, does anyone know how to handle Inventory hover event(or something like that)

sterile forum
# open chasm Hi, does anyone know how to handle Inventory hover event(or something like that)

there is CustomUIEventBindingType
SlotMouseEntered(15),
SlotMouseExited(16),

the portal summon uses it like

eventBuilder.addEventBinding(CustomUIEventBindingType.MouseEntered, "#SummonButton", EventData.of("Action", "SummonMouseEntered"), false);
eventBuilder.addEventBinding(CustomUIEventBindingType.MouseExited, "#SummonButton", EventData.of("Action", "SummonMouseExited"), false);

and in its handle data event.

if (this.computeState(playerComponent, store) instanceof PortalDeviceSummonPage.CanSpawnPortal canSpawn) {
   if ("SummonMouseEntered".equals(data.action)) {
      UICommandBuilder commandBuilder = new UICommandBuilder();
      commandBuilder.set("#Vignette.Visible", true);
      this.sendUpdate(commandBuilder, null, false);
   } else if ("SummonMouseExited".equals(data.action)) {
      UICommandBuilder commandBuilder = new UICommandBuilder();
      commandBuilder.set("#Vignette.Visible", false);
      this.sendUpdate(commandBuilder, null, false);
   } else {
  }
}
open chasm
sterile forum
#

The class it uses for the Event

class PortalDeviceSummonPage {
...
   protected static class Data {
      @Nonnull
      private static final String KEY_ACTION = "Action";
      @Nonnull
      public static final BuilderCodec<PortalDeviceSummonPage.Data> CODEC = BuilderCodec.builder(
            PortalDeviceSummonPage.Data.class, PortalDeviceSummonPage.Data::new
         )
         .append(new KeyedCodec<>("Action", Codec.STRING), (entry, s) -> entry.action = s, entry -> entry.action)
         .add()
         .build();
      private String action;
   }
}
#

well ui pages accept external updates.

 playerComponent.getPageManager()
     .updateCustomPage(
        new CustomPage(
           this.getClass().getName(),
           false,
           clear,
         this.lifetime,
         commandBuilder != null ? commandBuilder.getCommands() : UICommandBuilder.EMPTY_COMMAND_ARRAY,
         eventBuilder != null ? eventBuilder.getEvents() : UIEventBuilder.EMPTY_EVENT_BINDING_ARRAY
      )
   );
 }

So being careful you could probably inject extra events towards the inventory page rougly the same way.
I guess you are talking about the current "Player Inventory" not inventory/container logic at large?
for any ui that exists that handles inventory you would need to find a way to update/inject new events with the reference to the element you would like to have hover events fire for.

Then the hard part is that you need to get those events as well and the current custom page is already doing that. So I have no idea how you would catch them afterwards in a good way.

#

You might be able to do something by adding logic that intercepts and do something with the CustomPageEvent from PacketID 219

#

to add both a generic callback and way to intercept manipulate the page somehow.

open chasm
sterile forum
#

There migh be an easier way.

#

But not sure what it would be.

unreal dust
#

@barren mist

viscid lily
#

can i spawn npc with armors?

neat pelican
viscid lily
eternal spade
#

Has anyone come up with an interesting means of creating alloys like bronze or steel?

dire holly
#

not for vanilla, but modded -> weapons, tools etc x3

eternal spade
dire holly
#

idk havent played much survival, though bronze/steel was default lol

sterile forum
#

I have some crafting ideas but i need to do a lot of work tracing details regarding material properties and quantity in mixes.

spiral cliff
eternal spade
#

"Interesting means of creating alloys, like if anyone's developed anything that reads multiple inputs in a furnace and detects if there is an alloy utilizing the inputs like copper and tin, and outputs bronze instead of just a single ore like it works normally.
I'm asking if someone has made anything custom, either through the asset editor or coded anything, I'm not talking about vanilla or commands, that's not what this channel's about. Space bro it's a video game just use 1:1, and mechanically how would you even do alloys to begin with.

dire holly
#

mean start being respectful instead of saying "duh", "bro" just a advice~

if there is something that exists you might be better off looking at curseforge for anything that created.
simple solution for creating allows, make a furnace that allows for separate inputs and stores them as "molten" and allow you to add a additional crafting within the furnace to utilize those molten ingots to create new.

signal anvil
#

is there a forum for showcasing mods or plugins? i cant see one and dont want to get warned for posting in wrong channel

remote edge
#

Hello, i am working on a plugin which rework the default portals in the default world and the Forgotten Temple. It seems they are not modifiable or i miss something ? I read the documentation of hytaledev official but i didn't find something which allow to update the existing components. Thank for your feedbacks πŸ˜‰

lyric locust
#

Does anyone know how I can cancel the harvesting interaction?

remote edge
uncut bear
carmine sorrel
#

I want to be able to add information to a block type ( not an individual block in world, but like, all instances of that block) is it component<ChunkStore> I want?

#

I want to like, add a link to a loot table inside a block

stone flare
#

Has anyone else experienced that bug on your server where the world disappears and you fall into the void? I want to know the cause of that bug, because it doesn't leave any logs, and I can't identify it.

jaunty steppe
#

Has anyone had any luck with getting the side of a block from ray tracing or something similar? I've been trying for around 5 hours now. Just tried CollisionMath.intersectRayAABB and I can't figure this out, any help would be appreciated

astral cedar
#

Hello, Q: is there a way to increase particle render distance on server side? I've been working on environmental effects with particle system, and while I find it great, if I am on a server the particles stop rendering after 50-60 blocks when there are many blocks/entities nearby. (IsImportant, CullDistance, BoundingRadius seem to be overwritten by server)

void wagon
#

How would I go about registering an interaction with any NPC when holding a specific item? I'll need to hook into it in Java - Block interactions are fine, but no idea about NPC interactions.

I would prefer to avoid modifying entity JSON files to avoid conflicts with vanilla updates, but I don't see any events in Java which could avoid needing to do that?

sterile forum
#

Also adds the ability to transfer properties from the material quality of material and mix of materials.

quasi echo
#

that reminds me of that chemistry mod for minecraft where if you used a time speeding mod it would decay radioactive elements faster and u could accidentally chernobl your inventory

sterile forum
#

Yeah there are many funny side effects that could happen. The question is how to handle it relative to itemstacks since each item becomes unique. Might need to group stack it differently.

sterile forum
quasi echo
#

thats too indepth xd

sterile forum
#

One one side you can generate a dynamic taste and smell info. One the other you have a system for poisoning.

sterile forum
#

The range from cooking game to who done it. πŸ˜›

analog geode
sterile forum
#

The good part is that substances could be added on a level desired like

Like iron, copper, coal, dough, wood, meat. So items would have a list of quantity of each.

Or an actually periodic table level or a combination...

Much work to be done either way.

eternal spade
#

Can you guys stop pinging me with regard to your ideas regarding smithing alloys. While interesting, a little, I find them overly complicated and personally don't see them being an enjoyable player experience or something players are willing to invest in as a system. Either the explanation is poorly done and the system will be more intuitive than it sounds, or it's overly complicated, niche and players won't bother investing in.

remote flicker
shy narwhal
sterile forum
tribal patrol
# jaunty steppe Has anyone had any luck with getting the side of a block from ray tracing or som...

I haven't used that ray tracing, but it look like your probably on the right track, that method is also internally used in the TargetUtil for detecting blocks and entities and hence has example usage, that you might find helpful if you haven't seen it yet.
Can't seem to find something that helps find the block face, but you might be be able to work it out using some math, the looking vector, maybe atleast for reference the vectors from BlockFace/Vector3i (e.g. UP), assuming whole blocks of course

carmine sorrel
#

Anyone know about how to do this?

I want to be able to add information to a block type ( not an individual block in world, but like, all instances of that block) is it component<ChunkStore> I want?
I want to like, add a link to a loot table inside a block

remote edge
#

Hello, iam trying to interact with the forgotten temple world during the StartWorldEvent and CreateWorldEvent to change weather, add block and other little things, but no actions have an effects. Someone of you have already does something similar please ?

tribal patrol
carmine sorrel
sterile forum
#

Wherent blocks changing a lot this update?

eternal spade
jaunty steppe
jaunty steppe
#

I may need a devs help on this one

neat pelican
jaunty steppe
#

The decompile code I have is kinda garbage

#

let me dig through and see if I can find something

#

I need this for a freaking wrench

jaunty steppe
#

Yeah I can't find the source for the shovel dig interaction

shell geyser
#

is there some way i can tell hytale that i dont want entities with a certain component to be persisted at all

#

like i am making custom magic projectiles and i dont really need the game to save them, they can be unloaded permanently and be deleted

remote flicker
# shell geyser is there some way i can tell hytale that i dont want entities with a certain com...

Not exactly for your component specifically but you can make an entity not get serialised if you add the following component to it.
You could make a system that automatically adds this when your component is added if it doesn't already exist, or you could make sure to add this component when you create the entity with the component.

holder.addComponent(EntityStore.REGISTRY.getNonSerializedComponentType(), NonSerialized.get());
shell geyser
#

ohhhh fantastic so there's literally just a component for it

#

shoulda known πŸ˜”

brave mural
#

Does anybody know how i get just the translated text not the messsage itself?

Message.translation("ui.tooltips.arc.attribute.vitality")
near onyx
#

try the ansi thing
like MessageUtil.toAnsi(msg).toAnsi()
(i cant remember the exact methods)

#

could also try Message#toAnsi

brave mural
#

Awesome! Works thanks

neat pelican
brave mural
#

Oh, i somehow assumed that it would automatically see what language the client is and then use the correct language automatically

neat pelican
#

The server doesn't know which language the client uses

near onyx
#

does it support pir*te? Does Hytale have a pir*te language? If not, we need that.
(cant believe that word is blocked hahaha)

neat pelican
#

that's why the translation keys are sent. The client is then responsible for fetching the correct message from the asset pack

brave mural
#

Good to know! Thanks

long juniper
neat pelican
#

oh damn yeah. playerRef.getLanguage()

#

ty

long juniper
#

yeah its sent in the connect packet and in one of the interface update ones(though you should avoid it for most things, unless you plan on doing translation of arbitrary messages on the fly)

brave mural
#

Are there limits to playing sounds? I have a sound effect which i can spam when clicking a button but after like 10x clicking fast it doesnt do the sound anymore and after like a delay of 5s it works again

runic vector
#

Hi , How can we make multiple recipe for one item ? Thanks !

spare meteor
#
SpatialResource<Ref<EntityStore>, EntityStore> spatial =
                (SpatialResource<Ref<EntityStore>, EntityStore>) store.getResource(EntityModule.get().getEntitySpatialResourceType());

ObjectList<Ref<EntityStore>> nearby = SpatialResource.getThreadLocalReferenceList();
        spatial.getSpatialStructure().collect(position.toVector3d(), 1, nearby);

Any ideas if there is a better way of getting if there is a player/npc at position?

neat pelican
#

It does the SpacialResource stuff for you

spare meteor
#

Hypixel_Think I see... so probably no cheaper way

#

Looking at a system that very well may do n runs of that... maybe could make it a little cheaper but would require waiting till its complete rather then being able to exit early

regal bronze
#

[2026/03/11 01:13:30 SEVERE] [SERR] [To redirect Truffle log output to a file use one of the following options:
[2026/03/11 01:13:30 SEVERE] [SERR] * '--log.file=<path>' if the option is passed using a guest language launcher.
[2026/03/11 01:13:30 SEVERE] [SERR] * '-Dpolyglot.log.file=<path>' if the option is passed using the host Java launcher.
[2026/03/11 01:13:30 SEVERE] [SERR] * Configure logging using the polyglot embedding API.]
[2026/03/11 01:13:30 SEVERE] [SERR] [engine] WARNING: The polyglot engine uses a fallback runtime that does not support runtime compilation to native code.
[2026/03/11 01:13:30 SEVERE] [SERR] Execution without runtime compilation will negatively impact the guest application performance.
[2026/03/11 01:13:30 SEVERE] [SERR] The following cause was found: JVMCI is not enabled for this JVM. Enable JVMCI using -XX:+EnableJVMCI.
[2026/03/11 01:13:30 SEVERE] [SERR] For more information see: (Link was here)
[2026/03/11 01:13:30 SEVERE] [SERR] To disable this warning use the '--engine.WarnInterpreterOnly=false' option or the '-Dpolyglot.engine.WarnInterpreterOnly=false' system property.

How do I get this error code away?

hoary viper
#

Hi any idea how can I add stuff to the existing UI , like adding an extra tab to the main tab menus on top next to creative tools?

pine trellis
#

I dont think you can right now?
I think its using the new UI system we dont have access to yet?

void wagon
#

How do I remove the default block break interaction thing when I left click with an item? I have an item that I have a secondary interaction, but want it to have no primary interactions at all.

sterile forum
# jaunty steppe That's exactly what this problem is, is a nasty vector math problem from hell οΏ½...

If you got the ray data and the block you collided with. You could normalize the ray vectors direction in world get the position of the block you hit as and remove the normalized rays value from the position. See what block position that would be at. Remove the original position value from the calculated value and you should get a vector with valus in the direction the hit block is. The facing would be opposite of those values.

#

Or better remove the new calced blocks position from the hit block and the values out would be the direction where the neighbour block would be and thus facing.

sterile forum
#

Bah. I was today years old when i saw how you filter out a archtypes in the getQuery using a component.

pulsar bone
#

anyone have a good example of /<command> <subcommand> <args> with aliases

celest kayak
#

hi everybody, i have a onPlayerConnect function that executes when a player connects (as a player listener), does anybody know how i can add a component with players reference on connection? because: Ref<EntityStore> ref = playerRef.getReference(); ref seems to be null... I get playerRef from PlayerConnectEvent but it seems like pointer to the entity doesnt spawn fast enough. Any solutions to this?

neat pelican
# pulsar bone anyone have a good example of /<command> <subcommand> <args> with aliases
public class RootCommand extends AbstractCommandCollection {

    public RootCommand() {
        super("root", "Custom root command");
        addAliases("myRoot");

        addSubCommand(new SubCommand1());
        addSubCommand(new SubCommand2());
    }
}

public class SubCommand1 extends AbstractAsyncCommand {
    private final RequiredArg<String> myArg;

    public SubCommand1() {
        super("subcommand1", "Custom Subcommand");
        addAliases("sub1");
        
        this.myArg = withRequiredArg("arg", "Argument", ArgTypes.STRING);
    }
    
    @Override
    @Nonnull
    protected CompletableFuture<Void> executeAsync(@Nonnull CommandContext context) {
        context.sender().sendMessage(Message.raw("Executed SubCommand1 with argument: "+stateArg.get(context)));
    }
}
pulsar bone
#

please dont delete this ill need it in a few days

neat pelican
celest kayak
# neat pelican The `PlayerConnectEvent` event fires before the player joins a world, so it does...

Ive used PlayerReadyEvent instead since in the docs its use case matches what i need, the only problem is I need an UUID of the player, there are two ways to get it, from event.getPlayer().getPlayerRef() which is depricated and then from the PlayerRef.getUuid() or event.getPlayer().getUuid() which is also depricated. I guess there is a better way for getting the UUID in this case? Maybe I should get player ref from the store right?

neat pelican
celest kayak
#

it does have getPlayerRef() but it returns the Ref<> not the component

#

ok i guess i get it from the holder

#

i needed the PlayerRef component just didnt know whats the right way to get it

neat pelican
#

The Ref<EntityStore> is what you use as an identifier to fetch an entitie's components from the store

celest kayak
#

yeah will do

sacred sundial
#

Hey, posting on the right channel this time, yay.
I'm playing a lot with queries for different purposes but I still fail at understanding how to efficiently gather entities.
For instance, I would like to query every entities hostile around a player, but I don't really know where to start in that case. Should I add a codec to gather the attitude and maybe hp? But then, how do I link that back to entities?
Or is there an easier way to do that?
Do you gather such examples somewhere?
Thanks a lot for your help! πŸ™‚

neat pelican
sacred sundial
# neat pelican Do you mean how to get all entities around a player (`TargetUtil`), or how to de...

I've seen the TargetUtils.GetAllEntitiesInSphere() for instance. But then, this returns a List<Ref<EntityStore>> which you then need to filter for hostile living entities that can move (again for instance). And that's where I struggle.
I actually was rather using a store.forEachEntityParallel( but it's kinda the same need behind. There are a lot of good examples even on unofficial places, but the queries and codec examples didn't click with me yet.

#

Sorry for the hard or noob question. A simple custom filter on entities example would help already. And the same on how to check if a codec is effectively propagated would be super great.

sterile forum
#

For all moving entities loop trought the stores {var mover= store .getConponent(storeRref, Movement.getComponentType);
If(mover!=null){}}

sacred sundial
#

btw, I know that Entities are a collection of components, so I would expect something like (this is bad code for the example): ```java
// Really not sure about the query here
Query query = Query.and(LivingEntity.getComponentType).and(Hostile.getComponentType());
Store<EntityStore> store = world.getEntityStore().getStore();
store.forEachEntityParallel(query, (entityIndex, archetypeChunk, commandBuffer) -> {

commandBuffer.run((entity) -> {
// Do something with the entity
});
});
// or
world.execute(() -> {
List<Ref<EntityStore>> entities = TargetUtil.getAllEntitiesInSphere(player.getTransform().getPosition(), 50., world.getEntityStore().getStore());
// Need to filter that now
for (var entityRef: entities) {
// Hostile doesn't exist, it's for the example. Don't know how to do that
if (entityRef.isValid() && entityRef.getStore().getComponent(Hostile, Hostile.getComponentType()) {
// Do something
}
}
});

sacred sundial
sterile forum
#

I do both are a pain in their own way.

#

But i am out walking and need to fix dinner when i come home. But i will try to remember answering later.

sacred sundial
#

Np at all, thanks for the bits about movers anyway

near onyx
#

oh wait, did you mean all components in general?

sacred sundial
#

I was also wondering on whether a System::tick(...) could be used to do the reverse: Check whether the entity is hostile and can move and then make it do something if it isn't already. Something like:

public class HostileCheckSystem extends EntityTickingSystem {
 
    @Override
    public void tick(var1, var2, archetype, EntityStore store, commandBuffer) {
        if (!store.hasComponent(entity, HostileComponent.class)) {
            return;
        }
 
        if (!store.hasComponent(entity, MovementComponent.class)) {
            return;
        }

        commandBuffer.run((entity) -> { // Do something
        })
   }
}
sacred sundial
sacred sundial
#

(Will also check on my end)

near onyx
#

Archetype<EntityStore> archetype = reference.getStore().getArchetype(reference);
This gets the archtype from the reference
and the ref was just entity.getReference()

sacred sundial
near onyx
#

doing some fiddling around, i see this:
reference.getStore().getRegistry()
(i wish i could send a screenshot)
it has a few methods for getting components, but theyre like "unknown" "nonSerializable" and "nonTicking"
Seems odd

brave mural
#

Is it possible to dynamically add a component into the .ui file for lets say i have 10 items in an array for eachitem iwant to add something into a group like a component or something?

neat pelican
brave mural
#

Ill check it out thanks!

unreal dust
#

do we have a date for update 4? I heard last week it was this week

jaunty steppe
sterile forum
# sacred sundial I was also wondering on whether a `System::tick(...)` could be used to do the re...

Sorry time ran away.
What I was about to say was that as other stated, you can use the archetypestore to get the archetype.
I just learned to day that if you want to use archetypes in a system then for the query you are apperently can use Archetype.of(componentType) the base entities are just components as well, Player NpcEntity LivingEntity all extend the component at some point.

The other variant is the long way, using systems to listen for the entity add remove and component add remove events and hold lists of reference to what gets added to what.

As for finding components in general, i think there is a list in the hytalemodding dev documentation. but you Could also do a "blanket search for "componentType()"
Since most component types have some kind of getter thats Usually their name ending with ComponentType().

But getting the player archetype for instance in a system can also be done with a query that uses

this.query = Archetype.of(playerComponentType, playerRefComponentType);
#

The thing to consider regarding system tick events or other stuff is essentially who needs the information, when and how often.
Remember that you can also use your own components as quick triggers in a ticking system buy having that component as part of the query, and as soon as you process it in the tick you just drop it from the entity, the system is quick to pick up that it is on the entity without the need for events, and once the component gets removed it won't tick again and have low impact on performance.

sacred sundial
# sterile forum Sorry time ran away. What I was about to say was that as other stated, you can ...

@Space Thanks! I just saw the Archetype.of() as part as many other things. I kept learning during those few hours and some references helped me a lot (not putting links to avoid the no advertising rule) ECS system in Hytale with some examples and exceptions from TroubelDEV, The unofficial hytale Server docs,and I used the Hytale docs class index when I didn't know what I was searching for. Ah and of course the HytaleServer.jar as a dependency for autocompletion.
I used some scheduling snippets and the archetype list snippet thanks to @near onyx 🌴 's message: ⁠server-plugin⁠
And in the end, I managed to start moving this query code into a ticking system, so it's going in the right direction.
I also saw the example where you need to add a teleport component to let the TeleportSystem trigger the event.

I believe I'm starting to get the hang of how to select entities, the next step will be to understand the NPC path management.
Thanks a lot for all the help

near onyx
#

i got a tag here and i was scared πŸ˜‚
But you’re welcome, im glad i could help a bit

brave mural
#

Is it possible to reset the entityStatMap for all stats?

near onyx
#

looking at RespawnSystems

for (int index = 0; index < entityStatMapComponent.size(); ++index) {
    EntityStatValue value = entityStatMapComponent.get(index);

    if (value != null) {
        entityStatMapComponent.resetStatValue(index);
    }
}
whole stone
#

Has anyone by chance tried to use the editor tool packets to create custom tools themselves, which can be used on Adventure Mode? I've noticed Hytale has done an annoying client gate restriction, basically preventing the retrieval and sending of builder tool packets if the user is not in creative mode. So i was wondering if anyone has somehow found a way to bypass this

#

My main reason for using those packets is primarily more hotkeys to listen to xD, and also using the EditorBlocksChange packet to display prefab outlines, but just the latter is more than enough

vivid bone
#

Hi there, someone knows how the regex works for the parameter loadBefore in plugins manifest.json ?
Tried with a mod, maybe the mod shouldnt be tagged as "Hytale" but the name of the owner, or no name at all ?
"LoadBefore": {
"Hytale:MMOSkillTree": "*"
},

whole stone
vivid bone
#

You must be right ! i test it thanks !

vivid bone
whole stone
#

probably because you are loading "before" the plugin you are trying to override, so I'm assuming your file is being overwritten. And what exactly are you trying to overwrite?

vivid bone
#

"LoadBefore No Map of plugins that should load after this plugin"
Im only trying to overwrite items names / desc

#

i also put includeassetpack to true and i just rode :
IncludesAssetPack No If true, registers the JAR as an asset pack

maybe thats causing the problem ? an asset pack cant overwrite a mod ?

whole stone
#

yea maybe, not quite sure tbh

vivid bone
#

I might be forced to overwrite Server\Item\Items too ? But it seems the matching to the items.lang is automatic in some points.
Adding
TranslationProperties maybe ?

void wagon
#

Finally got coop residents to fully retain their nameplates. Just need to tinker with the capture crate but there is some overlap in the logic between the two, so most of the workload is done. All of this, just so my wife, can name her chickens in-game.

quasi echo
#

The things we do for love - courage the cowardly dog

jaunty steppe
#

Okay so for SimpleInteraction class, how or where would one get ahold of the rotation component on tick0 method?

#

Like as in, right click a block, alter rotation?

heady locust
#

How do I send player from one world to another world?

flat nest
#

PortalInvalidDestinationSystem does anyone know how to fix this

sterile forum
sterile forum
#

I guessed the system reported that the destination was invalid not that that the system reporting was broken.

brave mural
#

Does anybody know how to apply custom screen effects via java ? Or JSON data ?

sterile forum
#

You cant do any new post process effects from what i know but otherwise like camera shake and others goes trough the camera effects.

neat pelican
# heady locust How do I send player from one world to another world?

The TeleportWorldCommand does it like this:

Transform spawnPoint = targetWorld.getWorldConfig().getSpawnProvider().getSpawnPoint(ref, store);
// modify TeleportHistory...
Teleport teleportComponent = Teleport.createForPlayer(targetWorld, spawnPoint);
store.addComponent(ref, Teleport.getComponentType(), teleportComponent);
brave mural
#

Does anybody know where hytale does the Stat caluations when for example wearing gear

#

So that gear increases max hp? Is that happenin in the json data or is there a way to see how they actually apply the data to the stats in java somewhere

near onyx
#

are you talking about the defense level?

brave mural
#

Yea exactly

#

Where do they apply that, i would like to see how they did that

near onyx
#

this is my attempt to get the defense level.... its not sexy, and its deprecated, but its all i could find

// TODO find a better way to do this
Map<DamageCause, ArmorResistanceModifiers> reduction = ArmorDamageReduction.getResistanceModifiers(world,
    player.getInventory().getArmor(), false, null);

int defense = 0;

DamageCause asset = DamageCause.getAssetMap().getAsset("Physical");
ArmorResistanceModifiers mod = reduction.get(asset);
if (mod != null) {
    defense += (int) Math.ceil(mod.multiplierModifier * 100);
}

return defense;

I cant remember exactly where i found it though, i think on the server it just calculates during interactions

neat pelican
#

Check the DamageSystems.ArmorDamageReduction system

near onyx
#

^
Ah yeah, that sounds familiar

brave mural
#

Does anybody know how to set the Regenerating values ?

var statMap = new EntityStatMap();
    statMap.get(DefaultEntityStatTypes.getHealth()).getRegeneratingValues();
near onyx
#

rather than getting the stat map, get the actual stat type (config) and it should be part of that

brave mural
#

Ok ill try that whats the class called?

near onyx
#

EntityStatType.getAssetMap().getAsset("Health").getRegenerating()

brave mural
#

Mh those also only contain getters also, they get the actual asset. But i would like to increase or change Regeneration based on entity

near onyx
#

seems like it all has getters only

brave mural
#

Mhh yea, maybe i need to do it with effects instead

near onyx
#

i think you can also apply modifiers to stats

boreal topaz
#

Any way to block the usage of buildertools in creative? because hytale.buildertools.* = false does not work

neat pelican
#

are you opped? ^^

#

you'll need to set up granular permissions and groups

snow bronze
#

yo, any new way to debug UI's when developing? hot reload would be neat

neat pelican
snow bronze
neat pelican
#

if you edit something in an asset pack, it gets automatically synced with the client. For the java code, you need to run /plugin reload <pluginName>, but you can trigger that programmatically as well

snow bronze
#

so when I'm changing anything in the *.ui file without any changes to java - it should automatically pull the changes after building mod?

neat pelican
#

no, you don't need to build the mod if the asset pack is loaded directly

snow bronze
#

not entirely sure what do you mean by that, not sure how to verify if I'm doing everything right

neat pelican
#

this is how I run my dev server

def serverRunDir = file("$projectDir/run")
if (!serverRunDir.exists()) serverRunDir.mkdirs()
idea.module.excludeDirs += serverRunDir
idea.project.settings.runConfigurations {
    'HytaleServer'(org.jetbrains.gradle.ext.Application) {
        mainClass = 'com.hypixel.hytale.Main'
        moduleName = project.idea.module.name + '.main'
        programParameters = "--allow-op --disable-sentry --assets=\"$hytaleDir/Assets.zip\" --mods=\"${sourceSets.main.java.srcDirs.first().parentFile.absolutePath}\""
        workingDirectory = serverRunDir.absolutePath
    }
}

When I update something in src/main/resources, the asset editor automatically picks it up

snow bronze
#

will check this out as it would help a ton to actually develop anything

neat pelican
#

I got the concept from Build-9/Hytale-Example-Project on GitHub. Might be worth checking out for inspiration

snow bronze
#

never heard of this one, will definitely give it a go

signal anvil
#

i have something simular in end result but i go about it differently

neat pelican
#

Nice! how do you do it?

carmine sorrel
#

Ok, I have a block I want to be able to attach some meta-data to , and then later in a custom interaction, read that data, is there any paticular way to do this currently? I have a class that inherits from SimpleInstantInteraction that I use to do the custom interaction, and a

"Interactions": {
      "Use": "Open_Arcane_Fate"
    },
``` in the block's item
void wagon
#

Possibly add your own component?

tawdry geode
#

You can probably do something already but it will be much easier in the future

void wagon
#

I thought I already did a block component but... apparently not. Maybe I was about to but realised I never needed to. No idea if it's possible currently or not.

dire holly
#

Is it possible to UV map a model? so you can use the texture feature like:

"Textures": [
      {
        "Sides": "BlockTextures/cardboard_box.png",
        "UpDown": "BlockTextures/cardboard_box_top.png",
        "Weight": 1
      }
]```
or is this out of the question, i really don't look forward to make 4096 textures (or even more) performance would be yikez
#

it either 4096 different blocks (for a single block variation) or 1 block with 4096 textures

carmine sorrel
void wagon
#

Oh, yeah:

    "BlockEntity": {
      "Components": {
        "DuoRespawnBlock": {}
      }
    }

It is per block though. I cannot fathom how you would do dynamic metadata that syncs across all blocks of the same ID... if I'm understanding correctly.

carmine sorrel
#

Yeah, it is looking like I will have to just, make the interaction custom to that block ID , I was hoping could make it a bit more generic, let the other people working on the asset_editor side have more control so they could make multiple blocks with small changes style thing >.>

runic vector
#

Hi everyone, I have an issue with the pre-release channel. My custom Bench with the base UI doesn’t work anymore. Does anyone have any news about this or any idea what might be causing it?

#

but work on the vanilla benchs

EDIT :

you need to put that :
"BlockEntity": {
"Components": {
"BenchBlock": {},
"ProcessingBenchBlock": {}
}
},

(processing)

OR

"BlockEntity": {
  "Components": {
    "BenchBlock": {}
  }
},
neat pelican
dire holly
#

Is it possible to draw custom blocks during runtime instead of adding them to a pack~?

neat pelican
#

no, but the majority of a custom block can be added to a pack during runtime

signal anvil
#

uhh links are against rules 😭

dire holly
#

Since im currently running into a major performance issue with hytale and idk what a proper solution is

signal anvil
signal anvil
#

i made something that would be easy to make something for that

spare meteor
#

😏 You could add blocks that cant be obtained and show them for only certain people- I was working on a library for it but to prevent breaking or replacing said blocks takes- constant packets since the server drops events from the client on ghost blocks

brave mural
#

Is it possible to like add more stuff to the default ui like inventory or the portrait when you press tab ? Like stats or something

sacred phoenix
#

Hello, is there a better way to fix the issue with all the server text being messed up after modifying the language file? I have to keep rebooting the server to fix it.

snow bronze
white galleon
#

When making an override for an existing mod, do I need to add the original mod as a dependency in the new packs manifest? Trying to consolidate multiple mods onto a single workbench for example.

#

And if so, what's the format for doing so?

neat pelican
white galleon
heady locust
#

How to properly delete a world or an instance?

near onyx
vivid bone
#

Someone already had the issue of a big "Loading..." when you ran an action in the background of a custom UI ?

sterile forum
remote edge
#

Hello πŸ™‚ doc hytaledev is down ?

scarlet wharf
#

Hello everyone, (first of all, sorry about my English, I'm French xD). Then, in my plugin I have a World which serves as a lobby, from this I generate other Worlds and teleport there. My problem: when I spawn a merchant in the lobby, no problem, the shop opens by pressing F but when I do the same thing in the other generated World, the shop does not open despite the presence of the "Press F" hint. Does anyone have an idea why? I've already exhausted a lot of ideas with Interactable among others, thanks in advance πŸ™‚

lone geode
#

Question ...
I am starting to get into modding properly, and have got basic blocks and an NPC to function in game, but I am trying to understand a little more about how the more complex elements of hte models work. Attachments I can get OK, and I can see how to make ones that will always be there, and how variants would work for slightly less uniform figures. All really neatly packaged in the editor.
Where I am stuck is around the weapons that can be assigned to hands and the drops. When I look at the NPC_Role files, it is a bit tricky to pick up how this is structured and some exampled I look at are totally different. I understand the basic syntax rules fine, but I can see things like Undead seem to have layered variants and inherited stuff, so trying to find a 'clean' base to help me understand how this file functions.

brave mural
#

Does anyone know how you can display the damage color of the defined daamge cause asset?

I have a damage cause asset that changes the color of the text but it doesnt get displayed on the client

#

The Posion example in the official hytale asset has it configured but for some reason on the client it always is white πŸ˜„

sterile forum
#

ok some old project handled all the sources stuff automatically, and now that I have moved to a different project layout using a hytale project plugin fΓΆr intellij and using maven it does not.
I did find the guide how to use the official python code to decompile the source from the mod dev webbsite, it just seems unnecessary complex.
And I realize if this is ment to be for "Sources for intellij, or if its ment to be "sources" as in you could use this and build the server yourself rather then depend on it?"

lucid vapor
#

Does anyone know of an easier way to add colored nameplates? I'm currently hiding the nameplates then spawning in base glyphs then using the particle system to color the glyphs and attaching them to the player. Is there a api or a more efficient method to do this beside billboarding images?

sterile forum
lucid vapor
lucid vapor
tribal patrol
sterile forum
brave mural
lucid vapor
tribal patrol
#

Ah cause search doesn't really work in the default decompile view, since the tool only knows about each individual file I think. ctrl+f works, but only within the file

brave mural
sterile forum
brave mural
#

Like how do you say apply this particle to that damagenumber

lucid vapor
#

My version is super cursed but it's in my github. I'm rebuilding the new nameplate system from the ground up but it's not completed yet so it has a lot of errors. Search up MysticNameTags github and you'll find it.

tribal patrol
lucid vapor
#

I mainly took example from PerfectHolograms AND HydroHolograms

#

HydroHolograms is WAY more effective though since they use sprites instead of glyphs

tribal patrol
#

oh what do you know, your a Mystic Horizons dev

lucid vapor
sterile forum
#

cocooner i read... but it was not so.

tribal patrol
#

came across it the other day

sterile forum
#

I guess you probably tested already to just send a message in the translation style formating with <color ... > etc for the nameplates

lucid vapor
#

the nameplate class and the nameplatesystems.java class just don't support ANY color what so ever

sterile forum
#

Yeah. then its probably a client side limitation and one have to go paritcles or glyphs.

#

I mean what I saw they just took a string, so if its markup it would still be hard to tell.

lucid vapor
#

I did find out that color code parses but client side renderer doesn't parse ANY type of color codes within the nameplates

sterile forum
#

but i trust you tested it but thats why i wondered.

lucid vapor
#

String doesn't support color native. You have to translate it

#

and client side doesn't have that for the nameplates since the nameplate sends a different codec to the client for rendering

lucid vapor
tribal patrol
#

yeah, atleast it used there. probably could pack into it, but it would need to know how to decode on client and we cant control that

lucid vapor
#

yeah, since we can't directly mod the client side we have to use known color systems like tint on "entities" like glyphs or sprites

twin girder
#

hi,
i'm trying to create a block that has an interaction to play sound. kinda like a music-box. and i think i've configured everything correctly (i took a rather deep look into another mod to see how they handle this), but whenever i interact with the block it turns into the default invalid block in game. cant find a helpful video about this online, if anyone has a good video that shows how it works i'd be glad

sterile forum
#

have you added break points or logging so you can check the state at different steps of the call, if not, google how to do that.

dire holly
#

is there a way to force a assetpack to update or manually load a new block in? (with code)
The automatic change detection with auto reload is nice but its slow (takes around 5-10)

brave mural
#

Is it possible to put icons into ui files tooltips?

white galleon
#

Im still having an issue with the patch Im making for a few mods. Is there a way to force my patch to load after the target mods? I tried listing them as optional dependencies but am still having the same issues. For context, I'm moving recipes from the main workbench to a new custom one. On server reload a majority of the recipes revert to their original state.

void wagon
#

no i won't help you. 😑 (I also don't know the answer)

brave mural
#

Whats the proper way to rebuild a ui page every few seconds while its open?

dire holly
brave mural
#

Im currently displaying an entity stat there and bunch of other stuff that might get updated while the page is open. Not sure how i would display the data there realtime

dire holly
#

but why not send a update message/event when it changes to the UI

brave mural
#

I mean yea that would work but that would also mean that if i have 100 t hings in the page that i would have to implement that for everything that needs to get updated πŸ˜„

#

Feels easier just to refetch the stuff from the entity after a few seconds

#

Health gets updated? Send event, mana gets updated ? Send event, mob position updated? Send event, feels worse to me to be fair

#

maybe i just add a refresh button or something

white galleon
#

Wouldn't constantly refreshing to pull all that data at once create a huge server strain though? Seems more efficient to do it per trigger. I honestly don't know though and am just interested in the topic

brave mural
#

I mean, building the page does it anyway once, So feels like way to much to call UpdatePage everytime something changes. I ll porbably just add a button to rebuild the page or something

#

The page itself has a beatiful rebuild method, just sadge that i dont know how to properly call it πŸ˜„

dire holly
#

Performance wise you only want the UI to update when it really requires it, so pulling it every few second (when nothing has changed) would be bad practice.
Preferably you want a controllers that either tracks those updates and checks every 5 seconds if there are updates to write them to the UI (ofc this would be delayed)
Or what be a little bit more heavy on performance change the update rate quicker if you want more responsive updates / or update directly once something of your ui updates

brave mural
#

in a good way

brave mural
#

That would mean instead of having something run while the page is open every few seconds now it runs all the time just to check if the page is open

#

Damage system would probably also work to check

#

Not sure if there is a way to change health when its not damage tho, probably yes

dire holly
#

mean its up to you, performance of a event system isn't that heavy it only has todo a if statement if the health has changed
like you want a component to be added to the specific entities that you are "watching" so you will check all entities with the health change and to who he has todo send the update, pretty sure you can setup the component how often it checks (like game tick system or a slower tick)

#

im also sure you can change the value on your current UI instead of redrawing your entire UI

brave mural
#

Good point, will try that out

brave mural
dire holly
#

no problem!

brave mural
#

Does anyone know how i get the entity ref that im looking at when i execute a command like /getTarget or something?

I have this but it wants me to acutally pass something as an arg

public class TestTargetCommand extends AbstractPlayerCommand {
  private final EntityWrappedArg targetEntity;

  public TestTargetCommand (
    @Nonnull String name, 
    @Nonnull String description
  ) 
  {
    super(name, description);
    targetEntity = withRequiredArg("TargetEntity", "entity", ArgTypes.ENTITY_ID);
  }

  @Override
  protected void execute(
    @Nonnull CommandContext commandContext,
    @Nonnull Store<EntityStore> store,
    @Nonnull Ref<EntityStore> ref,
    @Nonnull PlayerRef playerRef,
    @Nonnull World world
  ) 
  {
    var entityRef = this.targetEntity.getEntityDirectly(commandContext, world);
    if (entityRef == null || !entityRef.isValid()) return;
    if (entityRef.getStore() != store) return;

    // DO Something with enttiy ref
  }
}
spare meteor
#

TargetUtil maybe, havent looked at it much

brave mural
#

Ok will check that out

verbal wasp
#

Hey guys, im looking atm for blocking "Pick Up flowers" but i dont know how atm. I could block pickup, destroy, harvest, but now pick up flowers. any idea?

neat pelican
spare meteor
brave mural
#

Yup found it

public class ExampleCommand extends AbstractTargetEntityCommand

#

Is it possible to create custom hotkeys? For example when the player presses Lets Say Alt or any other key to do something on the server like open a page

neat pelican
brave mural
#

Is it possible to retrieve an entities portrait or something or model in the ui?

For example I would like to inspect a mob and would love to have the model inside the ui.

#

Like when opening the inventory you see your own model

neat pelican
#

Not yet. You'd have to pre-render them

woeful pulsar
#

Is there a place where I can see what color format does Hytale support for the .json files when creating blocks please ?

oblique onyx
#

nvm got it to work

spiral cliff
#

It's a little weird to me when things exist outside of the ECS part of the engine, like ItemStack's where we have things like Durability and Stacksize which could be components, or part of an overall ItemStack component, and there's the catchall Metadata for the itemstack which could just be additional components

long juniper
quasi echo
long juniper
#

yeah they might improve the structure, but performance and memory usage will probably mean that they wont ever be a part of the ecs

#

oh god no, lol, the amount of overhead that would cost would not be worth it
the plan is just that items will have nicer to work with metadata rather than storing serialized json/bson in memory, plus some config in the Item asset to support automatically adding the data
thats what zero said in the hytale modding discord

quasi echo
#

what ever gives the best product is all that matters

spiral cliff
#

Just feels weird if I wanna tick an itemstack, having to make a system that activates on the player that looks through their whole inventory to see if they are holding an item that needs ticking

long juniper
#

thats fair

spiral cliff
#

I guess the other way to do it would be adding a component to the player with a reference to the itemstack that needs ticking and have the query look for that

long juniper
#

its probably better that way though, mostly because items probably shouldnt be ticked all that much either

#

like, a lot of things could be done by storing a time in the metadata, and possibly ticking very infrequently

spiral cliff
#

I was thinking if you wanted say a battery that could drain to charge tools in your inventory, but could also be charged by something outside your inventory

long juniper
quasi echo
#

im curious to see what the standards most modders use will be in 2 years time especially with the wiki and the way everyone is staying connected

long juniper
#

everything that uses the battery would just look for batteries or power sources independently

#

though some things like food that spoils in your inventory, and like, changes textures on its own are harder to do without ticking them in some capacity

quasi echo
#

prob why its not default

spiral cliff
long juniper
#

but it would be more like ticking the object, the inventory items are only modified by the object, and arent processed unless they are near it

#

idk when I think of ticking the items I thought you meant like, ticking the items unconditionally and independently

heady locust
#

Is there a way to change the tooltip of an Item?

remote edge
#

hello, someone know why the officiel doc (doc hytale dev) is down please ?

neat pelican
remote edge
neat pelican
#

Everything else is documentation made by independent people from the community and might be very useful, but should not be treated as "official"

quasi echo
#

The modding discord community is basically the only soft official documentation I trust rn

dire holly
#

Is it possible to push a new asset to other players instead of waiting for the asset monitor to detect the change?

neat pelican
oblique onyx
#

Does anyone know how to remove the leap from the Downstrike_charged attack from the battleaxe?

heady locust
#

Does anyone know I am getting disconnected with this error when using this player.getHudManager().setCustomHud(playerRef, null); Error: Disconnected from Server: Failed to apply CustomUI HUD commands

#

This is really weird

neat pelican
heady locust
#

I am pretty sure I had debug mode on

#

Actually not sure, ill try again

dire holly
sterile forum
# quasi echo im curious to see what the standards most modders use will be in 2 years time es...

You know you can just look at code projects in general, and I am fairly sure thats the answer.
There will be a bunch of different subgroups claiming superiority and all other idiots, where the "least important" aspect is how you are working with the data and where your load is, and the most important that "we are right they are wrong"

kinda like when a deep end fortran developer need to agree on something with a enterprise java developer and frontend javascript dev.

jaunty steppe
#

don't forget the py devs 😏

heady locust
#

Does anyone know how to change the item tooltip which appears when using the ItemSlot element in a Custom UI?

sick ridge
#

is there a way to tp the player to the spawn everytime he logs in?

dire holly
brave mural
#
"MagicResistance": {
          "Id": "MagicResistance",
          "Value": 0.0,
          "Modifiers": {
            "Armor_ADDITIVE": {
              "Id": "Static",
              "CalculationType": "Additive",
              "Amount": 12.0
            }
          }
        },

How can the stat stat still be 0 if it has that modifier ?

jaunty steppe
#

Can anything tell me where to get a block's drop list from?

#

Answer is prolly right in front of me

#

My little clown hammer looking thingy works, but not getting drops πŸ€”

lone crag
#

does anyone know of a mod that makes the bottoms of banners and tents placeable without support?

hexed tangle
#

im trying to create a custom UI but everytime i try to open it the game crashes

2026-03-14 22:24:50.0523|INFO|HytaleClient.Utils.SentryHelper|Sentry event captured: 87d318124ede41ef90e16788f1993fc0 
2026-03-14 22:24:50.2218|ERROR|HytaleClient.Application.Program|System.NullReferenceException: Object reference not set to an instance of an object.
   at HytaleClient!<BaseAddress>+0x6f0437
   at HytaleClient!<BaseAddress>+0x271cd6
   at HytaleClient!<BaseAddress>+0x271c3c
   at HytaleClient!<BaseAddress>+0x25c634
   at HytaleClient!<BaseAddress>+0x25e37c
   at HytaleClient!<BaseAddress>+0x25d43a
   at HytaleClient!<BaseAddress>+0x25e8b2
   at HytaleClient!<BaseAddress>+0x25d43a
   at HytaleClient!<BaseAddress>+0x244c42
   at HytaleClient!<BaseAddress>+0x295e42
   at HytaleClient!<BaseAddress>+0x284445
   at HytaleClient!<BaseAddress>+0x674de1
   at HytaleClient!<BaseAddress>+0x5c84b3
   at HytaleClient!<BaseAddress>+0x66e46e
   at HytaleClient!<BaseAddress>+0x687847
   at HytaleClient!<BaseAddress>+0x6873ec
   at HytaleClient!<BaseAddress>+0x1288f77
--------------------
 
2026-03-14 22:24:50.2218|INFO|HytaleClient.Utils.SentryHelper|Sentry event captured: c022464ef62d4294aafc85901d67b9ae
dense geode
hexed tangle
#

no, just join the server and try to execute the command

hexed tangle
#

found out, it was a problem with the tabs

brisk trench
#

I'm trying to set up mob spawning for a dungeon minigame plugin. I tried checking some of the unofficial documentation websites, one says to use spawn beacons (but doesn't say how to set them up) while another says to use the NPC plugin. (I originally tried citing the webpages, but the AutoMod blocked the message because it can't distinguish between advertisements and citations.)

#

BTW, has there been any update about when official documentation might be released? Even the JavaDoc's would be a big improvement over the current state of things.

hexed tangle
#

how can i create a gap between tab buttons? i tried a lot of things but none of them worked

lucid vapor
#

so I did something.... Got glyphs working correctly for colored nameplates πŸ˜„

#

working on optimizing it for 1000+ user based servers

#

Would love to showcase my mod....

quasi echo
#

thats cool yeah i wish there was a modding showcase forum

lucid vapor
#

I posted it in art-assets since technically it is art lol

quasi echo
#

xd

nova bronze
#

someone finally made bluestone

quasi echo
#

bluestone but no bluewood xd

brave mural
#

Why does custom hud stuff not get hidden when i press the button to hide the HUD or open custom pages?

quasi echo
#

likely because its custom

brave mural
quasi echo
#

they would prob need to tie into the keybind of toggling them

#

or set their own

lone crag
#

hey gm folks, a mod is requiring " small empty potion bottle" as a craft ingredient, i dont see how to craft them, and i want to know if thats a vanilla item or a mod item that maybe they forgot to add to survival. i can see them in creative menu , but nowhere in survival

quasi echo
#

empty potion bottle at a alchemist workbench

lone crag
#

regular empty potion bottle comes from sand in the smelter

quasi echo
#

yes and a regular potion bottle at that table crafts 1 small ones

lone crag
#

probably a glss mod

lone crag
quasi echo
#

wait you want empty small potion

lone crag
quasi echo
#

those dont exist

lone crag
lone crag
quasi echo
#

Lesser Health Potion: 1Γ— Empty Potion Bottle + 6Γ— Wild Berries + 3Γ— Blood Petals.

quasi echo
lone crag
quasi echo
#

yeah mod devs are bad about that

#

they could easily make a recipe for it because it makes sense

lone crag
quasi echo
#

yw