Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ jobs:
run: |
cp -r valve/game/jbmod game/jbmod_base
cp -r game/jbmod/* game/jbmod_base/
vpk-ctrl -b game/jbmod_base game/jbmod_base/* !game/jbmod_base/gameinfo.txt !game/jbmod_base/steam.inf game/jbmod_base/cfg !game/jbmod_base/cfg/*_example.txt !game/jbmod_base/cfg/settings.scr game/jbmod_base/maps !game/jbmod_base/maps/*.bsp game/jbmod_base/materials game/jbmod_base/media game/jbmod_base/models game/jbmod_base/resource !game/jbmod_base/resource/*.ico !game/jbmod_base/resource/*.ttf game/jbmod_base/scripts game/jbmod_base/servers game/jbmod_base/sound > pak01.vdf
vpk-ctrl -b game/jbmod_base game/jbmod_base/*.cfg game/jbmod_base/*.txt !game/jbmod_base/gameinfo.txt !game/jbmod_base/steam.inf game/jbmod_base/cfg !game/jbmod_base/cfg/*_example.txt !game/jbmod_base/cfg/settings.scr game/jbmod_base/maps !game/jbmod_base/maps/*.bsp game/jbmod_base/materials game/jbmod_base/media game/jbmod_base/models game/jbmod_base/resource !game/jbmod_base/resource/*.ico !game/jbmod_base/resource/*.ttf game/jbmod_base/scripts game/jbmod_base/servers game/jbmod_base/sound > pak01.vdf
vpk -M -P -K privatekey.vdf -k publickey.vdf k game/jbmod_base/jbmod_pak pak01.vdf
cp pak01.vdf pak01.vdf.bak
vpk-cleaner -c pak01.vdf game/jbmod_base game/jbmod_clean
Expand All @@ -201,6 +201,7 @@ jobs:
cp -r engine/windows/* dist/content_win/
cp -r valvedlc/game/* dist/content_base/
cp -r game/jbmod_clean/* dist/content_base/jbmod/
cp game/jbmod.fgd dist/content_win/bin/

mkdir -p dist_srcds/content_base/jbmod
mkdir -p dist_srcds/content_win
Expand Down
22 changes: 22 additions & 0 deletions game/jbmod.fgd
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
//-------------------------------------------------------------------------
//
// Game data for JBMod.
//
//-------------------------------------------------------------------------

@include "halflife2.fgd"

@PointClass base(Targetname) iconsprite("editor/vcommand.vmt") = jbmod_logic_gamemode :
"A bridge entity that sets the active JBMod game mode and runs the corresponding mode script."
[
gamemode(string) : "Game Mode Name" : "" : "The name of the game mode (e.g. 'sandbox'). This will automatically load 'scripts/vscripts/gamemodes/<name>.nut'."

spawnflags(flags) =
[
1: "Start Disabled" : 0
]

input Enable(void) : "Apply the game mode settings and run the mode script."
]


54 changes: 54 additions & 0 deletions game/jbmod/cfg/vscript_convar_allowlist.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
vscript_convar_allowlist
{
// This is the list of convars that are allowed to be set
// by the Convars in VScript.
//
// Any convars changed by a map's vscripts will be reset when the
// map changes to another.

// Physics & Movement
sv_infinite_aux_power allowed
sv_gravity allowed
sv_maxspeed allowed
sv_airaccelerate allowed
sv_accelerate allowed
sv_friction allowed
sv_stopspeed allowed
sv_rollangle allowed
sv_rollspeed allowed
sv_stepsize allowed
sv_wateraccelerate allowed
sv_waterfriction allowed
sv_turbophysics allowed
sv_client_predict allowed

// Multiplayer Settings
mp_teamplay allowed
mp_timelimit allowed
mp_fraglimit allowed
mp_flashlight allowed
mp_footsteps allowed
mp_falldamage allowed
mp_weaponstay allowed
mp_forcerespawn allowed
mp_friendlyfire allowed

// Physics Props
phys_pushscale allowed
phys_timescale allowed
phys_impactforcescale allowed

// Spectator
spec_freeze_time allowed
spec_freeze_traveltime allowed

// Entities
func_break_max_pieces allowed
func_break_reduction_factor allowed
func_breakdmg_bullet allowed
func_breakdmg_club allowed
func_breakdmg_explosive allowed

// Other
sv_alltalk allowed
}
182 changes: 182 additions & 0 deletions game/jbmod/lights.rad
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
ldr: lights/fluorescentcool001a 189 231 232 350
hdr: lights/fluorescentcool001a 189 231 232 175

ldr: lights/fluorescentcool001b 236 255 182 350
hdr: lights/fluorescentcool001b 236 255 182 175

ldr: lights/fluorescentcool002a 189 231 232 400
hdr: lights/fluorescentcool002a 189 231 232 200

ldr: lights/fluorescentcool002b 236 255 182 400
hdr: lights/fluorescentcool002b 236 255 182 200

ldr: lights/fluorescentcool003a 189 231 232 300
hdr: lights/fluorescentcool003a 189 231 232 150

ldr: lights/fluorescentwarm001a 239 216 193 350
hdr: lights/fluorescentwarm001a 239 216 193 175

ldr: lights/fluorescentwarm002a 239 216 193 400
hdr: lights/fluorescentwarm002a 239 216 193 200

ldr: lights/fluorescentwhite001a 245 245 245 350
hdr: lights/fluorescentwhite001a 245 245 245 175

ldr: lights/fluorescentwhite002a 245 245 245 400
hdr: lights/fluorescentwhite002a 245 245 245 200

ldr: lights/hazzardred001a 228 37 0 300
hdr: lights/hazzardred001a 228 37 0 150

ldr: lights/hazzardyellow001a 250 215 74 300
hdr: lights/hazzardyellow001a 250 215 74 150

ldr: lights/HIDcool001a 145 222 172 650
hdr: lights/HIDcool001a 145 222 172 325

ldr: lights/HIDcool001b 205 232 255 650
hdr: lights/HIDcool001b 205 232 255 325

ldr: lights/HIDwarm001a 255 201 116 650
hdr: lights/HIDwarm001a 255 201 116 325

ldr: lights/white001 250 240 205 100
hdr: lights/white001 250 240 205 50

ldr: lights/white002 189 233 247 425
hdr: lights/white002 189 233 247 212

ldr: lights/white003 232 246 190 350
hdr: lights/white003 232 246 190 175

ldr: lights/white004 170 228 247 425
hdr: lights/white004 170 228 247 100

ldr: lights/white005 234 235 220 375
hdr: lights/white005 234 235 220 187

ldr: lights/white006 234 235 220 100
hdr: lights/white006 234 235 220 50

ldr: lights/white001_nochop 250 240 205 100
hdr: lights/white001_nochop 250 240 205 50

ldr: lights/white002_nochop 189 233 247 425
hdr: lights/white002_nochop 189 233 247 212

ldr: lights/white003_nochop 232 246 190 350
hdr: lights/white003_nochop 232 246 190 175

ldr: lights/white004_nochop 170 228 247 425
hdr: lights/white004_nochop 170 228 247 100

ldr: lights/white005_nochop 234 235 220 375
hdr: lights/white005_nochop 234 235 220 187

ldr: lights/white006_nochop 234 235 220 100
hdr: lights/white006_nochop 234 235 220 50

ldr: lights/incandescentcool001a 235 235 235 300
hdr: lights/incandescentcool001a 235 235 235 150

ldr: lights/incandescentwarm001a 250 226 129 300
hdr: lights/incandescentwarm001a 250 226 129 150

ldr: glass/glassscreen001a 172 192 161 225
hdr: glass/glassscreen001a 172 192 161 112

ldr: glass/glasspipe001f 214 72 44 200
hdr: glass/glasspipe001f 214 72 44 100

ldr: glass/glassscreen001c 172 192 161 225
hdr: glass/glassscreen001c 172 192 161 112

ldr: glass/glassscreen001d 211 187 134 225
hdr: glass/glassscreen001d 211 187 134 112

ldr: glass/glassblock001a 70 194 209 200
hdr: glass/glassblock001a 70 194 209 100

ldr: composite/citadelfloor001a 103 143 203 200
hdr: composite/citadelfloor001a 103 143 203 100

ldr: props/tvscreen006a 196 0 0 200
hdr: props/tvscreen006a 196 0 0 100

ldr: shadertest/gooinglass 149 49 15 50
hdr: shadertest/gooinglass 149 49 15 25

ldr: glass/glasswindow002e 189 233 247 425
hdr: glass/glasswindow002e 189 233 247 212

ldr: glass/glasswindow035a 145 222 172 100
hdr: glass/glasswindow035a 145 222 172 50

ldr: dev/DEV_INTERIORLIGHT02B 151 176 204 225
hdr: dev/DEV_INTERIORLIGHT02B 151 176 204 112

ldr: plaster/plasterwall029h 189 223 227 125
hdr: plaster/plasterwall029h 189 223 227 62

ldr: building_template/Building_Trainstation_Template001d 230 230 200 65
hdr: building_template/Building_Trainstation_Template001d 230 230 200 32

ldr: building_template/Building_Trainstation_Template001e 230 230 200 150
hdr: building_template/Building_Trainstation_Template001e 230 230 200 75

ldr: building_template/Building_Trainstation_window002d 230 230 200 300
hdr: building_template/Building_Trainstation_window002d 230 230 200 150

ldr: building_template/Building_Trainstation_window002e 230 230 200 300
hdr: building_template/Building_Trainstation_window002e 230 230 200 150

ldr: lights/physgunlight 189 231 232 20
hdr: lights/physgunlight 189 231 232 10

noshadow tree_deciduous_01a_branches.vmt
noshadow tree_deciduous_01a_leaves.vmt
noshadow tree_deciduous_01a_lod.vmt
noshadow tree_deciduous_01a_lod-leaves.vmt

forcetextureshadow props_wasteland/exterior_fence_notbarbed002a.mdl
forcetextureshadow props_wasteland/exterior_fence_notbarbed002b.mdl
forcetextureshadow props_wasteland/exterior_fence_notbarbed002c.mdl
forcetextureshadow props_wasteland/exterior_fence_notbarbed002d.mdl
forcetextureshadow props_wasteland/exterior_fence_notbarbed002e.mdl
forcetextureshadow props_wasteland/exterior_fence_notbarbed002f.mdl
forcetextureshadow props_wasteland/exterior_fence001a.mdl
forcetextureshadow props_wasteland/exterior_fence001b.mdl
forcetextureshadow props_wasteland/exterior_fence002a.mdl
forcetextureshadow props_wasteland/exterior_fence002b.mdl
forcetextureshadow props_wasteland/exterior_fence002c.mdl
forcetextureshadow props_wasteland/exterior_fence002d.mdl
forcetextureshadow props_wasteland/exterior_fence002e.mdl
forcetextureshadow props_wasteland/exterior_fence003a.mdl
forcetextureshadow props_wasteland/exterior_fence003b.mdl
forcetextureshadow props_foliage/tree_cliff_01a.mdl
forcetextureshadow props_foliage/tree_cliff_02a.mdl
forcetextureshadow props_foliage/tree_deciduous_01a-lod.mdl
forcetextureshadow props_foliage/tree_deciduous_01a.mdl
forcetextureshadow props_foliage/tree_deciduous_02a.mdl
forcetextureshadow props_foliage/tree_deciduous_03a.mdl
forcetextureshadow props_foliage/tree_deciduous_03b.mdl
forcetextureshadow props_foliage/tree_poplar_01.mdl
forcetextureshadow props_wasteland/interior_fence001a.mdl
forcetextureshadow props_wasteland/interior_fence001b.mdl
forcetextureshadow props_wasteland/interior_fence001c.mdl
forcetextureshadow props_wasteland/interior_fence001d.mdl
forcetextureshadow props_wasteland/interior_fence001e.mdl
forcetextureshadow props_wasteland/interior_fence001g.mdl
forcetextureshadow props_wasteland/interior_fence002a.mdl
forcetextureshadow props_wasteland/interior_fence002b.mdl
forcetextureshadow props_wasteland/interior_fence002c.mdl
forcetextureshadow props_wasteland/interior_fence002d.mdl
forcetextureshadow props_wasteland/interior_fence002e.mdl
forcetextureshadow props_wasteland/interior_fence002f.mdl
forcetextureshadow props_wasteland/interior_fence003a.mdl
forcetextureshadow props_wasteland/interior_fence003b.mdl
forcetextureshadow props_wasteland/interior_fence003d.mdl
forcetextureshadow props_wasteland/interior_fence003e.mdl
forcetextureshadow props_wasteland/interior_fence003f.mdl
forcetextureshadow props_wasteland/interior_fence004a.mdl
forcetextureshadow props_wasteland/interior_fence004b.mdl
Binary file added game/jbmod/maps/graphs/jb_buildingblocks.ain
Binary file not shown.
Binary file added game/jbmod/maps/jb_buildingblocks.bsp
Binary file not shown.
23 changes: 23 additions & 0 deletions game/jbmod/scripts/vscripts/gamemodes/sandbox.nut
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Copyright 2026 The JBMod Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

printl( "Initializing Sandbox Game Mode..." );
SetGameDescription( "JBMod Sandbox" );
Convars.SetValue( "sv_infinite_aux_power", 1 );

function OnPlayerSpawn( player )
{
player.EquipSuit();
player.GiveItem( "weapon_physcannon" );
}
Loading
Loading