#nms-modding
1 messages · Page 219 of 1
That and shield upgrades, though that's not as easy to test
well in my extremely limited testing I havent gotten the C class shield upgrade to give me shielding upgrade, only core health
probably luck
I'll check it
even with teh fire rate fixed, I feel like the exocraft canon should always be higher damage than a handheld weapon. Like sentinel drones we should be able to handle on foot, quads should be tough but beatable, and the walkers should be incredibly hard to beat without an exocraft.
Yeah, it's a luck thing. It has minimum of 1 stat, maximum of 2
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
I had to use a building for shelter, but I was able to take one out with an unmodded starter MT
eh that's a topic for another channel anyway
unless someone makes a mod to re-balance damage numbers 
That would be tech table, I believe
true and I'd like that and also a fix for the cannon dps getting worse with upgrades
less about a damage increase and more about balancing it so that the mech is worth using when fighting sentinels
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?
I fixed it in a mod just about 30 minutes ago. Scroll up. Or get GProc
oh lol my bad
so the canon mod works with the regular exocraft, but not the mech. the mech fire rate is still slow @vale iron
No worries 🙂
thought you were still debugging that mod
Does mech get its own cannon upgrade modules?
the 50% increase to top speed and boost feels nice
yes, i believe so
Hmm, I'll have to find that and add it to the mix
yeah different upgrade
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
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
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
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
no bueno
still slower than the exocraft
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)
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
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
well the exocrafts do have more upgrades available to them.
the mech has no proc gen canon upgrades, only the upgrade you get on the anomaly
Oh yeah, that looks right at least
I could adjust the values to make up for the minotaur lacking the other upgrades
Eh what I'm pretty sure mech has proc gen canon upgrades
oh, yeah, you're right
still, seems weird that they wouldn't have a comparable fire rate
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
also, since when could exocraft lasers mine the deposits? I thought only the terrain manipulator on the multitool and the mech could mine those?
you mean they mentioned the higher rate of fire by mistake?
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
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?
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.
no they used to be able to mine deposits since the day they were added, just that they're not efficient at it
so because they got the base stats backwards, the mods are doing the opposite of what they're supposed to do?
Yes
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:

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
ok. but wouldn't that upload not have the changes you just made?
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
oh. well the mod you uploaded 30 minutes ago wasn't working on the minotaur. I thought you were fixing that this whole time
That's the file I just tested, so it should work
I just filed another report with !hg, just in case it matters
Dang it doesnt work
Mods aren't fans of gifs or memes 🙂
I clicked on it, no worries
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
neither appear to be working
like, it unlocks the ability to buy everything from the quicksilver shop, but you still can't get the golden ship or the normandy
those are still locked behind rewards
i can assure you i didn't do anything wrong
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
i dunno, it added the other stuff, just not the ships
bypassing any need to unlock
prolly
i'm using this mod https://www.nexusmods.com/nomanssky/mods/1751?tab=description
Does anyone know the creature id for the sentinel quadrupede?
^QUAD I believe
Thanks
Do I need to change the descriptors too to have it as pet or just the creature id?
If you're editing the save file, I think just the name will do. Getting into the descriptor files is more complicated
Hi Gumsk, a question if you dont mind answering
I made it! Thanks for the help
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
is it normal, I mean, is there a fix for it?
mjjstral has a mod that gives you a specifically modified version of a quad
I'll check it out then
of course no one else will see it
Thanks
because it's modified to not send the creature data
hi, someone know which mod can i use to build in my freighter ?
What do you mean? You can already do that
yep its still not fixed
Eucli-EA or Exosolar's Beyond Base Building will remove the limits and let you build with all base parts in your freighter
eucli-ea doesn't change vanilla parts all that much
Gbase or BBB are the way to go
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
it maybe just the effect of the old graphics setting
which don't work anymore which is sad
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
check the pins
thanks 😉
Google NomNom save editor
googling "nom save editor" gives me rimworld links
Did you try NomNom?
I'll just get the link
both NomNom and NMSSE are on Nexus also
is there a mod which removes the lock on with the infra knife accellerator?
Anyone know if there's a mod which manually spawns in sentinels?
Does anyone have a golden vector?
Was hoping to find someone I could just meet at a station for my main save
maybe try #nms-questions then
it's not a modding required thing
more activity there too
@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
Apologies, I only asked here because it’s a higher chance a modded has one.
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
exp got new default saves
also exo don't maintain it anymore iirc

