Creating a new map: Basics - naelstrof/ChurnVectorSDK GitHub Wiki
If you are having problems, checking your unity player log will give you the output from the game, this can be found in AppData\LocalLow\ArchivalEugeneNaelstrof\ChurnVector and is critical to finding problems that work in editor but not ingame
Basic concepts in mapping for CV
Before you make a map its important to understand a few things about how a map is structured in Churn Vector. To start with lets use the example scene as it already has the basic elements of a working map included in it.
Note that there is a lot more you can do with maps including objectives, cutscenes and even custom animations on sex/needs stations. See the wiki home page to see a list of possible topics we've written about so far!
Need stations
"Need station" is a script component that we use to denote anything that can be interacted with by either the player or an NPC. A simple example of this being used is the "Button Station" prefab in the example map.
Needs stations have a bunch of settings we can use but for this basic guide lets just focus on two things. Firstly the "Escape" checkbox will allow the player to leave the map by interacting with this. Secondly by setting Valid Groups, this will allow NPC's in those groups to use this station (but not escape, there is no escape for NPCs.....)
For more advanced use please see the Need Stations page
Character loaders
There should be two of these in the example scene, both prefabs have a Character Loader script attached to them which contain the config for what kind of character we want to appear at this loader when the scene is loaded.
Check them both to see the differences between a player loader and an NPC loader (You should be able to leave the player loader as is for your map)
The important part of these loaders are the StartingAction when the loader is spawning an NPC (these dictate behaviour) and the override groups.
The "OverrideGroups" list is used to tell a character what group they belong to and thus, what things they can interact with.
The "Override Use By Groups" is a group list that will make this NPC a valid target for a predator NPC to consume who is in a group listed here.
Layers and Static flags
Please see HERE on how to configure your props and map geo, getting this wrong will result in way longer light baking times.
Lighting + Sky and Fog Volume
Lighting in itself is a large topic, to get your map looking like the base CV maps please see this extended page HERE
Localisation
Uploading your mod map
To actually build and upload your mod you need 3 new assets, the Level, Level Category and Mod Profile. All of these can be created via the data category in the create menu. (right click your project window)
Ensure you have some strings set up for these, you will need a category name, a level name and a level description. Fill these out in the respective objects and then link them together by including the category in the level object and the level in the mod profile.
Fill out anything like the preview icons, mod title yadda yadda, these should be fairly self describing.
Importantly however, you must set the tags on your level and mod category by marking them both as addressable. (Anything included with your mod needs to be in the same addressables group, even custom characters so if you have a character mod separate to the map, ensure you duplicate their prefab and use the correct group for the one going into the map)
You can either choose the default modding group or create and then rename your own.
Regardless, once these are both addressable they need to have the right tag applied, the level has ChurnVectorLevel and the category, ChurnVectorCategory.
Once these are done you should be able to go and hit "Build Locally" on the mod profile to build it.
Once the build is finished you will be shown where the build files are located. Launching the game from steam will automatically load up this built mod so in order to test changes you will need to build, close unity and then open the game each time to see how it looks in the real game.
There can be some things that are slightly different ingame than in the editor, namely shaders, so test before you publish to steam!