#nms-modding

1 messages · Page 219 of 1

left sentinel
#

yeah it really sucks they still havent gotten around to it even though Sean has retweeted people using the minotaur to fight, and even included in the trailer

vale iron
#

That and shield upgrades, though that's not as easy to test

left sentinel
#

well in my extremely limited testing I havent gotten the C class shield upgrade to give me shielding upgrade, only core health

#

probably luck

vale iron
#

I'll check it

sharp musk
vale iron
#

Yeah, it's a luck thing. It has minimum of 1 stat, maximum of 2

sharp musk
#

it just doesn't seem balanced in the late game.

#

just sneeze at a walker with a maxed out S class multitool and they fall over

#

meanwhile, the mech feels like all it does is tickle them

vale iron
#

I had to use a building for shelter, but I was able to take one out with an unmodded starter MT

left sentinel
#

eh that's a topic for another channel anyway

sharp musk
vale iron
#

That would be tech table, I believe

left sentinel
#

true and I'd like that and also a fix for the cannon dps getting worse with upgrades

vale iron
#

Hmm, give me a few minutes

#

How much increase in damage are we talking?

sharp musk
#

less about a damage increase and more about balancing it so that the mech is worth using when fighting sentinels

left sentinel
#

not damage but it actually lowering the fire rate instead of increasing

#

but I think that's a core issue that can't be fixed with mods I think?

vale iron
#

I fixed it in a mod just about 30 minutes ago. Scroll up. Or get GProc

left sentinel
#

oh lol my bad

sharp musk
#

so the canon mod works with the regular exocraft, but not the mech. the mech fire rate is still slow @vale iron

vale iron
#

No worries 🙂

left sentinel
#

thought you were still debugging that mod

vale iron
#

Does mech get its own cannon upgrade modules?

sharp musk
#

the 50% increase to top speed and boost feels nice

sharp musk
vale iron
#

Hmm, I'll have to find that and add it to the mix

left sentinel
#

yeah different upgrade

vale iron
#

Yeah, I can see where they have it backwards in this as well

#

UP_MCGUN2 to 4, if you ever need it

#

Give me a few minutes to add that to the script and to my GProc script

sharp musk
#

I'm sure it's been reported to their zendesk as a bug, right? I'm sure a modder could give them really good detailed feedback on the numbers

left sentinel
#

yay thank you

#

yeah I've also reported it too

sharp musk
#

now if only the first person exocraft camera weren't utter garbage. I wanna drive in first person for the immersion, but it feels like it was an afterthought from when they added VR support

vale iron
#

Try that on a mech

#

If it works I'll add it to GProc

sharp musk
#

in VR the camera is controlled by the head so I don't think VR has the same problem of sluggish camera movement in first person exocraft

#

still slower than the exocraft

vale iron
#

That looks faster than normal fire rate without upgrades though, doesn't it?

#

It is setup to fire at a different rate, though the way they have it should be faster than exocraft, not slower (though I think they intended slower)

left sentinel
#

its odd because the upgrades directly have a fire rate increase mentioned

#

so like, it should do exactly what it says but does the opposite

vale iron
#

Yes, but they are going in the wrong direction, above 1 instead of below 1

#

They are making it 110% of the time between shots, instead of 90%

#

Hold on and I'll setup a test on my minotaur

sharp musk
#

the mech has no proc gen canon upgrades, only the upgrade you get on the anomaly

vale iron
#

Oh yeah, that looks right at least

#

I could adjust the values to make up for the minotaur lacking the other upgrades

left sentinel
#

Eh what I'm pretty sure mech has proc gen canon upgrades

sharp musk
#

oh, yeah, you're right

#

still, seems weird that they wouldn't have a comparable fire rate

vale iron
#

The Minotaur does more damage, about 50% more, but is supposed to have a lower fire rate. I think they accidentally made it a higher fire rate

sharp musk
#

also, since when could exocraft lasers mine the deposits? I thought only the terrain manipulator on the multitool and the mech could mine those?

sharp musk
vale iron
#

I mean compared to the other exocraft, it's supposed to have a lower fire rate and higher damage, but the way they have it setup is higher fire rate and higher damage, compared to other exocraft

#

The proc upgrades are definitely backwards

sharp musk
#

i thought it had a lower rate of fire? the thing we've been trying to fix this whole time. I'm confused what you're saying?

vale iron
#

The upgrades lower the rate of fire, instead of doing what upgrades should do, improving the cannon. The mod reverses that. In addition, the mech is setup with its base stats to do more damage and faster fire rate than other exocraft at their base damage, but I think they meant that to be a lower fire rate.

left sentinel
sharp musk
#

so because they got the base stats backwards, the mods are doing the opposite of what they're supposed to do?

vale iron
#

Yes

sharp musk
#

i totally get it now

#

thanks for clarifying

vale iron
#

No problem

#

Setting up to test the Minotaur now

#

Ok yeah, the minotaur upgrades slow down the fire rate. The default fire rate of the minotaur is super fast, though, compared to other exocraft

#

And mod definitely reverses that:

sharp musk
vale iron
#

So the mod I uploaded 30 minutes ago should fix both exocraft and minotaur

#

Crap, I have to add this to GProc and recompile GEpic now

sharp musk
#

ok. but wouldn't that upload not have the changes you just made?

vale iron
#

I didn't make any changes in the past 30 minutes, just chatted and tested 🙂

#

I can compile it one more time to be sure though

sharp musk
#

oh. well the mod you uploaded 30 minutes ago wasn't working on the minotaur. I thought you were fixing that this whole time

vale iron
#

That's the file I just tested, so it should work

#

I just filed another report with !hg, just in case it matters

lime mesa
#

Dang it doesnt work

vale iron
#

Mods aren't fans of gifs or memes 🙂

lime mesa
#

:<

#

Its the red eyes saturated gif

#

I dunno how to word it

vale iron
#

I clicked on it, no worries

odd crag
#

is there a mod that will unlock the previous expedition ships? i got one, and it seems like i can buy the other expedition rewards, but not get the ships

hearty wasp
#

Seasonal Unlock works if Consumerism don't

#

shouldn't be reason it won't tho

odd crag
hearty wasp
#

then you did something wrong along the way

odd crag
#

those are still locked behind rewards

#

i can assure you i didn't do anything wrong

hearty wasp
#

that makes no sense since Comsumerism specifically adds the shit into the quick silver ship

#

and Seasonal Unlocker gives you the reward directly via trigger action

odd crag
#

i dunno, it added the other stuff, just not the ships

hearty wasp
#

bypassing any need to unlock

odd crag
#

i am using the xbox version

#

dunno if that matters

hearty wasp
#

prolly

odd crag
tidal smelt
#

Does anyone know the creature id for the sentinel quadrupede?

vale iron
#

^QUAD I believe

tidal smelt
#

Thanks

tidal smelt
vale iron
#

If you're editing the save file, I think just the name will do. Getting into the descriptor files is more complicated

mossy perch
#

Hi Gumsk, a question if you dont mind answering

tidal smelt
hearty wasp
#

quad don't have descriptor parts is why it'd work

tidal smelt
#

Ok I have a problem now, If I summon a sentinel pet in the anomaly everyone will just freeze

#

like I'm being disconnected or something like that

hearty wasp
#

because you are

tidal smelt
#

is it normal, I mean, is there a fix for it?

hearty wasp
#

mjjstral has a mod that gives you a specifically modified version of a quad

tidal smelt
#

I'll check it out then

hearty wasp
#

of course no one else will see it

tidal smelt
#

Thanks

hearty wasp
#

because it's modified to not send the creature data

jade elm
#

hi, someone know which mod can i use to build in my freighter ?

tidal smelt
left sentinel
left sentinel
hearty wasp
#

Gbase or BBB are the way to go

left sentinel
#

but I thought it allows you to use other build parts in the freighter which are normally not allowed?

#

swear I remember being able to do it with your mod

#

guess I had both without realising

hearty wasp
#

it maybe just the effect of the old graphics setting

#

which don't work anymore which is sad

odd crag
#

does anyone know how to use a save editor on the game pass version?

#

or am i just SOL

#

I don't want to use that one tool to get all the expedition rewards instantly, i just want enough quicksilver to buy the normandy

left sentinel
#

check the pins

jade elm
#

thanks 😉

vale iron
odd crag
vale iron
#

Did you try NomNom?

#

I'll just get the link

odd crag
#

oh thanks

#

dunno how i was supposed to know it was nomnom

hearty wasp
#

both NomNom and NMSSE are on Nexus also

tidal smelt
#

is there a mod which removes the lock on with the infra knife accellerator?

fluid terrace
#

Anyone know if there's a mod which manually spawns in sentinels?

hearty wasp
#

meta mods lets you get wanted level on demand

#

that's it

scarlet sphinx
#

Does anyone have a golden vector?

hearty wasp
#

you can get one with Consumerism

#

or Seasonal Unlocker

scarlet sphinx
#

Was hoping to find someone I could just meet at a station for my main save

hearty wasp
#

it's not a modding required thing

#

more activity there too

vocal zodiac
#

@hushed bronze hey you probably already know but your base building mod crashes nms experimental branch on start, just a heads up that they probably fuxed with it between versions

scarlet sphinx
#

Apologies, I only asked here because it’s a higher chance a modded has one.

