JERC

From Valve Developer Community
Jump to navigation Jump to search
English (en)Translate (Translate)
JERC
Download
TypeThird Party Tool
EngineSource Source
PlatformsWindows Windows
 
GitHub

JERC JERC (Jim's Easy Radar Creator) is a tool for Counter-Strike: Global Offensive Counter-Strike: Global Offensive. This tool can generate highly customisable overviews for maps using brushes, entities and/or materials, by assigning them to specific visgroups.

It can also be used in either a Material Based workflow, or a Visgroup Based workflow.

Compatible with both Hammer and Hammer++.

Installation

Download .NET Runtimes
  1. Download and install the latest .NET 5 runtime
  2. Download and install the latest .NET Core 3.1 runtime
  3. Download and install the latest .NET Framework 4.5 runtime
  4. This file may also be needed to create VTFs for Danger Zone maps: https://www.microsoft.com/en-ie/download/details.aspx?id=48145
Copy Files
  1. Extract the contents of the zip folder into your Counter-Strike Global Offensive folder. It should be somewhere like C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive
Note.pngNote:If you want to use Yanzl's sbsar file for making valve style overviews, move it wherever you would prefer it to be. If not, delete it.
FGD
  1. Go to Tools > Options in Hammer
  2. Under "Game Data files:", Click Add.
  3. Go to your /bin folder (not /csgo/bin) and choose jerc_entities.fgd, and then click OK.
Command Sequences
  1. Add a new compile profile in the expert compile mode of Hammer
  2. Set its name to something like [JERC] - Generate Overview. You might have to close the compile window and reopen it to show the new configuration.
  3. Set the Command executable to: $exedir/bin/JERC/JERC/JERC.exe
  4. Set the Parameters args to: -g $gamedir -vmfFilepath $path/$file. Make sure to check the new command under "Compile/run commands"

Bundled Software

Included with JERC is Yanzl's radargen_jerc.sbsar file, which allows you to create a Valve style radar with ease using JERC and Substance Designer.

  1. Enable Export Raw Masks in jerc_config.
  2. Generate the overview using JERC. Raw mask files will be exported to the /jerc_extras folder
  3. Drag radargen_jerc.sbsar into Substance Designer, and use the raw mask files as inputs.
  4. Save as .dds file format.

Usage

To get started, add a jerc_config entity into the map.

Two auto visgroups are created automatically: 'JERC - Point Entities' & 'JERC - Brush Entities'. It is potentially recommended to disable these when compiling a level, as some brushes may be visible in-game when tied to certain entities.

There are two workflows supported by JERC:

  1. Material Based workflow
  2. Visgroup Based workflow

Workflow 1 (Material based)

You may want to use separate brushes to your playable map itself. I find this a much cleaner way to work with overviews, and it removes the annoyance of having to check visgroups every time you duplicate a brush to make sure you don't accidentally leave it inside a wrong visgroup. Everything for the radar should go into a custom visgroup named JERC (including jerc_box brush entities), excluding the point entities.

JERC will only display brush faces with a JERC texture applied to them (except Ignore). These include Path, Overlap, Cover, Door, Ladder and Danger. Remove is the exception, which will not allow anything to display within its volume. Ignore will be completely ignored, and is just a nice way to show brush faces you don't want to draw. You can apply the textures to all faces on a brush, but it may cause slight issues when using stroke around your brushes, so if you notice any slight issues with stroke then that is likely the cause. In this scenario, only apply the texture to the top face.

Brush entities such as bombsites are drawn. For bombsites, you can set A and B by giving them the targetnames 'bombsite_a' and 'bombsite_b'. However, you might prefer to create separate brushes using the JERC bombsite materials, for example. These take priority over entities.

Visgroups

Name Works with What to add Description
jerc Brushes, Displacements, Brush Entities, Point Entities Everything. Everything in here will be used when generating the overview.

Materials

These are the materials that can be used with the Material Based workflow.

Image Material name Description
Jerc path.png jerc/path Displays a Path.
Jerc overlap.png jerc/overlap Displays an Overlap.
Jerc cover.png jerc/cover Displays cover.
Jerc remove.png jerc/remove Defines a volume to not display anything in.
Jerc door.png jerc/door Defines a volume as a Door.
Jerc ladder.png jerc/ladder Defines a volume as a Ladder.
Jerc danger.png jerc/danger Defines a volume as a Danger.
Jerc buyzone.png jerc/buyzone Defines a volume as a Buyzone.
Jerc bombsite a.png jerc/bombsite_a Defines a volume as a Bombsite A.
Jerc bombsite b.png jerc/bombsite_b Defines a volume as a Bombsite B.
Jerc rescue zone.png jerc/rescue_zone Defines a volume as a Rescue Zone.
Jerc hostage.png jerc/hostage Defines a volume as a Hostage.
Jerc t spawn.png jerc/t_spawn Defines a volume as T Spawn.
Jerc ct spawn.png jerc/ct_spawn Defines a volume as CT Spawn.
Jerc ignore.png jerc/ignore Does nothing, an option for unused brush sides.
Jerc jerc overlays.png jerc/jerc_overlays Example for use on Info_Overlay and Jerc_Info_Overlay entities. Optional.
Jerc jerc box.png jerc/jerc_box Example for use on Jerc_Box entities. Optional.

Workflow 2 (Visgroup based)

You can also use the same workflow as TAR, avoiding the need of using the JERC materials, and allowing you to use your already placed brushes for the overview. The available visgroups are: 'jerc_remove', 'jerc_path', 'jerc_overlap', 'jerc_cover', 'jerc_door', 'jerc_ladder', 'jerc_danger'. You will want to place anything else in the normal 'jerc' visgroup, as done in the Material Based workflow.

Visgroups

Name Works with What to add Description
jerc_path Brushes, Displacements, Brush Entities Accessible path areas. The accessible ground areas the player can walk on.
jerc_overlap Brushes, Displacements, Brush Entities Accessible overlapping ground areas. The accessible path areas the player can walk on that are above a jerc_path area in the same overview level.
jerc_cover Brushes, Displacements, Brush Entities Cover. The cover in the level, displayed on top of paths.
jerc_remove Brushes, Displacements, Brush Entities Inaccessible path areas. The inaccessible path areas. Stops the overview including anything in this area. A workaround to messy brushwork.
jerc_door Brushes, Displacements, Brush Entities Doors. The doors in the level.
jerc_ladder Brushes, Displacements, Brush Entities Ladders. The ladders in the level.
jerc_danger Brushes, Displacements, Brush Entities Any dangerous places in the level. Adds a semi-transparent overlay on top of accessible paths in a level, denoting that these areas can damage players.
jerc Brushes, Displacements, Brush Entities, Point Entities Everything else. Any other materials/entities that do not have their own visgroup should be added here, as they support the Material Based workflow only.

Entities

These entities allow for greater customisation of radars.

Icon Classname Description Keyvalues
Jerc config.png jerc_config Configure the main functionality.
Workshop ID (workshopId) <string>
Used for Danger Zone maps for duplicating the overview (for the tablet) into the correct location for packing
Overview Gamemode Type (overviewGamemodeType) <choices>
  • 0: Standard
  • 1: Danger Zone
Danger Zone Uses (dangerZoneUses) <choices>
Defines which filepaths to export the overview to (only used if Overview Gamemode Type is set to Danger Zone)
  • 0: Both
  • 1: Tablet
  • 2: Spawn Select
Alternate Output Directory (alternateOutputPath) <string>
DO NOT USE BACKSLASHES. An alternate base output directory. Leave blank if you want to output to /csgo/ only. Don't include /resource/overviews/. Eg. C:/Dropbox/JERC/
Only Output to Alternate Path (onlyOutputToAlternatePath) <choices>
  • 0: No
  • 1: Yes
Include Even When Hidden (includeEvenWhenHidden) <choices>
Includes everything in overviews, even when hidden (except when in a hidden instance). Useful to avoid having to enable/disable the JERC visgroup in all instances constantly
  • 0: No
  • 1: Yes
Export Multilevel Radar (exportRadarAsSeparateLevels) <choices>
Exports multiple separate radars (if there are any jerc_divider entities)
  • 0: No
  • 1: Yes
Separate Multilevel Radar Gradients (useSeparateGradientEachLevel) <choices>
Uses a new gradient for each level instead of one gradient for all levels combined
  • 0: No
  • 1: Yes
Ignore Displacement X/Y Changes (ignoreDisplacementXYChanges) <choices>
Ignores changes on the X and Y axis for displacements, as they can cause graphical bugs on overviews
  • 0: No
  • 1: Yes
Use Model Vertices (useModelVertices) <choices>
EXPERIMENTAL - Uses model vertices to calculate faces to show as cover on the overview. By default, it uses bounding boxes (not experimental).
  • 0: No
  • 1: Yes
Background Image Filename (backgroundFilename) <string>
For custom images, place them inside the following folder: .../Counter-Strike Global Offensive/csgo/materials/JERC/backgrounds/
Radar Size Multiplier (float) (radarSizeMultiplier) <float>
A multiplier for altering the size of the level in the radar
Overlap Alpha (int) (overlapAlpha) <integer>
The alpha value for overlap brush sides (0-255)
Danger Alpha (int) (dangerAlpha) <integer>
The alpha value for danger brush sides (0-255)
Path Colour High (pathColourHigh) <color255>
Colour of path world brushes at the highest point
Path Colour Low (pathColourLow) <color255>
Colour of path world brushes at the lowest point
Overlap Colour High (overlapColourHigh) <color255>
Colour of overlap world brushes at the highest point
Overlap Colour Low (overlapColourLow) <color255>
Colour of overlap world brushes at the lowest point
Cover Colour High (coverColourHigh) <color255>
Colour of cover world brushes at the highest point
Cover Colour Low (coverColourLow) <color255>
Colour of cover world brushes at the lowest point
Door Colour (doorColour) <color255>
Colour of door world brushes
Ladder Colour (ladderColour) <color255>
Colour of ladder world brushes
Danger Colour (dangerColour) <color255>
Colour of danger world brushes
Overlays Colour (overlaysColour) <color255>
Colour of info_overlay and jerc_info_overlay (unless overridden) entities
Stroke Width (int) (strokeWidth) <integer>
Width of stroke to use
Stroke Colour (strokeColour) <color255>
Colour of the stroke
Stroke Around Path and Overlap Materials (strokeAroundLayoutMaterials) <choices>
  • 0: No
  • 1: Yes
Stroke Around Remove Materials (strokeAroundRemoveMaterials) <choices>
  • 0: No
  • 1: Yes
Stroke Around Entities (strokeAroundEntities) <choices>
  • 0: No
  • 1: Yes
Stroke Around Brush Entities (strokeAroundBrushEntities) <choices>
Currently, if there is more than one brush in an entity, it will not combine them, so they will keep their individual borders
  • 0: No
  • 1: Yes
Stroke Around Overlays (strokeAroundOverlays) <choices>
  • 0: No
  • 1: Yes
Default Level Num (int) (defaultLevelNum) <integer>
Enable Levels As Backgrounds (levelBackgroundEnabled) <choices>
Adds all levels as a background for each level when using multiple radar levels
  • 0: No
  • 1: Yes
Levels Background Darken Alpha (int) (levelBackgroundDarkenAlpha) <integer>
The alpha value of the black overlay to apply onto the background levels (0-255)
Levels Background Blur Alpha (int) (levelBackgroundBlurAmount) <integer>
The amount of gaussian blur to apply to the background levels
Higher Level Output Name (higherLevelOutputName) <string>
The higher level radar name JERC uses for naming
Lower Level Output Name (lowerLevelOutputName) <string>
The lower level radar name JERC uses for naming
Export .TXT (exportTxt) <choices>
Overview Gamemode Type set to Standard only
  • 0: No
  • 1: Yes
Export .DDS (exportDds) <choices>
  • 0: No
  • 1: Yes
Export .PNG (exportPng) <choices>
  • 0: No
  • 1: Yes
Export .JPG (exportJpg) <choices>
  • 0: No
  • 1: Yes
Export Raw Masks (exportRawMasks) <choices>
Export the raw masks. Designed for use with Yanzl's Substance Designer tool to make a radar imitating Valve's style
  • 0: No
  • 1: Yes
Export Background Levels Image (exportBackgroundLevelsImage) <choices>
Exports background levels image (if 'Export Multilevel Radar' is selected and there are any jerc_divider entities)
  • 0: No
  • 1: Yes
Export Resolution (int) (exportResolution) <integer>
Export resolution for each file format
Jerc divider.png jerc_divider A divider between different levels of the radar.
Mins (mins) <vector>
Maxs (maxs) <vector>
Jerc ceiling.png jerc_ceiling Overrides the minimum height value of a radar level that is used for gradients.
Jerc floor.png jerc_floor Overrides the maximum height value of a radar level that is used for gradients.
Jerc info overlay.png jerc_info_overlay An info_overlay with the ability to set a colour for this overlay instead of using the jerc_config's overlay colour.
Pitch Yaw Roll (Y Z X) (angles) <string>
This is the overlay direction. Pitch is rotation around the Y axis, yaw is the rotation around the Z axis, and roll is the rotation around the X axis. (Yaw is used for rotating the overlay in the overview)
Order Num (int) (orderNum) <integer>
Override Colour (overrideColour) <choices>
Uses the colour set on this entity instead of the jerc_config's overlay colour value
  • 0: No
  • 1: Yes
Colour (R G B) (rendercolor) <color255>
Colour Alpha (int) (colourAlpha) <integer>
The alpha value of the overlay (0-255)
Stroke Colour (R G B) (colourStroke) <color255>
Stroke Colour Alpha (int) (colourStrokeAlpha) <integer>
The alpha value of the overlay stroke (0-255)
Jerc jerc box.png jerc_box A Brush Entity that can specify showing a unique colour when displated in a radar. Increases customisability for what users can do.

An example of this would be to showcase the connections between different teleporters in a map.

Order Num (int) (orderNum) <integer>
Colour (R G B) (rendercolor) <color255>
Colour Alpha (int) (colourAlpha) <integer>
The alpha value of the JERC box (0-255)
Stroke Colour (R G B) (colourStroke) <color255>
Stroke Colour Alpha (int) (colourStrokeAlpha) <integer>
The alpha value of the JERC box stroke (0-255)
Stroke Width (int) (strokeWidth) <integer>
Width of stroke to use

Customisation

The options that can be tweaked to create the radar how you want it.

Image
Jerc config customisation.png

Useful Links

See also