#programming

1 messages Β· Page 1 of 1 (latest)

lucid lion
#

damn first message fr

blissful obsidian
#

I will take the third message

blissful escarp
#

Giggety

quasi fjord
lucid lion
#

fair

elder vault
#

7th message here

true turret
#

i'll claim the 8th one then

latent forum
#

so I am cool too I guess? (9th)

granite wigeon
#

in binary the second is mine (10[th]) πŸ˜…

pseudo gate
#

i programmed the 11th message here

hollow schooner
#

Im composing the 12th message :)

deep rose
#

13 is mine

paper ruin
#

Y'all bad programmers because you're indexing from 1 and not zero πŸ˜›

rocky flax
#

z0ppa got it right.

paper ruin
#

And I'm bad at reading because I completely missed that message and thought I was being clever πŸ˜‰

umbral quiver
#

Doesn't Lua index from 1

paper ruin
#

Some languages do, yes. And they are wrong.

tranquil parrot
#

Ill take the 19th message and my best wishes goes to you developers trying to fix this those hackers are something else.

wheat berry
paper ruin
#

Interpreted and higher level languages have rotted the brains of current developers πŸ˜‰ So many that don't understand at even a passing level what allocation is and what is actually happening with resources and why...

wheat berry
#

like I said, the fact that in C arrays are aliases for pointer arithmetic instead of being mathematical arrays has rotten the brains of multiple generations of developers, who now see that as the norm

median quiver
#

I don't even know what is mathematical array.

wheat berry
#

an array in math is arrangement of numbers in rows or columns where elements can be identified by index (index not offset)

upbeat trench
#

Why even mentioning rows or columns? I think the proper definition would be ordered set...

wheat berry
#

because of the connection they have with matrices but that's getting too much into details

upbeat trench
#

those are vectors

nimble patrol
vale valve
#

"When everything is void* pointer, nothing is" 🀣

fringe raft
#

30th

knotty swift
#

hello Im a programmer looking for a job, Im under the water please help me

river tulip
#

@ Derek Kermit is a C programmer, in case you were confused πŸ˜‰

sullen charm
quasi fjord
#

I'd say flush, to clear the high-water mark?

abstract jolt
#

yo gamers i need some professional help

vale valve
#

Therapy is always a good thing (I kid I kid about kidding not about therapy being a good thing)

abstract jolt
#

in college for cs and i graduate soon but ive got NOTHING under my belt, what do i focus on first?

#

i mean no in depth knowledge of programming or personal projects

tight heron
#

Find something that interests you and make it, doesn't need to be a huge project. If you have a hobby make a website for displaying your work, etc

river tulip
#

depends on what your goals are I suppose. Do you seek higher education still or do you want to start a career. If its the latter you would probably start looking for an internship in some company, or even a permanent position if you're lucky? Programming is a skill you learn by doing, so obviously you want to do it as much as possible. Contribute to open source projects, make a personal project if you find something that interests you

lucid lion
quasi fjord
# abstract jolt i mean no in depth knowledge of programming or personal projects

I do woodworking as a hobby and one of the things on my whishlist is making a sort of shelf for all our USB chargers/cables.
Fascinated by hexagons, I'd like to make it like honeycomb, but as organic and irregular in shape as possible.
So, I've written a (first version of a) tool to randomly generate me some hex patterns to choose from.
The result is an SVG file of the pattern.

I always feel like I am not fluent enough in unit testing, so my self emposed rule for this tool was to approach it test driven and 100% my code.

Next is going to be a web-app, that uses this tool to generate the patterns and then visualises them.
Because I have no convenient way of opening and managing all the generated SVG files.

quasi fjord
#

A friend of mine used to participate in yearly programming contests with a team of a couple ppl.

#

More electronics oriented, but you could look into a small robot to program and drive around your home, implement pathing logic etc.

hazy sundial
#

vibingcat this channel is filled with great mind, don’t fear failure, that’s how you learn

digital warren
#

I'm a seasoned and battle-tested HTML programmer. Sometimes I even dare myself with CSS!
/ask me anything.

river tulip
#

how do you align something in the middle

digital warren
#

With position: absolute

river tulip
#

impossible

digital warren
#

Amateurs dont use this, this is my secret

#

To be more complete:

position: absolute !important
left: 50% !important 
transform: translateX(-50%)! important```
#

To be more !important add z-index: 9999

river tulip
#

right, so you tell the css engine its not important to align and they do it properly. Makes sense

sullen charm
sullen charm
#

ALSO - remember that no single human has ever done anything.

#

You're more powerful cooperating with others.

#

Tldr find some like minded folks and do what Oriana said - build something you think is cool and exciting.

#

And send me a link when ya do cuz I love seeing peoples work and giving feedback.

sullen charm
upper radish
#

Not sure if this is the right place to ask, but does anyone here know how one would go about setting up a channel in a similar format to the servers-and-lfg channel? The boxed off threads, and the most-recent sorting particularly

sterile hedge
waxen ivy
#

Any networking folks in here? Looking for some answers, any help is appreciated

If I have a guest network, that is completely separate from my actual intranet/lan right?

And then my follow up is, if I have a device that is streaming as the client on the guest SSID and and the server is on my Intranet, will the devices go onto the external network to communicate?

And then the next question is, do guest networks have an intranet of their own? If both the client and server are on the guest network, do they need to reach the external network to communicate?

molten vigil
upper mango
# waxen ivy Any networking folks in here? Looking for some answers, any help is appreciated ...
  1. yes it is segmented from the actual network.
  2. normally the only thing that would be similar for both would be dns servers. Like 8.8.8.8(google) but the ip would be that of your own dns server , or it could be Google I guess to..this would help them communicate with the outside world, but unless you have inter lan routing they won’t be able to communicate with each other. It’s like house number 52 trying to knock on house 5’s door when there is a giant wall between.
  3. if by intranet you mean internal network then yes. All guests can communicate with each other inside the subnet they are in
sullen charm
misty pumice
#

I posted this question in the dedicated servers channel but it received 0 response. If i try to run a Valheim server, it ends up taking down my internet every few minutes. I also cannot connect to it via its private IP on the same LAN. it is only connectable in the short window the internet stays up via external IP. Also it will only connect if the server is run in crossplay mode. Public 0 or Public 1 dont let anyone connect period. Firewall on the server has been completely disabled. Any clue? I'm just looking to run a LAN only server to play with my kids. Im running several other dedicated servers on the same box without issues. I've tried running the valheim server from several different devices to the same effect. I've used the steam dedicated server download, used the option within the regular game, and i've downloaded it via steamcmd, all behave the same way.

#

Im guessing there is some sort of looping traffic causing the router to crash, that is my theory anyways, as the server will only connect via external IP, the internal LAN systems are having to go out and right back in creating a loop.

tight heron
# misty pumice Im guessing there is some sort of looping traffic causing the router to crash, t...

If you turn on crossplay it makes the traffic external. If everyone playing is doing so on steam then I would advise you to turn off crossplay. If you remove the crossplay flag then you'll need to "forget" the ip address if you favorited it and add it back when trying to connect in the main menu. Swapping from crossplay to local like that can cause connection issues for a bit until the server is released from crossplay (or whatever happens, I'm not an expert, just know it causes issues).

sullen charm
misty pumice
#

I'm away from home at the moment, but I may hit you up once I'm home and have a moment.

sullen charm
#

It kinda sounds like you have an IP Address conflict.

sullen charm
blissful obsidian
#

Hey i am getting a issue where when i launch the game and try to connect to a hosted server i get the error "retreving failed" and it does not connect me the server. I tried connecting with another account and it works completely fine.

vale valve
#

tis a steam issue

molten vigil
#

Soooo, Valheim is Unity game and uses BepinEx to run compiled C#(managed code) mods

#

If I write something unmanaged(like C/C++), can I integrate it into mod? Or is only managed code permitted?

#

Like say, using a particular lib

royal fiber
#

yes, you can call unmanaged code from C# and mods are no exception

upbeat trench
#

the Unity itself is unamagned code after all

#

at least significant part of

fossil lantern
#

Can anyone guide me, as to where i can go to learn how to config mods on a dedicated server, server side?

upbeat trench
#

probably in some mods channel

rose sky
#

I havent played in months so I decided to start a new character and world with no mods. For some reason after 5 mins the game stops responding. If I use Vulkan, 1 to 2 mins. I have redownloaded and verified files with no errors. I have no idea what is causing this...PLEASE ANY HELP IS APPRECIATED

supple oasis
#

For those running a server that crashes occasionally, I whipped up a script that checks if the server is running every 30 seconds and if it is not it starts it up again.

`@ECHO off

SET VALHEIM_DIRECTORY="%ProgramFiles(x86)%\Steam\steamapps\common\Valheim dedicated server"
SET _PollingInterval=30 > nul

:Start
START cmd.exe /k "cd "%VALHEIM_DIRECTORY%" & .\start_headless_server.bat"
TIMEOUT 5 > nul

:Loop
ECHO %date% %time%
TIMEOUT /T %_PollingInterval% > nul

SET PID=
FOR /F "tokens=2 delims= " %%i IN ('TASKLIST ^| FINDSTR /i "valheim_server"') DO SET PID=%%i
IF [%PID%]==[] (
ECHO Application was not running. Restarting script.
GOTO Start
)
GOTO Loop