vocal zodiac
#

also i probably say it every time but i appreciate your work on that :] really lets me get funky, it's a shame you can't use y/z rotations but fingers crossed they fix that

hearty wasp
#

also exo don't maintain it anymore iirc

vocal zodiac
#

i'm not sure what you mean by that

hearty wasp
#

prolly struct change that fucked it is what I'm saying

#

tho BBB may not use default saves

#

can be another file

hardy sequoia
#

any good recommendations for a visual mod that'd make the game a bit less vibrant?

#

less eyepoppingly bright, make space look more like space, y'know?

hearty wasp
#

reshade

hardy sequoia
#

thank

spice escarp
#

looking for info about save editor ti change ship appearance. Basically my son likes the appearance of the first fighter ship we get in the game (I sold it and he wasnt happy). So I am looking for a way to change the appearance of the ship to look like the original

wicked mango
#

and then inject the seed to one of your existing ship

#

0xA547AB958C97E439

#

i got that seed from my permadeath save though, not sure if its interchangeable between different save mode or not, anyone can confirm ?

rough niche
#

Any tips on modding? I do want to play multiplayer, but I want to screw with some mods too.

lime mesa
#

mods are all clientside

#

i can’t think of any mod that’ll make multiplayer unavailable

hearty wasp
hardy auroraBOT
#

@steel crypt Message auto-deleted

rough niche
#

You right you right. I always forget about pins in discord lmao

spice escarp
spice escarp
#

thanks. How do I input this into my save?

mossy perch
#

some of or most of them might be inaccurate

#

on the left box

#

on seed

#

just copy-paste, but dont press generate afterwards

spice escarp
#

is this a program?

#

or website or?

mossy perch
#

yes a program

spice escarp
#

sorry I havent used this at all

mossy perch
#

NMS save editor

mossy perch
spice escarp
#

ok heres something I would like to accomplish. I have a save on file that has the ship I want. Is it possible to import it to my new save?

mossy perch
#

please follow the requirements and the installation instruction as well

spice escarp
#

the saves are on different files (as in different backups of the save file).

mossy perch
#

you dont need to import your whole save to another

#

you just want the ship, right?

spice escarp
#

yes

mossy perch
#

so you said your kid wants this starter ship

#

just copy the seed from your save (that has the ship) and then paste to the destiny save

spice escarp
#

that's the one !

scarlet sphinx
#

I mod for 2 other games so I’m curious, I know all games code colors in the files and these ships seem to have certain colors used for certain ships. So say ship A has colors 1-5 as it’s default colors available and 1 and 3 as it’s spawned color, is there a way to change it to another one of its normally spawning colors?

spice escarp
keen tusk
#

Can someone help me out? Im trying to download an earlier version of NMS and the download despot doesn’t want to work

tiny silo
#

any mods out there to make Exosuit Inventory Tech slots more then just 12 that is up to date i had one be for iforgot wat it was called

wicked mango
spice escarp
#

ya im only interested in what I see, not what others see

wicked mango
lime mesa
#

I wish I had a pc

#

😔soon

marsh eagle
mossy perch
#

ah thank you for letting us know

blazing lodge
#

heya. anyone tried the openvrfsr mod from github? I have (despite a ryzen 5 3600 and a gtx 1080) issues to keep the game at 80fps in VR (Rift S), and was hoping this mod would help. I tried it in another VR game and there it barely did anything, despite folks saying it should help out a fair bit.

blazing lodge
#

okay, disregard. game looked like royal sh afterwards. Man I wish I had a rtx graphics card, so i could use DLSS...

blazing lodge
#

okay, I decided to not play in VR untill i can run it at constant 809fps with at least standard settings... now to modding propper, I assume a vanilla safegame will not work anymore in this game after modding the game to hell and back?

marsh eagle
blazing lodge
#

Nice thanks. But other question, is there any way for me to easiely check for mod conflicts and ressolve them without nessesariely having to delete one of the conflicting ones? as fool proof as possible ideally 😅

tidal smelt
#

amumss gets stuck when checking conflicts, any tips on fixing it?

hearty wasp
#

time

alpine pine
#

Someone make a mod that can put googly eyes on any creature.

#

