#server-plugin

1 messages · Page 1 of 1 (latest)

tardy flax
#

first
im gonna be asking for help later :P

worthy peak
#

Hmm

cold topaz
sudden crag
rotund monolith
#

🧚

scenic light
#

Nice

neat pelican
#

New home

bitter flower
terse citrus
#

it me

void wagon
#

Okay, let's go. Warp is a deprecated class, is there a replacement for it yet or nah?

obsidian gulch
#

helloo KweebWave

jaunty crane
#

heyo heyo! is there ant place I can find docs to manipulate the player's model? or it's still something not implemented/accessible for plugins/mods?

heavy tusk
#

still no image perms

reef axle
#

Really want to get into plugin developent right now but I have no idea where to start learning java from. If anyone has useful tutorials / courses for Java and want to share my dms are open ❤️

granite pumice
#

heyo

tawdry geode
# reef axle Really want to get into plugin developent right now but I have no idea where to ...

i recommend starting small, like try add a command that return your playername and health. Then go on from there, i personally never done java or ecs or anything before and i have so far done:

  • basic commands (/heal, /whereami, /fight {mob}
  • currency system
  • Loot crate algorithm with dynamic loot, commands to change the json saving the lootpool (next step here is looking into custom item and connecting that)
  • regenerating blocks, including saving what blocks should regenerate and being able to configure the respawn time (WIP)
#

as in terms of tutorials, TroubleDev`s are kind of a must watch imo, as well as reading the hytalemodding wiki for the part your interested in

mellow jasper
#

Big Discord update - no new forum section for server plugin showcasing. Sad.

hearty sinew
#

Or even non plugin mods. Just no place to show off mods/plugins.

ruby arrow
#

Does anyone understand MultipleHUD because I'm trying to use it in my plugin but I can't update the data on the already enabled HUD?

neat pelican
reef axle
ruby arrow
cerulean harbor
#

This is my home now

cerulean harbor
reef axle
cerulean harbor
ruby arrow
#

Does anyone understand MultipleHUD because I'm trying to use it in my plugin but I can't update the data on the already enabled HUD?

weak tangle
#

test

wary gazelle
#

can Block spawn projectiles ?

tawdry geode
# wary gazelle can Block spawn projectiles ?

you mean like a minecraft dispenser?
might be possible to code, similar to the "place ice at x+1 of this block" example, but spawn in a projectile at the center of the block in the direction the block is facing, would need a directional attribute tho

#

and add a velocity ofc

wary gazelle
#

i want to make visual effect between energy network blocks. i made one using particles but when u have a lot of difrent plocks spawning particles they start to disapear(On screen limit?) idk

#

There is smt like this

// Get the module instance
ProjectileModule module = ProjectileModule.get();

// Spawn a projectile
Ref<EntityStore> projectileRef = module.spawnProjectile(
    creatorRef,
    commandBuffer,
    config,
    position,
    direction
);

but idk if i can do this from blockstate?

tawdry geode
wary gazelle
#

yea it works i can create beams of particle in one tick or spread "crawl" between blocks but hytale limits how many spawners/particles i can spawn. so when there is a lot of particles they start to desync and spawn in random order

granite swan
#

Is it possible to create new blocks using Java only?

unborn nebula
granite swan
unborn nebula
# granite swan That's so dumb.

Oh I fully agree with you. All assets have to be registered on server start, so that means you can't create any assets programmatically. I hate it.

neat pelican
#

Can you do it with an earlyplugin?

unborn nebula
#

Eh, that might be interesting but yet, that's usually not a solution to why we want to create assets at runtime.

neat pelican
#

I haven't looked into world-specific mods yet. What about those?

#

When you create a world can you create a pack on the fly and register it to the world?

nova bronze
#

YO, neat, a verified version of the only channel i look at

void wagon
#

I have a block that has a 360 rotation animation (keyframes at 0, 90, 180, 270). It's smooth in blockbench, but in-game, there's like an easing effect between each keyframe. Is there a way to keep the animation at a consistent speed?

This doesn't occur with position, only the rotation.

brave mural
#

Does anybody know why my permissions.json gets resettet everytime my plugin boots up?

public static void OnPlayerReady(PlayerReadyEvent event) {
    Player player = event.getPlayer();
    var playerRef = player.getReference();
    if (playerRef == null) return;

    var store = playerRef.getStore();
    var ref = store.getComponent(playerRef, PlayerRef.getComponentType());

    PermissionsModule.get().addUserToGroup(ref.getUuid(), HideoutPermissionGroups.User);
  }
stoic condor
brave mural
#

Im not quite sure what that means. What i do is whenever a player join i just add the player to the group of my plugin for permissions and such, but for example lets say the user also had the group OP before, after that code gets executed it only has my plugin group & andventure which confuses me. Also whenever i restart the dev server i can see how the permissions are completly empty which also confuses me

plain magnet
#

are we sure it's not just a game thing? I've tried to op myself in an adventure game using the permissions of the world and it never does it, resets itself

sudden fox
#

I've had that happen a lot but I think it's an issue with the server host, it doesn't happen when I have friends join my local game

tawdry geode
#

anyone here know how i can import (or read) a config/json file in this function? might not need to actually import the config and just read the corresponding json if that works, no changes will be applied just data read

    public void onEntityAdded(@NonNullDecl Ref ref, @NonNullDecl AddReason addReason, @NonNullDecl Store store, @NonNullDecl CommandBuffer commandBuffer) {
        BlockModule.BlockStateInfo info = (BlockModule.BlockStateInfo) commandBuffer.getComponent(ref, BlockModule.BlockStateInfo.getComponentType());
        if (info == null) return;
        
        //read list of blocks that should regen from config
        //see if the block added is in this list
        String blockID = placeholder.blockID;
        Integer ticksUntilReplace = placeholder.ticksUntilReplace;
        //if it is, add regenBlock component to the blockEntity with correct blockID, tickspassed = 0 and read the respawnTime from config
        RegenBlock regenBlockComponent = new RegenBlock();
        regenBlockComponent.setTicksPassed(0);
        regenBlockComponent.setBlockID(blockID);
        regenBlockComponent.setTicksUntilReplace(ticksUntilReplace);
    }```
sour garden
#

Is my discord linked now ?

cold moat
#

No

brave mural
#

What happens when we have a plugin on the server which adds custom items and blocks and users already use that and we remove that plugin ? Is there a way to clean everything up so it automatically removes all like non existing stuff

cold moat
#

I know items in their inventory become question marks

tribal patrol
tawdry geode
#

figured it out, i was missing constructor and was trying to put what belongs in the constructor into a function override call

tribal patrol
#

Ah I though the config might have been more of your issue. For RefSystems, do you need a particular constructor form though?

tawdry geode
tribal patrol
#

oh wait I see, we actually need to pass a instance, the registry doesn't build it. So you can just pass it as normal

compact remnant
#

I just want to make an furniture set but i have no clue how to mod it in game. I created objects in blockbench but that is all i understand as an animator.

Everyone say yea hytale is easy to mod even when you never have.
Wel i dont understand much of coding. i just want to import my model and click somewhere like hey this is a chest make this object work like a chest. Or this is a bed make it a bed. But nop that is not how it works. XD

So eh…. Where do i start to get my furniture and storages in game working?

tawdry geode
tribal patrol
opaque delta
#

Hey, I've been working on a server plugin and I've run into two camera-related issues I couldn't solve on my own. I'd really appreciate any guidance!

Issue 1 – Selfie Camera (camera always facing the player's face)

I'm trying to implement a selfie camera mode. The idea is that when toggled, the camera should position itself in front of the player and always look directly at their face, following their head rotation.

My current approach is to offset the yaw by 180° (playerYaw + π) and use MovementForceRotationType.AttachedToHead, but the rotation only gets set once at toggle time. So when the player turns, the camera no longer faces them correctly without sending a new packet every tick.

Is there a recommended way to keep the camera continuously facing the player's face without spamming packets? Something like a relative rotation offset that updates automatically with the player's head?

Issue 2 – Negative distance + DistanceOffsetRaycast causes a crash

I'm using a negative distance value (e.g. -10) to position the camera in front of the player instead of behind them for a zoom effect. This works visually, but as soon as I also set positionDistanceOffsetType = PositionDistanceOffsetType.DistanceOffsetRaycast, the game crashes. Presumably because the raycast doesn't handle a negative distance and tries to cast in the wrong direction or with a negative length.

Is there a built-in way to handle wall/block collision for a front-facing camera without triggering this crash? Or is writing a custom server-side raycast (and adjusting the distance accordingly) really the only option here?

Thanks in advance! 🙏

tawdry geode
# tribal patrol you want block type, so: `blockType.getId()`

thanks, have you worked with adding components to blocks before? i was thinking of commandBuffer.addComponent(ref, regenBlockComponent);
but i get error that regenBlockComponent is component not componenttype, is there a way to convert it or am i on the wrong track?

tribal patrol
#

no just limited entity stuff for now. Make sure you register your component/type, atleast I think thats required in general

#

Also looks like that method requires a ComponentType instead, you'll get one returned from the registry method I think

#

e.g. from tutorial (though do equivalent for Chunks):

        .registerComponent(PoisonComponent.class, PoisonComponent::new)```
maiden socket
#

Edit: Apparently, TargetUtilscontains some helper methods for that, i.e. TargetUtil.getAllEntitiesInSphere
Original: Is there already an API for spatial queries? So something where you can iterate all item entities in an area?

tribal patrol
#

^ make sure to be on the right thread for that, took me a while to figure that out, even though I though I was

tawdry geode
maiden socket
brave mural
#

Is there a way to check if player is in combat

nova bronze
#

idk but the sprint mod I use has a combat timer

somber lodge
#

Can’t load custom UI can’t find culprit. Removed tons of mods so far - after today’s update

little turtle
#

Just gotta wait for mods to get updated.
Too many broke

winter hawk
#

Has there been any update to ETA on the node editor for Linux? It’s extremely tedious and difficult to manually try and do world gen through just JSON files on Linux

soft gorge
#

did anyone get "Add Shovel Crafting Recipes" to work?

maiden galleon
bitter flower
#

i'm a bit lost, how does mod validation work in the new update for dedicated servers?

unborn nebula
#

Great one of my mods works fine with the new update but the other whines about targetting a different version. wth.

#

Time to play "Spot the differences" smh

maiden socket
#

How can I support other mods without dependency? For example, I want to support the MHud mod.
Do I have to add dependencies somewhere in manifest.json or pom.xml?

neat pelican
old hull
#

My mod has a dependency that hasent been updated yet 🙁 Mine wont work at all without it 🙁

tawdry geode
neat pelican
#

Sure but I can't promise answers

tawdry geode
#

wait im dm you

neat pelican
#

I'd prefer it here so others can learn or chime in as well

tawdry geode
#

sure
but its gonna have alot of code

#

what im trying to do is make a plugin that makes some blocks regenerate, with a config file mapping each block (block id string) to an integer (ticks until respawn). I created the class "regenblock" as a component to store values like ticksPassed, ticksTillReplace and the blockId of what will be replaced. i got the following code so far, the config import from pluginmain is working, but when i place one of the blocks from the config (i put in "Rock_Ice") it doesnt trigger the process

#

RegenBlockInitializer:

    Config<RegenBlockConfig> regenblockconfig;

    public RegenBlockInitializer(Config<RegenBlockConfig> regenblockconfig) {
        this.regenblockconfig = regenblockconfig;
    }

    @Override
    public void onEntityAdded(@NonNullDecl Ref ref, @NonNullDecl AddReason addReason, @NonNullDecl Store store, @NonNullDecl CommandBuffer commandBuffer) {
        BlockModule.BlockStateInfo info = (BlockModule.BlockStateInfo) commandBuffer.getComponent(ref, BlockModule.BlockStateInfo.getComponentType());
        if (info == null) return;

        int x = ChunkUtil.xFromBlockInColumn(info.getIndex());
        int y = ChunkUtil.yFromBlockInColumn(info.getIndex());
        int z = ChunkUtil.zFromBlockInColumn(info.getIndex());

        WorldChunk worldChunk = (WorldChunk) commandBuffer.getComponent(info.getChunkRef(), WorldChunk.getComponentType());
        if (worldChunk == null) {
            return;
        }
        String blockID = worldChunk.getBlockType(x,y,z).getId();
        if (blockID == null){return;}
        //get the config
        RegenBlockConfig regenBlockConfig = regenblockconfig.get();
        //check if the block should regenerate
        if (!(regenBlockConfig.getRespawnTimeMap().containsKey(blockID))){
            return;
        }
        //read the regeneration time from config
        Integer ticksUntilReplace = regenBlockConfig.getRespawnTimeFromString(blockID);

        //initialize new RegenBlock component
        RegenBlock regenBlockComponent = new RegenBlock();
        regenBlockComponent.setTicksPassed(0);
        regenBlockComponent.setBlockID(blockID);
        regenBlockComponent.setTicksUntilReplace(ticksUntilReplace);

#
    }

    @Override
    public void onEntityRemove(@NonNullDecl Ref ref, @NonNullDecl RemoveReason removeReason, @NonNullDecl Store store, @NonNullDecl CommandBuffer commandBuffer) {
        BlockModule.BlockStateInfo info = (BlockModule.BlockStateInfo) commandBuffer.getComponent(ref, BlockModule.BlockStateInfo.getComponentType());
        if (info == null) return;

        RegenBlock generator = (RegenBlock) commandBuffer.getComponent(ref, HyArenaPluginMain.get().getRegenBlockComponentType());
        if (generator != null){
            int x = ChunkUtil.xFromBlockInColumn(info.getIndex());
            int y = ChunkUtil.yFromBlockInColumn(info.getIndex());
            int z = ChunkUtil.zFromBlockInColumn(info.getIndex());

            WorldChunk worldChunk = (WorldChunk) commandBuffer.getComponent(info.getChunkRef(), WorldChunk.getComponentType());
            if (worldChunk != null){
                worldChunk.setTicking(x,y,z, true);
            }
        }
    }

    @NullableDecl
    @Override
    public Query getQuery() {
        return Query.and(BlockModule.BlockStateInfo.getComponentType());
    }
}
#

And the RegenBlockSystem:

    @Override
    public void tick(float dt, int index, @NonNullDecl ArchetypeChunk archetypeChunk, @NonNullDecl Store store, @NonNullDecl CommandBuffer commandBuffer) {
        BlockSection blocks = (BlockSection) archetypeChunk.getComponent(index, BlockSection.getComponentType());

        assert  blocks != null;

        if (blocks.getTickingBlocksCountCopy() != 0){
            ChunkSection section = (ChunkSection) archetypeChunk.getComponent(index, ChunkSection.getComponentType());

            assert section != null;

#

            assert blockComponentChunk != null;

            blocks.forEachTicking(blockComponentChunk, commandBuffer, section.getY(), (blockComponentChunk1, commandBuffer1, localX, localY, localZ, blockID) ->{
                Ref<ChunkStore> blockRef = blockComponentChunk.getEntityReference(ChunkUtil.indexBlockInColumn(localX, localY, localZ));
                if (blockRef ==null){
                    return BlockTickStrategy.IGNORED;
                } else {
                    RegenBlock regenBlock = (RegenBlock) commandBuffer1.getComponent(blockRef, RegenBlock.getComponentType());
                    if (regenBlock != null){
                        WorldChunk worldChunk = (WorldChunk) commandBuffer.getComponent(section.getChunkColumnReference(),WorldChunk.getComponentType());
                        World world = worldChunk.getWorld();

                        int globalX = localX + (worldChunk.getX()*32);
                        int globalZ = localZ + (worldChunk.getZ()*32);

                        if (regenBlock.getTicksPassed() >= regenBlock.getTicksUntilReplace()){
                            regenBlock.setTicksPassed(0);
                            world.execute(() -> {
                                world.setBlock(globalX, localY, globalZ, regenBlock.getBlockID());
                            });
                            return BlockTickStrategy.SLEEP;
                        } else {
                            regenBlock.incrementTicksPassed();
                            return BlockTickStrategy.CONTINUE;
                        }
                    } else {
                        return BlockTickStrategy.IGNORED;
                    }
                }
            } );
        }
    }

#
    @Override
    public Query getQuery() {
        return Query.and(BlockSection.getComponentType(), ChunkSection.getComponentType());
    }
}
neat pelican
#

I can help you think about the process but I'm not reading all your code

tawdry geode
#

lmao fair

#

my fear is that the ref i take at entity removal is not actually a ref that contains the regenBlock component and therefore never applies the ticking system

neat pelican
#

what im trying to do is make a plugin that makes some blocks regenerate
So when players break blocks, the blocks eventually come back on their own so they can be farmed repeatedly.
with a config file mapping each block (block id string) to an integer (ticks until respawn)
Okay, different block types have different respawn durations.
I created the class "regenblock" as a component to store values like ticksPassed, ticksTillReplace and the blockId of what will be replaced
That's how I would tackle it as well. When a block is broken and turned into the Empty block, attach a component to it that is responsible for keeping track of when it should respawn. This component will be serialized with the world, so we don't have to worry about losing this information on server restarts. Also, when a block is placed in a spot where a respawn component is present, we can decide how this should behave.
... when i place one of the blocks from the config (i put in "Rock_Ice") it doesnt trigger the process
Wait you want to listen for placement, not breaking?

tawdry geode
#

then listen for removal to activate the ticking

#

my thinking is:

placement -> check if block should regenerate, if yes add component regenBlock
removal -> if component regenblock is present, start ticking
tick-system -> respawn if ticks reach threshold

neat pelican
#

I don't understand why you start regenerating a block upon placement, and not when it's mined

tawdry geode
#

i dont think i am

neat pelican
#

oh, you're thinking you attach a component but it's inert until the block is mined

#

don't you want this to apply to natural blocks?

tawdry geode
#

maybe later, for now player placed would be fine so i can see the rest of the algorithm works

neat pelican
#

yeah it's fine. just an extra step. I would probably make it two separate components then. One to say "this block is player-placed" and another to say "a block will respawn here"

#

so your ticking system only needs to query for the latter category

opaque delta
# maiden galleon Try RotationType.AttachedToPlusOffset instead of MovementForceRotationType.

Thanks for the suggestion! I've been experimenting with the settings, but I’m still struggling to get a freely rotatable camera that faces the player. Here is a summary of what I’ve tried:

1. Using AttachedToPlusOffset

settings.rotationType = RotationType.AttachedToPlusOffset;
settings.rotation = new Direction((float) Math.PI, pitch, 0f);

Result: Yaw is ignored; camera stays fixed behind the player's head.

2. Using Custom + LocalPlayerLookOrientation

settings.rotationType = RotationType.Custom;
settings.applyLookType = ApplyLookType.LocalPlayerLookOrientation;

Result: Player's head rotates freely, but the camera itself remains static.

3. Closest attempt (Static Selfie)

settings.rotationType = RotationType.Custom;
settings.applyLookType = ApplyLookType.Rotation;

float yaw = playerRef.getTransform().getRotation().getYaw()+ (float) Math.PI;
float pitch = (float) Math.toRadians(-20f);
settings.rotation = new Direction(yaw, pitch, 0F);
settings.movementForceRotation = new Direction(yaw, pitch, 0F);

Result: Faces the player at start, but camera is static/locked.

My goal is: I want the camera to always face the player's front (180° offset) while still allowing the player to orbit the camera around the character. Any ideas on how to make AttachedToPlusOffset actually respect the yaw offset or how to make the camera orbit in Custom mode?

Edit: I've also tried both isLocked true and false when sending the packet over to the Player.

wind delta
#

The new update broke more than 50% of the mod community. 😭

little turtle
#

more like more then 68%

sudden fox
#

it'll probably take a few rounds before folks know how to prepare for a new release on both ends 💜

#

even some of the modders that had prepped and gotten a new version lined up on the pre-release are still having out-of-date popups so there's probably some coordination there that can happen in the future to let modders get on top of it ^^

unreal dust
little turtle
#

How dare you i avoided the numbers above and below

unreal dust
#

why not server gonna crash anyway xD

#

Also weird setup they did on discord cloning channels for owners and guests not sure why even

maiden galleon
# opaque delta Thanks for the suggestion! I've been experimenting with the settings, but I’m st...

Yeah it's not supported for the 'server camera' to orbit.
Best I could get:
cameraSettings.attachedToType = AttachedToType.LocalPlayer; cameraSettings.positionLerpSpeed = 0.2f; cameraSettings.rotationLerpSpeed = 0.2f; cameraSettings.isFirstPerson = false; cameraSettings.eyeOffset = true; cameraSettings.applyLookType = ApplyLookType.LocalPlayerLookOrientation; cameraSettings.positionDistanceOffsetType = PositionDistanceOffsetType.None; cameraSettings.positionType = PositionType.AttachedToPlusOffset; cameraSettings.positionOffset = new Position(-2.5, 0, 0); cameraSettings.rotationType = RotationType.AttachedToPlusOffset; cameraSettings.rotation = new Direction((float) Math.PI, 0, 0); cameraSettings.rotationOffset = new Direction((float) Math.PI, (float) Math.PI / 8, 0);
You can disable move with the Rotation applyLookType, but move still wiggles the character as long as it's AttachedToType.LocalPlayer.
Maybe if the selfie is very close to the character you can enable sendMouseMotion and handle the MouseInteraction packets.
Or if you attach to an entity you could open a page with a cute camera UI where people click arrows to move and thus you could operate the camera as you please detached.
I know this camera packet will be looked at sooner than later but this is it for now (afaik).

#

isLocked is to to let the player toggle between 1st and 3rd person with the non-custom type.

ember cipher
#

when's the official documentation coming out 😩

#

moreso when's the hytale version of spigot coming out 😅

craggy geyser
ember cipher
#

just for simplifying reasons

#

it'll happen eventually

craggy geyser
#

actually a server software that replicates the function names and stuff of spigot to make it 1:1 hytale compatible would be awesome.. like a compatibility layer lol

ember cipher
#

it would make going from spigot coding to hytale a lot easier

opaque delta
unreal dust
#

Hey guys do you know if there's any voice chat system where you can hear people around you by default without specifically doing your setup first to join voice?

neat pelican
unreal dust
#

ah thank you, hopefully soon akin to MC

neat pelican
#

yes, they said it's coming soon

unreal dust
#

ik Simon mentioned this but was in a "I don't know if before release" so deff not short term unless he re-confirmed this later

#

did he mean release of update or release of the game?

neat pelican
#

he said recently that they already have a prototype working and it only needs polish and integration

#

so I'm guessing it's a matter of weeks rather than months

unreal dust
#

kk, he also did mention they had in-game youtube/twitch viewer which was removed

gotta bet it's because they have to let ads play or...

#

angry youtube sounds

neat pelican
#

no, it was because the library they used for the prototype was outdated and had licensing problems

unreal dust
#

oh that's interesting, I imagine as long they let modding do more modders will get to it without them having to touch official support for it

brave mural
#

since the last update my plugin dev template now says it is old version and my client cant connect to it. How do i update the plugin dev server ?

obsidian moth
#

so im having issues with mods that were updated today causing my server to crash even tho the server is running todays update

#

anybody else havin this issue?

#

the mod I am talking about updated today... todays update is causing crash but if I use older one it works fine

sudden fox
#

odd! maybe they'll release a fix for that soon, but in the meantime you can probably still use the older one?

obsidian moth
#

yea the older one works fine its just weird

old hull
#

Can someone give me a hand with my mod. Its making my game crash everytime I load into a server or singleplayer world. Im not getting any obvious errors in console or the logs. It was at a point where the server wouldnt boot up but I fixed the errors and removed my player files and it let me in. after a couple changes and rebooting the server it wont let me in anymore. I went through and undid all of the changes I made, completely reverted back to the version I backed up before I started making changes, and it still wont work now.

I am getting an error stating "A critical error occurred: Object reference not set to an instance of an object"

maiden socket
#

Edit: It seems DebugUtils is the way to go, i.e DebugUtils.addCube(...)
Original: Is there a way to have debug drawings inside the world? So gizmos and simplified renderings to debug functionality?

weak mirage
#

EssentialsPlus + OrbisGuard

red nimbus
#

anyone else update their server and have everything break? like it keeps crashing on start?

#

quite a few

#

bet

surreal path
#

Or keep the server offline and try it on the local in your own world. Because then it don’t need so much time with online->offline->online-> …..

#

Good point.

I did it 2 days ago

Test it local and when I found the issue test it on Server and solve the issue.

But you‘re right there can be a difference between local and server

hushed mountain
#

Or, you could do a binary search instead

sudden fox
#

hate to get to that point, love that it speeds things up so much compared to batching 🙂‍↕️

rare coral
#

a

wraith sleet
#

ive builded my mod with the latest server jar and yet still it shows that one or more plugins targeting a different server version. anyone knows how to fix it? changed manifest entry?

tawdry geode
#

If so they might not be updated yet, or theoretically work but havent been updated to the New Syntax (you cant know so probably take them out until official update)

wraith sleet
#

is there a way as command to let me show which plugins are affected?

tawdry geode
#

Dont think so, someone posted their message earlier where it said "your mod 'arc' is not for this version" but idk why it said that

#

I only have my plugin on my test Server so i Just had to change Manifest and im good to go

fast basalt
#

Whats the problem as it just saying it's out of date isn't a problem or affect

wraith sleet
fast basalt
wraith sleet
tawdry geode
fossil adder
#

The person who decided to delete the channel history, I hate you. Thanks for complicating mod development, because now I can't find the code examples I need that people shared over two months ago.

tribal patrol
#

^ Looks like they just deleted the original plugin channel, keeping the verified channel, but yeah I agree the original was probably more valuable to keep (Even though it had stuff from before release).

hearty sinew
#

Did the general mod development channel get folded into this one or #game-discussion?

nova bronze
#

yeah, would hope it's archived

fringe shoal
#

Should of wrote it down somewhere for you to remember as a backup plan
Rule Uno Numero Numbo Wan: Always paste the code of importance somewhere in the backlog of your google docs.

You see good code, you keep it somewhere in an organized google docs or of some type.
Thanks for coming to my TED talk Hypixel_ThisIsFine

unreal dust
#

oh the channel outright delete is crimes against modding and knowledge.

Someone should be put in trial for this. So much lost info that could be searched up.

heady locust
#

Does hytale record player playtime?

latent vapor
tulip parcel
#

So this channel is what replaced the Modding Discussion channel?

remote chasm
#

this one replaced the old server-plugin channel

dreamy tartan
#

Hey, does anyone know the current workaround for fetching player skins for web display? I've noticed a few sites doing it already, but I'm curious about the specific endpoint or method they're using. Any leads?

glossy oak
vivid bone
#

Hi there, i've had NoCube tavern mod, the mod is incompatible with Hytale 0.3
So i can no longer use it, but once i charge a chunk with old tavern furnitures, the map crashes, what can I do 🥲

latent vapor
vivid bone
latent vapor
twilit talon
#

Is anyone here perhaps creating public API documentation?

neat pelican
#

there are a bunch, but a lot is just ai generated

twilit talon
neat pelican
fossil falcon
#

I also use hytalemodding and just stumbled upon hytale-docs on github by vulpeslab

zinc mural
#

Also for everyone who wants to put Mods on Curseforge or wherever.
Please put "ServerVersion": "2026.02.18-f3b8fff95", instead of "ServerVersion": "*", in your Manifest.json

#

Everytime they update, you need to do this. "ServerVersion": "Newest Version",

#

If someone got a msg ingame, that one of your plugins is outdated: go in to your mods folder and edit the mod jar file with winrar or unzip.
Go in to the manifest and edit the line: "ServerVersion": "2026.02.18-f3b8fff95", (If its not there, just paste it in there. Watch for the , if there are lines behind it. Save it / repack it and youre good to go.

dense charm
#

Looking to hire someone to make a mod of miniature objects that can be placed anywhere-- think tiny houses, tiny trees, little boats, little animal mobs

still narwhal
#

My mod works and shows a warning for no reason

glossy oak
# zinc mural If someone got a msg ingame, that one of your plugins is outdated: go in to your...

I also created gradle task for plugin developers that does that automatically

    def manifestFile = file('src/main/resources/manifest.json')
    doLast {
        if (!manifestFile.exists()) {
            throw new RuntimeException("Could not find manifest.json at ${manifestFile.path}!")
        }
        def updatedText = manifestFile.text

        def versionPattern = /"Version"\s*:\s*"[^"]*"/
        if (!(updatedText =~ versionPattern)) {
            throw new RuntimeException('manifest.json is missing the "Version" field')
        }
        updatedText = updatedText.replaceFirst(versionPattern, "\"Version\": \"${version}\"")

        def includesPattern = /"IncludesAssetPack"\s*:\s*(true|false)/
        if (!(updatedText =~ includesPattern)) {
            throw new RuntimeException('manifest.json is missing the "IncludesAssetPack" field')
        }
        updatedText = updatedText.replaceFirst(includesPattern, "\"IncludesAssetPack\": ${includes_pack.toBoolean()}")

        def serverJar = file("HytaleServer.jar")
        def serverVersion = null
        if (serverJar.exists()) {
            java.util.jar.JarFile jarFile = null
            try {
                jarFile = new java.util.jar.JarFile(serverJar)
                serverVersion = jarFile.getManifest()?.getMainAttributes()?.getValue('Implementation-Version')
            } finally {
                if (jarFile != null) {
                    jarFile.close()
                }
            }
        }
        if (serverVersion != null && !serverVersion.isBlank()) {
            def serverVersionPattern = /"ServerVersion"\s*:\s*"[^"]*"/
            if (!(updatedText =~ serverVersionPattern)) {
                throw new RuntimeException('manifest.json is missing the "ServerVersion" field')
            }
            updatedText = updatedText.replaceFirst(serverVersionPattern, "\"ServerVersion\": \"${serverVersion}\"")
        }

        manifestFile.text = updatedText
    }
}```

in manifestFile you have to put path to your plugin manifest file
in serverJar you have to put path to your server jar file
#

Maybe that will help someone also

still narwhal
zinc mural
#

Nice one!

still narwhal
#

Where is it displayed if at all?

zinc mural
#

Under "Play" - Version: (This One)

#

But as jaszka already posted, this one would automatically grab the version.

still narwhal
#

I get failed to validate npc's and I have no npcs in the plugin at all

zinc mural
#

Can you post your whole compile log?

glossy oak
still narwhal
zinc mural
#

Where did you install your hytale?

still narwhal
#

it is there, but .jar is not present, just .aot

zinc mural
#

Bro... 😄

still narwhal
still narwhal
zinc mural
#

Bro was related to "theres no jar at all"
So either you deleted the jar or it is somewhere else.

still narwhal
zinc mural
#

Start the Hytale Launcher, can you update?

still narwhal
#

Nope, shows play only

#

Clicked check for updates, says no updates available

glossy oak
#

Do you have pre release selected in launcher?

zinc mural
#

Go under settings Patchline = Release go down and uninstall reinstall.

still narwhal
zinc mural
#

Should be

neat pelican
still narwhal
glossy oak
still narwhal
still narwhal
glossy oak
#

what ide do you use

still narwhal
# glossy oak what ide do you use

It popped up when I restarted it, intellij, why does the server still fail to start, "failed to validate npc's" which I don't have

#

Assets Hytale:Hytale failed to load.

glossy oak
#

how do you starting server

still narwhal
glossy oak
#

Yes but, can you just paste me the runServer task from build.gradle?

still narwhal
still narwhal
# glossy oak Yes but, can you just paste me the runServer task from build.gradle?

This? ```afterEvaluate {
// Now Gradle will find it, because the plugin has finished working
val targetTask = tasks.findByName("runServer") ?: tasks.findByName("server")

if (targetTask != null) {
    targetTask.finalizedBy(syncAssets)
    logger.lifecycle(":white_check_mark: specific task '${targetTask.name}' hooked for auto-sync.")
} else {
    logger.warn(":warning: Could not find 'runServer' or 'server' task to hook auto-sync into.")
}

}

#

it's from kaupenjoe's template

#

I don't know where the task file is if it has a file, I am new to Java and have never used gradle before

glossy oak
#

in the github page it says If you for example installed the game in a non-standard location, you will need to tell the project about that. The recommended way is to create a file at %USERPROFILE%/.gradle/gradle.properties to set these properties globally. did you do something similiar?

still narwhal
#

No, the game is in a standard location

#

The other project is not really mine since I collaborate with another person so I really do not know how that is set up

tawdry geode
#

is it possible to extract the information who placed the block from the onEntityAdded event? (query filters for blocks only)
public void onEntityAdded(@NonNullDecl Ref ref, @NonNullDecl AddReason addReason, @NonNullDecl Store store, @NonNullDecl CommandBuffer commandBuffer)

sterile forum
#

Finally i was home and could link to my discord account.

latent vapor
obsidian root
#

Hi

#

Guys, how do you think we could implement block rotation in the game? You know, like when you attach a block to some gears, start spinning them, and the block rotates along with them?

neat pelican
#

create the animation in blockbench and set it to loop?

sterile forum
#

You can already attach models to a block. like how ores are shown. If you have access to the model you have access to a transform, apply a rotation to the transform.

#

Danis way work as well, but it really depends on how you want to control the speed between components if any.

#

Or wait attach a block to it, I am not sure we can handle separate chunk grids as the game is implemented. So might require some heavy entity magic.

#

If one talks about train like create or valkyrian sky does in minecraft, its really a fully separate system that creates separate chunk grids that are moved and just rendered. Took a ton of work.

#

Since we don't have access or can modify how the client renders anything, it depends heavily on what support hytale already have.
I am fairly sure its not just to connect a transform component to a chunk and rotate it. ^^

unreal dust
latent vapor
#

people don't realize they can toggle of the validation check in single player or multi

unreal dust
#

I was literally derp because I knew I did something but for the hell of me didn't know what did I do to skip validation

Something the devs themselves could have said "hey by the waaay you can do this" it'd save a million people panicking

latent vapor
#

doesn't help slikey, doesn't post any of their updates here. so when they talked about the breaking change window for modding api, and working on allowing to select specific game version in the launcher

unreal dust
#

someone yesterday even coded a github script to auto-inject the version on all mods files that's how omg it was

and it was a simple parameter derp derp derp

latent vapor
#

I mean, that is legit a good idea, I do think proper CI/CD tools, with webhook releases would be nice

#

it would atleast stop the complaining from the uninformed

unreal dust
#

It's just documentation, I know they want pretty patch notes but they also need technical ones.

bitter flower
#

i'm curious: how would i do do add a custom animation for a weapon i made when the player gets it in their hand?

#

like instead of the classic animation when the item appears on the right side of the screen and the player raises the arm to hold it

pure sparrow
#

I use Query but how can I read on my website how many players are active and server is on? 😄 Somehow worked today it crashed

old cloud
#

The new patch updated the hytale server protocol version to hytale/2, anyone know of any documentation that shows what's been added? I'm hoping you can now get player counts and other metadata straight from the protocol instead of using an external plugin

twilit talon
old cloud
twilit talon
old cloud
vague blaze
#

hey where is the changelog about the small patch from today?

stuck socket
vague blaze
#

alright, thanks

maiden galleon
fossil adder
#

Please send the code that disables messages about players disconnecting from the server

maiden galleon
#

What's the message in English?

fossil adder
#

public static void onPlayerAddWorld(AddPlayerToWorldEvent event) {
event.setBroadcastJoinMessage(false);
}

#

the same for disconnect

maiden galleon
#

Yeah I think there is no such hook for the leave message atm. I'll add something.

crude apex
#

yo minikloon you know if we are getting any of those channels back

#

totally off topic ive just been waiting for a mod to chat to ask but they are inactive lul

maiden galleon
#

I noticed there used to be two server-plugin channels and now there's only one in verified. Is that what you mean? Cause I don't decide anything about the Discord I have no idea.

crude apex
#

the discord manager person deleted a number of channels so now there arent ones for like blockbench help or modding

fossil adder
#

Are you planning to add MOTD for Hytale servers? How soon?

spiral cliff
#

oh that's why Search is missing a bunch of stuff

crude apex
#

in addition to the useful things that were in the past channels

cyan garden
#

I remember Silkey saying that they need to remake the server list first

lunar schooner
#

would it be wrong of me to go update the last 10 mods my server needs to run lol, as they all work they just need the version changed lol

brisk burrow
#

The update seems to have broken my world. I assumed it was the handful of mods we run on our server but I disabled all those and am still getting red errors in the console about failing to load chunks. The server is very unresponsive: stamina doesn't update when sprinting, blocks don't break, etc. The server itself doesn't really shut down properly anymore, either. It's very very slow to shut down and I have to click the X button to close the window out myself. Is there anything I can do to sort of reset files without losing progress?

maiden sparrow
#

@crude apex & @spiral cliff you need to click on the top near to the green checkmark and where hytale is marked on the left sidebar , a context menu will pop out you can ckick on show all chanel and you will see them

crude apex
#

where would #discussion be? id:browse only says there are 17 channels

tawdry geode
maiden sparrow
neat pelican
lunar schooner
#

ah so my question finally got an answer.. yes every hotfix i have to go and update my mods... thats going to get annoying

white crest
#

It's actually good practice, it encourages devs to be proactive about updating their work

neat pelican
#

and users will be sure that the mods they install have been tested on the current version

lunar schooner
white crest
neat pelican
#

In the future there will be a better workflow so the pre-releases will be more reliable for us to build against

lunar schooner
#

its just the hotfixes cuz those can come at you like 4-6 of them in 2 weeks lol

#

does mis match version stop a server from loading though? or can the server still boot as long as theres no mods that fail to run

#

wasint sure if anyone has tested that yet, as my server is still down waiting for mod authers to post there updates lol, and didnt wanna corupt anything by just booting the world up

white crest
lunar schooner
#

i mean i guess i could just go and update there manifests

atomic valve
#

Hey guys :) I've seen that the new version finally starts to introduce support for SNI. However, the attribute is not propagated to the actual channel in HytaleChannelInitializer, does anyone know how to access the SNI in an other manner?

atomic juniper
#

already exist way to generate .bson world file ? Which use InstancePlugin for generate world

neat pelican
sly onyx
#

do we have date for the boats update?

signal anvil
#

I love making a mod and then once I'm done the mod doesn't work cus the intellij plugin hasn't been updated for 3 days lmao

torpid prairie
#

Hi lads, i cant find any docs about Hyatale GUI.
How mods create custom GUI?

spiral cliff
#

is there a UIEventBindingType for closing the UI? I assumed that's what CustomUIEventBindingType.Dismissing was but not sure that's right

white crest
#

@torpid prairie I can dm you a good resource

torpid prairie
inner fossil
#

Does anyone know why the actual time on the server console is 2 hours behind? so now my logs are always 2 hours behind, even though my server time is correct, is there a way to set the time on the server?

white crest
inner fossil
white crest
#

It's probably just using GMT+0

inner fossil
#

yea wonder if you can change it

neat pelican
unreal dust
#

What's up with prefabs on latest update? I already deleted the .cache but the server insists on erro'ing the very files it generates on boot [PrefabBufferUtil] Failed to load .cache/prefabs/Hytale_Hytale/Server/Prefabs/Trees/Oak/Stage_2/Oak_Stage2_011.prefab.json.lpf

pure sparrow
#

Anyone have a idea how serverlists get the player numbers since they dont use HyQuery or similar? mh

sterile forum
#

I have so broken my project settings, i am spending my time trying to understanding gradle and where the line goes between gradle and intellij.
Also don't like that each plugin example refers to difference dependencies that i have no real insight into what they do.
I feel am almost to old for this. ^^

golden turtle
#

you guys having issues after this patch with it not skipping mod validation ?

stuck socket
# inner fossil yea wonder if you can change it

I looked into that briefly... It's set in the main JAR file, but it can be set as either a global or function specific value. I don't have that kind of Java experience so I didn't dig any further. Just know the value is set to GMT +0 and move on with your life 🙂

inner fossil
stuck socket
inner fossil
sterile forum
#

Yay it works builds and i can join again, and I could even see a few more components listed in my mod i think.

long ledge
#

Hey, i need help i don't find for cancel pickup Stone Rubble - Medium

#

I tested the Interactively PickupItemEvent (I get debugging but canceling doesn't work)!

olive quarry
unreal dust
#

It's so weird I didn't notice these errors running pre-release, and then it breaks on release? It's supposed to be the opposite D:

stuck socket
#

All I know is now I want bacon 🙁

unreal dust
#

and some big tower prefabs I made now selecting it doesn't place, doesn't let me see the preview or place them.

had to install the previous version to place them in world and move back to the latest version

mellow jasper
#

What's with the obnoxious "these mods are f*cked" notification when I try to enter my world? Is there a straight forward way of updating them?

trim gyro
hearty sigil
#

v

jaunty cypress
#

is thee a community FAQ about running a local server? I've got the server running on ubuntu... I can start it up and join it, but the authentication doesn't seem to last long, even though I do auth persistence Encrypted and the world doesn't seem to persist if I stop the server and restart it. Also, having trouble getting plugins loaded.... they're in the mods folder, though I have mods/mods/mods/ - not sure why theres 3 nested

tulip parcel
#

Is there a way to access the Asset Editor outside of the game??

neat pelican
jaunty cypress
#

persistence / yes - I understood both, just seems everytime I start the server I have to authorize it again.

neat pelican
#

that might be due to the same reason the server can't save your chunks

nova bronze
#

OH

#

I KNOW THE ANSWER TO THIS ONE

#

cd to the Server directory first and then run the launch command

jaunty cypress
nova bronze
#

well it sounds like it's running in the default java directory and not the actual server directory

#

had that happen before

wraith sleet
#

are there raytrace api for plugins?

#

sorry raycasting

cloud cave
#

long shot but would anyone know where i need to start looking with regards to the food and effects buff timers and where its recorded and saved?

neat pelican
nova bronze
#

ray tracing in hytale when

marsh warren
#

Hello, I've looked for answers on this channel, but I just can't figure out why my plugin won't work, the server won't even load it.
The server is the latest version, i made sure to set the server version in the manifest to the current one, i placed the .jar in the mod. It used to work, but now I get the message that the mod is targeting the wrong server version, I tried the * too.
I am just changing things and rebuilding to see if i can figure it out, but it seems that i hit a dead end...

neat pelican
#

what do you get when you run /version

marsh warren
#

One or more plugins are targeting a different server version. It is recommended to update these plugins to ensure compatibility

I loaded nitrado webserver and query and those plugins worked.

As for /version: v2026.02.18-f3b8fff95 (release)

i think i need to try to load the mod without nitrado's mods

#

The message was about those other mods, but it seems like it's not related to my plugin not loading as I removed them, the message no longer appears, but the mod still doesn't load

neat pelican
#

so you should be getting a different error message as to why your plugin doesn't load now, right?

dawn grove
#

is there a mod that lets minecraft and hytale chat communicate together? some of my friends are playing mc and others are playing hytale and i run both servers

marsh warren
# neat pelican so you should be getting a different error message as to why your plugin doesn't...

Thanks for the help, i think i figured out, I guess the lesson is to try to navigate the flood of logs in the console

[2026/02/19 00:08:58 SEVERE]          [PluginManager] Failed to load 'rootblind:hytalecord' because the dependency 'Nitardo:WebServer' could not be found!
[2026/02/19 00:08:58 SEVERE]          [PluginManager] One or more plugins are targeting a different server version. It is recommended to update these plugins to ensure compatibility.

unborn nebula
marsh warren
#

maybe I could build the Nitardo mods myself to target the new version?

dawn grove
#

the servers themself already have individual discord links Hypixel_Think

marsh warren
# dawn grove is there a mod that lets minecraft and hytale chat communicate together? some of...

Both the hytale and the minecraft server would need a restapi server and to communicate through endpoints.
Hytale has an event called PlayerChatEvent that triggers whenever someone sends a message and you can fetch the sender and the content of the message, I guess minecraft would have something similar, so you would have to connect them and let the chat events send to each other the messages

unborn nebula
neat pelican
marsh warren
#

Thank you again!
I was too dumb to read

nova bronze
#

ngl yeah the chat thing is kinda cool and that shouuuuld work

marsh warren
#

I will just leave it here, maybe someone else in need will stumble into it: My problem originated from

Plugin Manifest

In your plugin's manifest.json, define Nitrado:WebServer as a dependency:

{
  "Dependencies": {
    "Nitrado:WebServer": ">=1.1.0"
  }
}

I tried playing around with the version, but it didn't work, so i just removed the dependency and now everything loads fine after I updated the webserver mod's pom.xml server version to target the right one and I removed the dependency from my mod's manifest.
Good luck everyone!

heady locust
#

How do I fix this:
One or more plugins are targeting a different server version. It is recommended to update these plugins to ensure compatibility.

little turtle
#

Wait

half oracle
heady locust
#

umm as the plugin dev, should I care about this error?

neat pelican
#

you should update the server version in your manifest.json and make sure the plugin works as expected on the current version of the game

wraith sleet
#

anyone knows how i can get the defens value of a player? its not in the assetmap

near onyx
#

im curious to know that too

neat pelican
#

Do you mean armor? That's handled in DamageSystems.ArmorDamageReduction which is using DamageSystems.ArmorDamageReduction.getResistenceModifiers()

wraith sleet
ocean swallow
#

how do i upgrade my mod for update 3?

#

my mod's apparently broken now

neat pelican
ocean swallow
#

it says it's an outdated mod

#

and when i boot the world, it says the mod failed to load

#

my version says 1.0.0, and my server version says *

near onyx
#

if i remember correctly, according to the code, the asterisk is treated as no server version

ocean swallow
#

should i change version to 3.0.0?

near onyx
#

no, the latest version is 2026.02.18-f3b8fff95

ocean swallow
#

huh, how do i reflect that in the code?

near onyx
#

you plop that in your manifest

ocean swallow
#

ah, okay

near onyx
# wraith sleet anyone knows how i can get the defens value of a player? its not in the assetmap

ok, i dug and dug, this is the best i could come up with.
Its not sexy, but it works

World world = player.getWorld();
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;
#

if theres a better way, im all ears

wraith sleet
# near onyx ok, i dug and dug, this is the best i could come up with. Its not sexy, but it w...
EffectControllerComponent effectController = store.getComponent(victimRef,
                    EffectControllerComponent.getComponentType());

            Map<DamageCause, DamageSystems.ArmorDamageReduction.ArmorResistanceModifiers> modifiers =
                    DamageSystems.ArmorDamageReduction.getResistanceModifiers(
                            world, armor, player.canApplyItemStackPenalties(victimRef, store), effectController);

            // Walk the damage cause inheritance chain (same as engine does)
            float reduced = baseDamage;
            DamageCause current = cause;
            while (current != null) {
                DamageSystems.ArmorDamageReduction.ArmorResistanceModifiers mod = modifiers.get(current);
                if (mod != null) {
                    reduced = Math.max(0, reduced - mod.flatModifier) * Math.max(0, 1f - mod.multiplierModifier);
                }
                current = modifiers.containsKey(current)
                        ? modifiers.get(current).inheritedParentId : null;
            }
near onyx
#

thats a lot diff than mine 😂

red marsh
#

anyone knows how to check serversetblock before it turns empty?

wraith sleet
near onyx
#

yeah, i do worry about that

wraith sleet
#

didnt found any replacement though

red marsh
unreal dust
#

they releasing launcher updates and no notes on what is being changed?

sly onyx
near onyx
#

i think you use the InteractivelyPickupItemEvent event
(nevermind, they said they tried that)
(oh, it just stops it going into your inventory)
Cancelling it just makes the item pop off and hover on the ground

brave mural
#

Does anybody know or had the same issue that the permissions.json always gets resettet everytime i restart the server?

ocean swallow
#

is anyone fluent with the interaction json file structure?

#

i want an interaction to detect whether the player is pressing the left or right key

plain magnet
brave mural
#

:/ But how am i supposed to give a permission manually when it just resets everytime i restart the server

plain magnet
#

You report it in the bug reports, cross your fingers and pray that it's fixed soon, I guess...

maiden galleon
#

On what platform? Any mods?

#

The server will overwrite the file when it closes, but if you modify it while the server is off it shouldn't reset it. It doesn't for me.

brave mural
#

Only when i execute this code:

var initAdminPermissions = Set.of(
      HideoutAdminPermissions.HIDEOUT_ADMIN
    );
    if (initAdminPermissions == null) return;

    PermissionManager.AddPermisionToGroup(HideoutPermissionGroups.Admin, initAdminPermissions);
#

Ok I found the solution when you execute it in setup it resets all when you execute it in startup it works

brave mural
#

Would anyone be so kind and help me test my plugin ingame realquick? I need another player to check if it works properly 😄

brave mural
#

Cant DM you

sterile forum
fossil adder
#

How much RAM is needed to support a server with 100 players?

sterile forum
#

The default store hold entities the entitystore hold components for entites.

Whats the clearest way to query or fetch or collect all components for a given entity.

Is the entitystore once you have a ref only a store with the refs own components or do you still have to filter the refs components out of the store with data from the ref itself?
I know i can query for a given component that makes me think the current store is reduced to its own...

red nimbus
#

Anyone figure out how to remove items from the crafting bench? every time I remove something, it reappears after the next restart.

latent vapor
# fossil adder How much RAM is needed to support a server with 100 players?

this question is multifaceted, I have no experience running a large server, so I really can't help you with specifics but...

there's a common misconception about RAM usage. running a dedicated server has "different rules of land" than what our apps/games do on our computers.

app/games try to minimize RAM usage to certain extent, so people can run other apps or not experience machine slow down (ie hogging ram for themselves).

while servers realistically are trying to maximize RAM usage, as any unused RAM is wasted ram that could have been used fast cach data that can be used later.

so in theory if you had 128GB RAM on your server, hytale server should try to use all 128GB of ram (ie not wasting any empty space), and same goes the other way around if you only had 4GB of RAM, the server should try to use all it can.

as for what's the absolute minmium to support 100 players, you'll have to do some load tests to find out.

latent vapor
latent vapor
#

Lait's Entity Inspector

tawdry geode
latent vapor
tawdry geode
#

yea im working on a small server project in my free time as like a mix of minecrafts hypixel pit, mcci and wynncraft and i will cross the bridge to server efficieny when i get there lol

sterile forum
latent vapor
sterile forum
#

Decompiling it.

latent vapor
#

gotcha, it's totally fair. I like to do both, I've learned tons from decompiling mods in my spare time and seeing how people are using it. aswell as searching through hytale-server jar for stuff

neat pelican
#

Lool you should add the "/s"

tawdry geode
#

i think once you get to that size you would be considered quite "big" in current terms as EA playerbase is still quite small, especially inbetween bigger updates

#

wouldnt put it past being quite reasonable for a successful mid size server once all the infrastructure and server concepts are set up in a few months or so

neat pelican
#

The JVM will utilize all of the ram you give it. The player count is relatively unrelated

tawdry geode
#

reddoons made a video where he opened a vanilla hytale server at EA release and it had like over sixty

#

but again, it comes down to what server type you have. large mmorpgs in wynncraft style with huge worlds and complex system and npc behavior, large economy systems and so on will eat much more than a duels or arena server

#

@brittle nimbus insert "i saw what you deleted gif"

hushed mountain
#

Why is the wire format for Quatf 4 i32's?

nova bronze
#

just be an ai model and you'll be fed all the ram you need

tawdry geode
latent vapor
#

tbf, I went to go see an auction to see how much it'd cost to rent out 256GB server.

PRICE
€50.70 per month

CPU
Intel Xeon E5-1650V3

RAM
256 GB

Drives
2 x 2.0 TB Enterprise HDD

Location
#FSN1-DC1

Information
IPv4ECCiNIC
#

if your living in the EU, it is surpisingly cheap haha

latent vapor
#

Yeah for real.

#

it only 65 euro per month to swap over to 2TB of SSD. if you really need fast disk. which I'm unsure is needed for hytale server but I could see it

heavy heath
#

I was considering to host my own little server (for whatever game), when I have a new job. seeing those prices, it's actually not as expensive as I thought

#

thank you for sharing

latent vapor
#

oh yea I've been renting out dedicated server since I was 16, it's so freeing just being able to wip up, game server with your friends whenever you want for any game (that support it)

heavy heath
#

Oh yeah definitely

latent vapor
#

(also, this probs shouldn't be even a consideration, but it was awesome to be the go to guy in my friend group when I was a teen anytime we played new games because I could host us 24/7 server haha)

nova bronze
sterile forum
#

Heard there are companies that just maps ram read write to a dedicated ssds. In many cases the read write was fast enough to handle what was needed.

latent vapor
#

They "utilizing Arbor and Juniper hardware", I'm not actually proficient enough to know if that's enough to prevent a massive ddos attack

#

but they are well known / popular provider in the EU.

#

but I ain't a sale rep, i have no idea haha

#

OVH is olldd school, they were what i used when i was 16

distant rapids
#

Hi, my dev server crashes on boot with hundreds of java.nio.file.NoSuchFileException (e.g., /Cosmetics/CharacterCreator/Emotes.json, /Server/Prefabs/Trees/...).

It seems like HytaleServer.jar expects files that are missing from my Assets.zip, even though the zip exists (~3.3GB) and paths in Gradle are correct.
I've tried cleaning Gradle and deleting the run/ folder.

Is anyone else having this asset mismatch on the latest release (2026.02.18-f3b8fff95)?

latent vapor
#

Hetzner.

tawdry geode
#

hetzner is pretty good from what ive heard

#

many smaller german servers run over them (mc and other games)

latent vapor
#

Yurr it's a good shout. I only rent out a 128GB server, to host small servers for my friends.

but for comerical servers you'll probs wanna look for proxy to protect you

tawdry geode
latent vapor
#

this is gonna sound insanely naive, but i wonder if it's possible to use cloudflare dns over a hytale connection

nova bronze
#

maybe there's a way but not natively, you can't just flip the toggle

latent vapor
#

I'm renting out 128gb server from the same provider for past two years for my work. at 35 euros per month. it is legit.

nova bronze
#

ngl, i made my own proxy and vpn and just use that

latent vapor
#

yurr, if you pay more you can get Intel Xeon W-2295 & AMD EPYC 7401P

there auction house tho, has limited cpu options

#

these mf, need to sponsor me i swear.

It's Hetzner, go to there auction page you can get awesome deals.

it's only EU tho, I know your from down under

tawdry geode
#

lmao

#

"In this answer to your question, i will explain everything you asked in detail...

But first, a quick shoutout to my sponsor"

#

doesnt australia have stupid high electricity cost

latent vapor
#

I'm sure there's away to make your ingest traffic go through some kind of firewall / cloudflare protection but I don't have the brains to tell you how on the spot

nova bronze
#

I made a proxy instead

#

but I did research the cloud flare route for a while

sterile forum
#

Silly electricity prices... This morning showering for 10 minutes at the wrong time would have cost you $4 if you pay the cost for water heating.

latent vapor
distant rapids
# latent vapor Just to start from the begining. you have used hytale-downloder to get the late...

Ah, I found the issue! It wasn't the game files after all.

It was a misconfiguration in the manifest.json of one of my dependencies (my Persistence plugin). I had IncludesAssetPack: true enabled for it, but it didn't actually have any assets to load, which confused the asset loader and caused those weird missing file errors.

Setting IncludesAssetPack: false in the dependency's manifest fixed everything. Thanks for the help!

latent vapor
#

All good! glad you figured out out

snow monolith
#

Guys, has anyone succeeded in opening a custom ui since the last update ?

unborn nebula
snow monolith
#

Both, I'm trying to setup a custom UI, but following the pre-existing tutorials always give the "could not find document" despite having the assets in the jar and the same syntax

unborn nebula
#

My UIs work fine with the full update, as they did in the prerelease.

snow monolith
#

I've also seen some people having problems with their ui mods with the last update

snow monolith
unborn nebula
#

Maybe it's something a little more specific, but definitely not a full "ain't working" issue 🙂

astral vigil
#

Guys, how do I fix this problem we had due to the last update? It broke the mods. What do I need to do to the mods I developed to fix it? My mods are developed directly in Java, without using the tools present in the game.

unborn nebula
astral vigil
#

So now we need to update the mod with every update?

#

Or only in larger updates?

unborn nebula
#

The warning happens on hotfixes too for now, I really hope they'll change that.

astral vigil
#

I updated and the warning still appears in single-player. I'll see if at least the server starts and works (the mod works perfectly ignoring the warning in single-player).

unborn nebula
#

Yeah that was my experience with 3 different mods 😄

astral vigil
#

lol

unborn nebula
#

but now I gotta update them for the darn hotfix. smh.

astral vigil
#

Here we go...

tawdry geode
latent vapor
#

if your maintaining a mod you should, update your manifest json.

if you are just a user you can right click your world, go to Advanced Settings and enable Skip Mod validaiton

if you are hosting a server you can add --skip-mod-validation to your hytale server.jar on boot.

this way you don't need to update a bunch of manifest json for your mod.

aslong as it's not broken in the current version

astral vigil
astral vigil
#

I really should have read the documentation… this topic must already be routine around here these past few days.

snow monolith
latent vapor
#

but Ive learned to accept it, it's all good

tawdry geode
#

i know some servers where there is a bot and people can do e.g. /setfilepath and an explanation for that topic pops up in a bot message, this would be really clutch here rn lol

latent vapor
#

doesn't help that alot of useful information is being said on twitter from simon and slikey. so I'm really just relaying what they already mentioned

slender rover
#

i wonder if there's a way to make a mod that hides the health bar and shows numbers instead

latent vapor
slender rover
#

i see, i'll try doing that

tawdry geode
nova bronze
#

yeah I wish they communicated less on twitter

#

or more rather communicated elsewhere

kindred plaza
#

where do i find the recent ServerVersion? Not the File but the version i need to specify in my manifest.json

latent vapor
#

yes my english very good 👍 (ignore all my edits)

kindred plaza
latent vapor
kindred plaza
#

modder

latent vapor
#

gotcha, hm weird. it should be 2026.02.18-f3b8fff95

neat pelican
#

Might you have any dependencies that aren't updated yet?

sterile forum
#

I realized there can be a a different between the game and launcher version.
Rather then looking in the corner when starting, look under settings uninstall and see what versions you got installed is.

#

If you have activated pre release then the version will differ as well.

latent vapor
neat pelican
latent vapor
#

that'd be something I'd get stuck on knowing me haha, wondering why my version ain't matching the LTS not realising im on prerelease branch

tawdry geode
#

an actual code question for once, but has anyone worked with block breaking so far, like are block entities initilized with health or how does the "tiered breaking" work exactly. I was thinking of adding a "decaying block" feature similar to deathmatch arenas in uhc mc servers

#

you might wanna look into the summoning mechanic for one of the skeleton minibosses in vanilla hytale, i dont know the name rn maybe someone can help me out here

#

once you spawned the mob you might be able to add a Follower component where you put in like "max distance from owner, owner" and add a system that if a mob is outside max distance from the owner you note the owners coords and move towards that

#

oh you mean attachment as in attached to the npc as in its design

i thought you were on some fancy coding experiment mb

sterile forum
#

Typical.

proud grove
sterile forum
#

When I found out that the Model config have a attachment array, that describes how it could be able to render a combination of model parts as one.

#

so by adding those one could dynamically change the apperance of a model in game it seems.

#

model texture gradient and weight are properties.

vivid bone
#

Hi, is someone is using or knows a plugin to set world spawn of a world, not the spawn of /spawn command (/Setspawn)

sterile forum
#

just curious, whats the problem with the default one?

sinful fog
sterile forum
#

yeah isn't that just like spawn set "location" to set it for the world, rather than spawn "location" thats for your player?

#

no defeault one seem to be the world spawn.

#

oh well.

lucid pebble
#

how well has the memory usage in servers been so far since this update?

tawdry geode
#

Similar topic, has anyone played around with overwriting deaths so far? As in if a player dies, dont Show the death screen but tp a player to spawn, maybe Show a popup message "you died. Gl next round", similar to many mc pvp servers have transition from alive to spectator after death without the respawn/back to menu option

neat pelican
little turtle
#

Did anyone elses server just download 2026.01.09-49e5904 for some reason.

tawdry geode
little turtle
#

it was on latest

#

Hence why i am asking did anyone elses revert back for some reason.

tawdry geode
#

Not mine

#

@neat pelican @sterile forum yours reset?

neat pelican
#

the hytale-downloader does send 2026.01.09-49e5904 currently. but my script noticed that my currently installed version 2026.02.17-255364b8e is newer and didn't download it. Edit: Oops, mistook downlaoder version with game version

little turtle
#

newest was 2026.02.18-f3b8fff95

near onyx
#

im on mac so i cant use that downloader, so i just pull the server jar/assets from the game/client directory

cerulean harbor
#

no they just released a new version, 2026.02.19-1a311a592

little turtle
#

but its saying in pterodactyl panel.
Downloading 2026.01.09-49e5904

neat pelican
little turtle
#

well whatever that update did it just broke alot of stuff. Again.

remote flicker
little turtle
#

It updated itself and now this is the error.
I get.

[2026/02/19 16:14:51   WARN]          [AssetModule|P] Failed to load manifest for pack at Assets.zip
java.util.zip.ZipException: zip END header not found
    at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.findEND(ZipFileSystem.java:1362)
    at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.initCEN(ZipFileSystem.java:1571)
    at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.<init>(ZipFileSystem.java:215)
    at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.getZipFileSystem(ZipFileSystemProvider.java:122)
    at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:117)
    at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:507)
    at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:380)
    at com.hypixel.hytale.server.core.asset.AssetModule.loadPackManifest(AssetModule.java:294)
    at com.hypixel.hytale.server.core.asset.AssetModule.loadAndRegisterPack(AssetModule.java:355)
    at com.hypixel.hytale.server.core.asset.AssetModule.setup(AssetModule.java:97)
    at com.hypixel.hytale.server.core.plugin.PluginBase.setup0(PluginBase.java:392)
    at com.hypixel.hytale.server.core.plugin.JavaPlugin.setup0(JavaPlugin.java:48)
    at com.hypixel.hytale.server.core.plugin.PluginManager.setup(PluginManager.java:870)
    at com.hypixel.hytale.server.core.plugin.PluginManager.setup(PluginManager.java:284)
    at com.hypixel.hytale.server.core.HytaleServer.boot(HytaleServer.java:386)
    at com.hypixel.hytale.server.core.HytaleServer.<init>(HytaleServer.java:344)
    at com.hypixel.hytale.LateMain.lateMain(LateMain.java:56)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
    at java.base/java.lang.reflect.Method.invoke(Method.java:565)
    at com.hypixel.hytale.Main.launchWithTransformingClassLoader(Main.java:64)
    at com.hypixel.hytale.Main.main(Main.java:40)
cerulean harbor
neat pelican
little turtle
neat pelican
#

can you upload it from your pc?

cerulean harbor
remote flicker
#

hmm, odd. I will check our side but yeah looks like the asset zip is broken for some reason

little turtle
#

network ain't good enough to do that last time i tried it took down their network.

cerulean harbor
little turtle
#

sftp just times me out when trying to reach.

#

Would sftp work if they run it via virutal machine on linux.

neat pelican
#

it depends on the networking setup

#

pterodactyl should give you your sftp credentials in the server settings

little turtle
#

It does but i click the button and it just times me out when using WinSCP.

cerulean harbor
little turtle
#

On my pc or there's

neat pelican
#

the server

cerulean harbor
#

check your wings logs, when wings boots up it has information regarding sftp. I think you should ask in the Pterodactyl discord (#wings-help)

icy fossil
#

How you know thats the correct port

neat pelican
#

2022 is usually used for secondary ssh/sftp apps like pterodactyl's file access

#

yes, they may have reconfigured it, but people who do that know their custom port ^^

cerulean harbor
icy fossil
#

I never used this port 😂

nova bronze
#

I know too many odd numbers for too many annoying reasons

tulip parcel
#

I can mod again!!! The only condition is that I had to completely start over. Luckily the art side of things I did not have to redo. Everything else... Oh boy.

tulip parcel
# tawdry geode What happened?

I was getting stuck at the Booting Server Screen for a while. I was also trying to update my mod from Update 2 to Update 3. Tried to remake my mod from scratch right after Update 3. Something was broken for me right after that Update. Then there was the Hot Fix yesterday. Thought it didn't do anything. Had some help from the community resolving part of the Booting issue. Then late in the evening yesterday I decided to try making a fresh mod [Post-Hot Fix]. Was expecting it to break when I tried accessing it today. Nope! It worked! No Issues! Also, literally JUST updated my mod to the newest Hot Fix and it still works!

near onyx
#

has anyone found an event/system for players picking up items from the ground?
I know theres the interactive pickup, but thats not what i want.
I dug thru the code many times, and tried many different things, and I had no luck.

tawdry geode
near onyx
#

i THINK so... i think you can track any entity being removed.
Problem is, i dont think with that you'd be able to track who picked it up (or cancel it)

latent vapor
near onyx
#

im lookin at that now, trying to see if i can somehow catch it

latent vapor
#

otherwise. you could potentially look for changes on the player inventory item container. if that's possible

#

I guess it's not guranteed to be a picked up item tho, hmmm

near onyx
#

that might work. There is that LivingEntityInvChange event or something

latent vapor
near onyx
#

ooo

latent vapor
#

I think we got it gang, surely that's it haha

#

and tbh. this might of unironically helped me aswell I noticed the Set.of(new SystemDependency(Order.AFTER, PlayerSpatialSystem.class, OrderPriority.CLOSEST)); in Player Pickup item system

which could be a fix for my body weapon display mod I'm trying to do.

(weapons constly lagged behind the player when they moved but I haven't been able to figure out how to make it accurate)

void wagon
#

Anyone know how to play a sound after a player teleports? I set the teleport component, but the sound plays at the players current position. I tried to get the sound to play at the target destination but it's still silent. Any ideas?

neat pelican
#

Listening to the teleport component being removed?

latent vapor
#

just so much vector math to do, 😢. my uneducated heart can't takew it

void wagon
tawdry geode
#

my guess wasnt even that far off

latent vapor
#

Shane been offly slient, since i said that. I hope it actually worked haha

near onyx
#

sorry, im trying like a million things here, and nope... no luck.
The EntityRemovedEvent is for Entities... and sadly this dropped item isnt considered an entity....
So im doing more digging, still no luck

latent vapor
near onyx
#

as far as ive seen... they're just a Holder with an ItemComponent (or something like that)

latent vapor
#

that's a really bad explaination of what a holder is

near onyx
#

ok, them im clearly missing something.... time to get my shovel and dig more

latent vapor
#

I'd use RefChangeSystem and query for PickupItemComponent

near onyx
#

let me try that, 3rd times a charm right... RIGHT?

latent vapor
#

listen for onComponentAdd or onComponentRemove, whatever works

#

also not sure what people think but apart from a select few events.
I find alot of the events are super jank or just don't work at all.

much better querying for component changes

near onyx
#

the server severely lacks good events.

#

coming from Bukkit/Paper, having like 500 events, and Hytale having like... 10 events... Its a diff experience thats for sure

cerulean harbor
near onyx
#

oh i wasnt being literal 😉

cerulean harbor
# near onyx oh i wasnt being literal 😉

yeah but I do see like a fair bit of events, I think the idea is more to rely on custom systems than inbuilt events, I could be wrong though.

I'm sure there will be more as they go on with development

sterile forum
#

Time to beat up the code some more, if I can focus on it, came with a one inch blister under my foot. It's quite distracting.

near onyx
#

ok, progress:

public static class Test extends HolderSystem<EntityStore> {

    @Override
    public void onEntityAdd(@NotNull Holder<EntityStore> holder, @NotNull AddReason addReason, @NotNull Store<EntityStore> store) {
        Utils.log("Item added");
    }

    @Override
    public void onEntityRemoved(@NotNull Holder<EntityStore> holder, @NotNull RemoveReason removeReason, @NotNull Store<EntityStore> store) {
        Utils.log("Item removed");
    }

    @Override
    public @Nullable Query<EntityStore> getQuery() {
        return ItemComponent.getComponentType();
    }
}

BUT:
(when picking up an item)

> [10:32:02 INFO]: [HySkript|P] Item removed
[10:32:02 INFO]: [HySkript|P] Item added
[10:32:02 INFO]: [HySkript|P] Item removed

its removed, added and rremoved again. this is going to be fun 🤣
Only issue i see other than this, is the player who picked up said item i dont believe is referenced

latent vapor
near onyx
#

ooo smart

#
[10:43:27 INFO]: [HySkript|P] Item picked up
[10:43:27 INFO]: [HySkript|P] Player ShaneBee picked up

:pepe_clap_emoji: (you have to use your imagination)
I went a slightly diff route, but it works, and yay. Thanks @latent vapor

marsh warren
#

Hello, if you guys make a plugin that requires an external dependency like jackson for JSON parsing, do you make a fatjar or do you try to make a plugin out of jackson?

brisk burrow
near onyx
hearty sinew
#

Isn't bson deprecated?

near onyx
#

its how hytale saves everything, so i dont think so

marsh warren
#

oh, thanks for the tip, i will look into it, but maybe in the future i will eventually need an external library, i am asking for your opinion, what would you choose

near onyx
#

ive only ever used Gson (in the past) and Bson (currently).
Ive personally never used Jackson

#

but if i were to need a library, id most likely shade

marsh warren
#

sorry, but what is shade or shading? is it including it in the plugin jar or?

near onyx
#

yeah, shading just adds the library to your jar (fat jar)

marsh warren
#

alright, thank you!

lyric locust
#

Does anyone know of a solution for the server version in the manifest file so that you don't always have to adjust it manually?

neat pelican
near onyx
#

i just have my build.gradle.kts slap it in there

val hytaleVersion = "2026.02.19-1a311a592"
...
processResources {
    filesNotMatching("assets/**") {
        expand("pluginVersion" to projectVersion, "hytaleVersion" to hytaleVersion)
    }
}
  "ServerVersion": "$hytaleVersion",
marsh warren
#

There might be an idea to have the manifest.json generated by something else and to use the server downloader to provide the version

./hytale-downloader-linux-amd64 -print-version
2026.02.19-1a311a592

i guess we would have to build a small tool for that

neat pelican
#

Yeah fetching the version from the HytaleServer.jar you're building against is the ideal solution

#

You will still have to recompile for every new version but that's expected since you need to make sure your mod still works

marsh warren
#

damn, another updated for today, i just noticed from the version number

near onyx
#

another update.... another day without a changelog 😂

lyric locust
marsh warren
#

the changelog is the error stack

red marsh
#

when did pre release update 4 released?

neat pelican
#

Only the client changed today

neat pelican
void wagon
neat pelican
#

There is the ClearUsedTeleporterSystem which runs on a delay too so I'm guessing there is no clean way to get triggered immediately

void wagon
#

Yeah, UsedTeleport is cleared I believe after you move a short distance (1.3 in the XZ or 2.5 in the Y) from the teleport location. I assume this is so you do not automatically teleport back when teleporting to a teleport.

Too many mentions of teleport. Send help.

sterile forum
latent vapor
void wagon
latent vapor
#

Swag haha

latent vapor
void wagon
latent vapor
#

i swear 90% of this server is just brits

void wagon
#

There's probably a ton that don't speak English so they exist just to exist.

latent vapor
#

could go to deepest depths of hell and you'd still find a fecking british tourist somewhere

void wagon
#

Probably true

sterile forum
#

Could also be that most people that are active around the same time you are live closer to britain, or the assumption that anyone using english is British or American. 😄

latent vapor
near onyx
sterile forum
#

And Sweden.

latent vapor
#

(to be clear, that is a joke, the empire is not back)

sterile forum
#

Jolly Good there good sport.

#

Chip chip. Badgers and Toast.

latent vapor
sterile forum
#

I got to learn when living in England, that the Badger is the largest living wild predator... :S

latent vapor
marsh warren
#

This is a weird one (not a problem though)

[2026/02/19 19:24:38   WARN]          [PluginManager] Plugin 'Nitrado:WebServer' targets a different server version 2026.02.19-1a311a592. You may encounter issues, please check for plugin updates.
[2026/02/19 19:24:38 SEVERE]          [PluginManager] One or more plugins are targeting a different server version. It is recommended to update these plugins to ensure compatibility.

I am using the same server version (latest) as the one given to the plugin's manifest

nova bronze
#

there was an update today?

marsh warren
#

yes

nova bronze
#

xbdjd didbdjdnx

near onyx
latent vapor
#

honestly, I'm about to make a webhook server that we can all use for this manifest stuff. so we can just create CI/CD workflow

#

what do you guys think are the chances that there's a component to specifically make an entity disappear only in first person for that player

marsh warren
#

good luck

sterile forum
#

But one could implement amazing horror mods if one could start overriding models and visuals for specific players.

#

But I think you would have to start overriding packets with the model data in them in some way.

lunar schooner
#

lol i havent been able to turn my server back on since update 3 XD, we ran with to many mods, i got my mods updated, but 68 mods and about 20 of them havent been updated since the game came out.. oof this is going to be a fun ride haha

#

umm i just booted up a world with mods that are not set to the current version and the game did not stop me at all, like normally i get a message telling me but the only thing that popped up was the chat message... might try to boot my server up

strange otter
#

Hi I was wondering, is there a way for player to see specific block only if he has an item equiped? Like you need special googles to see a block.

neat pelican
#

You'll probably need to do packet shenanigans

burnt eagle
#

What ist the best way to edit a Ton of blocks over an plugin

eager turret
#

Pre Release for Update 4

-Players may now have multiple instances of Hytale running simultaneously. To reduce the risk of save corruption, players are advised against opening the same world multiple times simultaneously.

-Hosts can now specify a fallback server for when players disconnect unexpectedly.

I don't know if anyone has seen these yet. But for us devs this is fantastic!

neat pelican
#

yippie! i suggested that first one

#

have been struggling with two laptops for multiplayer testing ^^

eager turret
#

I love it! - I can't want for that fall back. 😄 - Talking about tooling. 😛

neat pelican
#

looking forward to specifing the current server as the fallback server and sending clients into a crash loop 😈

eager turret
#

OOooh, maybe I can make a fall back dependency chain!!!

#

Would be fun to make the fall back server shut down or crash so the chain keeps on going!

lyric locust
#

Does anyone know how to make the player's nameplate colorful?

acoustic crescent
#

Has anyone managed to get the ColorPickerDropdownBox ValueChanged event working?
I'm getting this error even tho the docs say the event exists:

ValueChanged | Called when the color has been changed

Target element in CustomUI event binding has no compatible ValueChanged event. Selector: #MessageColor #ColorPicker
vivid bone
#

Hi does anyone know or succeded to set a spawnpoint for new players different than /spawn

eager turret
vivid bone
sly onyx
#

how can i sit a player (animation), i want to play the sit animation for a player

slender crater
#

What is the best way to initialize a HUD (Scoreboard) for players only in a specific instance?

neat pelican
mellow jasper
#

With the latest releases, is it possible to complete remove/remake the TAB screens?

trim yarrow
#

does the mods/ folder only read .jar mods directly inside the folder or is there a way to create a new folder inside the mods/ folder like MyMods and have it inside

neat pelican
wanton holly
#

anyone know why my friend has weird item names? like server.bench etcd instead of workbench

plain magnet
wanton holly
lunar schooner
#

Finnaly figured out how to by pass the valitdation for server, had to make sure every mod i was using though worked, but i got my server running older mods now

deft path
#

Does anyone know of a mod to allow me to change ever items crafting recipe

neat pelican
spiral cliff
#

Feel like the components list could do with an overhaul, instead of listing every component and you add it by modifying a value in the component, it should be an empty list that you append a component to from the list of available components

surreal orbit
#

some1 know how to fix big or large hitboxes? I can only interact with part of the hitbox.

void wagon
#

@devout sable did you ever fix your indestructible hitbox? I got one in vanilla.
Edit: Punching it relentlessly eventually got rid of it.

nova bronze
#

darn

tulip parcel
#

Is there documentation on what you can do with the Damage JSON files? I noticed one mod has DamageTextColor part and a BypassResistances part. I really want to make a Weakness/Resistance system, and it looks like I can do that with Damage JSON files.

sterile forum
brave mural
#

Is there a built in way to check if a player is in combat? Or do i need to implement that myself?

sly quiver
sterile forum
brave mural
#

Does anyone have experience with maven and like adding custom dependencies to my project?

tawdry geode
#

in what stages do blocks currently break when you hit them? I am working on a "decaying block" system where a block decays into another one and I was thinking of making it animated using the breaking animation

brave mural
#

How do you communicate between 2 plugins?

sterile forum
sterile forum
# brave mural How do you communicate between 2 plugins?

I was thinking this just 10 minutes ago.
Looking at some of their plugins its apparently perfectly fine to have a private Instance variable to the plugin in it self, set it in setup and return the instance in get().
So just handle it like a singleton.

sterile forum
#

Get it with YourPluginName.get();

brave mural
#

I have different repos for each plugin. Im new to java so im a bit confused

#

and i use maven with like pom.xml

sterile forum
#

Ah.
Then I am not sure. Its more complex.

#

Since even if you would decide to talk trough and listen to events, you would still need to know the even type in both.

#

I guess you need to set dependencies between the projects so they can know about each other, referencing the jar if they are built separetly.
Or have some central project that contains definition of shared events.

Or maybe java or hytale have some other kind of reflection that handles it.

I know some one talked about their mod having a soft dependency on LuckCharms or what ever it was called.
The closest solution to be sure the classes existed etc at runtime, was by using javas "HasClass" functions, that will throw an exception if to doesn't and do setup connection based on a value you set after that.

Java is not my main language either.
if event are just codeced down to data, then a identical codec on both sides might be able to listen to the event info even if they don't share the actual class.

It's a really good and interesting question.

neat pelican
tawdry geode
#

anyone know why i get a "package not found" error on the package that i didnt touch in a weak and that is right where its package path says it should be

sterile forum
#

You can set that a system or plugin have a dependency order in them as well right. Or was that just system, where you had like add after(X)

brave mural
#

it probably is just like java + maven knowledge which i sadly dont have

tawdry geode
neat pelican
tawdry geode
neat pelican
#

try closing intellij and removing the .idea folder

wanton holly
tawdry geode
neat pelican
#

are you getting the error with a red squiggly in your ide or during runtime or both?

tawdry geode
#

i cant send the error message for some reason

#

error comes during compileJava

#

but no files get the red wave underline

neat pelican
#

then it's specifically a maven issue, not an intellij one

tawdry geode
#

its the same error for all 4 commands in the subpackage, "cannot find symbol class {CommandFileName}"

sterile forum
#

Think i got that issue. The hytale-server.jar was not found in the project structure settings, some stage of the script did not update the reference when changing version in the build scripts.
if i removed and added the jar file in project structure, it found the files again, and then i needed to open up the external dependancy to the jar, click myself into a class and select the source file i wanted it to use from the popup i got.

All things i hoped it would figure out on its own if i just changed the version to use and rebuilt.

ruby arrow
#

Does anyone know how to make custom components for blocks?

neat pelican
ruby arrow
neat pelican
sterile forum
#

Have you added logs that the component gets registered in the store registry.
Logs that it has been created.
Logs that your plugin gets loaded.

Have you made sure you started the server and that you connected to it in the client rather then just create a new empty default world without your mod?

ruby arrow
tawdry geode
neat pelican
sterile forum
tawdry geode
sterile forum
#

Sorry.

tawdry geode
#

i move the subfolder with the files that arent found out and back in and now the files actual show up as highlighted red in my main where the error occurs

neat pelican
#

Progress 👏

slow gale
#

Hi

I am trying to figure out a way to give someone permission to restart my server when it crashes or make it restart automatically.
It's hosted on Linux Ubuntu, does anyone know how that can be done?

manic epoch
slow gale
neat pelican
#

I use Pelican but it might be too complex for a simple single-server setup

#

If you really only need them to restart the server, you can just give them permission to use the /stop command and have your start script reboot it

manic epoch
tawdry geode
#

im kind of giving up, do i just have to copy all my things into a new project and hope it works there?

neat pelican
#

as soon as you're finished with doing that, you will figure out the problem. That's usually how it goes with programming ^^

#

probably something like the file was moved but the package declaration not updated

tawdry geode
#

the weird thing is that even when i change the import to crateconfigcommands.* instead of four time crateconfigcommands.{name} it errors the same

little lynx
#

Is there a component in onEntityAdded that allows you to get the Vector position of the placed block?

sterile forum
#

If its just a entity it would have a transform component i am kinda sure.
If its a chunk komponent i think it has some kind of vec3i with integer value but not sure what its bart of. Maybe its just part of the blockcomponent.

tawdry geode
# little lynx Is there a component in `onEntityAdded` that allows you to get the Vector positi...

from hytalemodding.dev:

    public void onEntityAdded(@Nonnull Ref ref, @Nonnull AddReason reason, @Nonnull Store store, @Nonnull CommandBuffer commandBuffer) {
        BlockModule.BlockStateInfo info = (BlockModule.BlockStateInfo) commandBuffer.getComponent(ref, BlockModule.BlockStateInfo.getComponentType());
        if (info == null) return;

        ExampleBlock generator = (ExampleBlock) commandBuffer.getComponent(ref, ExamplePlugin.get().getExampleBlockComponentType());
        if (generator != null) {
            int x = ChunkUtil.xFromBlockInColumn(info.getIndex());
            int y = ChunkUtil.yFromBlockInColumn(info.getIndex());
            int z = ChunkUtil.zFromBlockInColumn(info.getIndex());

            WorldChunk worldChunk = (WorldChunk) commandBuffer.getComponent(info.getChunkRef(), WorldChunk.getComponentType());
            if (worldChunk != null) {
                worldChunk.setTicking(x, y, z, true);
            }
        }
    }```
brave mural
#

Whats the proper way to check if a player received or dealt damage?

sterile forum
#

OnDamageTaken even i would guess.

neat pelican
#

DamageEventSystem

unborn nebula
#

Yep, it's the ECS DamageEventSystem indeed

brave mural
#

Ok cool. So there are DamageDealt event and damageReceived event?

sterile forum
#

I need to read up on gradle.
Because I have a big gap between the very limited gradle files and what they specifiy, and the REALLY big tasks that it tries to do.
Does the dependencies pull in extra gradle functionality that defines more exactly what its doing?

For instance i know that kapupens version add the decompile server gradle task, but I have no clue where that task is actually populated from, and i can't find any reference to it.

unborn nebula
#

no the DamageEventSystem is for both incoming and outgoing.

brave mural
#

any exmaples i could take a look at?

sterile forum
#

CameraEffectSystem is built on DamageEventsystem to add camera shake effects.

unborn nebula
# brave mural any exmaples i could take a look at?

This is something I'm working on right now, there's a lot in here beyond what you need but I don't have a more concise example.
github,com/eslachance/EchoesOfOrbis/blob/main/src/main/java/com/tokebak/EchoesOfOrbis/systems/ItemExpDamageSystem.java

neat pelican
brave mural
#

Whats the event whenever a entity spawn like any player or mob or something?

marsh warren
#

Have you guys had problems with hytale api classes causing java.lang.ClassNotFoundException ?

neat pelican
neat pelican
#

and if you have a decompiled version laying around that your IDE looks at, make sure it's updated

marsh warren
#

./hytale-downloader-linux-amd64 -print-version
2026.02.19-1a311a592
i am using the latest version

is there a possibility that the repositories might be behind?

neat pelican
#

nope looks good

marsh warren
#

I am calling the BuilderCodec provided by hytale in a post request which throws

brave mural
maiden galleon
neat pelican
neat pelican
tawdry geode
uncut anchor
#

so I have absolutely no modding experience in this game, I'm looking to make a sort of basic training mode mod where I can count the ticks attacks take and stuff for PVP documentation purposes

where are the places to start for learning how to do this?

void wagon
#

My brain is not braining but, if I had nested states, how would I go about changing the inner state? Relatedly, when using CycleBlockGroup, is it possible to preserve the state? All blocks in the group use the same parent, thus the same states, but it'll reset the state if I cycle the block.

neat pelican
uncut anchor
#

like I said I'm looking to make a basic sort of training mode like the type you'd find in a fighting game
I'm a PVP nerd and established documentation freak already (hit me up for stat dumps LOL) so this would be really nice

#

thinking about making something kind of like Dustloop but for hytale (call it Daggerhop or something hmmm...)

brave mural
#

Whats the proper way to check if another plugin is installed? ( From another plugin )

marsh warren
#

Don't know if it's the best, but i am doing this

var plugin = PluginManager.get().getPlugin(new PluginIdentifier("Nitrado", "WebServer"));

        if(!(plugin instanceof WebServerPlugin webServer)) {
            return;
        }
#

there is a section in the manifest.json too, but at least my mod wouldn't load if i give it dependencies there

brave mural
#

Oh yea i see, do you know how id need to put stuff inside the manifest depenedcy?

marsh warren
#

probably group:name, but i am not sure, i am new to this myself

"OptionalDependencies": {
    "Hytale:Server": "*" // version
  },

currently i am trying to figure out how to make my plugin to see the BuilderCodec provided by hytale at runtime, but it's a struggle

marsh warren
#

I would like to document my struggle for a bit here, related to BuilderCodec

For the love of god, make absolutely sure that the first letter is capitalized for KeyedCodec

BuilderCodec.builder(DiscordMessageSnowflakes.class, DiscordMessageSnowflakes::new)
            .append(new KeyedCodec<String>("Snowflake", Codec.STRING),
                (o, v) -> o.snowflake = v,
                o -> o.snowflake).add()

Initially, the server console throws nothing, but the console from where i was making the request

Status: 500
Response data: {
  message: 'java.lang.ExceptionInInitializerError',
  url: 'the local host',
  status: '500'
}

So I went on countless hours trying to make my plugin to see the BuilderCodec
but this wasn't throwing anything

try {
            Class.forName("com.hypixel.hytale.codec.builder.BuilderCodec");
            Class.forName("com.hytalecord.plugin.DTO.DiscordMessagePost");
            Class.forName("com.hytalecord.plugin.DTO.DiscordMessageObject");
            Class.forName("com.hytalecord.plugin.DTO.DiscordMessageSnowflakes");
            System.out.println("All DTO classes loaded successfully");
        } catch (ClassNotFoundException e) {
           getLogger().at(Level.SEVERE).withCause(e).log("Failed to load DTO classes: " + e.getMessage());
        }

So yeah, the KeyedCodec first letter not being capitalized can get easily obfuscated and send you in a wild hunt.

#

hopefully i will be the only dumbass that had to struggle so much with it 🙏🏻

sterile forum
marsh warren
#

yes, maybe i should make a wrapper for the KeyeCodec constructor to warn me from the start

sterile forum
#

SaftyHelmetKeyedCodec extends KeyedCodec. 😉

cyan hare
#

Hey guys anyone has the listener event for chat messages sent, and maybe the one responsible to add message to it?

maiden galleon
#

PlayerChatEvent

maiden galleon
#

I mean the stack trace / details on the ExceptionInInitializerError

cyan hare
#

Also is there any event to get how much players are on the servers for a bot activity ?

sterile forum
cyan hare
#

Or I'll have to specify that somehow?

marsh warren
#

I think each server has a universe

cyan hare
#

That would make sense actually haha

sterile forum
#

sorry missed the plural.

marsh warren
#

you could make each of them communicate through restapi and to have a main one that you query for the players and the main one asks all servers for their universe players.
That is if each server is a universe

cyan hare
#

Potential idea I must say, I'll dig around that thanks you !

marsh warren
#

I can't send links or images, but TroubleDev said in his ECS part 1 (14:18) video that the Universe is a singleton and there's one per server.

cyan hare
#

Dont know who that is, but I will definitely give a look

marsh warren
#

it has a few videos, but those are great

sterile forum
#

I guess I should be watching troubleDev.

#

I have broken my build again. Tried to change to pre-release build, set the server version, clean rebuild start, try connect with the client. "The server is running and old version of..."

neat pelican
cyan hare
marsh warren
#

Nitrado didn't update the mods for one month, if you're using one of his mods and they don't work, take the source from github, set the right server version and build them

cyan hare
#

How about making PR ? haha

neat pelican
#

there are PRs, but they're already out of date, lol

marsh warren
#

there is one that was open for 3 days

cyan hare
marsh warren
#

As the landscape looks like, if you have the skills, it's best to look for open source plugins and maintain them yourself, unless there is a high trust dev team dedicated to one

cyan hare
#

Well I always preferred to self made my plugin/mods tbh

marsh warren
#

well, unless they (hytale team) touch the api that a plugin depends on and you don't need any more features and fixes, all you have to do is to update the mainfest.json.

neat pelican
#

@lone ember you must have already updated them internally right? If so, is there a chance to get the manifest update pushed to GitHub before the weekend?

analog minnow
#

Does anyyone have any knowlage of how server networks work on Hytale? I've checked some public servers out and items, stats etc carry between servers, do you know how to set this up?

cyan hare
analog minnow
neat pelican
cyan hare
analog minnow
#

It's definitely been done already because some servers have it set up already

neat pelican
analog minnow
#

Is this just a command ?

neat pelican
#

make sure to sign the data since the client has control of it during the transfer

#

i mean yeah there is a /refer command too

analog minnow
neat pelican
#

but if you want flexibility, you're gonna do it via code

neat pelican
analog minnow
neat pelican
#

yeah, a java plugin

cyan hare
#

Probably connecting servers together haha

sterile forum
#

Yeah if I would support cross server data transfer, I would actully have a central storage somewhere holding the data and responsible for sending and validating it.
I would last thing, allow the the client to state what the values should be.

tawdry geode
#

Since there are some new people on rn, anyone got an idea why my gradle doesnt start anymore due to "package not found" despite the package being there where it says it should be found, having the right package naming, i didnt even touch this part of my plugin in a week and it suddenly broke out of the blue? I have been trying to fix this for the past 4h or so and i just loop in a circle and nothing works despite trying everything

lone ember
# neat pelican <@342580274925797376> you must have already updated them internally right? If so...

We actually have not. We were occupied with a few things and wanted to get a proper (automated) versioning setup in place for this, with automated builds against newer server versions and whatnot instead of constantly manually bumping the version string in the manifest.

We have not seen any errors on our side that would actually impact functionality, so I'd be curious what exactly you folks are running into?

sterile forum
#

Try go in to idea settings and change your jdk to version 25 of a different sort.

analog minnow
#

I've found a mod for it LOL

neat pelican
lone ember
cyan hare
#

Start and runs well still

lone ember
#

Yeah

Like don't get me wrong, I wanna get rid of that warning, but it doesn't seem to be a major issue right now. Unless we're missing something

neat pelican
#

Oh sorry for blowing this out of proportion, lol

cyan hare
tawdry geode
#

now thats interesting, it all starts now that i moved it outside the folder it was in into the one above

neat pelican
#

yeah i misunderstood, thought that was already happening

lone ember
#

We have tons of systems on our end relying on those plugins so we'd know 😅

tawdry geode
#

but it still shows something is in the old folder despite it being empty, i think i mightve circumvented the issue

brave mural
#

Ok i somehow made it work so plugins can somehow communicate with eachother:


private static boolean HandleIsInCombat(PlayerRef playerRef) {
    if (!PluginsManager.HasPlugin("Arc", "CombatTracker", "*")) {
      return false;
    }

    var combatTrackerComponent = ComponentManager.GetComponentFromEntity(playerRef.getReference(), playerRef.getReference().getStore(), CombatTracker.GetComponentType());
    if (combatTrackerComponent == null) return false;

    long now = System.currentTimeMillis();
    long combatDurationMillis = CombatConfigDB.INSTANCE.GetCombatDuration() * 1000L;
    long timeSinceLastCombat = now - combatTrackerComponent.LastCombatTime;

    long remainingMillis = combatDurationMillis - timeSinceLastCombat;
    long remainingSeconds = Math.max(0, remainingMillis / 1000);

    if(CombatTracker.IsInCombat(combatTrackerComponent)) { 
      playerRef.sendMessage(Message.translation("commands.warning.arc.hideout.youAreInCombat").param("seconds", remainingSeconds).color(TextColors.Warning));
      return true;
    } else {
      return false;
    }
  }

Kinda interesting. CombatTracker is from the CombatTracker plugin

neat pelican
sterile forum
#

This work since everything goes trough codec types right, they don't know much about each other but they all know how to read the data into the actual objects as long as they know the object type?

#

ramblings

tawdry geode
#

i need jdk25 right

#

because now my jdk crashes for no ff ing reason

brave mural
#

To Be 100% Honest im not 100% Sure why it works or how it works.

What i know is:

I have a local mavel repo which provides me so i have access to the plugins custom classes ( While developing )

And in my other plugin i can just check if plugin exists. When i remove the check it throws cant find class definitions because it cant find the actual class

neat pelican
sterile forum
#

in essens its just like a giant api/interface declaration so it can make the call but it might result in hell.

neat pelican
#

you get a circular dependency if both plugins try to import each other

#

in those cases you have to do something sneaky like reflection

sterile forum
#

Yeah. Thats what i was thinking it handled some how.

#

Ok can someone just cover this like i am 3 years old, and think gnomes still live in the computer and make things go "brrrrrrrrr".

I changed the server version in my graddle settings, i done clean and rebuilds of the source, I have updated the client and that is the same version as the server version written.

What obvious part have i missed that makes the server run a older version than the client...

neat pelican
#

Where is gradle looking for the server.jar?

#

is it pulling from maven central, or using the one in your client install folder?

sterile forum
#

some where under the root of my install folder

neat pelican
#

is your dev server using the same version as well?

sterile forum
#

whats the difference between the dev server and the server in this case?

neat pelican
#

there is the dev server that you use for testing, and then there is the hytale server dependency gradle uses to compile your plugin

#

ideally they should be the same

sterile forum
#

where is that configured. I am using the run server gradle task that I assumed would refter to the same jar as I am building against...

latent vapor
#

your hytale-server.jar in your gradle, should be set to compileOnly, to give your IDE hints on what's available. it doesn't actually do anything beyond that.

your dev/game server is actually what your mod is loading in

neat pelican
#

it really depends on your specific build.gradle script

#

there is no "one way" to do it

latent vapor
#

there just is the right way :kek: and the wrong way

sterile forum
#

to be fair I can't even find anything close refering to dev/game in any way, no folders no settings nothing.

latent vapor
#

are you just loading the mod in your singleplayer world?

sterile forum
#

no i start it trough the runServer gradle task.

#

and connect to local host

latent vapor
#

alright, a quick test to see if it's your dev server, build the mod and put it into your mods folder and test it in your singleplayer world

#

or if you can run your dev server, just see the initial boot logs. might be faster

sterile forum
#

what am i looking for in the logs.

#

Because thera are like 300 rows of logs in 4 seconds.

latent vapor
#

ctrl + f for, Booting up HytaleServer - Version

#

and see what the version is after

sterile forum
#

2026.02.19-1a311a592 .... THE QUACKING QUACK!

#

I hate the concept of everything being a blackbox artefact dependency you don't really need to care about.

#

how do you change the damn verison for the dev server.

latent vapor
#

do you want the prelease build, I'm confused, sorry im slow and late?

sterile forum
#

that is NOT exposed in any of the default settings...

neat pelican
#

that's why I prefer this way instead of the prebuilt gradle plugin

// build.gradle
plugins {
    id "java"
    id 'org.jetbrains.gradle.plugin.idea-ext' version '1.3'
}

dependencies {
    // Available during compilation (not in JAR)
    compileOnly fileTree(dir: "$hytaleDir/Server", include: ["**/*.jar"])
    compileOnly files("$hytaleDir/Assets.zip")

    // Available during dev server execution (not in JAR)
    runtimeOnly fileTree(dir: "$hytaleDir/Server", include: ["**/*.jar"])
    runtimeOnly files("$hytaleDir/Assets.zip")
}

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"
        programParameters += " --log=SkyWars:FINEST"
        programParameters += " --assets=$hytaleDir/Assets.zip"
        programParameters += " --mods=${sourceSets.main.java.srcDirs.first().parentFile.absolutePath}"

        workingDirectory = serverRunDir.absolutePath
    }
}
latent vapor
#

