├── .gitattributes
├── .gitignore
├── DeepMineMod.sln
├── DeepMineMod
├── DeepMineMod.csproj
├── DeepMinePlugin.cs
└── Patches.cs
└── README.md
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.rsuser
8 | *.suo
9 | *.user
10 | *.userosscache
11 | *.sln.docstates
12 |
13 | # User-specific files (MonoDevelop/Xamarin Studio)
14 | *.userprefs
15 |
16 | *.dll
17 |
18 | # Mono auto generated files
19 | mono_crash.*
20 |
21 | # Build results
22 | [Dd]ebug/
23 | [Dd]ebugPublic/
24 | [Rr]elease/
25 | [Rr]eleases/
26 | x64/
27 | x86/
28 | [Aa][Rr][Mm]/
29 | [Aa][Rr][Mm]64/
30 | bld/
31 | [Bb]in/
32 | [Oo]bj/
33 | [Ll]og/
34 | [Ll]ogs/
35 |
36 | # Visual Studio 2015/2017 cache/options directory
37 | .vs/
38 | # Uncomment if you have tasks that create the project's static files in wwwroot
39 | #wwwroot/
40 |
41 | # Visual Studio 2017 auto generated files
42 | Generated\ Files/
43 |
44 | # MSTest test Results
45 | [Tt]est[Rr]esult*/
46 | [Bb]uild[Ll]og.*
47 |
48 | # NUnit
49 | *.VisualState.xml
50 | TestResult.xml
51 | nunit-*.xml
52 |
53 | # Build Results of an ATL Project
54 | [Dd]ebugPS/
55 | [Rr]eleasePS/
56 | dlldata.c
57 |
58 | # Benchmark Results
59 | BenchmarkDotNet.Artifacts/
60 |
61 | # .NET Core
62 | project.lock.json
63 | project.fragment.lock.json
64 | artifacts/
65 |
66 | # StyleCop
67 | StyleCopReport.xml
68 |
69 | # Files built by Visual Studio
70 | *_i.c
71 | *_p.c
72 | *_h.h
73 | *.ilk
74 | *.meta
75 | *.obj
76 | *.iobj
77 | *.pch
78 | *.pdb
79 | *.ipdb
80 | *.pgc
81 | *.pgd
82 | *.rsp
83 | *.sbr
84 | *.tlb
85 | *.tli
86 | *.tlh
87 | *.tmp
88 | *.tmp_proj
89 | *_wpftmp.csproj
90 | *.log
91 | *.vspscc
92 | *.vssscc
93 | .builds
94 | *.pidb
95 | *.svclog
96 | *.scc
97 |
98 | # Chutzpah Test files
99 | _Chutzpah*
100 |
101 | # Visual C++ cache files
102 | ipch/
103 | *.aps
104 | *.ncb
105 | *.opendb
106 | *.opensdf
107 | *.sdf
108 | *.cachefile
109 | *.VC.db
110 | *.VC.VC.opendb
111 |
112 | # Visual Studio profiler
113 | *.psess
114 | *.vsp
115 | *.vspx
116 | *.sap
117 |
118 | # Visual Studio Trace Files
119 | *.e2e
120 |
121 | # TFS 2012 Local Workspace
122 | $tf/
123 |
124 | # Guidance Automation Toolkit
125 | *.gpState
126 |
127 | # ReSharper is a .NET coding add-in
128 | _ReSharper*/
129 | *.[Rr]e[Ss]harper
130 | *.DotSettings.user
131 |
132 | # JustCode is a .NET coding add-in
133 | .JustCode
134 |
135 | # TeamCity is a build add-in
136 | _TeamCity*
137 |
138 | # DotCover is a Code Coverage Tool
139 | *.dotCover
140 |
141 | # AxoCover is a Code Coverage Tool
142 | .axoCover/*
143 | !.axoCover/settings.json
144 |
145 | # Visual Studio code coverage results
146 | *.coverage
147 | *.coveragexml
148 |
149 | # NCrunch
150 | _NCrunch_*
151 | .*crunch*.local.xml
152 | nCrunchTemp_*
153 |
154 | # MightyMoose
155 | *.mm.*
156 | AutoTest.Net/
157 |
158 | # Web workbench (sass)
159 | .sass-cache/
160 |
161 | # Installshield output folder
162 | [Ee]xpress/
163 |
164 | # DocProject is a documentation generator add-in
165 | DocProject/buildhelp/
166 | DocProject/Help/*.HxT
167 | DocProject/Help/*.HxC
168 | DocProject/Help/*.hhc
169 | DocProject/Help/*.hhk
170 | DocProject/Help/*.hhp
171 | DocProject/Help/Html2
172 | DocProject/Help/html
173 |
174 | # Click-Once directory
175 | publish/
176 |
177 | # Publish Web Output
178 | *.[Pp]ublish.xml
179 | *.azurePubxml
180 | # Note: Comment the next line if you want to checkin your web deploy settings,
181 | # but database connection strings (with potential passwords) will be unencrypted
182 | *.pubxml
183 | *.publishproj
184 |
185 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
186 | # checkin your Azure Web App publish settings, but sensitive information contained
187 | # in these scripts will be unencrypted
188 | PublishScripts/
189 |
190 | # NuGet Packages
191 | *.nupkg
192 | # NuGet Symbol Packages
193 | *.snupkg
194 | # The packages folder can be ignored because of Package Restore
195 | **/[Pp]ackages/*
196 | # except build/, which is used as an MSBuild target.
197 | !**/[Pp]ackages/build/
198 | # Uncomment if necessary however generally it will be regenerated when needed
199 | #!**/[Pp]ackages/repositories.config
200 | # NuGet v3's project.json files produces more ignorable files
201 | *.nuget.props
202 | *.nuget.targets
203 |
204 | # Microsoft Azure Build Output
205 | csx/
206 | *.build.csdef
207 |
208 | # Microsoft Azure Emulator
209 | ecf/
210 | rcf/
211 |
212 | # Windows Store app package directories and files
213 | AppPackages/
214 | BundleArtifacts/
215 | Package.StoreAssociation.xml
216 | _pkginfo.txt
217 | *.appx
218 | *.appxbundle
219 | *.appxupload
220 |
221 | # Visual Studio cache files
222 | # files ending in .cache can be ignored
223 | *.[Cc]ache
224 | # but keep track of directories ending in .cache
225 | !?*.[Cc]ache/
226 |
227 | # Others
228 | ClientBin/
229 | ~$*
230 | *~
231 | *.dbmdl
232 | *.dbproj.schemaview
233 | *.jfm
234 | *.pfx
235 | *.publishsettings
236 | orleans.codegen.cs
237 |
238 | # Including strong name files can present a security risk
239 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
240 | #*.snk
241 |
242 | # Since there are multiple workflows, uncomment next line to ignore bower_components
243 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
244 | #bower_components/
245 |
246 | # RIA/Silverlight projects
247 | Generated_Code/
248 |
249 | # Backup & report files from converting an old project file
250 | # to a newer Visual Studio version. Backup files are not needed,
251 | # because we have git ;-)
252 | _UpgradeReport_Files/
253 | Backup*/
254 | UpgradeLog*.XML
255 | UpgradeLog*.htm
256 | ServiceFabricBackup/
257 | *.rptproj.bak
258 |
259 | # SQL Server files
260 | *.mdf
261 | *.ldf
262 | *.ndf
263 |
264 | # Business Intelligence projects
265 | *.rdl.data
266 | *.bim.layout
267 | *.bim_*.settings
268 | *.rptproj.rsuser
269 | *- [Bb]ackup.rdl
270 | *- [Bb]ackup ([0-9]).rdl
271 | *- [Bb]ackup ([0-9][0-9]).rdl
272 |
273 | # Microsoft Fakes
274 | FakesAssemblies/
275 |
276 | # GhostDoc plugin setting file
277 | *.GhostDoc.xml
278 |
279 | # Node.js Tools for Visual Studio
280 | .ntvs_analysis.dat
281 | node_modules/
282 |
283 | # Visual Studio 6 build log
284 | *.plg
285 |
286 | # Visual Studio 6 workspace options file
287 | *.opt
288 |
289 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
290 | *.vbw
291 |
292 | # Visual Studio LightSwitch build output
293 | **/*.HTMLClient/GeneratedArtifacts
294 | **/*.DesktopClient/GeneratedArtifacts
295 | **/*.DesktopClient/ModelManifest.xml
296 | **/*.Server/GeneratedArtifacts
297 | **/*.Server/ModelManifest.xml
298 | _Pvt_Extensions
299 |
300 | # Paket dependency manager
301 | .paket/paket.exe
302 | paket-files/
303 |
304 | # FAKE - F# Make
305 | .fake/
306 |
307 | # CodeRush personal settings
308 | .cr/personal
309 |
310 | # Python Tools for Visual Studio (PTVS)
311 | __pycache__/
312 | *.pyc
313 |
314 | # Cake - Uncomment if you are using it
315 | # tools/**
316 | # !tools/packages.config
317 |
318 | # Tabs Studio
319 | *.tss
320 |
321 | # Telerik's JustMock configuration file
322 | *.jmconfig
323 |
324 | # BizTalk build output
325 | *.btp.cs
326 | *.btm.cs
327 | *.odx.cs
328 | *.xsd.cs
329 |
330 | # OpenCover UI analysis results
331 | OpenCover/
332 |
333 | # Azure Stream Analytics local run output
334 | ASALocalRun/
335 |
336 | # MSBuild Binary and Structured Log
337 | *.binlog
338 |
339 | # NVidia Nsight GPU debugger configuration file
340 | *.nvuser
341 |
342 | # MFractors (Xamarin productivity tool) working folder
343 | .mfractor/
344 |
345 | # Local History for Visual Studio
346 | .localhistory/
347 |
348 | # BeatPulse healthcheck temp database
349 | healthchecksdb
350 |
351 | # Backup folder for Package Reference Convert tool in Visual Studio 2017
352 | MigrationBackup/
353 |
354 | # Ionide (cross platform F# VS Code tools) working folder
355 | .ionide/
356 | DeepMineMod/AssetExporter.cs
357 |
--------------------------------------------------------------------------------
/DeepMineMod.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.28307.1062
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DeepMineMod", "DeepMineMod\DeepMineMod.csproj", "{206F0A6F-5554-4CD2-825A-5873B673B468}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Debug-Deploy|Any CPU = Debug-Deploy|Any CPU
12 | Release|Any CPU = Release|Any CPU
13 | EndGlobalSection
14 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
15 | {206F0A6F-5554-4CD2-825A-5873B673B468}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
16 | {206F0A6F-5554-4CD2-825A-5873B673B468}.Debug|Any CPU.Build.0 = Debug|Any CPU
17 | {206F0A6F-5554-4CD2-825A-5873B673B468}.Debug-Deploy|Any CPU.ActiveCfg = Debug-Deploy|Any CPU
18 | {206F0A6F-5554-4CD2-825A-5873B673B468}.Debug-Deploy|Any CPU.Build.0 = Debug-Deploy|Any CPU
19 | {206F0A6F-5554-4CD2-825A-5873B673B468}.Release|Any CPU.ActiveCfg = Release|Any CPU
20 | {206F0A6F-5554-4CD2-825A-5873B673B468}.Release|Any CPU.Build.0 = Release|Any CPU
21 | EndGlobalSection
22 | GlobalSection(SolutionProperties) = preSolution
23 | HideSolutionNode = FALSE
24 | EndGlobalSection
25 | GlobalSection(ExtensibilityGlobals) = postSolution
26 | SolutionGuid = {0B43C750-3989-4CF9-8C44-816111BA0420}
27 | EndGlobalSection
28 | EndGlobal
29 |
--------------------------------------------------------------------------------
/DeepMineMod/DeepMineMod.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | netstandard2.0
6 | Debug;Release;Debug-Deploy
7 |
8 |
9 |
10 |
11 | Libs\0Harmony.dll
12 |
13 |
14 | Libs\Assembly-CSharp.dll
15 |
16 |
17 | Libs\BepInEx.dll
18 |
19 |
20 | Libs\BepInEx.Harmony.dll
21 |
22 |
23 | Libs\UnityEngine.dll
24 |
25 |
26 | Libs\UnityEngine.CoreModule.dll
27 |
28 |
29 | Libs\UnityEngine.ImageConversionModule.dll
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/DeepMineMod/DeepMinePlugin.cs:
--------------------------------------------------------------------------------
1 | using BepInEx;
2 | using HarmonyLib;
3 | using BepInEx.Configuration;
4 |
5 | namespace DeepMineMod
6 | {
7 | [BepInPlugin("com.dl.deepmine", "Deep Mine Mod", "0.2.2.0")]
8 | public class DeepMinePlugin : BaseUnityPlugin
9 | {
10 | private ConfigEntry configBedrockDepth;
11 | private ConfigEntry configGPRRange;
12 | private ConfigEntry configOreStackSize;
13 | private ConfigEntry configMineCompletionTime;
14 | private ConfigEntry configMineAmount;
15 |
16 | public static float BedrockDepth;
17 | public static int GPRRange;
18 | public static int OreStackSize;
19 | public static float MineCompletionTime;
20 | public static float MineAmount;
21 |
22 | public static void ModLog(string text)
23 | {
24 | UnityEngine.Debug.Log("[Deep Mine Mod]: " + text);
25 | }
26 |
27 | // Awake is called once when both the game and the plug-in are loaded
28 | void Awake()
29 | {
30 | HandleConfig();
31 |
32 | ModLog("Successfully loaded Deep Mine Mod");
33 | ModLog("Attempting to patch");
34 | var harmony = new Harmony("com.dl.deepmine");
35 | harmony.PatchAll();
36 | ModLog("Patched");
37 | }
38 |
39 | void HandleConfig()
40 | {
41 | configBedrockDepth = Config.Bind("General", // The section under which the option is shown
42 | "BedrockDepth", // The key of the configuration option in the configuration file
43 | -160f, // The default value
44 | "The depth of the bedrock layer, vanilla is -40"); // Description of the option to show in the config file
45 |
46 | BedrockDepth = configBedrockDepth.Value;
47 |
48 | configGPRRange = Config.Bind("General", // The section under which the option is shown
49 | "GPRRange", // The key of the configuration option in the configuration file
50 | 40, // The default value
51 | "The range of the portable ground penetrating radar (GPR), vanilla is 20 "); // Description of the option to show in the config file
52 |
53 | GPRRange = configGPRRange.Value;
54 |
55 | configOreStackSize = Config.Bind("General", // The section under which the option is shown
56 | "OreStackSize", // The key of the configuration option in the configuration file
57 | 100, // The default value
58 | "The maximum amount of ore to be stacked in the inventory, vanilla is 50"); // Description of the option to show in the config file
59 |
60 | OreStackSize = configOreStackSize.Value;
61 |
62 |
63 | configMineCompletionTime = Config.Bind("Mining Tool", // The section under which the option is shown
64 | "MineCompletionTime", // The key of the configuration option in the configuration file
65 | 0.12f, // The default value
66 | "Time to complete mining when using the tool. Smaller is faster drilling. Vanilla is 0.12"); // Description of the option to show in the config file
67 |
68 | MineCompletionTime = configMineCompletionTime.Value;
69 |
70 | configMineAmount = Config.Bind("Mining Tool", // The section under which the option is shown
71 | "MineAmount", // The key of the configuration option in the configuration file
72 | 0.3f, // The default value
73 | "How much of the voxel to mine at a time. Larger is faster drilling. Vanilla is 0.2"); // Description of the option to show in the config file
74 |
75 | MineAmount = configMineAmount.Value;
76 | }
77 |
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/DeepMineMod/Patches.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Assets.Scripts;
3 | using Assets.Scripts.Voxel;
4 | using HarmonyLib;
5 |
6 | using System.Reflection;
7 | using System.Collections.Generic;
8 | using UnityEngine;
9 |
10 | using Assets.Scripts.Objects.Items;
11 | using Assets.Scripts.Objects;
12 |
13 | namespace DeepMineMod
14 | {
15 |
16 | ///
17 | /// Alter ore drop quantities based on their world position
18 | ///
19 | [HarmonyPatch(typeof(Minables), MethodType.Constructor, new Type[] { typeof(Minables), typeof(Vector3), typeof(Asteroid)})]
20 | public class Minables_Constructor
21 | {
22 | static void Postfix(Minables __instance, Minables masterInstance, Vector3 position, Asteroid parentAsteroid)
23 | {
24 |
25 | if(position.y > -10)
26 | {
27 | __instance.MinDropQuantity = 0;
28 | __instance.MaxDropQuantity = 1;
29 | }
30 | else if(position.y > -30)
31 | {
32 | __instance.MinDropQuantity = 2;
33 | __instance.MaxDropQuantity = 7;
34 | }
35 |
36 | else if (position.y > -60)
37 | {
38 | __instance.MinDropQuantity = 10;
39 | __instance.MaxDropQuantity = 20;
40 | }
41 | else if (position.y > -90)
42 | {
43 | __instance.MinDropQuantity = 10;
44 | __instance.MaxDropQuantity = 30;
45 | }
46 | else
47 | {
48 | __instance.MinDropQuantity = 20;
49 | __instance.MaxDropQuantity = 40;
50 | }
51 | }
52 | }
53 |
54 | ///
55 | /// Alter ore max stack size
56 | ///
57 | [HarmonyPatch(typeof(Prefab), "LoadCorePrefabs")]
58 | public class Prefab_LoadCorePrefabs
59 | {
60 | static void Postfix()
61 | {
62 | foreach (var orePrefab in Ore.AllOrePrefabs) {
63 | orePrefab.MaxQuantity = DeepMinePlugin.OreStackSize;
64 | }
65 | }
66 |
67 | }
68 |
69 | ///
70 | /// Placeholder for larger mining tools
71 | ///
72 | [HarmonyPatch(typeof(CursorVoxel), MethodType.Constructor)]
73 | public class CursorVoxel_Constructor
74 | {
75 | static void Postfix(CursorVoxel __instance)
76 | {
77 | Type typeBoxCollider = __instance.GameObject.GetComponent("BoxCollider").GetType();
78 | PropertyInfo prop = typeBoxCollider.GetProperty("size");
79 | }
80 | }
81 |
82 | ///
83 | /// Prevents lava bedrock texture from spawning, potentially has insidious effect but unclear from initial tests
84 | ///
85 | [HarmonyPatch(typeof(TerrainGeneration), "SetUpChunk", new Type[] { typeof(ChunkObject) })]
86 | public class TerrainGeneration_SetUpChunk
87 | {
88 | static void Postfix(TerrainGeneration __instance, ref ChunkObject chunk)
89 | {
90 | chunk.MeshRenderer.sharedMaterial.SetVector("_WorldOrigin", WorldManager.OriginPositionLoading + new Vector3(0, 150, 0));
91 | }
92 | }
93 |
94 | ///
95 | /// Increase the bedrock level
96 | ///
97 | [HarmonyPatch(typeof(TerrainGeneration), "BuildAsteroidsStream", new Type[] { typeof(Vector3), typeof(int), typeof(int), typeof(bool) })]
98 | public class WorldManager_SetWorldEnvironments
99 | {
100 | static FieldInfo SizeOfWorld = AccessTools.Field(typeof(WorldManager), "SizeOfWorld");
101 | static FieldInfo HalfSizeOfWorld = AccessTools.Field(typeof(WorldManager), "HalfSizeOfWorld");
102 | static FieldInfo BedrockLevel = AccessTools.Field(typeof(WorldManager), "BedrockLevel");
103 |
104 | static void Prefix(TerrainGeneration __instance)
105 | {
106 | WorldManager.BedrockLevel = DeepMinePlugin.BedrockDepth;
107 | WorldManager.LavaLevel = DeepMinePlugin.BedrockDepth;
108 | }
109 | }
110 |
111 | ///
112 | /// Enforcing new bedrock level during the world creation process
113 | ///
114 | [HarmonyPatch(typeof(Asteroid), "GenerateChunk", new Type[] { typeof(IReadOnlyCollection), typeof(uint), typeof(bool) })]
115 | public class Asteroid_GenerateChunk
116 | {
117 | static void Prefix(Asteroid __instance)
118 | {
119 | WorldManager.BedrockLevel = DeepMinePlugin.BedrockDepth;
120 | }
121 | }
122 |
123 | ///
124 | /// Increasing drill speed
125 | ///
126 | [HarmonyPatch(typeof(MiningDrill), "Awake")]
127 | public class MiningDrill_Awake
128 | {
129 | static void Prefix(MiningDrill __instance)
130 | {
131 | __instance.MineCompletionTime = DeepMinePlugin.MineCompletionTime;
132 | __instance.MineAmount = DeepMinePlugin.MineAmount;
133 | }
134 | }
135 |
136 | ///
137 | /// Alter GPR Range
138 | ///
139 | [HarmonyPatch(typeof(PortableGPR), "Awake")]
140 | public class PortableGPR_Awake
141 | {
142 | static void Prefix(PortableGPR __instance)
143 | {
144 | __instance.Resolution = DeepMinePlugin.GPRRange;
145 | }
146 | }
147 | }
148 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # deepmine
2 | [](https://discord.gg/PAcMZfPH) [](https://github.com/daniellovell/deepmine/releases/latest) [](https://github.com/daniellovell/deepmine/commits/main) [](http://makeapullrequest.com)
3 |
4 | 
5 |
6 | The goal of the mod is to enhance sub-surface gameplay and make it worthwhile to build structures and explore deep below the surface. Personally I find the surface (placer) mining mechanic of the game to be the weakest gameplay loop in an otherwise amazing game. I'm striving to make mining in Stationeers a more enjoyable experience :-)
7 |
8 | I want to emphasize this mod is very very raw. An alpha version of sorts. I'm hoping to get some feedback from the community on balancing and requested features!
9 |
10 | ### Features
11 |
12 | Completed features
13 | - :heavy_check_mark: Lowered bedrock depth - default 4x deeper than vanilla (configurable)
14 | - :heavy_check_mark: No more lava/bedrock texture at unrealistic depths
15 | - :heavy_check_mark: Increasing ore yields the deeper you go
16 | - :heavy_check_mark: Faster drilling speeds (configurable)
17 | - :heavy_check_mark: Doubled GPR (ground penetrating radar) scan radius (configurable)
18 | - :heavy_check_mark: Increased ore stack size to 100 (configurable)
19 |
20 | Planned features
21 | - :small_orange_diamond: Increasing vein size/frequency at deeper depths (conversely, sparse veins at the surface)
22 | - :small_orange_diamond: More mining drill tiers. Including tools with larger mining radius.
23 | - :small_orange_diamond: Threats and dangers below the surface. Gas pockets, and various pressure/temperature
24 |
25 | ### Compatibility
26 |
27 | #### With existing saves
28 | - As of version v0.1.0, this mod is compatible with existing saves and will not corrupt them when you install the mod. When uninstalling the mod, note that any items/structures below the bedrock depth will be deleted by Stationeers.
29 |
30 | #### With other mods
31 | - Not sure about this one, but I'd be hesitant to run this mod with any other terrain generation/ore rebalancing mods.
32 |
33 | ### Installation
34 |
35 | 0. Download the latest release of Deep Mine https://github.com/daniellovell/deepmine/releases/latest
36 | For the latest pre-release (typically for the beta branch of Stationeers) check here: https://github.com/daniellovell/deepmine/releases
37 | 2. Install BepInEx to your Stationeers folder in Program Files (x86) https://github.com/BepInEx/BepInEx/releases
38 | 3. Run Stationeers once to complete the BepInEx installation
39 | 4. Install ``DeepMineMod.dll`` to the Stationeers/BepInEx/plugins folder
40 | 5. Run Stationeers once to generate the config file
41 | 6. Change the config to your liking in /Stationeers/BepInEx/config/com.dl.deepmine.cfg
42 |
43 | ### Contributions
44 |
45 | - I'm reaching out to any modders who are interested in the project. If you have any experience with BepInex + Harmony patching, and especially use of Harmony Transpiler, please DM me :-)
46 |
--------------------------------------------------------------------------------