(that's a joke)

hearty wasp
#

whatabout

#

Sean faces

blazing lodge
# mossy perch AMUMSS

well, i have that now, but now after scanning for conflicts and knowing which mods are in conflict with eachother, i got no idea what to do to fix the conflict, except delete one of those mods per conflict...

mossy perch
#

besides deleting, you can combine them

#

but the conflicting mods must have the lua file

hearty wasp
#

it'll work if only one of it is a pak too

#

assuming it's up to date

blazing lodge
#

okay so far the mods that i have installed now and are cponflicting all have lua files. good... now i gotta figure out how to go about combining them. i guess that's what it means with " See file 'Creating a Patch for an existing MOD PAK.txt' for further help"?

hearty wasp
#

if all of em have lua

#

you just put all of em in ModScript

#

and run BUILDMOD

blazing lodge
#

hm okay simpler than i thought... and i only need to put the .lua files in there, correct?

hearty wasp
#

you put the pak in there when they don't have a lua

mossy perch
#

so, in which folder should we put the lua?

vocal zodiac
#

i need some advice on editing the globals

#

is there any fanmade documentation on what everything does? or are we all in the dark

tidal smelt
hearty wasp
#

that can definitely happen

#

but sometimes pressing enter may help because you may've just clicked on it and selected it and it's stuck waiting for input before output

tawdry veldt
#

the latest update of save editor doesn't work for me. it just crashes when i select my save folder then i can't open any java program until i restart computer or reinstall java runtime

zealous flicker
#

Imagine if there was a mod where we could edit planets. Edit everything about them their skies the temperature, the weather, whether or not there are storms even the creatures and resources to an extent

#

Yeah but mainly I’ve always wanted to edit the color of the sky. I think we could even squeeze in some RGB custom inputs.

hushed bronze
#

We can but not individually

forest tide
#

Is there a way(nodded or otherwise) to transfer ships between saves?

#

I really like the expedition ship, but don't want to, ya know, need to make an entire new save lol

#

Now that I've beaten the expedition I want to transfer it

desert quest
blazing lodge
#

Does anyone here use the No Pulse Lines mod and is able to confirm if it works for them or not? because i am using it and it works neither alone with no conflicts or if i add in the athmospheric hover mod and combine them to solve the conflict between the two.

steel crypt
#

Link to mod?
What folder are you putting it in?

blazing lodge
mossy perch
forest tide
#

This is great to know, how do I do it? lol

mossy perch
#

by using NMS Save Editor

#

pls pay attention to the requirements and the installation

#

after you have installed java runtime environment 8, extract the NMSSE, and run the jar file

forest tide
#

Appreciated!

mossy perch
#

then locate your save file

#

the save file is on numbers

#

then choose the expe file, i dont have 1 on so it only shows perma here

#

then find your expe ship, copy the seed

#

then paste the seed to the destiny save (non-exp save), but for god's sake dont click generate seed, just paste it

#

last, after all of that, save changes and if it shows something like, this save externally edited, just click ok/yes. and then you good

forest tide
#

THanks for being so thorough 🙂

#

Left no room for me to do something dumb and break my save lol

mossy perch
#

wut?

#

i mean you can back up your save first before do anything

stone jacinth
#

Is their such thing as a mod which changes the graphics and allows you to still play mp?

mossy perch
spice escarp
#

so here's what happened. I rescued some freighter (early game), from these pirates. I got a message to visit the freighter, but something else came up and i thought I could go back. It turns out this was the first freighter encounter where I think the player gets a free ship... Now I cant remember where I was and don't know how to trigger this event again. Can anyone chime in on this ?

mossy perch
#

i think you dont need to come back to that system, you can just claim another freighter in another system for free as long as you havent not claimed the first free offerement

#

but I could go wrong

spice escarp
#

how do I claim it though? I borded a freighter and the Admiral was there, but there was only an offer to purchase the ship

mossy perch
#

oh you have to decline or reject the first free offerement

#

meaning you gotta back to that sytem

#

if you are on early game I think it is not that hard to track back the system via discoveries menu

spice escarp
#

oh man are you sure? I have been a lot of places.

mossy perch
#

how many times have you warped?

#

or maybe just buy a random one and change it to S-class and capital with NMSSE

spice escarp
#

i really don't want to have to cheat, it kind of defeats the purpose of playing the game. I don't know how many times I warped. How can i look this up ?

mossy perch
#

on the milestones tab

spice escarp
#

I don't see it

#

and i cant screenshot in here

mossy perch
#

you dont see it on here?

spice escarp
#

oh wait there it is

#

14 times

mossy perch
#

well that is a lot

#

pardon i cant think the better way to solve your question

spice escarp
#

oh sorry I thought i was in help!

tawdry veldt
#

Goatfungus is so impressive wow

#

He fixed an issue with save editor like immediately after I mentioned it

#

Gotta be one of those guys at work who writes java multithreads while doing 3 other things

mossy perch
north prairie
#

I'm pretty new to NMS and have been using the NomNom save editor - is the Goatfungus save editor worth switching to?

mossy perch
#

i mean both are fire

#

so yeah, it is worth to try

left sentinel
north prairie
#

Ah, cool - Steam edition here

rapid lark
#

There a mod that makes the Minotaur turn faster.

rapid lark
#

@vale iron thx

fallow meadow
#

@maiden cape Feel free to ask for Save Editor help here to get your base moved.

maiden cape
#

ty

honest herald
# spice escarp oh sorry I thought i was in help!

If you've only warped to 14 systems, I say get some hyperdrive fuel and backtrack. The free freighter probably appeared on one of your first six systems. Iirc mine showed up on like the 2nd or 3rd warp... maybe even the first, tbh, but whenever it happened, it was very early in the game for me.

stone jacinth
#

is there a way to find out if a mod has installed properly?

forest tide
stone jacinth
#

C:\Users(USER)\AppData\Local\Packages\HelloGames.NoMansSky_bs190hzg1sesy\LocalCache\Local\Microsoft\WritablePackageRoot\GAMEDATA\MODS i've put the Pak files in here, downloaded the ANSMEMPC and ran that but the mods dont seem to be working

honest herald
#

Damn @marsh eagle, you're right about those colors getting used for ships. Been playing with my Chaos Colours mod today and noticed all the ships look different. Haha, so weird they would use that palette for ship colors.

vale iron
stone jacinth
#

@vale iron im not getting anything. i can load into the game fine but nothing has changed from what i can see

vale iron
#

Oh you need to put the mods in gamedata/PCBANKS/mods

stone jacinth
#

ohhhh

tepid sierra
vale iron
#

That's news to me. I'll have to check on that

#

Oh you're right, just saw that in the notes

stone jacinth
#

any mod suggestions from people? for graphics or adding stuff to the game, not stack multipliers and stuff

hearty wasp
#

anything you like

#

sorting by last updated on Nexus

vocal zodiac
#

i need a hand working with mods

#

when i see "Gc___.xml", where are those files

#

i'm currently working with the cost table and am trying to edit the costs for settlement building

vale iron
#

Those are in the exe, not files available for edit

vocal zodiac
#

fuk

#

so... aight er
how would i view them

#

and are some costs just hard-coded into the executable?

#

i mean i get what i' doin here, it's all object-oriented sorta stuff that works via templates, but... c'est difficile!

vocal zodiac
#

oh shit

#

has anyone else seen this?

#

idk if this is in the guides or anything but i just found it

#

it isnt comprehensive at all but its got a good ferw resources

vale iron
#

That's the unofficial new modding wiki page

#

Feel free to expand upon it when you can

vocal zodiac
#

oh, neat

honest herald
#

I don't understand that connection...

vocal zodiac
#

do you have a different method in mind?

honest herald
#

Well, in C# using Mod Builder, you can just change the fields in GCSETTLEMENTGLOBALS.MBIN -> GcSettlementGlobals.SettlementBuildingCosts.

#

I assume in LUA it's similar... as far as I know, you just change the values of a few fields in the MBIN

#

I don't know when an XML would come up for this particular mod.

vocal zodiac
#

mod builder? that sounds a lot easier than editing xmls 😳

#

ive been using modding station and just tweaking values

honest herald
#

I don't know anything about Modding Station but I just made a video on how to install, setup, and use Mod Builder

vocal zodiac
#

yeah modding station is exclusively xmls

honest herald
#

My C# to change building costs looks like this (I have a live mod on Nexus that does this btw):

            var buildingStages = Enum.GetNames(typeof(SettlementConstructionLevelEnum)).Length;
            
            var nanotubes = settlements.SettlementBuildingCosts[(int) BuildingClassEnum.Settlement_Bar].StageCosts[(int) SettlementConstructionLevelEnum.Decoration];
            
            nanotubes.AmountMin = 2;
            nanotubes.AmountMax = 2;
            
            foreach (var costData in settlements.SettlementBuildingCosts)    
            {
                for (var index = 0; index < buildingStages; index++) 
                {
                    var stage = costData.StageCosts[index];
                    
                    if ((stage.Products.IsNullOrEmpty() && stage.Substances.IsNullOrEmpty()) != true)
                    {
                        costData.StageCosts[index] = nanotubes.Clone();
                    }
                }
            }
vocal zodiac
#

had no idea mod builder was a thing lol

#

ooh...! i'm familiar with C# so this is very much my bunk spot, i'll check this out

honest herald
#

That'll show you how to set it up for MBIN 3.68 (the latest available game file recompiler)

vocal zodiac
#

is it just boot-and-go or do i need other files?

#

oh i see in the vid

#

libmbin

honest herald
#

Video will make a whole lot of stuff clearer

#

Let me know if you get stuck on a step

vocal zodiac
#

will the soft run if i'm ingame?

#

cuz the thing threw a thread type in STA error

#

i forget if ive already installed net5 but ill double check

honest herald
#

Yes, NMS Mod Builder can work while you're in game

vocal zodiac
honest herald
#

But obviously you have to reboot to reload mods.

#

Oh, you seem to have loaded 2.1.1 instead

#

My link in the video should take you to 2.1.2, let me double-check that.

#

Also, you did not update the first line as needed

#

(timestamped video link)

#

The video will show all of this and more, so I recommend watching carefully.

vocal zodiac
#

alright, got past that initial hurdle

honest herald
#

Cool, so files unpacked?

vocal zodiac
#

just waiting for it to unpack everything

#

hdd so : P

honest herald
#

This script does several things in GcSettlementGlobals, one of which is modify building costs... you should be able to find the code pretty easily if you're familiar with C#.

honest herald
#

Can I see screenshot of Mod Builder?

vocal zodiac
#

nah it's just my pc being slow, it's all loaded now

honest herald
#

Cool cool

vocal zodiac
#

how do i go about packaging mods? like compiling them i mean

honest herald
#

Video shows that too

vocal zodiac
#

...im sure you cover it in the video but im very bad at keeping on certain things

honest herald
#

It can explain better than I can haha

vocal zodiac
#

yea

honest herald
#

because it'll show exactly what to click and when

#

but TLDR, you save script, compile script, execute script, build & save pak (same step).

vocal zodiac
#

cool and fun :]

honest herald
#

There are buttons and tabs for all of that of course

vocal zodiac
#

thank god i dont have to go through the stupid rigamarole of editing commentless xmls

#

and i can do this shit programatically now

honest herald
#

Yeah I would never make the mods I've made manually lmao

#

FYI, Mod Builder 2.1.2 has a couple compile errors when you DL it. The video also shows you how to fix them and what caused them

#

