Stationeers – A guide to having nearly Limitless construction

Stationeers – A guide to having nearly Limitless construction 22 - steamlists.com
Stationeers – A guide to having nearly Limitless construction 22 - steamlists.com
This is a guide on how to disable most of the collision constraints in Stationeers and expand your ability to build onto a whole new level.
When you are done, build like nobody else!

 
 

Introduction

Please help improve this guide with your feedback with tips, tricks, comments and suggestions! 
 
Some of what is in this guide will allow you to build structures like water coolers, bridges, and so much more by editing the Assembly-CSharp file for Stationeers and breaking the construction constraints. 
 
Some of what is in this guide will not be easy for beginners, and can and will likely lead to much frustration, This also has the potential for Stationeers to crash on startup when some of what is discussed here is done wrong. Do not attempt this if you make mistakes that you cannot fix.  
 
Warning! This guide is a long one to read. 
There will be a lot of text, pictures, and terms that you might not understand, so go into this with an open mind. 
 
See the list of prerequisites and recommendations below for more details and what you will need. 
 
 
 

Prerequisites / what you will need.

This is a list of what you will need to make some of the changes to the assembly file. 
 
*Required 

  • A computer that has Stationeers installed on it.*
  • Patience (recommended)
  • Ideas on what you can build.

 
*Note 
The file Assembly-CSharp will have the changes undone if you switch to a different version of Stationeers, have an update, or replace the file. 
I am not responsible for any issues that occur with your game. If done right, changing the assembly should take less then half an hour from start to finish. 
 
Now for the meat and cheese, lets get started! 
 
 
 

Starting out with dnSpy – Getting everything set up

The first thing to do after installing dnSpy is to load the assemblies for Stationeers into the application. 
 
Before loading the assemblies into the editor. 
Stationeers - A guide to having nearly Limitless construction 
 
The next thing you need to do is select the assembly file that you want to import into dnSpy. 
The assembly file is in the following directory: 
C:\ProgramFiles(x86)\Steam\steamapps\common\Stationeers\rocketstation_Data\Managed 
Stationeers - A guide to having nearly Limitless construction 
 
Stationeers - A guide to having nearly Limitless construction 
 
After selecting the file Assembly-CSharp, you want to show all of the namespaces that are in yellow and look for the namespace Assets.Scripts.Objects along with the classes Structure and SmallGrid 
Stationeers - A guide to having nearly Limitless construction 
 
For this guide, we are going to start with Structures and then move on to SmallGrid before finishing up. 
 
 
 

Breaking the Structures collision checks

In this section, we are going to edit two things. 

  • Awake() : Void

and 

  • CanConstruct() : Bool

 
 

Awake() : void

 
To the method Awake(), you will want to do the following: 
 
