Please note: Only PNG images are supported. Steam will create compressed JPG images by default, which are not supported. You can set Steam to produce uncompressed PNG images in the Steam settings. If using PNG files with Steam, you will also need to configure the screenshot directory that this mod will pull images from. See the mod description for more details.
Hello, I created another folder for steam screenshots to make the ini point to the uncompressed steam screenshots. though the loading screens are still black. I made the ini in the same folder and titled it as you desrcibe. The photos are pngs as well
In my case the ini looks like this, what am i doing wrong do you think?
I put the uncompressed PNGs from Steam version in a folder and did the PhotomodeLoadscreens.ini trick to change the path but it didn't work. So I just put them in <username>\Documents\Control Game\screenshots and that works fine.
Creating the ini and pointing to where the screenshots save (Steam\userdata\mysteamid\760\remote\870780\screenshots) or creating the default path (Documents\Control Game\screenshots) gives a black screen during loading.
I managed to get it to work. The mod only recognizes PNG files, so what I did was go to Steam -> Settings -> In-Game and checked the "Save an Uncompressed Copy" setting. That way, whenever you take a screenshot, Steam will save it as a PNG as well, wherever you designate the screenshot folder to be.
After that I just copied and pasted all the PNGs I wanted to show up as load screens into a separate folder and pointed to it in the mod's ini file.
Hi! First of all, absolutely fantastic work you are doing here in the Control game mods scene! Thank you!
I would like to learn a bit about modding this game, but I only know csharp and c++ is completely foreign for me. Is there a way I could make plugin dll-s like you, but in csharp? I tried to convert your source files to csharp source with https://www.tangiblesoftwaresolutions.com/product_details/cplusplus_to_csharp_converter_details.html but trillions of include-s were missing. Alternatively, by any chance is there a dll patching utility, like harmony for unity?
Hi! Engine-level mods are typically written in the same language that the game is coded or scripted in to ensure interoperability with the game code. Unity-based games are scripted in C#, which is why many Unity games can be modded with C#.
For engine-level modifications to Control, I recommend writing in C++, since that's the language the game was written in.
C# is too high-level a language to work with the game's data structures and you'll find yourself wrangling with unmanaged code in C#, at which point you're better off using C/C++ anyway.
Haha I don't even know where to start. Do you recommend any entry level course that gets me to level where I would understand the basics of engine level modding?
Regarding learning, I would suggest starting off by going through the basics for C. C is a vastly smaller language compared to C++, and is thus easier to pick up.
Most of the time the code that you write for game mods (patching game code, etc.) isn't going to be much like the style of C++ used for professional programming, so an entry-level understanding of C should be sufficient just to work with the code for native mods.
Apart from a general ability to work in C, you will also need an understanding of the Windows API to write to processes' memory space and interact with the underlying OS, for example to read configuration files for your mod.
All in all, starting your native-code modding journey with Control won't be as easy as with some other games, because Control uses a proprietary engine (Northlight) that no other studios use. As such, there are very few resources available about how the engine works and you will have to find out a lot of that yourself.
If you are starting out, I'd actually recommend doing so with a game engine that has been well reverse-engineered already, for example with the Bethesda games like Fallout or Skyrim. For these games, other developers have already charted out some of the game engine's internals and it will be easier to get familiar with the general concept of engine modding with existing, working code.
Was experimenting a bit, and noticed that this mod uses any images in the photomode folder (default location is Documents\Control Game\screenshots), not just the ones you've taken with photomode. The images need to be in .png format though.
Yep! If you want to further curate the images you see, you can also change the folder the mod takes the images from by creating PhotomodeLoadscreens.ini alongside the plugin and placing the following in the file:
20 comments
I'd like to add it to my collection - without the words or loading bar on it.
In my case the ini looks like this, what am i doing wrong do you think?
[PhotomodeLoadscreens]
sPhotosDir = <C:\STEAM_SCREENSHOTS>
<username>\Documents\Control Game\screenshots
and that works fine.
Creating the ini and pointing to where the screenshots save (Steam\userdata\mysteamid\760\remote\870780\screenshots) or creating the default path (Documents\Control Game\screenshots) gives a black screen during loading.
After that I just copied and pasted all the PNGs I wanted to show up as load screens into a separate folder and pointed to it in the mod's ini file.
First of all, absolutely fantastic work you are doing here in the Control game mods scene! Thank you!
I would like to learn a bit about modding this game, but I only know csharp and c++ is completely foreign for me. Is there a way I could make plugin dll-s like you, but in csharp?
I tried to convert your source files to csharp source with
https://www.tangiblesoftwaresolutions.com/product_details/cplusplus_to_csharp_converter_details.html
but trillions of include-s were missing.
Alternatively, by any chance is there a dll patching utility, like harmony for unity?
For engine-level modifications to Control, I recommend writing in C++, since that's the language the game was written in.
C# is too high-level a language to work with the game's data structures and you'll find yourself wrangling with unmanaged code in C#, at which point you're better off using C/C++ anyway.
Most of the time the code that you write for game mods (patching game code, etc.) isn't going to be much like the style of C++ used for professional programming, so an entry-level understanding of C should be sufficient just to work with the code for native mods.
Apart from a general ability to work in C, you will also need an understanding of the Windows API to write to processes' memory space and interact with the underlying OS, for example to read configuration files for your mod.
All in all, starting your native-code modding journey with Control won't be as easy as with some other games, because Control uses a proprietary engine (Northlight) that no other studios use. As such, there are very few resources available about how the engine works and you will have to find out a lot of that yourself.
If you are starting out, I'd actually recommend doing so with a game engine that has been well reverse-engineered already, for example with the Bethesda games like Fallout or Skyrim. For these games, other developers have already charted out some of the game engine's internals and it will be easier to get familiar with the general concept of engine modding with existing, working code.
PhotomodeLoadscreens.ini
alongside the plugin and placing the following in the file:[PhotomodeLoadscreens]
sPhotosDir = <Your Photo Folder Here>