If you want some extra examples (in addition to NMS Mod Builder's examples), find Blooming Biomes or Best Buds on the NMS Nexus and install some of my paks. You can use Mod Builder to see the scripts that are packed inside of the pak files you use to mod your game. (Video also demos this.)

west bridge
#

Question. how can u even mod?

honest herald
#

This is how I do it.

#

There are other ways.

honest herald
west bridge
#

Okay ill see lol,

honest herald
#

The link I deleted was timestamped part-way through the video

#

Gotta start at beginning of course

west bridge
#

ok

junior surge
#

oh wait nvm

junior surge
#

wait no

#

anyone know of a mod similar to this one?

hearty wasp
#

p sure burryaga and ignacio (codenameawesome) both have biome mods

#

and jason too, of course

#

just sort by last updated on Nexus and you'll find plenty, frankly

steel crypt
#

I have a collection of mods that change color (DUD’S SKY - COLOR), another collection that that is QOL stuff (DUD’S SKY), and a terrain mod (DUD’S SKY - TERRA FIRMA). I don’t have a mod that changes placement of objects like flora etc.

tropic wind
#

I havent done any research or anything but is there/can there be a mod that allows the game to keep running when tabbed out? when not in mp

hearty wasp
#

there's an ahk script

#

search on the modding reddit

west needle
north prairie
#

I really like Better Planet Generation but, be warned - if you find a cool planet that someone is sharing the portal glyphs for, it will not be the same with the mod installed

desert kettle
#

its what I use

#

you get cool planets like this

#

it just ups the flora and fauna gen

north prairie
#

oh snap - i like this. Thanks

desert kettle
minor moat
#

Are there any mods that could help with the issues of certain underground/water fauna not spawning? Unsure if that's something even fixable via mod

junior surge
leaden laurel
#

So this ship I bought from a player in game, backed it up with No Mans Sky Save Editor, for those who want to try it and import it.

#

Contacted him again and asked how his mods on the ship stuck my side when I bought it, he said he used cheatengine, but did not want to say what script he ran or what option he used.

spice agate
#

Someone help me add a freighter to my new game it's greyed out

vale iron
# spice agate Someone help me add a freighter to my new game it's greyed out

There's no easy way to add a freighter if you don't have it yet. This might work:
Edit raw JSON, go to PlayerStateData\CurrentFreighter and paste this in:

    "Filename":"MODELS/COMMON/SPACECRAFT/INDUSTRIAL/FREIGHTER_PROC.SCENE.MBIN",
    "Seed":[
        true,
        "0x831"
    ],
    "AltId":"",
    "ProceduralTexture":{
        "Samplers":[]
    }
}```
Save in the JSON editor and then again on the main screen. You might have a freighter tab then. You would need to add the freighter hyperdrive tech item manually.
spice agate
#

So I'd be better off just randomly rescuing one and changing it to the victory ship instead?

vale iron
#

That would be the cleanest way

spice agate
#

Anybody know what the model seed for the victory is?

hearty wasp
#

The fire rate being massively high?

#

Can just be a ship stat

#

Tech wise I don't really know tho lol

spice agate
#

Where do I enter the freighter seed at to use the same one from the site?

leaden laurel
#

Two Spewing vents, not sure what they do really.

#

Ahh I see it has to do with weapons.

vale iron
#

Spewing vent is the photon cannon. Two might be increasing the fire rate

leaden laurel
#

Ahhh i see, thanks

#

I don't get this lol

vocal zodiac
#

sounds like a virus lol

#

i'm thinking about modding... I'd like to multiply settlement building costs by 10x but i'm not sure how i'd go about it in NMS Mod Builder

#

i was thinking i'd just iterate through GcSettlementGlobals and look for min/max amount and just *10 but idk if that would work

#

yeah that would work

vale iron
#

Yeah, if you want to keep the type of cost the same, just multiplying it should work

vocal zodiac
#

i want it to use alloys and stuff though, i think

vale iron
#

That's going to be more complicated. I don't use ModBuilder, so I'm not sure how easy it will be to change the product required

vocal zodiac
#

ill probably run a foreach but have it skip those ones with empty substances bc they're just there to skeeve me out i guess

#

oh i imagine it's... easy. i wanna say it's easy so i feel bad later

#

im just trying to put it all together in my head

#

so SettlementBuildingCosts has a structure like this

[x:id]
  stagecosts [
    [y:id]
      Products[]
      Substances[]
      AmountMin = a
      AmountMax = b
      Currency = ItemID
  ]
#

just sussing it out

#

so.... i first check the length of Substances, and if it is not 0, i multiply AmountMin and AmountMax by 10

#

sounds easy enough

#

why are functions preceded by Gc?

idle frost
#

Does anyone have the mod where living ships and golden vector spawn as NPC controlled ?

vale iron
idle frost
#

Ty

vocal zodiac
#

i'm having trouble with namespaces and using

#

how would i load in GcSettlementGlobals

mossy perch
#

@vale iron a question here about GBase mods

#

Teleport cable length increased from 200u to 2,000u
Electricity wire length increased from 200u to 2,000u
Supply pipe length increased from 400u to 2,000u
Initial base boundary increased to 1,000u radius
Bumping out the boundary works in increments of 200u
Maximum base boundary is 2,000u radius

All those numbers the max amount we can get? or we can tweak (increaseing or decreasing) those by our self

vocal zodiac
#

@honest herald might need a hand, i'm afraid i got lost in the code

vale iron
#

You can definitely tweak that in the LUA

#

I won't comment on how high they can get, as they can be abused by griefers 😉

mossy perch
#

roger that

#

thank you

vocal zodiac
honest herald
vocal zodiac
#

so i wouldn't use using for globals?

honest herald
#

You can

vocal zodiac
#

using GcSettlementGlobals = mbin_gl.GcSettlementGlobals;

#

valid?

honest herald
#

As for namespaces, you can't change that to my knowledge

#

Kushnir will show up magically and correct me if I'm wrong

#

He's like that

vocal zodiac
#

lolol

honest herald
#

Yeah. i call mbin_gl globals because underscores are hideous but you do you. 🤪

#

But wait

#

That's not how it's done

vocal zodiac
#

my trouble is making sure i don't put a period where i should put an underscore

#

not how it's done as in what i'm doing, or not how it's done as in what you're doing?

honest herald
#

You don't say using GcSettlementGlobals = mbin_gl.GcSettlementGlobals; because that is not meaningful by itself.

#

What you need to understand is that mbin_gl (I'm gonna call this globals from now on) is basically a container for object definitions.

vocal zodiac
#

ahhh... so i'm just loading the container

honest herald
#

so globals.GcSettlementGlobals is a type of object

vocal zodiac
#

basically the structure without the data

honest herald
#

Right

#

So when you say, "Mbin<libMBIN.NMS.Globals.GcSettlementGlobals>" (calling libMBIN.NMS.Globals whatever you want, here; honestly I may begin calling it Globals to be more consistent with my other practices of capitalizing objects), you're saying, "I want to use the Mbin function and the type I expect it to return is a GcSettlementGlobals object, the definition of which is found in libMBIN.NMS."

#

Then you put parentheses to provide the parameters (or indicate the lack of parameters) for that function.

#

In this case, Mbin<Type> takes one parameter: the file location of the MBIN you want to turn into a moddable game object.

#

So you type Mbin<libMBIN.NMS.Globals.GcSettlementGlobals>("GCSETTLEMENTGLOBALS.MBIN") to access the settlement globals because GCSETTLEMENTGLOBALS.MBIN is in the root of the unpacked game files.

vocal zodiac
#

allright

#

so
var settleGlobals = Mbin<libMBIN.NMS.Globals>("GCSETTLEMENTGLOBALS.MBIN");
should work

honest herald
#

That whole command gives you the GcSettlementGlobals object that contains all other info inside of GCSETTLEMENTGLOBALS.MBIN

vocal zodiac
#

er... with the other thing

honest herald
#

Haha not yet...

vocal zodiac
#
var settleGlobals = Mbin<libMBIN.NMS.Globals.GcSettlementGlobals>(            "GCSETTLEMENTGLOBALS.MBIN"
);
honest herald
#

There you have it.

vocal zodiac
#

and that's in my main function

honest herald
#

Now, at the top of your code, even before you declare your namespace, you can shorten libMBIN.NMS.Globals to whatever you want.

#

by saying:

#

using Globals = libMBIN.NMS.Globals;

#

Or anything else where Globals is

vocal zodiac
#

oh yeah, i noticed that up top
they pre-shorten the 'using' thing

honest herald
#

Yes

vocal zodiac
#
using mbin_gl = libMBIN.NMS.Globals;
using mbin_gc = libMBIN.NMS.GameComponents;
using mbin_tk = libMBIN.NMS.Toolkit;```
honest herald
#

Yes, you see he calls it mbin_gl right there.

vocal zodiac
#