Dani building skywars leaked.

sterile forum
#

not that i have any idea what it does except copying file and changing the idea settings somehow.

cyan hare
sterile forum
#

it pulls out where it should read hytale main from and creates paramters to the mod folders, assets, logsettings?

it's a variant of the runserver gradle script?

latent vapor
sterile forum
#

I mean the one that dani sent, mine is essentially unchanged from the kauptenjoes plugin template, except that i changed the version to the server, and changed idea settings for jdk25

latent vapor
#

I'm curious how your gradle was before, because the runserver script look like before

neat pelican
ruby arrow
#

how to use a custom comment for the block wyglądac players who are standing near it

latent vapor
tawdry geode
#

i can report i have succesfully lauched my testserver again after 5h of pain and agony

sterile forum
#

ah dani, your hytaledir points manually all the way to the version your are targeting?

#

maybe that was my issue, that it took the first darn hytale-server.jar it could find and just went "this is fine."

neat pelican
sterile forum
#

oki

neat pelican
#

wasn't available when I set this up

#

and this way I know my client and server are always in sync

near onyx
#

ahh

sterile forum
#

I am just wondering people with more knowledge

#

if you do any idea settings beyond gradle do you royaly bed gradle and things will go out of sync because some settings will be on idea level and some on gradle level?

