1. Forums
  2. Discord
  3. About Mapcore
  4. Patreon Supporters
  • Login
  • Register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • More Options
  1. Mapcore
  2. Discussions
  3. Level Design

CSGO SDK -- best practices?

  • blackdog
  • November 18, 2015 at 3:40 PM
  • blackdog
    • November 18, 2015 at 3:40 PM
    • #1

    After trying out instances, I want to ask general asset management today.


    I've started roughing up a map, as I hit a wall I thought to take a break and built a building that would be used to fence off the playable area, and to test how to use instances.

    I have a dedicated mapping/game dev folder where I keep all my resources, so despite saving the building in the default CSGOSDK map folder (it's not mentioned in the Valve Wiki, but I did remember reading this at some point in a topic here) the building wasn't showing up. So I moved the source file of the map in the same folder:

    D:\Games\Steam\steamapps\common\Counter-Strike Global Offensive\sdk_content\maps\mymapname\map.vmf
    D:\Games\Steam\steamapps\common\Counter-Strike Global Offensive\sdk_content\maps\instances\mymapname\building_001.vmf

    and now the building is showing up.

    For instances: I can see that the "model" will have the origin where the .vmf origin is. Is there a way through the entity to change that? (if by any chance that comes to need)
    Are there other things to keep in mind when using instances? Are there clever ways to use this powerful tool that are maybe counter intuitive?

    For general asset management
    I don't like keeping files in default folders, I'm wondering if there's a workaround to make instances work, or if we have to resign to the idea of putting stuff in the Steam folder. If so, what do you pros do: you keep a backup in your folder of choice? Do you keep support files with the map as well, and do you keep only distributables or source as well?
    Do you do (map) version control with some software or just save files progressively? (as I'm looking at learning new skills, and version control is a staple in companies, I'm thinking I should probably set up Git or something).

    Personally I have something like this folder tree (minus the folders I don't need as I don't make my own models or materials atm)

    |--...
    |--games
    |--mapping
    |--reference
    |--(picture of sorts eventually in folders)
    |--tools (eg: gcfscape)
    |--maps
    |--distributables
    |--mypublishedmap (with all the required subfolders)
    |--mymapunderconstruction01
    |--instances
    |--models
    |--textures
    |--sounds
    |--mymapunderconstruction02
    |--...
    |--textures (materials)
    |--freeresources (downloaded texture packs)
    |--mytexturepack01
    |--source (.psd etc)
    |--exports (final materials)
    |--...
    |--models
    |--freeresources (downloaded models)
    |--mycustomassets
    |--...

    Bakup: what do you do? back all of this on an external drive, use some online dedicated service or something more unconventional (Google Drive has lots of free space! :D)


    Hope it makes sense!

  • jackophant
    • November 18, 2015 at 6:02 PM
    • #2

    I haven't got time for a more in-depth answer regarding some stuff (I'll come back), but I do know that I use Google Drive as I access my .vmfs from multiple computers, but instances don't work unless based in the sdk_content folder :(

    Took me a while to find out, VDC isn't very clear on it.

  • tomm
    • November 18, 2015 at 9:30 PM
    • #3

    I just recently started using version control(git) for all my custom stuff. It's not very ideal for source files since git has troubles with large binary files. There are some alternatives you can use to better handle binary files but I couldn't get any of those to work, so just went with default git setup.

    I'd definitely recommend using git for maps and instances, having a nice history of changes and being able to revert back any time is handy.

  • blackdog
    • November 18, 2015 at 11:26 PM
    • #4

    Thanks @tomm, just to expand on that: what do you mean with alternatives... git plugins/terminals (I think to remember that several visual interfaces have been created for it) or other version control systems?

  • DrywallDreams
    • November 18, 2015 at 11:33 PM
    • #5

    For built materials and such, I keep those in a folder that emulates the structure of the game's (I.E. "materials/*" and so on) It makes writing pack files much easier, and after I want to test that I packed all dependencies, I can easily restore the materials and models for use in Hammer. Also in the model source folder I keep a bat file for studiomdl to quickly compile them.

  • tomm
    • November 18, 2015 at 11:54 PM
    • #6

    @blackdog by alternatives I mean git-fat or git-annex because dealing with huge repositories is really awkward. When it comes to GUI just use sourcetree, unless you're comfortable working with a command line/terminal.

    although I'm fairly new to git and binary files so maybe there's a better way to set things up.

  • Squad
    • November 19, 2015 at 11:43 AM
    • #7
    Quote from jackophant

    but instances don't work unless based in the sdk_content folder

    That's not true actually. I used to save and store my vmf's in a folder outside of the Steam directory (and thereby outside of sdk_content) and it always worked fine for me.

  • jackophant
    • November 19, 2015 at 12:17 PM
    • #8
    Quote from Squad

    That's not true actually. I used to save and store my vmf's in a folder outside of the Steam directory (and thereby outside of sdk_content) and it always worked fine for me.

    You'll have to show me how then because I could never get the vmfs to talk to each other when taken out of the steam directory, despite maintaining path structure.

    We're talking instances here, and not just a single vmf right? Because I have no problem with that, just the instances...

  • Squad
    • November 19, 2015 at 1:18 PM
    • #9

    As long as the relative path for the instance is correctly set in the func_instance it should work. At least, that's my experience with it. Never had any troubles with it.

  • blackdog
    • November 19, 2015 at 2:46 PM
    • #10
    Quote from Squad

    As long as the relative path for the instance is correctly set in the func_instance it should work. At least, that's my experience with it. Never had any troubles with it.

    I placed the instance's .vmf in the default SDK folder, as I remembered reading that's necessary, referenced it from the .vmf in my mapping folder and the building wasn't showing up. I simply copied the map in the SDK map folder and the building appeared as soon as I opened the map, so is not like the entity was setup wrong.

    Of course a limitation like this (would) make no sense for what it is intended to achieve with the feature... it's just like including a picture in a web page basically.

  • Squad
    • November 19, 2015 at 3:25 PM
    • #11
    Quote from blackdog

    I placed the instance's .vmf in the default SDK folder, as I remembered reading that's necessary, referenced it from the .vmf in my mapping folder and the building wasn't showing up. I simply copied the map in the SDK map folder and the building appeared as soon as I opened the map, so is not like the entity was setup wrong.

    Of course a limitation like this (would) make no sense for what it is intended to achieve with the feature... it's just like including a picture in a web page basically.

    So you had both files in a comletely different location on your HD? That seems akward to work with. How did you reference to the instance file, with an absolute or relative path?

    Just put both the main vmf and any instance(s) either inside the same folder, or the instance in a subfolder. This way, it should work whether the files are in the /content_sdk folder or in a folder outside of Steam.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!

Register Yourself Login
Discord

The Mapcore Discord is our lively IRC channel of the 2000s reborn. Chat about level design, gaming, and more.

Latest Posts

  1. Custom Gamemodes Contest

    Angel
    July 20, 2026 at 11:46 AM
  2. FAQ

    Angel
    July 20, 2026 at 10:14 AM
  3. Tangerine

    Harry Poster
    July 18, 2026 at 11:10 AM
  4. Any of the old guard still around? D:

    Warby
    July 12, 2026 at 8:23 PM
  5. About our archived forums

    Thrik
    June 30, 2026 at 2:12 PM
  6. Mapcore Discord

    mason_fan123
    June 24, 2026 at 8:52 PM
  7. [CS2] Valley

    Serialmapper
    June 22, 2026 at 11:56 AM
  8. Free Music / SFX Resource - Over 2500 Tracks

    Eric Matyas
    June 18, 2026 at 12:32 PM
  9. Pango [WIP]

    Elowen
    June 11, 2026 at 10:13 AM
  10. [CS2] Dvina

    Jeremy Rivera
    June 11, 2026 at 10:03 AM

Users Viewing This Thread

  • 1 Guest
  1. Privacy Policy
  2. Contact
Powered by WoltLab Suite™