so var settleGlobals = Mbin<mbin_gl.GcSettlementGlobals>( would also work? (truncated for clarity i guess)

#

lmao relearning C# at long last

honest herald
#

In the "good" examples at Microsoft's C# documentation, they capitalize their "used" variables like so, so I will probably match my style to this in the future, fwiw @vocal zodiac :

using System;

// Using alias directive for a class.
using AliasToMyClass = NameSpace1.MyClass;

// Using alias directive for a generic class.
using UsingAlias = NameSpace2.MyClass<int>;
#

(Known as PascalCase)

vocal zodiac
#

oh yeah i like PascalCase

#

nice and punctual

honest herald
#

Yeah, in my next release, I think I may just chop off the libMBIN.NMS to keep things clear and consistent with how Enums are used not only in my files but in Chris' as well.

#

So libMBIN.NMS.GameComponents => GameComponents etc.

vocal zodiac
#

much simpler for sure

honest herald
#

right now I'm calling them globals, components, and toolkit, but in retrospect this is against Microsoft's standards so I think I'll change it because I'm just like that

#

I'll go through and do a find+replace later today

vocal zodiac
#

when would libMBIN.NMS be useful? i haven't seen any use for it myself

honest herald
#

Have it ready with improved grammar for 3.68

vocal zodiac
#

wooo
cant wait for updates to break things 😂

honest herald
#

I DID end up needing libMBIN.NMS in a script, but you don't need all four (NMS, Globals, GameComponents, Toolkit) in the vast majority of scripts

#

They're just there in templates so beginners know they exist.

#

I cannot recall exactly what I needed from NMS, but definitely something other than Globals, GameComponents, and Toolkit.

vocal zodiac
#

fair lol

#

i was thinking uhhh. fuk
i was thinking, like will var cover me for all data structs or do i need to get specific

#

because i'm pulling the content of SettlementBuildingCosts by doing
var settleCosts = settleGlobals.SettlementBuildingCosts;

honest herald
#

Aha

#

I remember

#

NMS.Colour

vocal zodiac
#

the horror

honest herald
#

Do define Colours for NMS objects, you use new NMS.Colour(float R, float G, float B, float Alpha)

#

or just new Colour if you use a "using".

vocal zodiac
#

four magnificent vectors!

honest herald
#

I do using Colour = nms.Colour; inside my namespace.

vocal zodiac
#

but yeah will var do it for all data structs or would it be safe to use structs when making data calls

honest herald
#

If you're using a variable locally, var is fine, but if you want to pass it to a new function (e.g. if you want to do all edits to an MBIN in one reference, but using 2+ distinct functions), then you need to mouse over an instance of whatever you're trying to pass and get its data type from the info that appears above the console (in the white bar immediately above it).

vocal zodiac
#

yeah im using a single function

#

i know it's dirty but it's just a single operation

#

so me pulling SettlementBuildingCosts like that doesn't raise any eyebrows?

honest herald
#

Gotta rethink that one.

vocal zodiac
#

yipes

#

maybe just use Game?

vocal zodiac
#

cool and fun

honest herald
#

I may just stop using a shortcut for libMBIN.NMS since I only ever use it once in any given file.

#

Will think about it.

vocal zodiac
#

fair fair

#

i forget how to terminate a foreach

#

eh im sure i can look it up lol

#

not that i need it, fortunately

honest herald
#
foreach (var thing in things)
{
  DoStuff();
}
#

You just need open and closing braces

vocal zodiac
#

oh yeah i got that, no worries

honest herald
#

Yeah, I'm just gonna move Colour to the spot where my other stuff that is in libMBIN.NMS gets grabbed:

using Colour            = libMBIN.NMS.Colour;
using Toolkit            = libMBIN.NMS.Toolkit;
using Globals            = libMBIN.NMS.Globals;
using GameComponents    = libMBIN.NMS.GameComponents;
#

More consistent anyway

vocal zodiac
#

nice and clean

honest herald
#

Yeah I prefer this greatly to abbreviations, they're just so forgettable when you're new

#

The more like English I can make my code, the better for me

vocal zodiac
#

how do i push var changes to a global then?

honest herald
#

you mean to mod SettlementBuildingCosts?

vocal zodiac
#

yeah, that's the idea

#

here one sec

#
            
            // for each set of stages in settleCosts:
            foreach ( var settleCostStages in settleCosts ) {
                // for each stage in settleCostStages:
                foreach ( var Entry in settleCostStages ) {
                    // check if the Substances list is not 0
                    if ( Entry.Substances.Count != 0 ) {
                        // multiply AmountMin and AmountMax by x
                        Multiplier = 5;
                        
                        int NewMin = Entry.AmountMin * Multiplier;
                        int NewMax = Entry.AmountMax * Multiplier;
                        
                        
                    }
                }
            }```
#

oh good lord that's messy

west bridge
#

l o l

#

i pay $3.30 just for mods

vocal zodiac
#

and then how would i push that to the global

west bridge
#

that has all games you can think

honest herald
#

@vocal zodiac First, I would recommend you rename your individual elements to reflect that they are singular phenomena; then, you can simply mod the entries directly by slightly adjusting a couple of your lines. Also, Entry is a local variable, so standard C# grammar says this should be camelCase, not PascalCase; and your Multiplier variable (which needs to be multiplier) is unnecessarily recreated (except with no type, which is a separate problem). Further, you're conflating costs and stages in your names; the "stages" variable is a cost, and the "Entry" variable is actually a stage. Finally, you need to create settleCostStages before you can use it. When that's all fixed, you have this:

            var settleCosts = settleGlobals.SettlementBuildingCosts;
                          
            // multiply AmountMin and AmountMax by x
            var multiplier = 5;
            
            // for each set of stages in settleCosts:
            foreach (var cost in settleCosts) 
            {
                var settleCostStages = cost.StageCosts;

                foreach (var stage in settleCostStages) 
                {
                    // check if the Substances list is not 0
                    if (stage.Substances.Count != 0) 
                    {
                        stage.AmountMin *= multiplier;
                        stage.AmountMax *= multiplier;
                    }
                }
            }
vocal zodiac
#

oh yes, i noticed the type error

#

overlooked everything else though.... whoops

#
        protected void Main ()
        {
            // GcSettlementGlobals contains various entries but our interest is in
            // SettlementBuildingCosts, which contains entries of type
            // GcSettlementBuildingCostData.
            var settleGlobals = Mbin<Globals.GcSettlementGlobals>(
            "GCSETTLEMENTGLOBALS.MBIN"
            );
            
            // multiplier for the amounts
            int multiplier = 10;
            
            // our goal here is to load these entries of GcSettlementBuildingCostData,
            // verify that Substances' length is greater than 0,
            // then extract AmountMin and AmountMax and multiply them by 10
            var settleCosts = settleGlobals.SettlementBuildingCosts;
            
            // for each set of stages in settleCosts:
            foreach ( var cost in settleCosts ) {
                
                var settleCostStages = cost.StageCosts;
                
                // for each stage in settleCostStages:
                foreach ( var stage in settleCostStages ) {
                    
                    // check if the Substances list is not 0
                    if ( stage.Substances.Count != 0 ) {
                        stage.AmountMin *= multiplier;
                        stage.AmountMax *= multiplier;
                    }
                }
            }
        }```
#

ooer

#

there we go

honest herald
#

Looks good. Most people would tab "GCSETTLEMENTGLOBALS.MBIN" once. Also, fyi, those parentheses for foreach loops are a bit off the Microsoft docs, so I adjusted them to the standards in my example for you above if you care.

#

Kushnir has a bit of his own style, which is cool, I just try to write super pedantically in line with published standards for my language when it comes to naming conventions (unless they try to tell me to use underscores and then damn them all to hell 🤪 ).

#

Also, FYI, you will have to call Main() here.

#

Main does not get called first in Mod Builder.

#

Execute does.

#

So you'll need to have somewhere:

        protected override void Execute()
        {
            Main();
        }
#

But, yes, that would make everything more expensive.

#

I see no errors, if it compiles and the script builds a pak, I'd say it's working.

#

(Assuming your function calls are straight)

vocal zodiac
#

oh yeah i know, i assumed it works like unity

#

it inserted an Execute() on the template

#

in all

#

so how do i go about building the mod? and why is it that when i hit compile, nothing is created?

#

like no file is created when i compile all

#

and for some reason, the console says 'no mods' when i have mine checked

#

@honest herald srry hate to ping but the console is saying i have no mods when i have mine enabled

honest herald
#

@vocal zodiac It's cool, sorry, just updating my grammar for 3.68.

#

I click Save All, then I click Compile (not sure if compile autosaves tbh, but FYI ctrl+S does not work), then I go to Mod Builder tab, then Execute, then Build & Save PAK

#

Also make sure you unpacked game files (must be done every time you run Mod Builder)

#

Can I see your output on Mod Builder page if it doesn't work?

vocal zodiac
#

oh yep i got it

#

all compiled

#

got a pak

honest herald
#

Cool!

#

Should be workin then

#

you can check in PAK Items

#

By opening the pak you just saved

#

And then using the second drop down to see which MBINs it changed

vocal zodiac
#

so just to verify i guess... how does mod builder work anyway? like does it just change the MBIN and pack up that, or does it programmatically do things at game run?

#

oh yeah it's working by the way

#

thank you very much for your help

honest herald
vocal zodiac
#

ahhh, cool

#

that's pretty neat

honest herald
#

Some people manually mod MBINs and such

vocal zodiac
#

yeah thats what i was doing for a while

#

nightmare

honest herald
#

lol yes

#

Another cool thing about Mod Builder that Kushnir was teaching me the other day is that all your Mod Builder scripts can be automerged to reduce likelihood of conflicts

#

If 3 of your scripts access and modify the same MBIN, the latter scripts will modify the previously modified version of that MBIN, not the original version, so that all changes can stack

#

This is not how things work from the pak side; 3 paks modding the same MBIN will overwrite each other entirely (in alphabetical order)

#

@vocal zodiac

vocal zodiac
#

oh hey, sweet

#

so it's cascading changes

honest herald
#

Yes

#

So relatively easy to merge scripts

vocal zodiac
#

like xml patches almost

honest herald
#

Similar yeah

vocal zodiac
#

honestly what ive been wanting for a while is just an ability to make patch files that modify certain things and leave everything else alone

#

i think this is the closest we got though

honest herald
#

you can modify any one thing and touch nothing else if you want

vocal zodiac
#

mhm

honest herald
#

Also any other modding can so I'm not sure what you mean honestly

#

Even if I manually edit an MBIN, I can change just one line of it...

vocal zodiac
#

oh i mean like, for manually editing and compat with other mods

honest herald
#

At least AFAIK

#

Ohhhhhh

#

I see, yes, this is my favorite way to manually merge mods

#

But LUA scripts will need to be rewritten

#

Usually they're fairly easy to rewrite though.

#

Often briefer in C# than LUA

vocal zodiac
#

lua is great and all but i never learned it

#

fuk i forgot the or operator

#

nm i remembered

#

it turns out the Products are also a thing

#

so now it correctly multiplies Products as well

honest herald
#

Oh right, makes sense

#

Way to get it solved

vocal zodiac
#

woo wooooo

west bridge
#

Wooo lol

hearty wasp
mossy perch
#

nice

formal folio
hearty wasp
#

no

honest herald
#

@hearty wasp I sent him an updated version.

hearty wasp
#

nice

rapid sandal
# vocal zodiac

Would suggest pulling multiplier out of Main and making it a class level public static. This will allow other scripts that run before this one to 'config' this script if needed.

rapid sandal
rapid sandal
vocal zodiac
rapid sandal
vocal zodiac
#

ohhhh, so you're the fabled kushnir i've heard so much about

rapid sandal
# honest herald Another cool thing about Mod Builder that Kushnir was teaching me the other day ...

Not "can be", "are". It is intended that you eventually have scripts for all the mods you want and then create one merged mod pak from whatever scripts you want. When a script gets an Mbin<>() object the first to request the specific pak item will extract a new instance. Subsequent scripts that request the same pak item will get the cached object, so they can add their changes to those made by prior scripts.

honest herald
rapid sandal
vocal zodiac
#

cool!

#

cue me just not registering that you're literally the developer of the mod builder

#

i thought the name was familiar

honest herald
#

I told you he would magically show up to correct me.

rapid sandal
# honest herald Oh... so is it more accurate to say it just *loads* them (or their locations) bu...

It never unpacks any pak files to disk, unless you specifically click the Save button for a specific pak item you are viewing in the PAK Items tab. When you load a game instance you will see in the messages that it is "Loading all game and mod .pak item info." Here it is reading the meta-data for each game (PCBANKS) and mod (PCBANKS/MODS) *.pak file. The meta-data for a given pak file is a list of all the pak items in the file, along with the data required to unpack each item - this meta data is call the Pak.Item.Info. When you extract the data from a pak file using a Pak.Item.Info object you get a Pak.Item.Data object e.g. a mbin item. When you call Mbin<>() it looks up the info object using the specified string, gets the cached instance if it exists else extracts a new instance and caches it, then has libMBIN.dll decompile the mbin data into an object, then casts the object to the type specified in <>.

honest herald
#

What about when we view MBINs in the PAK Items tab that we did not call directly using Mbin<>()? Does this also get the cache instance if it exists or else extract-and-cache?

rapid sandal
# honest herald Oh... so is it more accurate to say it just *loads* them (or their locations) bu...

Hmmm, it does unpack, unpack is the correct word, but you said "Also make sure you unpacked game files (must be done every time you run Mod Builder)".
This strongly suggests that the pak files need to be extracted to disk ... and you are saying every time you run the app ... nope, don't need it, don't do it.
The only time you may want to manually extract pak items to disk is if you want to mod outside of the app e.g. mod some *.dds image items then put them in the loose folder for a script so the get included when you build the mod pak.

honest herald
#

So does it unpack them at load time, or does it unpack them at view time? I'm still fuzzy on when the "unpacking" happens. I did not think anything was being extracted to disk, didn't mean to imply that, but I'm also honestly unclear on when the game's .pak files are unpacked into a readable state by the app...

rapid sandal
honest herald
#

I seeeeeee

#

Okay

#

That explains why it loads so fast

#

So there is sort of a disconnect between "loading" and "unpacking" here if by unpack I mean render human-legible, rather than simply read metadata?

#

The human-legible-part doesn't come until the moment we want to read something? Just wanna be 100% I follow.

rapid sandal
# honest herald That explains why it loads so fast

The loading of a game instance does a lot in parallel - watch your cpu. But extracting (decompressing) a single item from a pak file and the decompiling (mbin) into an object is usually really fast - fast enough that even doing it twice for diff views is fine. Only the really large mbins have any noticable lag.

honest herald
#

So to read the files, we have to "extract" the pak info; and when we actually run scripts, that's the only time MBINs are actually decompiled?

rapid sandal
honest herald
#

Got it. I will do my best to not butcher the explanations as badly in the next video. 😅

rapid sandal
# honest herald So to read the files, we have to "extract" the pak info; and when we actually ru...

"We have to extract" user doesn't app does. Mbin's are decompiled anytime they need to be viewed (PAK Items tab), or queried (query script), or modified (mod script). Their headers are also extracted and parsed as part of loading the game instance so I can get the top-level class for the libMBIN API tab. But again, the mbins are decompiled from the in-memory Stream created when they are unpacked from the pak file into an in-memory object. There are no writes to disk, only reads from the source pak files (spv are an exception, currently they create a temp file for spirv-cross, although I'm testing having them pipe into stdin instead).

honest herald
#

I see, okay, I think I'm getting the terminology straight now... so (if I'm not still entirely lost) game files being "unpacked" literally means those paks in GAMEDATA are decompiled into objects and made human readable, but NMSMB does not do this until the moment we access something.

#

So to say we "unpack" in the beginning is pretty far off, because those MBINs aren't really decompiled into human-readable form, i.e. "unpacked", yet, correct?

#

Or is that not what is meant by unpacking?

honest herald
# rapid sandal "We have to extract" user doesn't app does. Mbin's are decompiled anytime they ...

By "we have to extract the pak info," I meant we are responsible for identifying the game's install directory so that the app will extract the pak info. I was trying to use proper terminology for each stage of what we're doing in the app. The initial "loading" stage is what I believe you're saying involves "extraction" of pak info, but I'm not sure if this is "unpacking", or if unpacking also implies decompiling into legible form.

rapid sandal
# honest herald I see, okay, I think I'm getting the terminology straight now... so (if I'm not ...
  1. Game and Mod pak files are loaded - means reading the meta-data (Pak.Item.Info) from those files and building the lists of items they contain (along with the info needed to extract each item).
  2. Unpack - means use the loaded meta-data (Pak.Item.Info) to extract (usually decompress) the raw binary data from the pak file for a given item (you get a Pak.Item.Data wrapper object).
  3. Convert|Decompile - means take the raw data for an extracted|unpacked item and convert (dds to bitmap) or decompile (mbin to object, spv to text) to something useable|viewable.
honest herald
#

I seeee....

rapid sandal
honest herald
#

So yes, I thought unpack meant 1, 2, and 3, basically, which is way off.

#

And I also thought 1, 2, and 3 might be happening when we loaded game files in Mod Builder — also way off

mossy perch
#

anyone knows where do I edit the title - to unlock it all with NMSSE?

honest herald
#

you're saying only 1 happens at first, and 2 and 3 happen when we read an MBIN file (or something else in gamedata).

rapid sandal
#

Think of pak files like zip files. You can open a zip and see the contents (list of files) and that's fast - that's 1) above.
But when you unzip it takes a lot longer. Pak files are more optimized to being able to unpack a single item than zip files - that's 2) above.