1. Right click on the line for Awake and click ‘Edit Method (C#)…’ (This opens the decompiled code so that you can edit it in another window. 
Stationeers - A guide to having nearly Limitless construction 
 
2. Open the decompiled code and add the following lines after line 29. 
this.RotationAxis = RotationAxis.All; 
this.AllowedRotations = AllowedRotations.All;
 
 
This is what breaks the rotation limits and allows anything to be rotated in all six directions in-game. 
Then click compile. 
Stationeers - A guide to having nearly Limitless construction 
 
3. If you get the following errors for: 
Stationeers - A guide to having nearly Limitless construction 
 
4. Double click on the line section on the far right and you will go straight to the line. 
Remove it. It will then not cause issues any longer. 
Stationeers - A guide to having nearly Limitless construction 
 
5. Ignore the warnings that are in yellow after it. 
Stationeers - A guide to having nearly Limitless construction 
 
5. Then repeat the process several more times. 
 
6. When you are done debugging. Compile the code. 
 
We are now done with Awake()
Next up is CanConstruct() 
 

CanConstruct()

 
1. Right click on the line for CanConstruct() and click ‘Edit Method (C#)…’ (This opens the decompiled code so that you can edit it in another window. 
Stationeers - A guide to having nearly Limitless construction 
 
2. We will be replacing everything after line 13 with the following: 

// Token: 0x02000843 RID: 2115 
public partial class Structure : Thing 

// Token: 0x06003504 RID: 13572 RVA: 0x0000E889 File Offset: 0x0000CA89 
public virtual bool CanConstruct() 

return true; 


}
 
Stationeers - A guide to having nearly Limitless construction 
 
3. After you are done editing the code, repeat steps 3 to 6 (mentioned in Awake() void
You are now done editing CanConstruct(). Make sure to save Awake() and CanConstruct individually, otherwise it will save everything that you did and break the game. 
 
Stationeers - A guide to having nearly Limitless construction 
 
Stationeers - A guide to having nearly Limitless construction 
 
When you save the changes, they will be saved to the Assembly-CSharp file for Stationeers. 
For CanConstructCell() just repeat all of the steps for CanConstruct 
 
The next section will be for the class SmallGrid where we will be editing the collision placements for mounted devices. 
 
 
 

Breaking SmallGrid collision checks

For this section, we will be breaking 4 things on the small grid scale as follows: 

  • CanConstruct
  • HasFrameBelow
  • HasVoxelBelow
  • _IsCollision

 
For CanConstruct(), it is similar but has some additional steps. 
Next up is CanConstruct() 
 

CanConstruct()

 
1. Right click on the line for CanConstruct() and click ‘Edit Method (C#)…’ (This opens the decompiled code so that you can edit it in another window. 
Stationeers - A guide to having nearly Limitless construction 
 
2. We will be replacing everything after line 10 with the following: 

// Token: 0x02000832 RID: 2098 
public partial class SmallGrid : Structure 

// Token: 0x0600346D RID: 13421 RVA: 0x0001DE96 File Offset: 0x0001C096 
protected virtual bool _IsCollision(SmallGrid smallGrid) 

return false; 


}
 
Stationeers - A guide to having nearly Limitless construction 
 
3. After you are done editing the code, you need to remove the following lines that will cause these issues: 
Stationeers - A guide to having nearly Limitless construction 
 
4. These are the lines that need to go 
 
Stationeers - A guide to having nearly Limitless construction 
 
When you are done removing it, it should compile just fine. You will have to repeat this step for everything changed in this class. 
 

HasFrameBelow()

 
This check sees if there are frames below your lockers when placing them. Setting this to return true says that you always have a frame below you locker. 
 
1. Right click on the line for HasFrameBelow() and click ‘Edit Method (C#)…’ (This opens the decompiled code so that you can edit it in another window. 
 
2. Replace everything after line 10 with the following code: 

// Token: 0x02000832 RID: 2098 
public partial class SmallGrid : Structure 

// Token: 0x0600345B RID: 13403 RVA: 0x0000E889 File Offset: 0x0000CA89 
public virtual bool HasFrameBelow(float upOffset = 0f) 

return true; 


}
Stationeers - A guide to having nearly Limitless construction 
 
3. Debug the code like how it was done in CanConstruct() and then compile it. That is it for HasFrameBelow() 
 

HasVoxelBelow()

 
Editing this will be very easily done as it is very similar to the section above. 
 
1. Right click on the line for HasVoxelBelow() and click ‘Edit Method (C#)…’ (This opens the decompiled code so that you can edit it in another window. 
 
2. Replace everything after line 10 with the following code: 

// Token: 0x02000832 RID: 2098 
public partial class SmallGrid : Structure 

// Token: 0x0600345C RID: 13404 RVA: 0x0000E889 File Offset: 0x0000CA89 
public virtual bool HasVoxelBelow() 

return true; 


}
Stationeers - A guide to having nearly Limitless construction 
 
3. Debug the code like how it was done in CanConstruct() and then compile it. That is it for HasVoxelBelow() 
 

_IsCollision

 
In this last section. You will be disabling the check that sees if a space is occupied by another small grid device such as a cable or a sign. This will allow you to things like signs above levers or buttons in the same space. That will allow you to have buttons with labels right around it. 
 
1. Right click on the line for IsCollision and click ‘Edit Method (C#)…’ (This opens the decompiled code so that you can edit it in another window. 
 
2. Replace everything after line 10 with the following code: 

// Token: 0x02000832 RID: 2098 
public partial class SmallGrid : Structure 

// Token: 0x0600346D RID: 13421 
protected virtual bool _IsCollision(SmallGrid smallGrid) 

return false; 

}}
Stationeers - A guide to having nearly Limitless construction 
 
3. Debug the code like how it was done in CanConstruct() and then compile it. That is it for _IsCollision 
 
Now there is no more collision checks for devices in the same space. 
 

Make sure to save each individually!

 
You are now done editing everything for SmallGrid. Make sure to save CanConstruct(), HasFrameBelow(), HasVoxelBelow and _IsCollision individually, otherwise it will save everything that you did and break the game. 
 
Stationeers - A guide to having nearly Limitless construction 
 
Stationeers - A guide to having nearly Limitless construction 
 
 
 

In Conclusion

Congratulations! You have read through everything (should have) and have since broken the rotations. I will state that this guide will be expanded in the the future when I find out how to break the IsMountable() : bool and truly put anything anywhere and learn how some other functions work regarding construction. 
 
If all the modifications were done right, you should now be able to do the following when you load your world: 

  • Rotate everything in six axis! No more rotation limits!
  • Place anything anywhere! No more red highlights for frames, doors, walls, and other structures.
  • Place signs on top of buttons on walls. Have really good labels for you self destruct buttons!
  • Build as many water coolers as you want!

Stationeers - A guide to having nearly Limitless construction 
 
Besides that, you can now build your very own office or city, depending on what you think you can build (or when the game makes you stop with the fps decrease). 
 
Stationeers - A guide to having nearly Limitless construction 
 
At some point I will make a mod for no construction rules that can be downloaded from GitHub. I just need learn Harmony and how code injections. 
 
I will leave one ask. Please help improve this guide with your feedback with tips, tricks, comments and suggestions. It might have taken you 30 minutes to an hour to do these modifications and read this guide, but it took me about 5 hours to write this piece. I hope you all enjoy it! 
 
All in all, 
Thank you and enjoy this guide! 
 
~Sphizaan 
 

Written by Sphizaan

This is all about Stationeers – A guide to having nearly Limitless construction; I hope you enjoy reading the Guide! If you feel like we should add more information or we forget/mistake, please let us know via commenting below, and thanks! See you soon!
 
 
 
 


1 Comment

  1. Replace CanMountOnWall with

    public override Structure.CanMountResult CanMountOnWall()
    {
    return new Structure.CanMountResult{ result = Structure.WallMountResult.Valid };
    }

    then you can place small grid stuff on Block Edges

Leave a Reply

Your email address will not be published.


*