GOTO:EOF`

#

Just copy the above text into a text file and rename it to 'valheim_server.bat' and double click to run. You can Ctrl-C to escape out of it or close the window to stop it. I should also mention this was written for Windows, I'm not sure if it will work on Linux or Mac systems.

warm fractal
golden flame
#

that sound amazing

nimble plume
#

``
boolean isSorted = false;
String tempString = "";
int fakeItCounter = 0;

    while (!isSorted){
        for (int i = 0; i<sRay.length-1; i++){
            if(sRay[i].compareTo(sRay[i+1]) > 0){
                tempString = sRay[i];
                sRay[i] = sRay[i+1];
                sRay[i+1] = tempString;
            }
            else{
                fakeItCounter ++;
            }
        }
        if (fakeItCounter > 90000){
            isSorted = true;
        }
    }

``

Forgot how to check if a bubble sort is done so I made an arbitrary counter instead 😈

paper ruin
#

Basically you want to set isSorted to true at the top of the while loop, before the for, and in the if statement inside the for you will set it to false because you changed something so it's not sorted. It will be sorted when you go through the for loop and nothing is modified.

#

But since bubble sort's worst-case complexity is O(n^2), you could have checked to see if fakeItCounter was less than sRay.length * sRay.length and been safe instead of an arbitrarily large number.

#

And that is the difference between programming and computer science πŸ˜‰

nimble plume
paper ruin
latent forum
# nimble plume `` boolean isSorted = false; String tempString = ""; int fak...

may I introduce you to the glory of the triple " ` " when you share code. Your code would look like this : ```c
boolean isSorted = false;
String tempString = "";
int fakeItCounter = 0;

while (!isSorted){
for (int i = 0; i<sRay.length-1; i++){
if(sRay[i].compareTo(sRay[i+1]) > 0){
tempString = sRay[i];
sRay[i] = sRay[i+1];
sRay[i+1] = tempString;
}
else{
fakeItCounter ++;
}
}
if (fakeItCounter > 90000){
isSorted = true;
}
}```

#

and you add the language after the triple " ` " to have the fancy colors

nimble plume
#

Holay molay

vale valve
#

You can also add the language right after the opening three back ticks like so.

ember cave
#

Can u add that u can give admin to players

sullen charm
#

Players can already be admin via the adminlist.text file but they're limited mostly to save and similar commands.

raw wigeon
paper ruin
tidal scaffold
#

thats a drastically different process than what I did sorry.

nova spire
#

what engine is valheim made in?

paper ruin
#

Valhiem is Unity based

nova spire
#

ok so its is made in c# i gues

river tulip
#

yes

tidal scaffold
#

never tried mods

burnt summit
#

Ya tried but it fought me and I wasn't about to try too hard lol pretty sure i need to add wine

left totem
potent tinsel
#

x84?

rough narwhal
#

I have a question regarding some architecture, don't know if anyone can enlighten me on this.

But how does Valheim handle world edits? I get that the world is made from some sort of seeded world generator. And then a client just needs to generate with the same seed.

But once I make an edit, I need to store those height changes as well as texture changes. I'm wondering how to this work architecturally.

How does a new player entering an old world get all the updates that differ from the original seed? Both the heights and the textures. Does anyone here know? Or have a good guess?

vale valve
#

It's done via Heightmap component that stores/reads data from a serialized object (ZDO)

#

There's one Heightmap object per sector (64x64m in XZ) that stores offsets from the procgen seed values

upbeat trench
#

I'd say Heightmap is the main component displaying current heights, but modified heights come from TerrainComp

blissful iris
#

Are there specific languages I need to use for modding like C# (bcz it was written in Unity) or is there support for other languages like Java?

spice rose
blissful iris
#

And going against convention will be even worse bcz some built-in functions will follow PascalCase and then your own will follow camelCase it'd just be hard to keep track of

spice rose
#

I dislike languages other than C# for the exact reason that they don't use PascalCase on methods and camelCase on types/variables

#

But anyways I just get into the mindset of the code and move on. It's better to be flexible and open minded so you can make those neural links in your brain and what not

upbeat trench
# blissful iris I know C# (like you said it's almost identical to java) but I don't really like ...

Well, code style has nothing to do with bytecode it is compiled to.
You can place braces in your code anywhere you want. I think it's possible to adjust style for the decompiled code as well.
As for PascalCase for methods, you can name your methods whatever you want, even snake_case like in python, but you need to call game methods.
You can do some Reflection magic to transform the names from camelCase to Pascal case, but are those hacks (and possible slowdown due to JIT hindering) worth it?

#

JVM -> .net bridge is even bigger unnecessary hack

blissful iris
# upbeat trench Well, code style has nothing to do with bytecode it is compiled to. You can plac...

You are basically "forced" into those conventions, u can re-create all the methods yourself and name them in camelCase (and just in them call the original method), and u can just write your own methods using camelCase but that's not really viable bcz it'd be alot of work, and if you use camelCase while other methods are PascalCase that'd just cause inconsitencies which is worse than just using PascalCase

#

Well, code style has nothing to do with bytecode it is compiled to.
Yea but not following the conventions has massive downsides

upbeat trench
#

Massive downsides? Most mods are supported by their only creator anyway. Very low chance you'd have potential co-authors, who'd be repelled by the fact you use unorthodox code style.

blissful iris
# upbeat trench Massive downsides? Most mods are supported by their only creator anyway. Very lo...

Even in solo work, if there is no consistent style it can be difficult to keep track of things, I can't just have "my style" because things like implementin g interfaces will use capital letters
For the brackets I guess that's a thing I can do
It's better to just adopt the language's style and conventions

Not sure why it became such a big deal, just got a bit disappointed that the standard way (if we ignore bindings to other langs) is C#.

eager dew
#

I used to care about style a lot more than I do now - as long as people are consistent, I can deal with any style. Within reason, of course. I prefer the C# coding style, but if another language does it differently, it would be kind of a silly reason to not use it, IMO.

sullen charm
eager dew
#

Very true

cinder bane
#

Hello, is there an easy way to get info like players health in real time as a value ?
Making a layout for an event and it be really cool with a circular health bar around the players avatars

rich vapor
#