honest herald
#

Thanks for the clarification. I will fix the video when 3.68 is out. Me now use word more better.

#

lol

rapid sandal
formal folio
rapid sandal
# formal folio is there an updated version of this mod https://www.nexusmods.com/nomanssky/mods...

I believe setting LuckyWithTech = true in GCPLAYERGLOBALS.GLOBAL.MBIN used to do this, not sure if still does. Simple enough that you can use discord bot on No Man's Sky - Creative and Sharing Hub to make one and test. Looks like that mod went through each item and made the min value = max value for each stat, should be a fairly simple C# script, just loop through each item and set NumStatsMin = NumStatsMax, then for each item loop through each stat and set ValueMin = ValueMax.

formal folio
#

I dont know the first thing about modding this game, so I will just save-load cheese the few upgrades I want to install

#

thanks for the advice though

honest herald
#

Also Best Buds on Nexus has a mod that does this.... I believe it's in NoDice and maybe also in Burryaga.

#

But those mods also do other stuff

formal folio
#

thanks

#

For S Class Exocraft Engine modules, NoDice sets fuel usage to -15% instead of -20%

#

¯_(ツ)_/¯

spring vessel
#

If someone can extract dog.dds into a transparent PNG I'll make it a server emoji

honest herald
#

Ohhhh

#

@formal folio i see, I'll fix that, thanks

hearty wasp
honest herald
hearty wasp
#

try this

#

@spring vessel

vocal zodiac
#

here's this also

spring vessel
#

Magical, thanks y'all, I'll pretty up the edging and upload it

vocal zodiac
#

in the meantime... i am making a mod that doubles wait timers on buildings

#

because rome wasn't built in a day

vocal zodiac
vocal zodiac
#

@rapid sandal is there any way to get data to print to compiler console?

rapid sandal
honest herald
#

Yeah, I corrected a few of those but missed exocraft stuff

rapid sandal
#

BurstCooldown min = 0.9, max = 0.85

honest herald
#

I hardly use Exocraft stuff

rapid sandal
#

Only found 3 where min > max: Weapon_Projectile_BurstCooldown, Ship_Launcher_TakeOffCost, Freighter_Fleet_Fuel

honest herald
#

Cool I'll verify when home

hearty wasp
#

nice

honest herald
rapid sandal
honest herald
#

Yeah, lots of weird quirks in doing it manually

#

I'm just gonna make a helper function and go through that table once very carefully to build a filter function.

        /*
         * Cause all stats to be maximum on tech upgrades while this mod is enabled.
         * Upgrades will revert to a seed-based value when this mod is inactive.
         */        
        protected void DestroyBadUpgrades()
        {
            var proceduralTechnology = Mbin<GameComponents.GcProceduralTechnologyTable>(
                "METADATA/REALITY/TABLES/NMS_REALITY_GCPROCEDURALTECHNOLOGYTABLE.MBIN"
            );
            
            foreach(var upgrade in proceduralTechnology.Table) 
            {
                foreach(var statLevel in upgrade.StatLevels) 
                {
                    if (MaxIsBest(upgrade.ID.Value))
                    {
                        statLevel.ValueMin = statLevel.ValueMax;
                    }
                    else
                    {
                        statLevel.ValueMax = statLevel.ValueMin;
                    }
                }
            }            
        }```
#

I don't see any flags identifying which upgrades have Min as the thing you want.

rapid sandal
#

I think maybe use the WeightingCurve. Whichever is 'rare' min|max should be the more desirable value. there are 3 max, 3 min, and neither

honest herald
#

Oh you're right!

#

That lines up completely with what I just noticed about UP_LASER4 (guessing this is S-class mining upgrade)...

#

ValueMax is .85, which I'm using, and that translates to +15% mining speed

#

but .80 is ValueMin.... I bet that's 20%

#

And that rarity says MinIsUncommon

rapid sandal
#

Yeah, I'm just going to switch on the WeightingCurve enum and set approp

honest herald
#

I'm pretty sure you nailed it

#

Ditto

#

Good eye

#

Gonna use this ```

    protected bool MaxIsBest(WeightingCurveEnum curve)
    {
        switch (curve)
        {
            case WeightingCurveEnum.MaxIsUncommon:
            case WeightingCurveEnum.MaxIsRare:
            case WeightingCurveEnum.MaxIsSuperRare:
                return true;
            default:
                return false;
        }
    }            