neat pelican
#

gradle is the source of truth

sterile forum
#

ok... thats telling, trying to run the server after done some changes where i specify the full path.

severe torrent
#

how is this server different from the server plugins read only server?

sterile forum
#

as in tried to go back to the old settings by specify the pre-release path.

#

Hytale\install\pre-release\package\game\latest\install\release\package\game\latest\Server\

#

The mother quacker injects a path that points to release latest automatically.

unborn nebula
severe torrent
#

But why can't i post on the read only i mean somebody must have access to write

sterile forum
#

Because a read only litterly means that you can only read.

neat pelican
neat pelican
sterile forum
#

I will probably be back with more gradle questions tomorrow, this brought me all the way back to zero, again. Your settings seem great dani, but i got a lot of warnings probably to some dependency or setting or its not suppoed to be in straight gradle files. And need to take a break before i toss the entire concept of making mods out the window with the computer.

severe torrent
sterile forum
#

There is nothing worst the build config and setup...

neat pelican
maiden galleon
#

I like Maven it always works.

severe torrent
#

what is maven

cerulean harbor
neat pelican
#

whether you prefer gradle or maven usually depends on which one you interacted with first, lol

twilit talon
#

Good afternoon

latent vapor
#

my setup is so much more primitive than this haha, i just run my own local server (separate to my IDE) and then I just build the mod into the mod folder

#

Basically I'm just cave man smashing a rock till stuff works

near onyx
#

i do the same. I have a gradle task server which builds the jar into the mod folder, then I run my server manually.
I hate the IJ terminal, so i dont like running a server from IJ itself

twilit talon
unborn nebula
#

So now you maven't?

twilit talon
#

Now, I've made some important changes to my Proxy with my team, ensuring resilience to future Hytale updates.

twilit talon
unborn nebula
#

I'm not a very expereinced java dev and the only project I'm actively working on is my mods, so, I'm using gradle

twilit talon
latent vapor
#

I didn't even learn java, haha.

the first hytale mod I worked on was using javascript.

then my next mod(s) is in kotlin

twilit talon
#

I don't have much experience with Kotlin; I've always been used to doing everything in pure Java, ever since I worked as a network analyst and developed some monitoring software.

latent vapor
#

(which has been many years)

tawdry geode