i'm not sure what you mean by that
prolly struct change that fucked it is what I'm saying
tho BBB may not use default saves
can be another file
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?
reshade
thank
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
you need the ship seed for that
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 ?
Any tips on modding? I do want to play multiplayer, but I want to screw with some mods too.

@steel crypt Message auto-deleted
You right you right. I always forget about pins in discord lmao
thanks for your reply. Can you tell me what ship seed is, and where I can find it?
thanks. How do I input this into my save?
some of or most of them might be inaccurate
on the left box
on seed
just copy-paste, but dont press generate afterwards
yes a program
sorry I havent used this at all
NMS save editor
nein problems
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?
please follow the requirements and the installation instruction as well
the saves are on different files (as in different backups of the save file).
yes
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
that's the one !
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?
im looking into the same thing (kind of).. i want to customize the colors on my ship.. I found this:
https://stepmodifications.org/wiki/NoMansSky:Reference_Guides/TEXTURES/Ship_Coloring
but I am not sure which file the author is talking about when trying to colorize ships as this wiki explains changing colors for other things like the character as well.
Can someone help me out? Im trying to download an earlier version of NMS and the download despot doesn’t want to work
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
from what i know the color is tied to the seed too, but there is also recoloring for ship like exocraft, but the color would only be visible in single player
ya im only interested in what I see, not what others see
perhaps try this, not sure if its still working or not
https://www.reddit.com/r/NoMansSkyMods/comments/dkob5c/manual_ship_and_multitool_color_customization/
this is great thank you
no problem, don't forget to backup save first
We have a much better site nowadays for seeds: https://nomansseeds.com
The largest collection of ship seeds and NPC seeds for No Man's Sky
ah thank you for letting us know
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.
okay, disregard. game looked like royal sh afterwards. Man I wish I had a rtx graphics card, so i could use DLSS...
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?
No influene on your save. You can always go back to modless state
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 😅
amumss gets stuck when checking conflicts, any tips on fixing it?
time
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...
besides deleting, you can combine them
but the conflicting mods must have the lua file
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"?
hm okay simpler than i thought... and i only need to put the .lua files in there, correct?
you put the pak in there when they don't have a lua
so, in which folder should we put the lua?
i need some advice on editing the globals
is there any fanmade documentation on what everything does? or are we all in the dark
I mean, I let it go for a solid 10 minutes but it was still stuck
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
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
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.
We can but not individually
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
anyone know what UI or mod this is? looks so clean https://gyazo.com/03d27bbf7114359d7136c963ae8d91cb
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.
Link to mod?
What folder are you putting it in?
I found another one that works, but as someone else migt want to use it I'll still provide the link so folks can test it.... I put it into the subfolder "Mods" in pcbanks. https://www.nexusmods.com/nomanssky/mods/1688
yes, there is a way
This is great to know, how do I do it? lol
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
Appreciated!
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
THanks for being so thorough 🙂
Left no room for me to do something dumb and break my save lol
Is their such thing as a mod which changes the graphics and allows you to still play mp?

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 ?
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
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
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
oh man are you sure? I have been a lot of places.
how many times have you warped?
or maybe just buy a random one and change it to S-class and capital with NMSSE
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 ?
on the milestones tab
you dont see it on here?
well that is a lot
pardon i cant think the better way to solve your question
maybe the others can, you can try to ask it on #nms-questions
oh sorry I thought i was in help!
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