Bout to test
#

Seems to have worked @rapid sandal

rapid sandal
#

Make sure to do it for NumStatsMin|NumStatsMax as well

honest herald
#

Hmmm

rapid sandal
#

NumStatsMin = 1
NumStatsMax = 2
WeightingCurve GcWeightingCurve
WeightingCurve = WeightingCurveEnum:MaxIsRare

honest herald
#

Is that relevant for S-class?

#

Meh, might as well max the lower classes too

rapid sandal
#

Possible stats are penalties, in which case fewer might be better

honest herald
#

I see... never seen penalties on my upgrades

rapid sandal
#

🤷‍♂️ just sayin'

honest herald
#

Valid thing to be sayin, will add

rapid sandal
#

I expect they are all max or none, but may as well be complete

honest herald
#
        
        /*
         * Cause all stats to be maximum on tech upgrades while this mod is enabled.
         * Upgrades will revert to a seed-based value when this mod is inactive.
         */        
        protected void DestroyBadUpgrades()
        {
            var proceduralTechnology = Mbin<GameComponents.GcProceduralTechnologyTable>(
                "METADATA/REALITY/TABLES/NMS_REALITY_GCPROCEDURALTECHNOLOGYTABLE.MBIN"
            );
            
            foreach(var upgrade in proceduralTechnology.Table) 
            {
                var curveNumStats = upgrade.WeightingCurve.WeightingCurve;
                        
                if (MaxIsBest(curveNumStats))
                {
                    upgrade.NumStatsMin = upgrade.NumStatsMax;
                }
                else
                {
                    upgrade.NumStatsMax = upgrade.NumStatsMin;
                }
                
                
                foreach(var statLevel in upgrade.StatLevels) 
                {
                    var curveValue = statLevel.WeightingCurve.WeightingCurve;
                        
                    if (MaxIsBest(curveValue))
                    {
                        
                        statLevel.ValueMin = statLevel.ValueMax;
                    }
                    else
                    {
                        statLevel.ValueMax = statLevel.ValueMin;
                    }
                }
            }            
        }
#

complete

rapid sandal
#

Mine looks about the same

honest herald
#

Right on

rapid sandal
#

... I still prefer just setting LuckyWithTech = true

#

... let's see them do that in lua 🙂

vocal zodiac
#

i'm gonna combine my multiplier mods into one thing i think

#

should be easy

#

should i use a datatype when making a public function?

rapid sandal
vocal zodiac
#

err... okayso the example i have is a globals file with a given structure

rapid sandal
#

The only reason you'd make method public is for them to be called by other scripts. However, you have to understand the script class model to do that. Making script members|methods public static however makes it easy for other scripts to change|call. You can use that to make 'helper' scripts, ones that don't derive from ModScript or have an Execute, just some public static methods that you can call from any of your other mod scripts.

vocal zodiac
#

righto

#

do i need to type the argument tho

rapid sandal
#

I'm looking at adding another script tab just for helper scripts that can be used by either query or mod scripts.
It would mainly be to try and move all libMBIN.dll classes out of the app code and into script code. That would allow modding any release of the game, instead of now where you can only mod a game release that is compatible w/ the libMBIN.dll in the app folder.

vocal zodiac
#

like would it be best practice to type that or can i get away with just a var

rapid sandal
#

I tend to prefer var where I can use it

vocal zodiac
#

fair

#

im just thinking ahead really

#

lol you should see my method of multiplying settlement build times

#

yall like thinking in 4d while im still doing 1+2

#

sometimes i am not sure how i managed to get a software development diploma

#

thank god it's all just done at compile time and packed up as mbins rather than actual executable code

#

...ingame

#

i mean

rapid sandal
#

Ah, but being able to run our own methods at runtime would be the best for modding. Right now we're just config junkies.

vocal zodiac
#

just like minecraft modding, imagine that

wise tusk
#

Hello! Do you guys know if there's a mod to hide the jetpack

#

?

hearty wasp
#

meta mod

#

search on nexus

wise tusk
#

Very useful, I'll try it. Thanks!

honest herald
vocal zodiac
#

aight so i need a hand with a piece of clunker code

#
            GcSettlementGlobals settleGlobals,
            ulong multiplier
        )    {            
            // get settlement build times
            var settleBuildTimes = settleGlobals.SettlementBuildingTimes;
            
            // for as many entries in settleBuildTimes:
            for (int i = 0; i < settleBuildTimes.Length; i++) {
                //multiply settleBuildTimes by the multiplier
                settleBuildTimes[i] *= multiplier;                
            }
        }```
#

for some reason this isn't doing what it should be doing

#

which is modify the SettlementBuildingTimes array

#

i'm multiplying two ulongs

#

what i'd like to do is have a for each loop but the compiler won't let me assign value to an iterator

#

@honest herald could i get some pointers here?

#

whats happening here is that the values aren't reflected in the output GcSettlementGlobals.mbin

#

no compile errors

#

okay it might just be me being silly and misplacing a file

honest herald
#

Let me run it on my end

inner shell
#

I'm not sure if this is the right place to ask but, will Redmas fantasy mod work with realistc space w/ cruise mode?

vocal zodiac
honest herald
#

Great

vocal zodiac
#

basically i was compiling to a different folder than my mods folder

honest herald
#

Ahhhh

vocal zodiac
#

didn't see the changes reflected because the fixes i'd implemented were in a different place than the builder was looking

#

i do love this mod tool but god i'm rusty

honest herald
#

ugh I wish they would drop 3.68 lmfao

steel crypt
rapid sandal
vocal zodiac
#

i'm having trouble replacing lists with my own sets of lists

#

how would i go about doing this

#

like if i had a list of strings and i wanted to replace them entirely with another list i had created in the program

#

the example i have here is

        [0] "GAS3"
        [1] "PLANT_RADIO"
        [2] "ROBOT1"
        [3] "SPACEGUNK3"
        [4] "PLANT_TOXIC"```
#

and what i'm trying to replace it with in-program is

            settleGlobals.VykeenProductionElements = new List<string> {
                "WAR_CURIO1",         // Vy'keen Effigy
                "WAR_CURIO2",            // Vy'keen Dagger
                "FOOD_P_RADWILD", // Grahberry
                "AMMO",                        // Projectile Ammunition
                "ROBOT1"                    // Pugneum
            };```
#

the error i get on compile is
spdx_ItTakesAVillage(54,45): error CS0029: Cannot implicitly convert type 'System.Collections.Generic.List<string>' to 'System.Collections.Generic.List<libMBIN.NMS.NMSString0x10>

rapid sandal
#

We added implicit convertors to go back-forth between C# string and libMBIN NMSString* types which helps in most (but not all) cases.

#

If you look at the Inventory_* scripts you will see they replace the default new game inventories in a similar manner.

vocal zodiac
#

yeah ive been using them as refreshers + guides, very handy

#

is 'Game' a reserved namespace of some kind? i tried doing using Game = libMBIN.NMS; but it bugged out on me

#

it works fine typed out like that btw, thank you

rapid sandal
vocal zodiac
#

yeah, i noticed that... cheers

rapid sandal
#

So yeah, adding another Game name will probably complicate things 🙂

vocal zodiac
#

i ended up using NoMansSky as my shorthand

#

pretty on the nose but it's nice and memorable

#

hot question of the hour: what collectable food item do we associate the Gek with?

#

like, if you had to choose a specific food item that you can pick out in the wild

#

personally i'd go with pulpy roots

median grove
#

anyone able to help me out on this my game got messed up and i save edited a ship to replace my missing one but it keeps saying there no fuel when there is to fly

vale iron
mossy perch
#

I dont think so

#

since Redma's fantasy mod overhauls many aspects that includes space overhauls and the realistic space also mainly overhauls space aspects

#

but if both have lua file then you maybe can merge them

inner shell
#

Oh ok thanks

fallow meadow
#

Most likely the 'MaintenanceInteractions' in the Raw JSON data.

fallow meadow
vocal zodiac
#

is GCCHARACTERGLOBALS.GLOBAL.MBIN supposed to be empty?

#

using the mod builder

#

@rapid sandal GCCHARACTERGLOBALS.GLOBAL.MBIN is loading as an empty file, i'm not sure if there's an issue with the file or my config or whatever but it's loading and decompiling via mbincompiler

rapid sandal
#

Check the first tab to see if there are any error messages.

#

fwiw it's working for me: NMSMB: 2.1.2, Steam install, NMS.exe date 2021-09-17, libMBIN 3.68.0.1.

vocal zodiac
#

it threw a 'unable to read beyond end of stream'

rapid sandal
#

Are you viewing the game version or a mod version of the mbin ?

vocal zodiac
#

game version

rapid sandal
#

And the app is showing the same versions for everything I listed ? (all visible in statusbar at bottom)

vocal zodiac
#

yep

#
   at System.IO.BinaryReader.InternalRead(Int32 numBytes)
   at System.IO.BinaryReader.ReadSingle()
   at libMBIN.NMSTemplate.DeserializeValue(BinaryReader reader, Type field, NMSAttribute settings, Int64 templatePosition, FieldInfo fieldInfo, NMSTemplate parent)
   at libMBIN.NMSTemplate.DeserializeBinaryTemplate(BinaryReader reader, String templateName)
   at cmk.NMS.MBINC.MbinToEbin(String PATH, Stream MBIN) in D:\dev\prj\cmk\Game\NoMansSky\Common\NMS\MBINC\MBINC.p.EBIN.cs:line 46```