hey guys, has any of you tried to use the Discord api to send Valheim saves game to a Discord channel (to share them with friends, etc.)? My script (https://sourceb.in/T7lfthUtfP) sends these files to the channel but after downloading, Valheim can't make use of them. I am sending them according to Discords specs https://discord.com/developers/docs/reference#uploading-files
but I reckon that my encoding before sending

    $file_enc_fwl = [System.Text.Encoding]::GetEncoding('UTF-8').GetString($fileBytesFwl)```

might be the problem, but I am stuck here, as my understanding of http/encoding is limited
Cheers!
shy fern
#

@rich vapor don't use ## to markup text πŸ˜„

rich vapor
#

why?^^

river tulip
#

without knowing anything about anything isn't the problem that the save files are not text, they are binary files. They are not utf-8 or whatever

paper ruin
# rich vapor why?^^

People use it for spam and causing havoc in channels, so we have them basically disabled on the server.

rich vapor
#

Check, but where have it used them? πŸ€”

rich vapor
vale valve
#

You should be zipping up the world file first and sending that as gzip

rich vapor
#

does zipping prevent file corruption while sending? The larger file is ~18 MB, so that is sent in a few seconds

rare lagoon
# rich vapor does zipping prevent file corruption while sending? The larger file is ~18 MB, s...

you might have already figured this out by now, but file compression is unrelated to the integrity of your file transfer. Expect for the fact it spends slightly less time in the airspace, but if your data is already the target of an attack, there really isn't much you can do about that
(Unless you mean "unintentional" bit corruption, in which case TCP already handles and corrects that for you. UDP however doesn't, which is why video streaming has questionable quality)

wary notch
#

could anyone here help me with a server Idea I have?

#

The idea is it's like the minecraft lifesteal server, But firstly, In valheim. And secondly, With hunger slots.

#

I'm thinking you would start with 1-2 extra slots and could use craftable hungerslots to get back up to 3 but no higher.

#

It could probably be done by making a custom equipable that just gives an extra hunger slot. Crafted ones would have a maximum capacity but if you died, You'd drop a hungerslot.

#

That would cancel the other Idea I had of keeping equipped items though. (Since Losing a slot is already alot)

mystic urchin
#

Anyone have any beginner tips on getting into modding in valheim? Ex, what language I should get familiar with?

paper ruin
vale valve
drifting willow
maiden pier
# rich vapor hey guys, has any of you tried to use the Discord api to send Valheim saves game...

ReadAllBytes returns a byte[] array of the binary file, theres no need to have encoding unless you are going to transform it into a Base64 string. Limitations fall under if your account has Nitro or not as you will be hitting a boundry of the limitation size you can upload, as someone mention best to compress the file to shrink it down some as best as you, because the world will slowly expand in size the more you explore, build and change the terrain etc

upbeat trench
#

w/o nitro max size is 2MB I think, gzip won't solve the problem, worlds cannot be compressed that much

upbeat trench
rich vapor
upbeat trench
#

Well, the encoding is literally... "binary". Some APIs use that, but you had "UTF-8" in your code sample, which is text-encoding

#

I googled, yes, max file size is 25MB, still not enough in many cases with save files. You can try to workaround with mluti-volume archive, but I'm afraid Discord might detect that and block certain actions.

rich vapor
# upbeat trench w/o nitro max size is 2MB I think, gzip won't solve the problem, worlds cannot b...

I just tried it out and windows could compress the 19 MB .db file to 10 MB...almost 50 % - quick google though: people tend to have save files up to a few 100 MB later. In the case we will ever hit that region (will never happen - we play once per month) I will use a cloud service or so - I probably should have though about this earlier, but all this started as a side side hustle and I didnt plan much ahead

upbeat trench
#

100 MB file is typical for explored world, compression doesn't improve at all with size growth.

vale valve
#

Our world file is 900+MB and compresses to about 325+MB with .tar.gz

finite oyster
#

if you're worried about the size, you could just upload it to google drive or something and grab the url, then send that to the discord

warm fractal
#

Now when the Valheim upgraded to Unity engine 2022+, can we enable DLSS 3+ ? Did anyone tryed?

upbeat trench
#

Is it enabled by default? It seems it's not and I heard from sometime with purple nickname it's not enabled.

surreal iris
#

I want to set up a dedicated server in such a way that vanilla players can join in no problem but if modded players want to join they will be flagged by the azumatt anticheat. Any ideas on how i can make this?

balmy sierra
surreal iris
balmy sierra
#

the anticheat should already do that for you, not being able to join without it that is

#

i can make a mod that only allows console players for you

surreal iris
vale valve
#

Looking at the decompiled source can't you just call PrivilegeManager.ParseUser(netPeer.m_socket.GetHostName()) and read the resulting User.Platform enum from that?

You could probably also patch ZNet.RPC_ServerHandshake() to parse the incoming netPeer.m_socket.GetHostName() earlier to boot them right away.

Just some thoughts, always good to see new mods on the store.

mild orchid
#

HI

proper siren
#

Heya! Has anybody been able to get an IDE working for mod development on Linux? I'm trying to write a patch for another mod but it requires .NETFramework 4. I installed .net core as well as Mono and both are no good for this I guess.

finite mural
#

Does anyone know how I can add a custom slider in settings in a valheim-BepInEx mod?

vale valve
#

Patch the Settings.Awake() method and add your custom slider there

oak sky
finite mural
oak sky
#

Look in assembly_valheim both in Valheim.Settings in the root of the namespace and also in Valheim.SettingsGUI. Mimic what is done there and inject your slider in the most appropriate entry point you can find.

upbeat trench
#

"Mimic what is done" is such a universal thing in programming. Still using it after almost 20 years of working as a programmer %-)

maiden pier
crisp forge
#

hi guys, my name is Timofey, I'm from Russia, and I was very inspired by your game and wanted to find you to suggest creating a major update in the game in the future (developer GameDev). P.S. THERE ARE A LOT OF IDEAS))

toxic belfry
#

Hello guys, after long time I tried to start valheim. We were playing with my friends in my world. Today I have noticed that my computer cannot upload the valheim character and world data to cloud. Also I am not able to create any new character/world. Did anyone had such kind of an issue? I dont use any mods or any other things. In order to solve the problem I have reinstalled the game but did not work. I have shared the latest save from my worlds_local folder to my friend. She was able to upload to the steam cloud. We played together but whenever I log out from her server my character is not updated and my new created items has gone.

upbeat trench
upbeat trench
stray pier
#

hey yall hope someone can help me, everytime i start valheim i get a unity loading bar and crash during loading. i tried verify integrity through steam but that didnt work, any suggestions?

river tulip
#

this happens before the main menu? and not when you load a game world?

#

if so, sounds like a mods issue to me once again

stray pier
#

i have 0 mods

#

and yeah it happens on startup i dont get to the main menu before it crashes

river tulip
#

I don't know where the mods stuff usually goes but I would try locating the game files and deleting them manually, then reinstalling the game

stray pier
#

thanks, ill give it a shot. thanks for your time

topaz fjord
#

the Mac Version is here

finite mural
#

Is there a way in BepInEx using harmony to read a value inside the Update() function when a class doesn't have one?

#

basically debugging

vale valve
#

If the class doesn't have one how is it calling Update

upbeat trench
#

BTW, I always wondered how does the game picks up mods. I mean technically, you just put a dll in the same folder and the game somehow decides it needs to load it. That sounds like a ... not very secure feature. With my understanding, I'd expect a user to patch game dll by maybe add a simple call of mods init function where everything happens. But just putting a dll... is there a .net feature which just loads all the dll in the folder or something like that?

tropic nova
upbeat trench
#

yes, but how this work? In the level of dll loading

royal fiber
#

First up, BepInEx looks at ever assembly located inside the BepInEx/plugins folder, including nested ones. It extracts BepInEx metadata, resolves the load order, loads every mod dll and instantiates each BepInEx plugin class.
Afterwards, if a mod requests a non loaded dependency the .Net assembly resolvement kicks in. Based on the current context, so System, the current application (Valheim.exe itself) and the requesting mod dll location are searched. See https://learn.microsoft.com/en-us/dotnet/framework/deployment/how-the-runtime-locates-assemblies for more information

upbeat trench
#

That's when BePinEx is already loaded. How does the game (or rather OS) know that it needs to load BePinEx?

drifting willow
#

I believe it works rhe other way around, you launch bepin which loads the game

royal fiber
void locust
finite mural
drifting willow
#

not quite sure if this is what youd want but BaseUnityPlugins derive from MonoBehaviors so you could probably write an Update method like that

oak sky
#

Executing code every game tick is usually excessive though and I would caution against that. Find another place in the game to hook into that is called frequently enough but not at times when it isn't needed.

finite mural
drifting willow
inland axle
#

I have a server running in an EC2 and I'm anoyed by having to type my password every time I want to join in cuz i play on Controller... Can I just add myself and my friends on to "permittedlist.txt" and remove the password?

wintry thistle
#

I wouldn't run an EC2 outside a VPC with no password under any circumstances...

fierce geode
#

Hey what programming language valheim use?
And how can i mod it

river tulip
#

c# its unity game. Some of the modders may follow this channel but you could ask in#mods-discussion

shut ermine
river tulip
#

apparently it means its relatively easy to mod

#

given they don't have official modding support afaik

nova wraith
#

Probably the easiest game to mod. Yes

smoky ledge
#

hi, i need some help, how do i setup the cronjob mod to auto reset the ores, burial chamber, crypts, troll caves and the hildir quest dungeons? the auto reset should happen maybe twice a week

molten vigil
#

Hi i need help how to code for the wait in line program in unity like all those mobile games we see a customer or a vehicle or anything is waiting in a line and moves when the one nearest to the desk moves to the destination

earnest flame
#

Does somebody know how to read crash.dmp and player.log? and can tell me what is wrong with my game?#valheim-help message

feral shoal
#

Hello, I found this great mod ImageSigns but the images are too small for my use.
(I don't know how to reach the author.)
I'm pretty sure I just have to edit this line "widget.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);"
Now I'm trying to recompile the mod, but I can't find this "On" library.
https://thunderstore.io/c/valheim/p/pseudopulse/ImageSigns/source/

feral shoal
#

Can someone help me compile this?

vale valve
feral shoal
vale valve
#

Seeing that UnityWebRequest() in there is just asking for all sorts of danger lol

#

You can just use dnSpyEx to edit the DLL directly I think

feral shoal
#

Still no luck. But that was a good suggestion.

dark siren
#

Hi there guys. I'm trying to make a texture pack for valheim (possibly with new 3D models as well) and I'm stuck since Aedenthorn's CustomTextures doesn't work on terrain texture anymore since they're Texture2DArrays now.
Has anyone come along to update it?

elfin surge
#

Can someone help me find the models from the game files

#

I cannot find them

#

if it's possible

icy raft
oak sky
elfin surge
molten vigil
#

how do you start making mods for the game

sacred verge
floral zephyr
#

Hey there friends. I'm working on a small mod (BepInEx and Jotunn as mod framework) and have my mod loading, patching with Harmony and working. I can access the data I'm looking for by poking around in ILSpy and can print to log all the stuff I want.

My question is this: How would you draw a row of Trophy icons on the main HUD starting in the lower left and running to the right? The images already exist in Valheim, I'd just be grabbing them, scaling them, and drawing them as an overlay. Is it possible to do this without creating GUI assets in Unity? Is there already a big UI element for the whole HUD where I could patch in my icon drawing?

oak sky
# floral zephyr Hey there friends. I'm working on a small mod (BepInEx and Jotunn as mod framewo...

The HUD exists mostly as GameObjects buried deep within the hierarchy of the main scene. These GameObjects have components (scripts) attached to them, as well as children / grandchildren all with their own scripts as well. These GameObjects can be cloned, modified, reparented, and/or have their sibling order modified. New GO's can also be made from scratch via code or can be pre-assembled in Unity, built into an asset bundle, embedded within your plugin, loaded, and injected into that hierarchy.

This hierarchy can be explored in game using a BepInEx plugin called Unity Explorer, or you can view it in Unity by ripping the game files into a Unity project. There is a guide for this on the Valheim modding wiki.

My recommendation is to view the existing hierarchy via the methods I've mentioned, and using the existing HUD elements as examples, find and copy/emulate the ones closest to your desired result.

somber mortar
#

Hello all, I don't know if this is the right channel for this but I am planing to make a small scene (5 second video) of valhiem. For that is it possible somehow to extract sky hdri of valhiem and put it in a 3d program?

daring relic
somber mortar
#

ok thank you

novel badge
#

Hello, does someone know why recipes pop up even i have disabled them, is it bc i am admin?

jagged void
#

Hey everyone, I got a question about performance. I've noticed that I get mini stutters when Valheim places locations on the world map for the first time as you walk around. Even though they are one-frame stutters, it can be jarring. I was wondering if there's a dev command or some other way to force it to place all locations on the map beforehand. For context, my computer is a 4090/12900K that gets above 120FPS normally. It's just these one frame stutters that happen exactly when the Unity log shows "placing location at X which took Y ms."

jagged void
#

I found a solution, in case anyone else wants to do the same. You can use the Upgrade_World mod and type the command: zones_generate maxDistance=1000 to pre-load the locations to avoid stutters.

river tulip
#

how big the world save becomes in this scenario I wonder

vale valve
#

A full world generation takes about 1-2 hrs and the initial world size hovers around 400-500 MB and 3-4 million ZDOs.

#

Source: I pre-generate the entire world for Comfy as we override location proxy spawning behaviours/quantity. Typical end world file sizes are around 900MB with 7 million ZDOs.

autumn igloo
vale valve
#

Because instantiation occurs on the client

#

You will see references to the different instantiate modes: Client, Ghost, Full

autumn igloo
#

Server spawns LocationProxy and related objects.

vale valve
#

Yeah and I want to instantiate everything including vegetation, of which I have multiple different configs loaded via mod.

autumn igloo
#

Server spawns vegetation too.

vale valve
#

OK πŸ‘Œ

autumn igloo
#

I mean it might work if your mod was just on the server.

#

Unless there is something that needs user interaction.

vale valve
#

It doesn't matter to me, I do it once every few months and I'd rather do the upfront work of generating the entire map to reduce server congestion

#

If I had to repeat this process more often I would still generate it up-front since custom world edits are done afterwards.

autumn igloo
#

Yeah, nothing wrong with that. Good workflow is what ultimate matters.

wet matrix
#

I wish umod supported valheim, I really miss the built in compiler. Save your script, reload the mod from the server console and test your changes. It really spoiled me

hardy cove
upbeat trench
wet matrix
upbeat trench
#

Heard about Rust, but never played it.

wet matrix
#

The game is pretty solid, the player base pretty toxic

upbeat trench
#

yeah, that's what I heard
what is missing from e.g. mods created by @autumn igloo but existing in umod? I heard he has mods which allow to configure A LOT.
or is it just the familiarity with specific API so to speak... config format?

wet matrix
#

I haven't really tried modding in valheim, so I'm not sure what features are available, but is doesn't seem like on-the-fly compilation is one

upbeat trench
#

never saw on-the fly compilation, but I haven't even looked at mods in Valheim for a year...

#

I never made custom maps in WC3 or SC1/SC2, but I roughly understand how powerful are their map editors and I think I know what you're looking for.

wet matrix
#

I just really liked the workflow with umod since you could change your program on a live server and it would recompile and re-patch with a simple reload command

autumn igloo
upbeat trench
#

I vote for Javacript )

#

but yes, I know, Lua is much more popular, particulary in game dev

wet matrix
#

ugh, lua is like the js of the game world

upbeat trench
#

and probably easier to embed

wet matrix
#

I have no objections to C#, other than having to use VS and all the associated bloatware

upbeat trench
#

what language does umod use for scripting?

wet matrix
#

C# only, there was talk of implementing lua, but it never happened

daring relic
wet matrix
#

When did they make it free?

daring relic
#

A few days ago.

wet matrix
#

Oh dang, I will have to check that out

daring relic
#

It has it's own bloat, IMO. It's pre-bundled with a Java runtime to run the IDE and has at least one AI-related plugin installed by default

wet matrix
#

It does tend to creep in if you don't make an effort to avoid bloat

delicate jewel
maiden cove
#

guys, does anyone know good resources to start creating mods of my own? ty in advance

upbeat trench
jagged void
#

Anyone knows of a way to launch Valheim with a Unity command line argument like -diag-job-temp-memory-leak-validation? I tried to add it on Steam's launch arguments but it didn't work. I'm trying to figure out which mod is causing a constant error that is making me stutter, and this is what I get on the log:

#
[Warning: Unity Log] Internal: JobTempAlloc has allocations that are more than the maximum lifespan of 4 frames old - this is not allowed and likely a leak
[Warning: Unity Log] To Debug, run app with -diag-job-temp-memory-leak-validation cmd line argument. This will output the callstacks of the leaked allocations.
tight heron
jagged void
#

@tight heron Oh that makes sense, it was happing on the Plains biome for me, quite consistently too. Thanks!

lyric elm
#

Hey, I would like to 3D-print a black marble tower I made. Does anyone know of a method to localize a 3D model or wireframe of a in-game structure?

wet matrix
#

As for a method, you can use a blueprint mod to get the position and rotation of each piece in your build. Then maybe rip the building piece models with Unity. Then you'd have to write a program to build a 3d model using the ripped prefabs and the blueprint

lyric elm
#

Yeah, true. Might as well make a mock-up of the building pieces in Blender and rebuild it there. πŸ€”

royal fiber
gray matrix
#

Three different crashes, all same error code. Unity crash 2022.3.50f1. First one a lot of stuff on the grab and spawning in after killing abomb. 2nd just pulling items from a chest in crypt, third in base just finished fermenter and nothing special.

Has anyone else had these issues? I have tested individual components and stress tested the gpu and cpu. Maybe voltage.

System: AMD 7950x, 64gb ram, asus 3080, 990 pro storage, plenty of cooling, asus motherboard, corsair 1000w psu.

I am at a lost. Seems after some updates this happens a lot for me and then at times all good for weeks.

vale valve
#

If it's a Unity crash, immediately after go look at C:\Users\<YOURUSERNAMEHERE>\AppData\LocalLow\IronGate\Valheim\Player.log to see if it's emitted the full crash stack trace in there.

candid canopy
#

Hi, is there any way to remove the snow storms? My PC is very old and my fps drops a lot when this happens.

normal current
candid canopy
#

@spring rivet

#

we are on dedicated server

lunar ridge
#

yo anybody here know anything about Tableau and willing to help me out?

raw jolt
#

Of course if you guys play vanilla then Yeah Idk

raw jolt
candid canopy
raw jolt
woeful plume
#

Anyone have any idea how the water was done in Valheim? It appears to me like they may have used a generated texture processed via FFT similar to sea of thieves given how realistic it looks, but just stylised the actual water textures etc. But then I'm wondering if it's just a really well done classic sin/Gerstner wave implementation? Currently trying to write a water shader myself for use in unity and I really like the way valheim's water looks.

hoary cedar
#

Hi, i have a question (hope it's correct channel πŸ˜€)

How can I started make my own modification to valheim, or where can I search tutorial about that? When I look in Google only what I seen is how to install, download etc.

#

I already stary learning programing and it's can be excellent lesson for me 😜

south lily
muted shoal
#

not entirely sure where to post this. I'm on a dedicated server that a friend has sorted for us and quite often when we enter new areas it doesn't load in completely, most of the time its just open areas with nothing, no trees or rocks. Sometimes it will eventually catch up but with a lot of the dungeons caves etc they just don't show. Any help would be great as we've been struggling to figure it

orchid mica
#

ive had similar issues when mods arent loaded correctly

#

@muted shoal

raven mantle
daring relic
#

@pale jasper Most of the Z prefixes you might see in the CLI assembly are there for namespacing. You can generally assume that a Z-prefixed class comes from Valheim itself and not from the CLI Standard Libraries, Steamworks wrapper, the PlayFab Party plugin, or Unity. Those libs often have classes named something similar/close to what would need to be created in Valheim.

The wiki contributors have tended to lean on ZDO meaning Zone Data Object, but I don't know if that's been verified by the devs or if it's part of the same namespacing above.

jovial plank
#

anybody got the mailbox to send a crash log to? cause its crashing without me leaving my desktop.

slate bay
#

Please, can someone tell me how the graphics are implemented in the game? I'm filling textures into Unity low res, making the same low res normal map, but I still can't achieve the desired effect. Let's say we take a bonfire. The pixels of the earth change color depending on the lighting. It feels like the light is falling on each pixel, rather than on the entire surface. How is this done?

fossil canopy
slate bay
jovial plank
#

anybody got info on why this is being spammed 100's of times a second?

[Info : Unity Log] 03/02/2025 22:47:55: Im still nto the owner

normal current
weary breach
#

Has anyone got a build pipeline running for their mod?

spice terrace
#

I know this channel is not for minecraft modding but yall are the only modders i know. Anyway i just picked up programming 15 minutes ago and already embracing the logic. I found an error that was caused by a lack of a config file so i removed the part of the code that checked for it and now it works flawlesslyπŸ˜…

near ore
#

Hey all o7 idk if this is the right chat to ask this in, but how does one start getting into making mods for valheim? Ive got a few ideas and i want to try but have never made a mod for a game before. Thanks! Rocky

tropic herald
jolly dust
#

print(chr(sum(range(ord(min(str(not())))))))

it's....beautiful

nova lion
#

does thundesrtone keep a copy of assembly-csharp.dll somewhere cuz I tried to mod another game that uses it by editing the assembly-csharp.dll directly and the game completely ignore my changes ? Like it wont even UnityEngine.Debug.Log on awake for the inventory manager of that game ?

daring relic
nova lion
#

hum I should have tested it in a vanilla run yes... 😦 that was dumb on my part to not do that

#

I restore the assembly-csharp.dll now so too late but when I redo it Ill check the vanilla version first and not even start thunderstone

#

Like I did that because I really sucks at IL and since it's not for distribution I think it's just faster to edit assembly-csharp.dll directly

civic hollow
deep leaf
#

Does anybody in here know if it's possible to create a completely customized seed, I found one with a really great valley in it. That's surrounded by mountains but it doesn't have really big land masses and I'm trying to do this massive community project, we're being sponsored and everything. Sure that I have a good seed, because we've already started, but I plan on getting the infinity Hammer to move it all over to this new seed if it's possible. If not, I guess I'll have to deal with the one that we have, but I would prefer to be able to have a fully customized one so that I can build it around the lore that we're creating for this world.

wispy comet
deep leaf
#

I've used that, it found me my great seed but there's a severe lack of massive land masses lol

#

And we've already built in this world

noble elm
#

01965442-bc57-23ef-11bc-45850e28baf8

out of this modlist, there is a mod that is preventing me from eating, can yall help me find it?

[Error : Unity Log] MissingMethodException: Method not found: bool .SEMan.HaveStatusEffect(string)

Stack trace:

(wrapper dynamic-method) Player.DMDPlayer::CanConsumeItem(Player,ItemDrop/ItemData,bool)

(wrapper dynamic-method) Player.DMDPlayer::ConsumeItem(Player,Inventory,ItemDrop/ItemData,bool)

(wrapper dynamic-method) Humanoid.DMDHumanoid::UseItem(Humanoid,Inventory,ItemDrop/ItemData,bool)

(wrapper dynamic-method) Player.DMDPlayer::UseHotbarItem(Player,int)

(wrapper dynamic-method) Player.DMDPlayer::Update(Player)

daring relic
noble elm
#

are there any console commands to make enemies fight eachother?

#

or is there a specific trait i need to give them for them to become hostile with other mobs

tame harbor
deep leaf
tame harbor
#

You're welcome :)

deep leaf
# tame harbor You're welcome :)

Oh and if in the future you want to check out the RP server feel free to dm me, also look on YT and reddit for ValheImmersive!!!

rancid sigil
signal oxide
#

Anyone running an older version of the game (circa 1 year old) and willing to check something for me? It's pretty simple.

#

It's not necessary to start the game even.

scarlet horizon
#

enemies are friends with their own faction and will fight all other factions

thorny gull
#

I'm seeking someone with Lua script knowledge. Please DM me for further information!

uncut jetty
#

How to properly register ZNetView and its ZDO in the current version of Valheim, if there is no access to ZNetScene.m_instances and there is no ZNetScene.Register(ZNetView) method?

The goal is to create a network object manually, assign it a ZDO so that it persists between sessions and is not deleted as "invalid prefab ZDO".

We use:
– ZDOMan.CreateNewZDO(...)
– assign ZNetView.m_zdo via reflection
– call ZNetView.Awake()
– set SetPrefab(...)

Everything works - but without registration in ZNetScene, the ZDO is still destroyed on exit / entry.

What fields / methods / alternative approaches should be used to properly register the object and its ZDO manually?

daring relic
south lily
# uncut jetty How to properly register ZNetView and its ZDO in the current version of Valheim,...

Using publicized assemblies would give you access to many of the requisite methods for registering a prefab (some details on that here https://github.com/Valheim-Modding/Wiki/wiki/Setting-Up-Mod-Development-Environment#situation-1--3-view-vanilla-code)

The proper way is going to be registering your prefabs to Znetscene on awake. If you want to set and keep data on your prefab you still need a znetview or such on the prefab, or you need to use another objects znetview to set/load values.

dusky pier
#

Hi,
I've been messing around a bit on basis of CustomAudio mod recently, but especially trying to add new sounds as well as completely new triggers.
Just wanted to see if anyone has any experience with this. I've tried things like overwriting sfx prefab names in EffectList.EffectData[] items, playing sounds locally, using RPCs to play sounds, trying to create own prefabs, etc.
Ultimately, most things seem not compatible with multiplayer one way or another

tough prism
# dusky pier Hi, I've been messing around a bit on basis of CustomAudio mod recently, but esp...

That is because the Valheim server function is mostly a relay, and only a limited set of triggers with limited information are send to the server and to other players. Your custom triggers will never reach them. The limited set of information the server gets leads to many other problems/limitations as well. It would be nice if the devs expanded what is send. As for now this limits modding to mainly client side, also very good anti cheat is almost impossible because the server is in control of almost nothing. For prefabs you can do that from the server in a limited way, as long as you build your new prefabs from in base game elements.

viscid steeple
sharp marlin
#

(call to arms spoiler)
Could anyone tell me ||Skull Splittur|| prefab name? too lazy to inspect hehe

lilac lion
#

Can anyone explain what the zoid indicates.... ie:

  • what are the numbers prior to the colon? is 'session id' or 'playfab id' the right term?
    - what is the digit after the colon indicating when it increments after each death. Evidently 0:0 means killed, but whats the logic to it changing after respawning? [edit - time in seconds]
08/31/2025 14:25:27: Got character ZDOID from SmallTest : 0:0
08/31/2025 14:25:27: Got character ZDOID from SmallTest : 1290327661:13
daring relic
# lilac lion Can anyone explain what the zoid indicates.... ie: - what are the numbers prior...

Sure, just about any object that could be communicated over the net or saved for later in a world db is a Data Object (ZDO). Those objects can be something like a dropped item, a creature, or in this case, a character.

ZDOs have an owner and a unique ID amongst that owner's objects. These two things make up the ZDOID. When they're printed as a string for debugging or logging, what you're seeing is <owner ID>:<object ID>. By combining these two identifiers, a client can independently generate an ID for an object it creates without having to ask the server what ID to use.

The client's character is loaded from disk, a ZDO is created for it with the player profile and character inventory and communicated to the server+players as needed. It needs a ZDOID for this ZDO. The client's game session ID (randomly generated when you start Valheim) is used as the owner ID here (1290327661) and the character ZDO has unique object ID 2 created within that session. So the client tells the server that its own character is the ZDO with ZDOID 1290327661:2.

When a client needs to respawn the player, it tells the server there's no ZDO representing its character currently. It does this by setting its character ZDOID to a special NONE ZDOID, the 0:0 you see. After the client has reset the player's inventory, it serializes the profile/character as a new ZDO to share with server+players. As part of the spawn, the client tells the server its new character ZDO's ZDOID (1290327661:13).

lilac lion
# daring relic Sure, just about any object that could be communicated over the net or saved for...

thanks
Is there a correlation between time in seconds and the last digit after the colon?
Does the range for ZDOIDs need to be large enough that it extends into negative integers? or do negative ZDOIDs have some other significance?
Do ZDOIDs ever change within the same character/map/game? Or is it completely unique to and static within that context?
It seems like its almost appropriate to refer to ZDOIDs as session id's... right? Do they remain static across client server restarts? (aside from the post-: index of course)

daring relic
# lilac lion thanks Is there a correlation between time in seconds and the last digit after ...

When I said session above, I'm referring to an individual gaming session of someone's Valheim game/client from that client's startup to shutdown. It could get disconnected and come back to the server using the same session ID. That randomly generated session ID is used as the owner ID in the ZDOID for ZDOs it creates. I'll avoid using "session" to refer to anything else here.

With that in mind, it might be better to think of the ZDOID as a globally-unique identifier (GUID). It just needs to be something the server or another peer could request or lookup and there would be no confusion as to what ZDO it refers to; no different object with a duplicate ZDOID.

ZDOIDs can survive server restarts just because ZDOs are the main world data getting stored in the <world name>.db file, and ZDOs are stored along with their ZDOID. That ZDOID might have less intrinsic meaning on the next start, but as long as it's still unique, all good.

The owner ID of a ZDOID can be negative, just because the devs happened to choose CLI's long type for that field, which is an integer between -9,223,372,036,854,775,808 and 9,223,372,036,854,775,807. When a client's session ID is used, it's randomly generated as I mentioned in the prior post, so absolutely could be negative.

The current Valheim just uses a sequential integer for the unique object ID part of the ZDOIDs it creates. It starts at 1 and increments it for each new ZDO that's made until 4,294,967,295.

daring relic
#

I tend to be verbose. The tldr:
ZDO = Valheim Data Object
ZDOID = Valheim Data Object Identifier
ZDOID = <app session id, Β±, random>:<object id within that session, +, sequential>
ZDOID 0:0 = special NONE ZDOID indicates lack of a ZDO

novel badge
#

Hi all. Does anyone know how to disable original prefabs? A cartography table example.

oak sky
novel badge
oak sky
#

The prefab references are then found in pieceTable.m_pieces which I think is of type List<GameObject> so it's a simple .Remove() call

novel badge
oak sky
#

There are several ways to obtain references to the root prefab itself that all clones are instantiated from. What are you familiar with so far? The prefab refs are stored in dictionaries in ZNetScene or ObjectDB

novel badge
#

This is thing what im not so familiar with. I have been making my own modpack and pretty much can config the mods but this is new, and pretty much cartography table is the only thing i want to disable from vanilla because it ruins my server.

oak sky
#

WackysDB might be able to do it

novel badge
misty topaz
#

Hey guys πŸ™‚

I want to write a mod but its not showing in the build menu
im using Jotunn
but my
private void RegisterBookStand()
is not even called

        private void Awake()
        {
            Log = Logger;
            PrefabManager.OnPrefabsRegistered += RegisterBookStand;
            Log.LogInfo("VSS: Hello World!");
        }

I can read the Hello World and also tried OnVanillaPrefabsAvailable
and I have at the top of my RegisterBookStand
a
Log.LogInfo("VSS: Starting Register!");
but no luck there

zealous flint
#

How do I reconnect the flux capacitor if the mainframe is all jammed from all the flux the capacitor couldn’t hold

stark nacelle
#

Ok

last haven
#

I am the biggest idiot who ever lived.

I am trying to fork Thrall by egoai (last updated 2024, before bog witch) so i can make an isekai, adventurers guild setup with quests and ranks and npc companion hires (minus the voice chat obviously)

I have almost 0 c# experience, but i had a milestone after a few days of VS2022 and ILspy decompiling fuckery:

I can now spawn in friendly skeletons and track their owner.

Only to find out that, the source code (not the decompiled mess I created and fixed) is readily available (i figured it out when i just went looking for marketplace /commands lmao.)

I am not the hero that the Valheim modding scene either wants, or deserves

last haven
#

does anyone want to help me with restoring Thrall by ego_ai, the thunderstore thing? Ive got a decent headstart and pretty clear goals, and it is interesting and fun. The ai companions they created are incredible, which is why i am going to all this work.

#

It's a player clone with functioning inventories (and the LLM stuff might be cool with open source keys but im shelving that function until i get the rest of it compatible)

olive spade
#

is there anyone that can help me figure out why i cant seem to apply a poison resistence?

iv tryed


HitData.DamageModPair poisonResistance = default;
poisonResistance.m_type = HitData.DamageType.Poison;
poisonResistance.m_modifier = HitData.DamageModifier.Resistant;

var lpoisonResistance = new List<HitData.DamageModPair> { poisonResistance };

player.m_damageModifiers.Apply(lpoisonResistance);
                    ```
```var playermods = player.m_damageModifiers;
playermods.m_poison = HitData.DamageModifier.Resistant;
player.m_damageModifiers = playermods;
player.GetSEMan().ApplyDamageMods(ref player.m_damageModifiers);

player.m_damageModifiers.m_poison = HitData.DamageModifier.Resistant;
with none of them actulay reduceing the damage or timer even when i log it shows its being applyed

sleek lynx
#

use a status effect,

public class SE_PoisonResist : StatusEffect
{
    public override void Setup(Character character)
    {
        base.Setup(character);
        m_damageModifiers = new HitData.DamageModifiers
        {
            m_poison = HitData.DamageModifier.Resistant
        };
    }
}

Then you can do:
player.GetSEMan().AddStatusEffect("SE_PoisonResist");

dull citrus
#

hey all, trying my hand at mod creating and stuck on classes, used to be player, fireplace, smelter from all the guides I found. Those classes don't seem to be the same any longer. Can someone point me in the right direction please ?

#

Searched through Assembly-CSharp and can't find any referenced namespaces

royal fiber
river parrot
#

Could anyone help me figure this out:
I'm trying to find more information about how the mysterious rocks/pet rocks work.
Is there a way that I can look at the assets in unity? Or is there a way I can figure out what classes/code the rocks utilize?

misty cipher
last haven
#

Jotunn and BepInExPack Valheim working just fine for mods like Marketplace And Server NPCs Revamped ?

in current version (0.221.4)

I am trying to recreate the genius of Thrall by ego_ai (a team that vanished mysteriously). Player clone companions with really decent modability.

last haven
#

After a week of "could not be instantiated!" on my attempt to resurrect Thrall's player-clone source code from 0.218, I am resolved to just make my own. Adrenaline changed a lot, anyways.

Are these all the sets I might need for material to make prefab player-model companions with equipment/inventory? I am probably in over my head

ItemDrop-ItemData.cs
ItemDrop.cs
Inventory.cs
VisEquipment.cs
ZInput.cs
Terminal.cs
Tameable.cs
CharacterAnimEvent.cs
Player-Food.cs
Skills.cs
Hud.cs
Jotunn.Managers.ItemManager.cs
Jotunn.Managers.PrefabManager.cs
ZDO.cs
ZNetView.cs
Humanoid.cs
Attack.cs
Character.cs
MonsterAI.cs
BaseAI.cs

last haven
#

I need a prebaked asset anyway, built in unity, has anyone done anything like that? I can put the player texture on a thin skeleton later, I'm assuming

olive spade
sleek lynx
daring relic
#

@twilit pike if you are looking to program server-side chat logging with injected/modded CLI (such as by using Harmony), you would probably override the ZRoutedRPC.RouteRPC method to intercept chat RPCs before routing them to peers. Try to keep any conditionals in there simple, as any observation for interception will add latency to network gameplay.

You might get some inspiration from this override: https://github.com/valheimPlus/VPlusChatFilter/blob/8a4cae7a8c05e06098918b4f376f6fb9e35f5b11/VPlusChatFilter/VPlusChatFilter.cs#L70
(credit to @hardy jungle)

twilit pike
#

Thanks!

hexed flame
#

lel

warm crane
#

I don't really know where to put this but is it possible/is there already a mod for reducing network packages, because I feel like 80kb/s is way too much. Theres got to be some way to make this smaller/optimize

#

Because a couple of my friends on our server have lets say, bad internet, and I feel like there's got to be a way to reduce how much information needs to be sent, like when running around, I'm assuming you just need to send player position, rotation, maybe animation information, what you're wearing, and what you're holding.

weary breach
# warm crane I don't really know where to put this but is it possible/is there already a mod ...

There's a lot more that needs to be synchronized between players than player information (position, rotation, animation, etc.). For one thing that also needs to happen for every mob. But more generally, every object in the world (every stone, every tree, mob, build piece, terrain modifications, etc.) needs to be synced.

General optimizations (like compressing the payload before sending) are already done by the game. It's likely it could be optimized further, but I'm pretty sure that it's not going to be as easy as patching the game's code in a couple of spots and inserting a "simple and obvious fix".

I'm not very familiar with how exactly this is implemented in the game's code, so take what I said with a grain of salt.

Also, checkout your mods first if you are playing modded. Mods can be the main contributors to network traffic.

onyx sierra
# warm crane Because a couple of my friends on our server have lets say, bad internet, and I ...

Everyone that has an internet connection in the world has access to 80kb/s. The problem isn't the bandwidth but their connection to it. Likely it goes in an out multiple times per minute because their internet provider is substandard or their country suffers from insufficient regional power to meet 24/7 demand. This means that lower the data rate will not fix their experience and truly the only thing that will fix their experience is a more reliable internet connection.

daring relic
#

Or dropping Crossplay if its in use. Crossplay will easily add or amplify latency issues for the server and players, regardless of bandwidth.

warm crane
#

I also found a few mods that compress and decompress network packages more. So that less data is being sent, but it's more intensive on processing power. Although I believe all players must have it and I'm not sure how that would work with the crossplay and Xbox players

viscid dragon
#

It probably won't work. If you need to support Xbox players you need everyone to have a good Internet connection and be closish together for good latency. It's because valheim doesn't have a real dedicated server model but had the first player in an area act as host.

royal fiber
#

XBox/Playfab already uses compression, so it won't help

warm crane
viscid dragon
#

Yes

warm crane
#

One last question, and thank you, it's about chunk owners. Is it for all time, or like when they leave and someone new goes into the area it gets reassigned, which would make sense.

daring relic
warm crane
#

I guess I have more questions, so if the area owner has a bad connection does that cause it to lag more for everyone else, and if so can I get it assigned to the server or like our large base area assigned to the server so that it's less laggy, or just to the person with the best connection?

weary breach
# warm crane I guess I have more questions, so if the area owner has a bad connection does th...

Yes.

There is the DedicatedServer mod that assigns everything to the server (beware, that massively increases the required computing resources on the server, especially with a lot of players).

ServersideQoL has an option to assign ownership to the player with the best connection, but I never was able to properly test it, so if you decide to give it a try, I'd be interested in your feedback.

(the two mods are not compatible, use only one)

warm crane
#

Alright, thank you so much I'll have to try each

misty cipher
misty cipher
weary breach
# misty cipher Any chance of breaking that out into its own mod ? I like your ServerSideQoL mod...

Thanks
You should be able to toggle on just specific settings, then it shouldn't interfere with client mods.

I thought about breaking it out into its own mod, but I'm not going to invest the time into doing that before I get some feedback on if the idea actually works in practice (I've not been able to test it on a server with 3+ players since I added the feature, so I have no idea if it holds any water). I'm not promising I will after I get feedback, but that is like a minimum requirement for me to further consider it.

But feel free to take inspiration (or code, but it's currently somewhat interwoven with the ServersideQoL's infrastructure) and make your own. Maybe it could be expanded on in the future, but what the code currently does is actually very simple. And some things, like measuring connection quality, could probably be done more reliably/robust with a clientside component.

misty cipher
#

It’s an interesting idea

warm crane
# weary breach Yes. There is the DedicatedServer mod that assigns everything to the server (be...

Alright so I tried the ServersideQoL mod for the assigning areas to best connection and it did what was expected but was also broken. We had 5 people in the same area and it would rapidly switch between 3 people with the best Internet, you could walk around and I think PVP was just fine but the chest would not open for people that were not area hosts. I only had about 30 minutes to test it out properly.

#

I would like to do the DedicatedServer mod, but we have Xbox players, and I don't believe they can install the mod for it

weary breach
weary breach
# warm crane Alright so I tried the ServersideQoL mod for the assigning areas to best connect...

Thanks, that's exactly the kind of feedback I need. Are you per chance willing to collect some data for me? If you set ReassignOwnershipBasedOnConnectionQuality = false and LogPingThreshold = 0 and MeasurePing = true you could collect some some data about the player connection quality in the log file without experiencing the negative side effect. Some real data would help me get a better understanding to finetune it a bit.

warm crane
#

Yeah I could get some data for you, also gonna experiment with different combinations of settings as this is the only mod that I know of that does kinda what I want

weary breach
#

Thanks πŸ‘

warm crane
#

One of my players just reported that they had extremely high displayed ping and couldn't pick up items on the ground or open doors. I can't upload his screenshot of it but it was: av: 532477840652 +- 17809314779722 ms

#

I'm assuming some sort of glitch when calculating average ping

weary breach
# warm crane I'm assuming some sort of glitch when calculating average ping

I've just recently had a similar report, I'm currently looking into that.

I just pushed an update to the BETA channel (unrelated to the bug you just reported). I added an option (hysteresis) that should help in preventing fast switching of ownership between clients with a similar connection quality and a new metric (EMA / exponential moving average)

faint solar
#

Not sure if I should post here, I just wanna theory craft as I test this. Came across this guy's boot config and want to see if it'll help me.

gfx-enable-gfx-jobs=1
gfx-enable-native-gfx-jobs=1
gfx-disable-mt-rendering=1
wait-for-native-debugger=0
vr-enabled=0
hdr-display-enabled=0
gc-max-time-slice=3
job-worker-maximum-count=7
job-worker-count=7
scripting-runtime-version=latest

Not sure why I would want gfx-disable-mt-rendering=1, maybe someone has some insight on that.
My understanding is that job-worker-maximum-count=7/job-worker-count=7 should be set to the number of threads you have -1, but I don't want the load to cross CCDs. I'm assume it won't if I set this to 15 rather than 31 (which would be stupid anyways). Does hdr-display-enabled=1 actually work? I see windows auto HDR popping up regardless, but it looks great with it anyway so not really worried about this one, I didn't see anything about this game supporting HDR natively.

My specs are:
AMD Ryzen 9950x3D
RTX 4090
32GB DDR5 6400MT (CL30-39-39-102)
Samsung 990 Pro m.2
4k 240hz OLED

I know this game is a little rough around the edges, obviously I want to try to optimize things the best I can to take advantage of the monitor

oak sky
faint solar
#

Thanks for the reply, I'll do that

steel palm
jolly dust
#

ex:
123,186,000
232,111,31

here we turn them into:
85ZJ1
58QTf

rules:
the first character in the code tells us the combination of odd & even numbers in the RGB values
the second character tells us the combination of RGB values by whether or not they are greater than (or equal to) 128
third character = R
fourth character = G
fifth character = B
Characters 3, 4, and 5 are assigned their values from 1 of 4 tables based on the rule set by the first and second character

O odd - E even

1 = all E

2 = all O

3 = R E, G E, B O

4 = R E, G O, B E

5 = R E, G O, B O

6 = R O, G E, B O

7 = R O, G O, B E

8 = R O, G E, B E


<> 128

L < 128 - G>=128

1 = all L

2 = all G

3 = R L, G L, B G

4 = R L, G G, B G

5 = R L, G G, B L

6 = R G, G L, B G

7 = R G, G G, B L

8 = R G, G L, B L


1 2 3 4 5 6 7 8 9 0
a b c d e f g h i j
A B C D E F G H I J
k l m n o p q r s t
u v w x y z K L M N
O P Q R S T U V W X
Y Z ! ?

64 characters, arranged this way for reasons

Odd-Lesser table (start 129 if Greater)
1-1, 2-3, 3-5, 4-7, 5-9, 6-11, 7-13, 8-15, 9-17, 0-19
a-21 b-23 c-25 d-27 e-29 f-31 g-33 h-35 i-37 j-39
A B C D E F G H I J-59
k l m n o p q r s t-79
u v w x y z K L M N-99
O P Q R S T U V W X-119
Y-121, Z-123, !-125, ?,127

Even-Lesser table (start 128 if G)
1-0 2-2 3-4 4-6 5-8 6-10 7-12 8-14 9-16 0-18
a-20 b-22 c-24 d-26 e-28 f-30 g-32 h-34 i-36 j-38
A B C D E F G H I J-58
k l m n o p q r s t-78
u v w x y z K L M N-98
O P Q R S T U V W X-118
Y-120 Z-122 !-124 ?-126

EG table (thought 128 would be a problem so I wrote it out, it works)
1-128 2-130 3-132 4-134 5-136 6-138 7-140 8-142 9-144 0-146
a-148 b c d e f g h i j-166
A B C D E F G H I J-186
k l m n o p q r s t-206
u v w x y z K L M N-226
O P Q R S T U V W X-246
Y-248 Z-252 !-254 ?-256 (256 shouldn't be used)```

-sorry if this is hard to read, I just kinda sat down & wrote out this system. Want to know if anybody can come up with a value it couldn't handle
#

(Also, technically, isn't this more compact than hex code? Aside from human usability, is there any advantage hex offers over the proposed system?)

weary breach
#

As to your second question: In what context are you comparing it to hex? It's possible there are specific scenarios where this representation would be better, but in a general context it's hard to imagine that the benefits this offers (shorter string representation) outweigh the inherent cost of a new and more complex representation as opposed to a well established/well known standard (hex) for everbody that has to use it.
You say "aside from human usability", but who/what else than humans would work with it?

royal fiber
royal fiber
#

To make the same calculation with your encoding, for a-z, A-Z, 0-9, ?, ! you need 26+26+10+2=64, so 6 bit per character. With 5 characters per RGB value, that's 30 bit and thus slightly worse than 24 bit with hex

jolly dust
#

So to make it more efficient the string would need to be 3 characters long, essentially?

jolly dust
weary breach
jolly dust
weary breach
#

The 24 bits the hex value represent don't contain any redundant information, you cannot compress it further (without loss), no matter what you do. (edit: not sure about that tbh, maybe I'm wrong here)

#

AABBCC (hex, 6 chars), 11189196 (dec, 8 chars) and 101010101011101111001100 (binary, 24 chars) are all just different ways to display the same 24bit value. It's 3 bytes and how they are displayed has no impact on how they are stored

jolly dust
weary breach
#

If you could make it work with the same number of unique character (64)

#

Look at it this way: the value is already stored as 3 characters, but 256 unique characters are available instead of your 64.

jolly dust
#

If you look at them as values you're right

#

But if characters 1 and 2 defined operations for the 3rd to find the complete set of values, it could work

#

'least I believe it can work*

weary breach
#

I don't think so, not for a single value. It would be different for an array of colors (image)

royal fiber
#

Yep, for a single color you won't get any better than hex, at least if you don't want to get the full color resolution RGB has

royal fiber
jolly dust
#

Look at it this way:

The values as they stand are 256X3

#

With the first character, we narrow down 256X3 to (256X3)/4

#

Or 64X3

#

If the second character can divide our posibilites by 3, we are left with just 64 (representable by 1 of each character in the table)

#

Did I miss something?

royal fiber
#

You have 256 x 256 x 256 combinations, not 256 x 3

jolly dust
#

Of Potential combinations of RGB values, not what each RGB value can be

royal fiber
#

I'm not sure what you mean

jolly dust
#

The values themselves can't exceed 255 (256)

#

We don't need to worry about what they can combine to create (each individual color)

#

We only care about what each individual value of each color is in a given set

#

Do we see?

royal fiber
#

We certainly do care what the three values represent. Let's say we know the first value. This doesn't give us any more information about the second or third value. They can still range from 0 to 256 and encoding additional information about the relationship between the three will just increase the space we are using

jolly dust
#

8X8=64, so we should be able to mush the first and second character together to tell us the 64 combinations of what the set of values could be, thereby narrowing down what values are possible, getting us our /4

royal fiber
#

Sure and it's fine, it's very possible these rules encode all RGB values. I'm not disagreeing here, just saying it takes a bit more space than using a hex representation

jolly dust
#

I still need a trick for the second character to get the rest of the possibilities to divide by 3 is the current problem

#

If we can figure that, we're left with 64 possibilites on what the RGB value could be, thereby able to represent them on the 3rd character, thereby reducing the entire value to 18 bits

#

char 1 = /4
char 2 = /3
char 3 = 1-64

royal fiber
#

That are only 64x3x4=768 different color combinations

jolly dust
#

We're not after color combinations, we're after a set of 3 RGB values

royal fiber
#

Again, I am not sure what you mean by this

jolly dust
#

I've got the rule for char2, literally divide by 3, it'll either divide evenly, end in .3333-, or end in .6666-

#

Give me awhile to build this out, let's see where it fails

jolly dust
#

Ah. Right. I tried to send a big ol list, server rules didn't like it.

jolly dust
#

....I hope I don't need to create 4096 tables for this

#

No it should be 8....right?

jolly dust
#

Uhh.....I might be stuck doing a lot of tables.

jolly dust
#

And nope, not narrow enough

#

best I've got is 16 possibilities by char 3, requires 4

jolly dust
#

Fascinating exercise though

novel badge
#

Hi all. I am starting a server and i want the merchants in spesific location because i want force and control the economy a bit. So, can i spawn them and how? And if can spawn them to the same place, they dont spawn anywhere else? How to do this?

tropic herald
tough prism
# jolly dust ```RGB Values range 0-255X3 (0 included) ex: 123,186,000 232,111,31 here we tu...

snsneaks Why did you make this? It serves no purpose, and it does not really work. There are 2 things here: (1) how much information there is in 6 hex digits which is 16,777,216 unique possibilities and (2) how many human readable characters there are which is 6. The first is important for storage the second is only important for things like used screen space and readability. The reason hex notation is used is because it will give a compact notation for binary numbers as those are always the power of 2 and organised in commputers in bytes being 8 bits and thus having 256 unique combinations. Hex notation has 16 unique chars used and 2 of them 16x16 also gives 256 meaning there is no redundancy in this kind of notation for bytes. Decimal notation only has 0 to 9 so 10 digits. 2 digits is too little as 10x10=100 which is less then 256. And 3 digits is to much (wasteful) as 10x10x10=1000. If you want usefull shorter notation that has fixed length and represents 3 bytes (24bits) of information only works is each character represents 1/x of the bits. As there are 24 bits you have the following choices (1x24 meaning you use 1 symbol and need 16,777,216 a set of unique symbols) (2x12 meaning you use 2 symbols and need a set of 4,096 unique symbols) (3x8 meaning you use 3 symbols and need a set of 256 unique symbols) (4x6 meaning you use 4 symbols and need a set of 64 unique symbols) (6x4 is 6 positions and 16 unique symbols and that is hex notation) (12x2) (24x1). The first 2 are a problem because you need to many symbols and nobody can remember what symbols is what. Even the 3th option is a bit much if you want to stick to letters and numbers. The 4th option needs 64 symbols and is possible with upper and lowercase letters and numbers. So 4 is the shortest viable option if you want to keep it a bit readable.

tough prism
# jolly dust (Also, technically, isn't this more compact than hex code? Aside from human usab...

Hex is used because every character represents either the lower or upper 4 bits of a byte. This makes it readable and understandable because by looking at its position you know the values of specific bytes in a series of bytes. You chose RGB which is 3 bytes of information but not every piece of information has the same length. Hex notation is the shortest notation for byte values that uses a understandable amount of characters to understand the value of a byte without lookup tables that are hard to memorize and also the location of particular bytes in case you have something that is more then 1 byte like your RGB example. The technical shorter notation 4x6 4 characters with a set of 64 characters is hard to understand for humans and it only works if you piece of information is a multiple of 3 bytes. Hex works with all byte lengths. You don't invent a different notation for things that are a multiple of 3 in length but cannot be used at all on other lengths.

celest barn
#

Where can i find actually assemblies? not these sstripped out meta's

glad trench
#

Hey guys!
I’d like to start making mods for Valheim, and I’m looking for a short guide on where to find BepInEx and Harmony from reliable sources, please πŸ˜„

south lily
tropic herald
glad trench
tropic herald
slender jacinth
gaunt bone
#

Currently working on something new (at least I haven't seen it before) to get myself back into Valheim modding. Basically I'm creating Flight Paths like those in World of Warcraft. The idea is to replace the Portal System with it. Players can build their own Flight paths and use them to get around. It works by interacting with a custom prefab (Raven Statue). This opens up a map and shows you all the flight paths you've build around the world (it only shows you your own Flight Paths and those that you have been granted access to). You can then click on one of them. A Valkyrie (like the one that flies your character in for the first time when playing with it) spawns in and picks you up. It'll then fly you towards your destination and drop you off there.

Done so far:
βœ… Implemented a unique prefab to use as Flight Path station (Raven Statue)
βœ… Flight Paths can be placed / build with the Build hammer
βœ… Interaction with Flight Paths brings up a map that shows all your Flight Paths across the word with pins
βœ… Clicking one of the pins on the map returns the destination coordinates for the Valkyrie flight script
βœ… Placeable Flight Paths check if no other Flight Path is too close. They also verify if there's a usable flight corridor to lift off / land through (no buildings or nature blocking). This check is done every time the flight path is interacted with
βœ… The valkyrie verifies if the landing spot is safe to use upon approach. If not, it'll attempt to search for a near safe spot. If that fails, it'll attempt to return to its starting position. If even that fails, it'll just wish the player good luck and drop them xD
βœ… All data is stored with server side authority, so no client side cheating to try and force new flight paths

Todo:
❌ Spawn the Valkyrie in and make it pickup the player
❌ Keep the player safe during the flight using a spherical detection collider to adjust course if anything gets in the way
❌ Implement a multiplayer registration system like Wards so players can share their Flight Paths.

smoky pond
#

is IK transformation of the leg bones and any other bones being replicated to other clients? (in Valheim)

tropic herald
tropic herald
verbal apex
gaunt bone
# tropic herald That's pretty freaking sick man. Can't wait to see it come to life. You stuck on...

Nah I'm good. It's just a pretty big project as there's really a lot of stuff to keep in mindπŸ˜… I've already finished (well functionality wise) the multiplayer part. Still need to make the Platforms actually show who's registered on it, but other than that it works. Basic liftoff and traveling from Point A to Point B works as well. Currently fixing a bug where the player flies underneath the Valkyrie like it's Superman, lol 🀣 After that I'll implement landing. Then smoothing things out to make the flight feel natural instead of forced. I've also got some more features in mind for future updates, but those I'll work on once the basis is fully functional and released.

Some of those ideas are: Occasional spawning of enemies trying to shoot players out of the sky. Allowing players to use ranged weapons to defend themselves. Another idea would be to implement a small challenge to complete when being hit to "restore balance" before falling of. If the player falls, they're not supposed to drop dead. Just ending in the middle of no where and hoping they're prepared for it πŸ˜„

gaunt bone
gaunt bone
winter island
#

You want to replace those "magic portals" by Valkyrie-pickup "airport stones" ? That's perhaps one to discuss with the guys at IronGate directly.
It's such a great match with the overall lore.

#

The closest I got to this was to raise ground on the highest mountain I could find, build a 45 degree slope, put a catapult and catapulted myself across the map

gaunt bone
#

As for the progress on my mod: Currently it's fully functional. The only remaining problem is having the Valkyrie dodge obstacles and remain aware of terrain hight. Right now it just simply goes through them, despite my efforts so far. But it's just a matter of time before I figure that one out πŸ˜„

verbal apex
#

I honestly would be very curious to see how it is on a gameplay perspective

gaunt bone
verbal apex
#

I am in Greydwarf's Nest

upper shore
#

I’ve been hacking on a small side project for my Valheim server and figured some of you here might find it interesting:

It’s a read-only analytics & map visualization tool that shows things like player movement, hotspots and world load over time – mainly to better understand how a server is actually being used. It consists of a lightweight BepInEx plugin (read-only), an offline aggregator and a static web viewer. No gameplay changes, no client mods required.

I’ve open-sourced it here in case anyone wants to poke around, reuse parts or just get ideas:
https://github.com/Htbxbsr/Valheim-Atlas

It’s an ongoing project I’m actively iterating on while digging deeper into Valheim internals.
Happy to answer questions or hear thoughts 🫑

gaunt bone
upper shore
tropic herald
upper shore
tropic herald
small elk
# gaunt bone Currently working on something new (at least I haven't seen it before) to get my...

for: "Keep the player safe during the flight using a spherical detection collider to adjust course if anything gets in the way"
what about making the player invulnerable to damage during that time instead of adjusting flight path? and if you're worried about hitting builds, what about raycasting in front of the player to determine an accurate heightmap and then just increase altitude pre-emptively?

gaunt bone
upper shore
#

Quick headsup: just dropped v0.6.0 of the Atlas
This one is mainly about smoother playback and viewer stability.

I’ll be working on player correlations for hotspots next.🫑

unreal monolith
#

I am trying to use the star wars mod, I can’t get the build hammer to display anything for build seems kinda complicated can anyone help ?

gaunt bone
unreal monolith
gaunt bone
unreal monolith
gaunt bone
# unreal monolith I was just trying to get get help I wasn’t getting any response in the mod issue...

I understand, I'm not offended or anything, lol. Just that it's confusing if you're trying to get help setting up a mod while people here think you're talking about programmingπŸ˜… As for the prefabs not showing up on your hammer, this is usually because you haven't gathered all the resources needed for them to unlock the blueprint. So you need to check what resources you need to build the item. Gather those resorces and the prefab should unlock on your build hammer

stark crescent
#

What about you guys talking here?

craggy minnow
#

Hello! Is there a way to make a mod that creates a unique object with a marker on the map?

For example, I have a PvP server and I would like to have a big flag that always appears on the map, that players cannot teleport, to create a kind of Capture the Flag mode.

short stratus
#

while waiting for that, there might be some way to utilize stuff like HUDCompass to mark Carts, then making a new Cart clone with WackyDB named "Flag" so it marks on map with the name.. πŸ˜„

#

Toss in a bunch of EWP scripts to handle the capture & respawn and should be a nice ghetto CTF mode before a proper one can be coded πŸ˜„

#

Aww, except the wacky clone doesn't get marked, meh πŸ˜›

#

but guess for now could atleast play somekinda weird Capture the Cart mode πŸ™‚

weary breach
#

You could probably ping the cart's location with an ewp script. Or regularly launch fireworks from its locating or something

short stratus
#

sadly with chatmessage rpc changes, can't ping on map anymore using scripts πŸ™

#

can only mark with RPC_DiscoverLocationResponse, but those markers are static and have to be manually removed by clients as well

#

so this one def needs its own mod to feel good, but shouldn't be too hard for some coder to whip out

short stratus
#

here's a quickie 10min~ script for cart grabber broadcasts, cart capturing & respawning

#
  type: change, attachJoint 1
  filter: string, Vagon.m_name, CaptureCart
  commands:
  - broadcast center <pname> has grabbed the Capture Cart!
  
  
- prefab: Cart
  type: change, vel
  filter: string, Vagon.m_name, CaptureCart
  objects:
  - prefab: piece_banner04
    maxDistance: 3
  remove: true
  commands:
  - broadcast center Cart captured by <#FF0000>Red</color> team!  
  poke:
  - prefab: stone_floor_2x2
    filter: string, Piece.m_name, cartspawner
    maxDistance: 20000
    limit: 1
    parameter: respawnCart
    
- prefab: Cart
  type: change, vel
  filter: string, Vagon.m_name, CaptureCart
  objects:
  - prefab: piece_banner02
    maxDistance: 3
  remove: true
  commands:
  - broadcast center Cart captured by <#0000FF>Blue</color> team!
  poke:
  - prefab: stone_floor_2x2
    filter: string, Piece.m_name, cartspawner
    maxDistance: 20000
    limit: 1
    parameter: respawnCart
    
    
- prefab: stone_floor_2x2
  type: poke, respawnCart
  spawn:
  - prefab: Cart
    data: string, Vagon.m_name, CaptureCart
    pos: 0,0,1```
#

ah, but unable to upload videos here ofc xD

hallow abyss
#

Hi, I've jumped into the rabbit hole of creating a mod for this game. I'm now following the Unity Project Guide on github as I want to create assets. It mentions there's a few missing materials and scripts in some scenes.
So my question is : In the context of adding stuff to the game like weapons or buildables, that kind of stuff, do I need to correct those ? If so, where can I find the how-to ?

Thanks for your time πŸ™‚

south lily
hallow abyss
south lily
#

It should be fine, if you are making items- just pay attention to the scripts used, ensure its got a collider on the item layer, etc

My favorite breakage is forgetting an icon can break the item from loading πŸ˜† but I'm sure you'll run into all sorts of little things. Good luck!

Many of the modding discords are typically better spots to ask questions about how things work or how to solve stuff when you run into things also FYI.

hallow abyss
fierce stag
#

Not about me programming, sorry. Here's a shoutout to the Irongate Devs! Thank you so much for such an awesome game! Rocky ❀️

copper drum
#

Is this the appropriate channel to get assistance with changing the seed, password, & world name in the strat_headless_server start.bat file?

copper drum
narrow bramble
#

I have a question. I’m currently using cross server portal mods to build a network and I’ve noticed that some people don’t like that It shows the loading screen as well as kicks back to the main menu. Is there a way to overlay a portal animation that covers the screen and hides that?

upper shore
#

If you code it yourself: yes

#

It should be possible

upper shore
#

Yo,
Im working on a serverside plugin for a long-running Valheim world. It scans existing resources, remembers them, detects mined ones later, and could restore selected ones during maintenance with dryrun/backups. Not meant as a live respawn mod.

Im also testing a heuristic seed/worldgen approach, but only as candidates, not blind autorespawn.

Right now Im trying to understand how Valheim resources work internally. For copper I noticed stuff like Rock_4 turning into Rock_4_copper_frac when mined/hit. Does anyone know the resource prefab lifecycle better?

Mainly:what turns into what when mined. Is the state stored in prefabs, ZDO data, hit data, or a mix? Any pitfalls when restoring resources from server-side ZDOs?

Any hints would help a lot.
Thanks!

weary breach
#

There are two types of mineable resources: Single-node types like tin or obsidian, for these look at the MineRock component, and those that consist of multiple parts like copper or silver. The latter consist of two objects as you've noticed. The first object has the Destructible component, when it is destroyed (on hit) the second object is spawned (Destructible.Destroy), the second object has the MineRock5 component and stores the health of its fragments in a base64 encoded string in ZDOVars.s_health (take a look at MineRock5).

#

Generally for serverside stuff: You can look at the components to figure out how stuff works, but you can only manipulate ZDOs/ZDO data (or use existing RPCs). If you got the rest of your logic worked out, it should be easy to spawn the resource ZDOs.

#

Checking for nearby player-built structes or resetting terrain modifications are a tad more complex, but completely doable.

upper shore
#

Thanks that actually clears up a lot.

south lily
upper shore
#

My setup is getting pretty specific with registry logic, policies, audit logs, maintenance only actions and later probably dungeon/state handling too. So even if existing mods solve parts of it, I still need full control over how it behaves on my server.

south lily
#

Totally fair, not trying to disuade you from making your own πŸ™‚ more competition tends to make the results better

robust tapir
#

Is it possible to make a mod that stops enemies from running away constantly? I'd like to learn and make it if possible. It's like the moment you say "okay, I'll stop what I'm doing and fight you" they run out of render distance. Until you stop following then they turn around and throw more rocks

unique tinsel
shut cipher
#

how would i go about making a valheim mod to take a 360ΒΊ screenshot? That would output an equirectangular 360 image