I'm pretty new to NMS and have been using the NomNom save editor - is the Goatfungus save editor worth switching to?
only if you can afford to, goatfungus doesn't work with gamepass iirc
Ah, cool - Steam edition here
There a mod that makes the Minotaur turn faster.
GMech
@vale iron thx
@maiden cape Feel free to ask for Save Editor help here to get your base moved.
ty
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.
is there a way to find out if a mod has installed properly?
I know lol, I was just saying I appreciated you giving me idiot proof instructions
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
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.
Are you getting the red text warning on load?
@vale iron im not getting anything. i can load into the game fine but nothing has changed from what i can see
Oh you need to put the mods in gamedata/PCBANKS/mods
ohhhh
It works with Gamepass now
That's news to me. I'll have to check on that
Oh you're right, just saw that in the notes
any mod suggestions from people? for graphics or adding stuff to the game, not stack multipliers and stuff
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
Those are in the exe, not files available for edit
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!
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
oh, neat
@vocal zodiac Why are you trying to read or edit an XML to change settlement building costs?
I don't understand that connection...
do you have a different method in mind?
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.
mod builder? that sounds a lot easier than editing xmls 😳
ive been using modding station and just tweaking values
I don't know anything about Modding Station but I just made a video on how to install, setup, and use Mod Builder
yeah modding station is exclusively xmls
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();
}
}
}
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
This video will show you how to build a No Man's Sky mod using the No Man's Sky Mod Builder.
This video uses scripts written for No Man's Sky Frontiers 3.67.
Mods are created using NMS Mod Builder 2.1.2 and MBIN Compiler 3.68.
Check out No Man's Sky Mod Builder today!
Links to the download pages you ...
That'll show you how to set it up for MBIN 3.68 (the latest available game file recompiler)
Video will make a whole lot of stuff clearer
Let me know if you get stuck on a step
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
Can I see your cmkNMSReleases.txt file?
Yes, NMS Mod Builder can work while you're in game
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
Yeah, video link is right: https://github.com/cmkushnir/NMSModBuilder/releases/tag/v.2.1.2
This video will show you how to build a No Man's Sky mod using the No Man's Sky Mod Builder.
This video uses scripts written for No Man's Sky Frontiers 3.67.
Mods are created using NMS Mod Builder 2.1.2 and MBIN Compiler 3.68.
Check out No Man's Sky Mod Builder today!
Links to the download pages you ...
(timestamped video link)
The video will show all of this and more, so I recommend watching carefully.
alright, got past that initial hurdle
Cool, so files unpacked?
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#.
Still waiting? It's usually pretty quick for me... Sounds like an issue if it's stuck
Can I see screenshot of Mod Builder?
nah it's just my pc being slow, it's all loaded now
Cool cool
how do i go about packaging mods? like compiling them i mean
Video shows that too
...im sure you cover it in the video but im very bad at keeping on certain things
It can explain better than I can haha
yea
because it'll show exactly what to click and when
but TLDR, you save script, compile script, execute script, build & save pak (same step).
cool and fun :]
There are buttons and tabs for all of that of course
thank god i dont have to go through the stupid rigamarole of editing commentless xmls
and i can do this shit programatically now
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.)
Question. how can u even mod?
@west bridge
Okay ill see lol,
The link I deleted was timestamped part-way through the video
Gotta start at beginning of course
ok
oh wait nvm
wait no
anyone know of a mod similar to this one?
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
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.
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
better planet generation is one of the best ones out there; and it also seems like it has a large update coming
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
Look up Blooming Biomes its basically this mod but works with vanilla players!
its what I use
you get cool planets like this
it just ups the flora and fauna gen
oh snap - i like this. Thanks
np!
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
i tried it out on some planets and i kinda didn't like it but this time i might just g for more fauna and flora instead of bigger
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.
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.
So I'd be better off just randomly rescuing one and changing it to the victory ship instead?
That would be the cleanest way
Anybody know what the model seed for the victory is?
What's the issue here?
The fire rate being massively high?
Can just be a ship stat
Tech wise I don't really know tho lol
Where do I enter the freighter seed at to use the same one from the site?
This I think yeah, and it has two of the main organs installed.
Two Spewing vents, not sure what they do really.
Ahh I see it has to do with weapons.
Spewing vent is the photon cannon. Two might be increasing the fire rate
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
Yeah, if you want to keep the type of cost the same, just multiplying it should work
i want it to use alloys and stuff though, i think
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
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?
Does anyone have the mod where living ships and golden vector spawn as NPC controlled ?
Living ships, yes, golden vector no.
https://www.nexusmods.com/nomanssky/mods/1844
Ty
i'm having trouble with namespaces and using
how would i load in GcSettlementGlobals
@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
@honest herald might need a hand, i'm afraid i got lost in the code
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 😉
i might still need advice but it turns out i was approaching this all wrong and didn't realise GC was for data types and GL was for values, working at it now
var settlementGlobals = Mbin<libMBIN.NMS.Globals>("GCSETTLEMENTGLOBALS.MBIN");
so i wouldn't use using for globals?
You can
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
lolol
Yeah. i call mbin_gl globals because underscores are hideous but you do you. 🤪
But wait
That's not how it's done
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?
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.
ahhh... so i'm just loading the container
so globals.GcSettlementGlobals is a type of object
basically the structure without the data
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.
allright
so
var settleGlobals = Mbin<libMBIN.NMS.Globals>("GCSETTLEMENTGLOBALS.MBIN");
should work
That whole command gives you the GcSettlementGlobals object that contains all other info inside of GCSETTLEMENTGLOBALS.MBIN
er... with the other thing
Haha not yet...
var settleGlobals = Mbin<libMBIN.NMS.Globals.GcSettlementGlobals>( "GCSETTLEMENTGLOBALS.MBIN"
);
There you have it.
and that's in my main function
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
oh yeah, i noticed that up top
they pre-shorten the 'using' thing
Yes
using mbin_gl = libMBIN.NMS.Globals;
using mbin_gc = libMBIN.NMS.GameComponents;
using mbin_tk = libMBIN.NMS.Toolkit;```
Yes, you see he calls it mbin_gl right there.
so var settleGlobals = Mbin<mbin_gl.GcSettlementGlobals>( would also work? (truncated for clarity i guess)
lmao relearning C# at long last
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)
Correct
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.
much simpler for sure
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
when would libMBIN.NMS be useful? i haven't seen any use for it myself
Have it ready with improved grammar for 3.68
wooo
cant wait for updates to break things 😂
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.
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;
the horror
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".
four magnificent vectors!
I do using Colour = nms.Colour; inside my namespace.
but yeah will var do it for all data structs or would it be safe to use structs when making data calls
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).
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?
Hey, scratch that on using NMS for libMBIN.NMS, it conflicts with cmk.NMS, built into Mod Builder.
Gotta rethink that one.
This is right.
cool and fun
Ehhhh I'll think of something else probably.
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.
fair fair
i forget how to terminate a foreach
eh im sure i can look it up lol
not that i need it, fortunately
foreach (var thing in things)
{
DoStuff();
}
You just need open and closing braces
oh yeah i got that, no worries
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
nice and clean
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
how do i push var changes to a global then?
you mean to mod SettlementBuildingCosts?
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
and then how would i push that to the global
that has all games you can think
@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;
}
}
}
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
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)
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
@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?
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
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
The script is compiled into an executable, then the script is executed, which means it does the things you designed it to do to the MBINs, and ultimately creates modified versions of those MBINs. The modded MBINs are what ultimately get packed into the final mod.pak file (by MBIN Compiler) and actually change the game.
Some people manually mod MBINs and such
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
like xml patches almost
Similar yeah
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
I mean... this can definitely do that.
you can modify any one thing and touch nothing else if you want
mhm
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...
oh i mean like, for manually editing and compat with other mods
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
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
woo wooooo
Wooo lol
Eucli-ea 3.3.1
Updated with MBINCompiler 3.68.0 pre1
Recategorised objects to make everything show up in menus
Fixed snapping for all objects
Fixed problematic models which caused crashes
https://www.nexusmods.com/nomanssky/mods/367
nice
is this mod still ok to use?https://www.nexusmods.com/nomanssky/mods/1249
no
@hearty wasp I sent him an updated version.
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.
NOOOOO !!!!!! HERESY !!!!!! Mod Builder DOES NOT NEED, DOES NOT WANT, ANY PAK ITEMS TO BE UNPACKED !!!!!!
Part of why it was created was to avoid having to ever unpack pak items to disk again. It unpacks and converts items directly from the source pak files into memory on-demand.
It extracts pak items into memory on-demand. One or more scripts may then modify the same or different pak items. All changed pak items are then re-packed into a new mod pak file and saved into the correct game folder.
that's not a bad idea at all, thank you
On the mod script tab, when you compile it compiles all mod scripts into a single in-memory dll. It then creates instances of each script class from the in-memory dll and calls the Execute method on each.
ohhhh, so you're the fabled kushnir i've heard so much about
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.
Oh... so is it more accurate to say it just loads them (or their locations) but doesn't unpack them unless we want to read them?
(In retrospect it seems obvious that unpack was the wrong word for that first stage because if it were doing that it would presumably take a loooooot longer)...
By default when a script calls Mbin<>() it is the same as if the script called Game.PCBANKS.Mbin<>() i.e. it is getting the object from the game pak items. You could also call Game.MODS.Mbin<>() to extract an item from a mod pak if you wanted to create a patch mod ... but you really have to understand what you are doing, and it's almost always a bad idea.
cool!
cue me just not registering that you're literally the developer of the mod builder
i thought the name was familiar
I told you he would magically show up to correct me.
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 <>.
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?
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.
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...
Each item you view in the PAK Items tab is extracted into memory on-demand - quick like bunny not slow like tortoise.
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.
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.
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?
Yes, for PAK Items tab viewing each item is unpacked and converted (mbin decompiled binary to object, dds converted to bitmap, spv decompiled to text, ...) at the moment you select the item from the breadcrumb control.
Got it. I will do my best to not butcher the explanations as badly in the next video. 😅
"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).
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?
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.
- 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).
- 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).
- 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.
I seeee....
Correct, that would take minutes, not seconds.
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
anyone knows where do I edit the title - to unlock it all with NMSSE?
you're saying only 1 happens at first, and 2 and 3 happen when we read an MBIN file (or something else in gamedata).
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.
Thanks for the clarification. I will fix the video when 3.68 is out. Me now use word more better.
lol
- happens when you load a game instance. Basically indexing all the pak items.
😀
is there an updated version of this mod https://www.nexusmods.com/nomanssky/mods/1191?tab=description
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.
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
Can confirm both still work @formal folio
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
thanks
For S Class Exocraft Engine modules, NoDice sets fuel usage to -15% instead of -20%
¯_(ツ)_/¯
1,404 votes and 60 comments so far on Reddit
If someone can extract dog.dds into a transparent PNG I'll make it a server emoji
https://www.pngjoy.com/pngm/9/283860_funny-dog-with-glasses-png-transparent-png.png
through the magic of reverse image search
It should make all your upgrades roll max stats
Ohhhh
@formal folio i see, I'll fix that, thanks
that's a png with checkerboard background

This is because some maxes need to be set to mins and I missed that one. Thanks for telling me. Will fix it when get home
here's this also
Magical, thanks y'all, I'll pretty up the edging and upload it

in the meantime... i am making a mod that doubles wait timers on buildings
because rome wasn't built in a day
what a sadist


@rapid sandal is there any way to get data to print to compiler console?
Doh, really, I sent a pak that made all min = max. Guess I'll tweak to set min and max = farthest value from 0.
Yeah, I corrected a few of those but missed exocraft stuff
BurstCooldown min = 0.9, max = 0.85
I hardly use Exocraft stuff
Only found 3 where min > max: Weapon_Projectile_BurstCooldown, Ship_Launcher_TakeOffCost, Freighter_Fleet_Fuel
Cool I'll verify when home

nice
I don't think this is sufficient. For stuff like Weapon_Laser_ReloadTime, I'm pretty sure Min what you want, but Min < Max.
Yeah, even the Ship_Launcher_TakeOffCost is odd, min > max only for alien stuff, other stuff its min <= max
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.
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
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
Yeah, I'm just going to switch on the WeightingCurve enum and set approp
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
Make sure to do it for NumStatsMin|NumStatsMax as well
Hmmm
NumStatsMin = 1
NumStatsMax = 2
WeightingCurve GcWeightingCurve
WeightingCurve = WeightingCurveEnum:MaxIsRare
Possible stats are penalties, in which case fewer might be better
I see... never seen penalties on my upgrades
🤷♂️ just sayin'
Valid thing to be sayin, will add
I expect they are all max or none, but may as well be complete
/*
* 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
Mine looks about the same
... I still prefer just setting LuckyWithTech = true
... let's see them do that in lua 🙂
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?
??? example
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.
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.
like would it be best practice to type that or can i get away with just a var
I tend to prefer var where I can use it
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
Ah, but being able to run our own methods at runtime would be the best for modding. Right now we're just config junkies.
just like minecraft modding, imagine that
Very useful, I'll try it. Thanks!
Lmao I use that, too, but I provide alternatives in my public paks. That variable is in my movement mod, though. It's just located very awkwardly.
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
Let me run it on my end
I'm not sure if this is the right place to ask but, will Redmas fantasy mod work with realistc space w/ cruise mode?
apologies, it was human error, all fixed now :]
Great
basically i was compiling to a different folder than my mods folder
Ahhhh
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
ugh I wish they would drop 3.68 lmfao
DUD'S SKY - COLORS updated v3.67.3
(Overhauled custom toxic and barren colors.)
https://www.nexusmods.com/nomanssky/mods/968
Yeah, by default it prompts to save mod paks it creates in the game PCBANKS/MODS/ folder (where they belong), but you can save anywhere. When viewing PAK Items it only looks at mod paks in the PCBANKS/MODS/ folder, no option to have it look elsewhere.
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>
Yeah, most of the 'strings' in libMBIN are wrapper classes that have a string Value field. So try settleGlobals.VykeenProductionElements = new List<libMBIN.NMS.NMSString0x10> ...
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.
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
There are 2 Game: 1) cmk.NMS.Game is a namespace that has classes like cmk.NMS.Game.Data, cmk.NMS.Game.Location, ... 2) Script class has cmk.NMS.Game.Data Game member that has the current game instance data. So generally use Game.* to use the script variable and NMS.Game to access the namespace.
yeah, i noticed that... cheers
So yeah, adding another Game name will probably complicate things 🙂
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
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
I haven't heard of that before. Can you screenshot the ship page from the save editor?
sent you a dm
Redma's Fantasy core?
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
Oh ok thanks
Most likely the 'MaintenanceInteractions' in the Raw JSON data.
Titles are in the 'accountdata', which you will have to edit manually for the main ones, as NMSSE does not have another way of adding those. Keep in mind some titles will have to meet in-game requirements as well. Some expedition titles are present in the list of Season Rewards and can be added through the 'Account' tab
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
If you use the PAK Items tab to view an mbin item and it shows nothing then libMBIN.dll was unable to decompile the mbin. The global ones should all decompile fine for the current game release and latest MBINC.
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.
it threw a 'unable to read beyond end of stream'
Are you viewing the game version or a mod version of the mbin ?
game version
And the app is showing the same versions for everything I listed ? (all visible in statusbar at bottom)
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
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.
i dunno... i havent got an update
Did you restart Mod Builder and reload the Steam game instance ?
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'.
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?
the latter
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
you mustve mentioned it
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
Every star system has 21 different ship designs: 7 shuttle types, 3 ships of each specialist type (Fighter, Hauler, or Explorer), 1 Exotic, and 4 other specialist ships based on that system's dominant race
https://nomanssky.fandom.com/wiki/Starship
oh yeah i read that im just not sure what file that might be configured in
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.
fuuu... i shoulda seen that
im just thinking where npc variants are controlled
bc theres like 5 per system
You mean like pirates and merchants ?
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
I believe they use the same settings I mentioned. All ships in a system pull from that same list.
im not talking about systems im talking about characters
character faces, yknow
theres about 5 different faces for each race in a system
Ah, I was responding to your orig question "where you got the ship variant counts from" ... # of faces is probably in the race descriptor mbin, just like parts for anything that are procedurally put together.
See: MODELS/COMMON/PLAYER/PLAYERCHARACTER/NPCGEK.DESCRIPTOR.MBIN you can see all the diff face parts that are proc selected to gen a given npc
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).
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
Hey, is it possible to change game modes with save editing?
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.
yeah i just tested it
tragically didn't work
i looked for ages around the files and stuff and couldn't find anything
I believe NomNom can do this. I haven't done it.
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
Haha you should post it on Nexus. I'm the opposite player but you may find a niche market on there.
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.
that's an error in the game
"LAND1" is a substance, not product
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```
[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 ?
Check your pcbanks folder, make sure you haven't saved any mods in it.
all clean
My diff shows the error. My view of the game mbin shows it's correct.
I should be on pub
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
They are defined in diff tables.
What is the size of your pcbanks 59B126E2.pak file - it contains the mbin
oh yeah but both are strings and afaik its just pulling items that are then handled differently on the front
er one sec
Mine is 165,815 bytes
bugger, i had turned exp off last week but it's back on now
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
I want to know why my steam switched back to exp
maybe you didnt switch it off? did you get a download after you switched it off
i know i sometimes trip on that lmao
No, I distinctly remember switching off, waiting for rollback, then verifying files.
who knows then... steam is a cruel mistress
So the NMS.exe is the 15th, what libMBIN are you using ?
Thanks, wanted to know if libMBIN 3.68.0.1 worked w/ that older release. I'll update my cmkNMSReleases.txt.
oh yeah it works fine
ive been using it
and she's out
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
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
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
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).
Anybody know of any mods that change the look of the submarine?
What does it turn it into?
So in a lush galaxy where is the best chance of me finding a Volcanic planet?
Im gonna guess cadmium suns, but idrk for sure