#

here's the exact error

#

im currently having a 'fun' time rifling through files and shit trying to find what controls the number of NPCs that spawn per system

#

from what ive seen about 5 variations are given for each system so im looking around for 5 or 6

rapid sandal
# vocal zodiac yep

So the MbinToEbin method is calling into libMBIN and asking to 1) create a MBINFile wrapper around the binary data extracted from the pak, then 2) parse the header of the mbin binary data. I expect that the read error is while it's reading the header.

#

However, like I said it's working for me without issue. Try restarting the app and reloading the game (it's Steam right ?). If you still get the error then check the steam install file integrity. Hold on, I'll start steam to see if it tries to auto-update, there is also the possibility that a newer version was loaded into steam that changed the pak files but not the nms.exe date. wait a bit for me to check ...

#

So there was an update, but mine still extracts without issue.

#

Maybe steam did the update while you had the app open and therefor the app meta-data was out-of-sync with the new game files ? The app only auto-reloaded changed mod paks, didn't expect to have to handle changing game pak files.

vocal zodiac
#

i dunno... i havent got an update

rapid sandal
vocal zodiac
#

ill do it later, sorry

#

just reaming through data

#

givin me a headache

rapid sandal
#

If the loaded app meta-data is out-of-sync w/ the current game data I'd suggest restarting the app and reloading the game (takes ~20sec). Otherwise you may find other mbin's don't load as well. Just sayin'.

minor moat
#

So apologies if this was mentioned somewhere but I couldn't find it via search - if you use a mod to stack items higher than normal (eg. something to 9999), then remove the mod later, would all of the items above the normal stack limit get deleted? Or would they just have an abnormally large stack size until split later?

left sentinel
#

the latter

vocal zodiac
#

hey @left sentinel do you remember where you got the ship variant counts from?

#

like, per system

#

i cant remember if you told me or someone else

left sentinel
#

wiki

#

though I dont think I told you

vocal zodiac
#

you mustve mentioned it

minor moat
#

Oh sweet, thanks. Another game I play they'd be deleted on a restart which is why I was concerned, good to know I can remove the mod safely though if needed

left sentinel
vocal zodiac
#

oh yeah i read that im just not sure what file that might be configured in

rapid sandal
#

GCSOLARGENERATIONGLOBALS.GLOBAL.MBIN CivilianTraderSpaceshipsCacheCount = 20 (plus 1 i think for alien). If you change that I believe you can alter # of diff ships gen per ssytem.
The SpaceshipWeightings in the same mbin controls how many of each type of ship make up the CivilianTraderSpaceshipsCacheCount + 1 ships in the system i.e. how many royal, shuttle, ...
Look at the Ship script in Mod Builder.

vocal zodiac
#

fuuu... i shoulda seen that

#

im just thinking where npc variants are controlled

#

bc theres like 5 per system

rapid sandal
vocal zodiac
#

no like um
characters, the characters you see in landed ships and at locations

#

they walk about and you can talk to them

#

i wanted to increase the number of possible variants

rapid sandal
vocal zodiac
#

im not talking about systems im talking about characters

#

character faces, yknow

#

theres about 5 different faces for each race in a system

rapid sandal
rapid sandal
#

If you use the Get_Descriptor_Tree query script it will extract all the parts from the descriptor tree and dump to a file. Just add the path I specified to the list of mbins it's dumping (resulting dump is ~9MB, MANY combo's).

vocal zodiac
#

nooo thats not it

#

i have a theory

#

im gonna test it

#

it did not work

#

apparently increasing the spaceships cache just makes shuttles spawn

keen ginkgo
#

Hey, is it possible to change game modes with save editing?

rapid sandal
# vocal zodiac apparently increasing the spaceships cache just makes shuttles spawn

So do you think that the # of diff ships/system is somehow related to the # of diff npc's/system. I don't think that's true.
The # and types of ships that spawn/system use CivilianTraderSpaceshipsCacheCount for # of diff/system and SpaceshipWeightings for the ditribution of types in CivilianTraderSpaceshipsCacheCount (how many of CivilianTraderSpaceshipsCacheCount are shuttles).
The # of npc/system is almost certainly another unrelated list.

vocal zodiac
#

yeah i just tested it

#

tragically didn't work

#

i looked for ages around the files and stuff and couldn't find anything

honest herald
vocal zodiac
#

here's my mod if anyone wants it: doubles build times, build cost x10, reworked settlement products and increased settlement population + increased the maximum NPCs to 64

#

i intend to expand it with time and whenever it takes my fancy

#

i made it cuz i just felt that construction and investment into a colony needed more impact than a handful of sand
maybe people consider it completely unthinkable that the timers needed extending but, hey, i think they should take longer

#

and also cost 10x more

#

because yknow, initial investment

#

it takes a village to raise a child and all that

honest herald
#

Haha you should post it on Nexus. I'm the opposite player but you may find a niche market on there.

vocal zodiac
#

oh yeah i am rn

rapid sandal
# vocal zodiac oh yeah i am rn

Has an error. Look at the diif of the mod pak. About 1/2 way down [41:Settlement_Small]. "LAND1" was moved from Substances lists to Products list ... according to the diff. Maybe manually unpack and decompile from mod pak to verify not an error w/ the diff engine.

vocal zodiac
#

that's an error in the game

rapid sandal
#

"LAND1" is a substance, not product

vocal zodiac
#

compare it against the game's version of the same file

#
                    Products List<NMSString0x10>[1]
                        [0] "LAND1"
                    Substances List<NMSString0x10>[0]
                    AmountMin = 140
                    AmountMax = 140
                    Currency GcCurrency
                        Currency = CurrencyEnum:Units```
rapid sandal
#

[2:RegularStorey] GcSettlementBuildingCostData
Products List<NMSString0x10>[0]
Substances List<NMSString0x10>[1]
[0] "LAND1"
AmountMin = 140
AmountMax = 140
Currency GcCurrency
Currency = CurrencyEnum:Units

#

You looking at the game mbin ?

vocal zodiac
#

it compiled fine from the looks of things

#

did it crash your game?

rapid sandal
#

Check your pcbanks folder, make sure you haven't saved any mods in it.

vocal zodiac
#

all clean

rapid sandal
#

My diff shows the error. My view of the game mbin shows it's correct.

vocal zodiac
#

i'm on the current build

#

are you on exp

rapid sandal
#

I should be on pub

vocal zodiac
#

theres no tangible difference between the two honestly
like its products and substances for the sake of being separate, it will still parse it fine from what ive seen

#

my game is running so i would assume it's not troubled

rapid sandal
#

They are defined in diff tables.

#

What is the size of your pcbanks 59B126E2.pak file - it contains the mbin

vocal zodiac
#

oh yeah but both are strings and afaik its just pulling items that are then handled differently on the front

#

er one sec

rapid sandal
#

Mine is 165,815 bytes

vocal zodiac
#

165 082

#

check your build

rapid sandal
#

bugger, i had turned exp off last week but it's back on now

vocal zodiac
#

my program just accesses the min/max, it doesnt change what products or substances are needed

#

as i thought lol

#

they fixed it in experimental

#

ill make sure to update when 3.68 rolls thru

#

it's actually a mistake they make regularly

#

the Decoration on the same entry has STELLAR2 (chromatic) in products

rapid sandal
#

I want to know why my steam switched back to exp

vocal zodiac
#

maybe you didnt switch it off? did you get a download after you switched it off

#

i know i sometimes trip on that lmao

rapid sandal
vocal zodiac
#

who knows then... steam is a cruel mistress

rapid sandal
#

So the NMS.exe is the 15th, what libMBIN are you using ?

vocal zodiac
#

if it pleases the court

rapid sandal
#

Thanks, wanted to know if libMBIN 3.68.0.1 worked w/ that older release. I'll update my cmkNMSReleases.txt.

vocal zodiac
#

oh yeah it works fine

#

ive been using it

#

and she's out

vast agate
#

im curious as to if there are any good performance mods for NMS

#

ive already made all of the changes in TKGRAPHICSSETTINGS, but my game still isn't running great

silent locust
#

question.. When do I unlock all the glyths? I am on the Mission The Purge (Reset the Simulation) and I still haven't unlocked all the glyths

vast agate
#

glyphs are done on the main questline iirc - but it's quite a ways through it

#

there's a way to do them manually tho

minor moat
# left sentinel the latter

Ok I figured I may as well be absolutely sure and test it, it does seem to actually trim stack size down on mod removal for items rather than just big stacks (tested both the normally 9999 stack items and the normal limited ones).

spice agate
#

Anybody know of any mods that change the look of the submarine?

mossy perch
#

NO

#

but there is a mod that reskins mech if you curious

spice agate
#

What does it turn it into?

quick cove
#

So in a lush galaxy where is the best chance of me finding a Volcanic planet?

vast agate
#

Im gonna guess cadmium suns, but idrk for sure