1,103 Commits over 853 Days - 0.05cph!
Move "Invalid model scale" warning to PhysObj creation
Fixed warnings about bone access on player death
Fixed case where particle materials would end up with artificial refcount
Free font textures/materials when registering new fonts
This would mean running CreateFont in a render hook no longer fills video memory, and font textures/materials are freed on disconnect properly, no longer accumulating.
Bump severity of mat_hdr_level problem (HDR being disabled)
debug_dump: Separate Lua and non-Lua cvars
Block voice_overdrivefadetime
Add light pos to some vrad warnings
* light has _fifty_percent_distance of X but _zero_percent_distance of Y
* can't solve quadratic for light X Y
Fixed crashes relating to Entity.FollowBone
Entity.FollowBone, SetAttachment and SetParent will throw errors when given absolutely invalid attachment/bone IDs (i.e. less than 0, or above 255)
Add more info to "gamemode is not a table" error
Rework how movement is disabled when player is dead with movetype_walk
Block all .log files
Destroy font texture IDs on frame start, not during rendering
Block file access to ChromiumCache, whatever that is
Fixed a crash when an NPC sees more than 255 enemies
Move "Model X has mismatching model version" to -verbose (vbsp.exe)
Temporarily partially disable "CBoneAccessor invalid bone id" warnings
For cases with error models
Change default of gmod_uncache_test to -2
I need to verify the changelevel crashes are caused by this.
Fixed nextbot deaths counting twice for npc_maker
Restore game_text rendering same text channel multiple time
Block "Miscellaneous Symbols and Arrows" unicode block in server browser
Free font materials & textures on disconnect
Fixed DNumSlider reset to default via MMB not functioning correctly
Entity.GetBodyGroups returns "empty" for submodels with no meshes
Added Entity.GetFlexType ( id ) = string
Returns model defined flex controller "type" or the group
Added Color:Lerp( target, frac )
Small changes
* Fix DForm description
* DNumSlider.SetEnabled also affects its DLabel
* Finger poser and Faceposer correctly rebuilds UI on loss of entity
* DLabel.SetDark disables SetBright, and vice versa
* DLabel.SetHighlight always overrides SetDark AND SetBright
Added string.NiceName & use it for bodygroup names
It converts "names_likeThis" to "Names like This". There have been multiple implementation in the base game, which are not all using the same function.
IMaterial:GetColor returns an actual Color
Disabled DLabel has faded out colors
Fixed file.AsyncRead erroring after Lua shutdown
Faceposer flex groups
The groups are defined by the models themselves.
https://files.facepunch.com/rubat/2024/June28-263-UnwittingEthiopianwolf.jpg
Fixed util.DecalMaterial to actually work
TTT: Updated localization files (Community Contribution)
Fixed vrad not writing light flags to the BSP
Fixes "Cast entity shadows" option in Hammer to not working.
Also added info to the hammer option about how to properly make it work.
Block file access to ChromiumCache, whatever that is
Fixed a crash when an NPC sees more than 255 enemies
Gamemode cvars: Added "replicate" field
If set to 0, removes REPLICATED flag from gamemode cvars
Use this for sandbox cvars that don't actually need replicating, such as sbox_weapons
Block all .log files
Destroy font texture IDs on frame start, not during rendering
Bump severity of mat_hdr_level problem (HDR being disabled)
debug_dump: Separate Lua and non-Lua cvars
Block voice_overdrivefadetime
Add light pos to some vrad warnings
* light has _fifty_percent_distance of X but _zero_percent_distance of Y
* can't solve quadratic for light X Y
Fixed crashes relating to Entity.FollowBone
Entity.FollowBone, SetAttachment and SetParent will throw errors when given absolutely invalid attachment/bone IDs (i.e. less than 0, or above 255)
Add more info to "gamemode is not a table" error
Rework how movement is disabled when player is dead with movetype_walk
Move "Invalid model scale" warning to PhysObj creation
Fixed warnings about bone access on player death
Fixed case where particle materials would end up with artificial refcount
Free font textures/materials when registering new fonts
This would mean running CreateFont in a render hook no longer fills video memory, and font textures/materials are freed on disconnect properly, no longer accumulating.
Fixed some more compile warnings
Bump game_text max duration to 1 hour
Block scriptenforcer.net as it's being abused now
Default "skill" to 2 (normal)
Fixed a crash to do with soundscapes after map cleanup
Fix "skill" cvar affecting non NPC damage to player
Merge scripts/talker/* with episodes
Fixed gamemode resetting after playing and leaving Sandbox, and starting a new server on a different gamemode
Let's try adding a Discord webhook on build finish
Move notification step to deploy job, propagate to other branches as well
Gravity Gun doesn't delete Physics Objects it didn't create
Give debug name to physics objects created via Lua & models scaling
For Lua functions, will be the function name that created it, for scaled physics objects - model name + scale
Fixed NPCs spawning sprites sometimes causing artificial refs on the material
Hammer support for sent_ball
To serve as another example of Lua entity in Hammer
Move notification step to deploy job, propagate to other branches as well
Gravity Gun doesn't delete Physics Objects it didn't create
Give debug name to physics objects created via Lua & models scaling
For Lua functions, will be the function name that created it, for scaled physics objects - model name + scale
Fixed NPCs spawning sprites sometimes causing artificial refs on the material
Hammer support for sent_ball
To serve as another example of Lua entity in Hammer
Fixed gamemode resetting after playing and leaving Sandbox, and starting a new server on a different gamemode
Let's try adding a Discord webhook on build finish
Merge scripts/talker/* with episodes
Fixed some more compile warnings
Bump game_text max duration to 1 hour
Block scriptenforcer.net as it's being abused now
Default "skill" to 2 (normal)
Fixed a crash to do with soundscapes after map cleanup
Fix "skill" cvar affecting non NPC damage to player
Apply the fix for NPC death animation blending
garrysmod-issues/issues/5891
Do not precache particle materials on the server (game.AddParticles)
Allows particle materials to reach 0 refcount on disconnect from singleplayer, and also makes no sense to precache particle materials serverside anyway.
Show "Unknown Addon #X" as invalid in addons menu
So there's no confusion why they don't appear in-game.
Make sure to restore gamemode on server disconnect to what it was
file.Remove returns success
Potential fix for a sound DSP crash
Prevent NPCs complaining about sequence -1
This could happen when a combine solider has no gun and tries to chase the player.
Fixed NPCs complaining about bone access on death
HL2 model changes
* Moved stalker model to overrides/, next to other override models
* Include EP2 combine mine model, so its skins appear on that EP2 map
* Include EP1 ceiling turret model so it functions correctly when dry firing
Fixed "skill" no doing anything for HL2 content
Also enable Alyx darkness mode
Correct AIClassText for some CLASS_ enums
Also block "skill" from being modified by Lua ( game.SetSkillLevel exists)
Disable .sw.vtx generation in studiomdl.exe
Also made the program work out of the box without specifying `-nop4`.
Minor changes
Fix NPC death poses (Thanks MapBase)
garrysmod-issues/issues/5361
Enabled a bunch more episodic behaviors
Most of it is locked away behind hl2_episodic, most of it is relating to Alyx Darkness mode stuff
Replace default cubemap texture with the one VBSP generates by default
This affects maps that are renamed after compilation
Fix CmdSeq.wc being broken on local builds
Fixed Ceiling Turret trying to play non existent sounds on dry fire
Was spamming warnings in console
Fixed Alyx not being blinded by flashlight in Episode 1
More episodic behaviors, for Zombies and Headcrabs
Fixed Alyx still following the player in darkness mode without flashlight
Fix Alyx's darkness breathing breaking other voice lines
Remount subbed addons if we unmounted server addons
In case some file(s) were overwritten by server addons, which are now gone
Clean up rope materials on disconnect, not game shutdown
Allows rope materials to reach 0 refcounts
Fixed intro screen material not being freed
Also fixed __error material getting an extra forever refcount
Also fixed __loading and __background getting forever refcounts
Fixed certain sprites (such as physgun beam) being forever referenced if drawn
Fix potential division by 0 when parsing MP3 files
Fix potential division by 0 when parsing MP3 files
Actually apply the fix for division by 0 :pensive:
Add reason to "Unmounting addon X" message
Attempt to fix weird Linux filesystem crash
Retouch material/model uncaching
Making sure it doesn't happen when mcore is turnedon/allowed
Resolved case sensitivity issues with lua_refresh_file
Change up GetPhysicsObjectNum warnings with more info
Rework game_text rendering clientside to allow for 256 channels (from 6)
Also limit hold time to 0-300 seconds.
Allow 3 separate number inputs to certain mesh.* functions
mesh.Position
mesh.Normal
mesh.TangentS
mesh.TangentT
Only allow dx80/dx90.vtx files in gmpublisher
Fixed materials with matproxies sometimes getting permanent artificial refcount
Do not unmount server .GMA file for now
Use network origin/angles for clientside physics objects
Fixed legacy workshop addons sometimes not extracting correctly
This would happen on download, potentially after messing about with Steam files
SetAvoidPlayers ignores noclipping players
Resolve model materials going into negative refcounts
This is a specific case where error models are "hotloaded" into non error models.
Block cl_playerspraydisable
Fixed util.GetModelMeshes leaking model refcounts
Fixed sprites causing material refcounts going negative
Similar case to models - sprite materials becoming available after precaching as error
Minor changes
Fixed Lua particles leaking material refcount
This is fixed by precaching the material just before it is used
Restore unmounting of server workshop addons
Can be still disabled with `gmod_uncache_test -1` for testing purposes.
Replace default cubemap texture with the one VBSP generates by default
This affects maps that are renamed after compilation
Fix CmdSeq.wc being broken on local builds
Fixed Ceiling Turret trying to play non existent sounds on dry fire
Was spamming warnings in console
Fixed Alyx not being blinded by flashlight in Episode 1
More episodic behaviors, for Zombies and Headcrabs
Fixed Alyx still following the player in darkness mode without flashlight
Fix Alyx's darkness breathing breaking other voice lines
Remount subbed addons if we unmounted server addons
In case some file(s) were overwritten by server addons, which are now gone
Clean up rope materials on disconnect, not game shutdown
Allows rope materials to reach 0 refcounts
Fixed intro screen material not being freed
Also fixed __error material getting an extra forever refcount
Also fixed __loading and __background getting forever refcounts
Fixed certain sprites (such as physgun beam) being forever referenced if drawn
Do not precache particle materials on the server (game.AddParticles)
Allows particle materials to reach 0 refcount on disconnect from singleplayer, and also makes no sense to precache particle materials serverside anyway.
Show "Unknown Addon #X" as invalid in addons menu
So there's no confusion why they don't appear in-game.
Make sure to restore gamemode on server disconnect to what it was
file.Remove returns success
Potential fix for a sound DSP crash
Prevent NPCs complaining about sequence -1
This could happen when a combine solider has no gun and tries to chase the player.
Fixed NPCs complaining about bone access on death
HL2 model changes
* Moved stalker model to overrides/, next to other override models
* Include EP2 combine mine model, so its skins appear on that EP2 map
* Include EP1 ceiling turret model so it functions correctly when dry firing
Fixed "skill" no doing anything for HL2 content
Also enable Alyx darkness mode
Correct AIClassText for some CLASS_ enums
Also block "skill" from being modified by Lua ( game.SetSkillLevel exists)
Disable .sw.vtx generation in studiomdl.exe
Also made the program work out of the box without specifying `-nop4`.
Minor changes
Fix NPC death poses (Thanks MapBase)
garrysmod-issues/issues/5361
Enabled a bunch more episodic behaviors
Most of it is locked away behind hl2_episodic, most of it is relating to Alyx Darkness mode stuff
Block cl_playerspraydisable
Fixed util.GetModelMeshes leaking model refcounts
Fixed sprites causing material refcounts going negative
Similar case to models - sprite materials becoming available after precaching as error
Minor changes
Fixed Lua particles leaking material refcount
This is fixed by precaching the material just before it is used
Restore unmounting of server workshop addons
Can be still disabled with `gmod_uncache_test -1` for testing purposes.
Apply the fix for NPC death animation blending
garrysmod-issues/issues/5891
Resolve model materials going into negative refcounts
This is a specific case where error models are "hotloaded" into non error models.
Fixed legacy workshop addons sometimes not extracting correctly
This would happen on download, potentially after messing about with Steam files
SetAvoidPlayers ignores noclipping players
Use network origin/angles for clientside physics objects
Rework game_text rendering clientside to allow for 256 channels (from 6)
Also limit hold time to 0-300 seconds.
Allow 3 separate number inputs to certain mesh.* functions
mesh.Position
mesh.Normal
mesh.TangentS
mesh.TangentT
Only allow dx80/dx90.vtx files in gmpublisher
Fixed materials with matproxies sometimes getting permanent artificial refcount
Do not unmount server .GMA file for now
Retouch material/model uncaching
Making sure it doesn't happen when mcore is turnedon/allowed
Resolved case sensitivity issues with lua_refresh_file
Change up GetPhysicsObjectNum warnings with more info
Add reason to "Unmounting addon X" message
Attempt to fix weird Linux filesystem crash
Actually apply the fix for division by 0 :pensive:
Fix potential division by 0 when parsing MP3 files
Added gmod_uncache_test (defaults ON) for the new attempt at content unloading
This probably doesn't matter: Move changes to CLuaObject to the bottom
Fix even more potential crashes with NPCs driving vehicles
Forgot this file for gmod_uncache_test
Added gmod_uncache_test (defaults ON) for the new attempt at content unloading
This probably doesn't matter: Move changes to CLuaObject to the bottom
Fix even more potential crashes with NPCs driving vehicles
Forgot this file for gmod_uncache_test
Fixed RegisterMetaTable still creating a new table
Try to encourage models to be unloaded on disconnect
Minor cleanups
Block path concommand
Fixed unmounting GMAs leaving behind empty folders internally
Fixed whereis sometimes not finding the culprit workshop addon
Fixed whereis sometimes not finding the culprit workshop addon
Fixed unmounting GMAs leaving behind empty folders internally
Block path concommand
Minor cleanups
Try to encourage models to be unloaded on disconnect
Fixed RegisterMetaTable still creating a new table
Temp hack for vgui.GetAll when it doesnt exist
Temp hack for vgui.GetAll when it doesnt exist
Added temp polyfill for RegisterMetaTable
Improve server-only scaled physics prop trace hit detection
Do not PurgeUnusedModels before mounting BSP content
Properly fix modelscale bounds - they were doubled from scaling PhysObjs
Release materials created by surface.GetTextureID clientside
Hopefully the clientside-only part solves issues people had when destroying these textureIDs
Prevent "unknown material" spam on disconnect due to recent changes
Fixed Entity:SetModel and util.PrecacheModel leaking mdl refcounts
Added temp polyfill for RegisterMetaTable
Improve server-only scaled physics prop trace hit detection
Do not PurgeUnusedModels before mounting BSP content
Properly fix modelscale bounds - they were doubled from scaling PhysObjs
Release materials created by surface.GetTextureID clientside
Hopefully the clientside-only part solves issues people had when destroying these textureIDs
Prevent "unknown material" spam on disconnect due to recent changes
Fixed Entity:SetModel and util.PrecacheModel leaking mdl refcounts
Fix FollowBone not working correctly again
Fix FollowBone not working correctly again
Fixed a bunch of possible crashes with Vehicles pre-spawn
Afternative fix for timers during timing out
Alternative fix for Entity:FollowBone
Fixed a bunch of possible crashes with Vehicles pre-spawn
Afternative fix for timers during timing out
Alternative fix for Entity:FollowBone
Make PhysObj:GetFrictionSnapshot start at index 1 again
Fixed crashes when point_template is used improperly
Expose steamworks.GetList/FileInfo to serverside
Kleiner model with merged animations
Vortigaunt models with merged animations
Include Episode 2 floor turret models for its skins & gibs
Enable Episodic behaviors for vortigaunts
Fixed crashes when certain models are spawning gibs
Models from other games that may reference non existent gib types
Fixed logic_collision_pair not really working at all when spawned by map
Improve kill feed NPC names for map spawned NPCs like rebels
Episode 1 intro fixes
Episode 1 wake up fix
Fixed UnmountServerAddons not working without gmod_unload_test
Change where clientside think is called from
This does NOT affect the Think/Tick hooks clientside, but DOES affect the following Lua systems:
* timers
* HTTP requests
* async file reads
* net messages
Ideally there should be no noticeable changes, but these systems will now run correctly when not receiving pakcets from the server.
Fix filesystem not being able to seek above 2GB in a file
Error out and do not mount addons over 4GB
Everything under should work with previous commit.
Block servers from modifying fov_desired
Warning on model scales of 0 or below
Fixed gibs clientside not initializing their scale to 1
▊▌▋'█ ▊██ ▇▅▆ ▉▄▇█▄▄▌█▆ ▌█_▊▇▄▋▊▌▅▌▄▅▉▇▌▌▅▄ ▊▋ ▇▇▍▄█
▍▉▍▊ ▉▆▋ ▍▌█▇▄▉▋▋ ▍▉▆▉▄ ▄▄▊█▊▍▄▆ ▋▍█▉▉ ▍▄ ▆▋▆▊▉ ▇▆▊▍▉
!▌▊▆▌▌▋ ▄▇ ▄▇▌ ▌▉▄▉▆ █▆▌▍▋ █▉ ▋▉▆▇▉
!▍▊▌▇ ▋▌▋▆▋ ▇▍▅▇▅▉▉ ▅▇▅▅▄
EmitSound handles registered sounds a bit better clientside
You could, and still can add `.wav` to the end of the registered sounds to make them work with EmitSound, which is still useful for serverside, but clientside this is no longer necessary.
Added optional argument to sound.Generate - loopStart (sample ID)
Display an error in console when addon file list has failed to be read completely
Removing dead/redundant code from SENTs
env_screenoverlay SwitchOverlay forcing overlays on when the entity is disabled
Fix clicking a TextEntry sometimes setting invalid caret pos
Load model from keyvalues before setting error.mdl on anim SENTs
Ignore \n in player names too
Move certain "hexed" models to fallbacks VPK
Fixed env_zoom not working sometimes, and not undoing itself on removal
Include modified Alyx models that include animations from episodes
Get rid of "env_sprite is rendering non sprite material" warning
It's too spammy
Entity:Set/GetPoseParameter now can accept numbers instead of strings
Entity:GetPoseParameterRange can now accept string instead of a number
Fixed Entity:FollowBone not working with boneID 0.
Fixed SoundDuration returning wrong values for MP3 files
It was a sneaky bug in the MP3 parser
It's still an approximation, but it is very close now. (+/- 0.1s)
Also make it skip ID3v2 data
Fixed .wav SoundDuration being off by number of channels on srcds
Let's try this again: unload unreferenced materials in more places
This is aimed at making sure content from maps is unloaded before content from another map is loaded
Merge clientside and serverside physobj scaling code
Update button spawnicons to face the camera
mat_viewportscale tiny value Problem
Remove unintended label from HL2 spawnlist
Fixed stray "Other2" category name fallback in spawnmenu
Added PhysObj:MakeShadow( maxSpeed, maxAngSpeed )
This allows making any physics object a physics shadow, not just Entity:PhysicsInitShadow
Speed values of 0 or below mean do not allow movement.
Added RegisterMetaTable( name, table )
"anim" type SENTs move physics objects clientside for you
Hopefully this will not cause any issues
surface.PlaySound can accept soundscript names clientside
This will only translate the soundscript name to a file path, it will NOT affect ptich/volume, etc, since the function does not support that at all.
sound.Generate now accepts table of samples, or direct binary data as a string
The table input should have float values from -1 to 1 (index starting with 1), and is about 4 times faster than using a function
string input must be raw 16bit sound data (each sample is a signed short), and is much faster than the 2 other methods.
Added CNewParticleEffect.GetRenderBounds
Improve consistency of trace surfaceID returns clientside
This only relates to usages of PhysicsObject shadows
vcollide_wireframe - draw the actual physics object clientside if it exists
Test version of clientside model physics scaling
Fixed trackspeed only working after ReturnToEyes input (point_viewcontrol)
Gibs inherit model scale of scaled props
Change clientside physobj scale to trigger from Activate()
Fixed scaled props scaling collision bounds twice
Added CLuaInterface::RegisterMetaTable
Fixed DMenuOptionCVar resetting from cvar too early in certain use cases
Fixed crashes due to recent changes to gib system
Fix merge errors & some GO TODOs
Remove file.AsyncRead from menu state entirely, since its broken anyway
Added $BASETEXTURESPEED,BASETEXTURE(2/3)SPEED for VolumeClouds shader
concommand autocomplete tokenized arguments argument
Port hack for Portal 2 .wavs that are actually .mp3s
Remove Episode 2 exclusive soundscapes from gm_construct
Added new shader parameters to `Core` shader
$ENTITYORIGIN
$DIAMETER
(They are case insensitive)