Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
9a1ff1e
Fix buttons firing when registered
FrostSource Apr 1, 2025
0981f9b
Add IsFakeVREnabled
FrostSource Apr 1, 2025
bf5342b
Handle nil ents on EntStr
FrostSource Apr 1, 2025
02caba4
Add missing debug newline
FrostSource Apr 1, 2025
4f64d6d
Improve info display for ent_find_by_address
FrostSource Apr 1, 2025
cf49f73
Add custom data for PlayerEventWeaponSwitch
FrostSource Apr 6, 2025
2af5512
Fix incorrect data sent
FrostSource Apr 6, 2025
b85b438
Add missing Debug.GetSourceLine
FrostSource Apr 7, 2025
53248c4
Set primary held item to weapon on weapon switch
FrostSource Apr 7, 2025
96f6fb5
Save more player data
FrostSource Apr 7, 2025
c474047
Add initial working debug menu
FrostSource Apr 8, 2025
55591c1
Clean up code
FrostSource Apr 8, 2025
363243f
Update debug menu
FrostSource Apr 9, 2025
8afb985
Fix toggle state not saving
FrostSource Jun 9, 2025
d535a2f
Add text labels
FrostSource Jun 9, 2025
6df1904
Add custom category ordering
FrostSource Jun 9, 2025
e264645
Cleanup
FrostSource Jun 9, 2025
aa27a8e
Only listen for debug menu on -dev
FrostSource Jun 9, 2025
7d0ca5b
Check weapon validity on update
FrostSource Jun 9, 2025
ab496cd
Add GetAttachmentNameForward
FrostSource Jun 9, 2025
f1a2266
Check null in Debug.EntStr
FrostSource Jun 9, 2025
07f8dfe
Check hand validity in haptics
FrostSource Jun 9, 2025
574b10c
Check entity validity in thinks
FrostSource Jun 9, 2025
ef75eba
Add GetChild function
FrostSource Jun 10, 2025
c99b62a
Add alias for Debug.EntStr as entstr
FrostSource Jun 10, 2025
67e6ef5
Update version numbers
FrostSource Jun 10, 2025
4f60683
Add check_lua_versions.sh to .gitignore
FrostSource Jun 10, 2025
a44762a
Add check_lua_versions.sh to .gitignore
FrostSource Jun 10, 2025
aa5a6b8
Add template files for AlyxLib installation app
FrostSource Jun 10, 2025
94d9c2a
Fix potential nil reference in weapon switch event
FrostSource Jun 10, 2025
03aaeb0
Update AlyxLib version to v1.4.0
FrostSource Jun 10, 2025
4b7ed93
Add 'remove' property to symlink entries in
FrostSource Jun 11, 2025
c396e50
Test new logo
FrostSource Jun 12, 2025
4003e69
Update init file version
FrostSource Jun 12, 2025
300c0e3
Update version.json
FrostSource Jun 12, 2025
3b47b31
Remove header docs
FrostSource Jun 12, 2025
d8fa811
Fix direct entity reference in class inherit
FrostSource Jun 19, 2025
ccd8949
Add Debug.Try
FrostSource Jun 19, 2025
7e2a8f5
Add CBasePlayer.LastGrabHand
FrostSource Jun 19, 2025
a59cfc0
Fix error when no optional callback is assigned
FrostSource Jun 19, 2025
8a0af4b
Add CBaseEntity:IterateChildren
FrostSource Jun 19, 2025
8af7fe9
CBaseEntity:ClearParent
FrostSource Jun 19, 2025
a83e395
Update comments
FrostSource Jun 19, 2025
6d99457
WR:Random returns generic tables
FrostSource Jun 24, 2025
b9246f8
Add optional delay for QuickThink
FrostSource Jun 24, 2025
835c284
Fix Debug.PrintList not aligning items
FrostSource Jun 24, 2025
49f4e19
Add Debug.PrintSimpleTable
FrostSource Jun 24, 2025
6363249
Change panorama deployment type to symlink
FrostSource Jun 24, 2025
1baa9b4
Add panorama files to gitignore template
FrostSource Jun 24, 2025
d766b34
Use IterateChildren in GetChildrenMemSafe
FrostSource Jun 29, 2025
d22f552
Improve global precache printing
FrostSource Jun 30, 2025
4150f2d
Make Debug.PrintEntityList param optional
FrostSource Jun 30, 2025
c8ed491
Add IterateChildrenBreadthFirst
FrostSource Jun 30, 2025
9bcd689
Make GetFirstChildWith* functions use
FrostSource Jun 30, 2025
52f4a5f
Use table.insert in GetParents
FrostSource Jun 30, 2025
f127eea
Improve documentation
FrostSource Jun 30, 2025
b151e7f
Correct angle interpolation and optimize updates
FrostSource Jun 30, 2025
0d2abaf
Add new animation curves
FrostSource Jun 30, 2025
862734c
Add CPropVRHand:Grab
FrostSource Jun 30, 2025
36c1632
Add ent_rename command
FrostSource Jul 1, 2025
7518738
Add CPropVRHand:GetHandUseController
FrostSource Jul 1, 2025
faa3a04
Add debug menu scroll helpers
FrostSource Jul 2, 2025
4fe21b2
Update menu attachment on primary hand change
FrostSource Jul 2, 2025
76a37eb
Add new debug menu buttons
FrostSource Jul 2, 2025
48a0778
Lower presses to activate debug menu from 5 to 3
FrostSource Jul 2, 2025
9654a06
Try to get default value from string commands
FrostSource Jul 2, 2025
aa4d43b
Check for ListenToPlayerEvent or ListenToGameEvent
FrostSource Jul 2, 2025
5af3ca6
Fix input hand not changing from left handed
FrostSource Jul 2, 2025
a501285
Add debug menu title
FrostSource Jul 2, 2025
d698d7d
Increase interact distance from 8 to 12
FrostSource Jul 2, 2025
329c24d
Turn scroll helpers into menu buttons
FrostSource Jul 3, 2025
1d64f55
Dynamically scale category text to fit tab better
FrostSource Jul 3, 2025
baed9ea
Make newly added categories flash
FrostSource Jul 3, 2025
d6a015b
Update SetCategoryIndex immediately
FrostSource Jul 3, 2025
7b8d2bc
Add SendCategoryToPanel
FrostSource Jul 3, 2025
c486459
Ignore debug menu activation in novr
FrostSource Jul 3, 2025
88c049f
Make switches smaller
FrostSource Jul 3, 2025
f16d8a4
Make scroll helpers smaller
FrostSource Jul 3, 2025
17e2070
Add debug_menu_extras
FrostSource Jul 3, 2025
7c62f13
Indentation
FrostSource Jul 3, 2025
c4ddb4b
Merge branch 'latest' into debug_menu
FrostSource Jul 3, 2025
e12932d
Add debug menu slider and cycler
FrostSource Jul 11, 2025
8bf68de
Reference panoramadoc instead of require
FrostSource Jul 11, 2025
694801c
Warn elements that can't change text
FrostSource Jul 11, 2025
1ebffe3
Add backing convar for noclip_vr
FrostSource Jul 11, 2025
629243d
Fix panorama table flattening
FrostSource Jul 11, 2025
19aaa77
Update EasyConvars to support Convars accessor
FrostSource Jul 11, 2025
65422e6
Remove prints
FrostSource Jul 11, 2025
2c836ad
Add existing panel types, refactor to classes
FrostSource Jul 11, 2025
6f0e459
Add title to separator
FrostSource Jul 11, 2025
af6ce3e
Fix scroll helpers locking up
FrostSource Jul 11, 2025
26ddcbc
Update alyxlib tab defaults
FrostSource Jul 11, 2025
4a8fe05
Add version
FrostSource Jul 11, 2025
ac160b1
Add vis to alyxlib_extras tab
FrostSource Jul 11, 2025
6dea217
Improve comments
FrostSource Jul 13, 2025
8da51eb
Turn label into a class
FrostSource Jul 13, 2025
4c84930
Display demo filename in menu
FrostSource Jul 13, 2025
e02322b
Merge pull request #4 from FrostSource/debug_menu
FrostSource Jul 17, 2025
8c13f5b
Update versions
FrostSource Jul 17, 2025
e33f11a
Increase major version number
FrostSource Jul 17, 2025
72e1cb2
Add changes to workshop changelog
FrostSource Jul 17, 2025
a18fa78
Change logo
FrostSource Jul 17, 2025
1a0b4e2
Update version manifest
FrostSource Jul 17, 2025
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ __pycache__
/test_release/
__test*
*.bak
check_lua_versions.sh
6 changes: 1 addition & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@

<p align="center">
<picture>
<source srcset="https://github.com/user-attachments/assets/5888846f-88b6-4a35-bf83-51e31cdfdcff" media="(prefers-color-scheme: light)">
<source srcset="https://github.com/user-attachments/assets/27af88d4-265f-4c58-83ef-d68cba14f1f9" media="(prefers-color-scheme: dark)">
<img alt="AlyxLib Logo" src="https://github.com/user-attachments/assets/27af88d4-265f-4c58-83ef-d68cba14f1f9" width="250">
<img alt="AlyxLib Logo" src="./assets/alyxlib_logo_256x256.png" width="128">
</picture>
</p>

&nbsp;

<div align="center">

[![License](https://img.shields.io/badge/License-MIT-04663E)](#license)
Expand Down
Binary file added assets/alyxlib_logo_256x256.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
140 changes: 140 additions & 0 deletions deployment_manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
{
"Categories": {

"vscript": [
{
"type": "symlink",
"description": "AlyxLib library symlink",
"source": "{AlyxLib}/scripts/vscripts/alyxlib",
"destination": "{AddonContent}/scripts/vscripts/alyxlib",
"remove": true
},
{
"type": "symlink",
"description": "gameinit.lua symlink",
"source": "{AlyxLib}/scripts/vscripts/game/gameinit.lua",
"destination": "{AddonContent}/scripts/vscripts/game/gameinit.lua",
"remove": true
},
{
"type": "copy",
"description": "Addon main init.lua file",
"source": "{AlyxLib}/templates/script_init_main.txt",
"destination": "{AddonContent}/scripts/vscripts/{ModName}/init.lua"
},
{
"type": "template",
"description": "Workshop mod init file",
"source": "{AlyxLib}/templates/script_init_workshop.txt",
"destination": "{AddonContent}/scripts/vscripts/mods/init/0000000000.lua",
"replacements": "{ModName}",
"rules": [
{
"type": "FileNameDoesNotExist",
"target": "destination",
"value": "rx:^\\d+\\.lua$",
"description": "Possible workshop init file already exists so a new one will not be created."
}
]
},
{
"type": "template",
"description": "Local mod init file",
"source": "{AlyxLib}/templates/script_init_local.txt",
"destination": "{AddonContent}/scripts/vscripts/mods/init/{AddonFolderName}.lua",
"replacements": "{ModName}"
},
{
"type": "symlink",
"description": "Scripts symlink in addon game folder",
"source": "{AddonContent}/scripts",
"destination": "{AddonGame}/scripts"
}
],

"editor-vscode": [
{
"type": "symlink",
"description": "AlyxLib snippets symlink for VSCode",
"source": "{AlyxLib}/.vscode/alyxlib.code-snippets",
"destination": "{AddonContent}/.vscode/alyxlib.code-snippets"
},
{
"type": "symlink",
"description": "VScript snippets symlink for VSCode",
"source": "{AlyxLib}/.vscode/vlua_snippets.code-snippets",
"destination": "{AddonContent}/.vscode/vlua_snippets.code-snippets"
},
{
"type": "copy",
"description": "AlyxLib VSCode settings file",
"source": "{AlyxLib}/templates/vscode_settings.txt",
"destination": "{AddonContent}/.vscode/settings.json",
"rules": [
{
"type": "FileDoesNotExist",
"target": "destination",
"description": "VSCode settings file already exists, so it will not be replaced"
}
]
}
],

"panorama": [
{
"type": "symlink",
"description": "Panorama Lua integration symlink",
"source": "{AlyxLib}/panorama/scripts/custom_game/panorama_lua.js",
"destination": "{AddonContent}/panorama/scripts/custom_game/panorama_lua.js"
},
{
"type": "symlink",
"description": "Panorama code completion symlink",
"source": "{AlyxLib}/panorama/scripts/custom_game/panoramadoc.js",
"destination": "{AddonContent}/panorama/scripts/custom_game/panoramadoc.js"
}
],

"sounds": [
{
"type": "copy",
"description": "Addon soundevents file",
"source": "{AlyxLib}/templates/soundevents.txt",
"destination": "{AddonContent}/soundevents/{AddonFolderName}_soundevents.vsndevts"
},
{
"type": "delete",
"description": "Delete default soundevents file",
"source": "{AddonContent}/soundevents/addon_template_soundevents.vsndevts",
"rules": [
{
"type": "Hash",
"value": "768e1cb207576e41b92718e0559f876095618a23f7a116a829a7b5d578591eeb",
"description": "Default soundevents file has been modified, so it won't be deleted"
}
]
},

{
"type": "template",
"description": "Addon soundevents manifest file",
"source": "{AlyxLib}/templates/resource_manifest.txt",
"destination": "{AddonContent}/resourcemanifests/{AddonFolderName}_addon_resources.vrman",
"replacements": "{AddonFolderName}"
},
{
"type": "delete",
"description": "Delete default soundevents manifest file",
"source": "{AddonContent}/resourcemanifests/addon_template_addon_resources.vrman",
"rules": [
{
"type": "Hash",
"value": "495d7301afadbed3eece2d16250608b4e4c9529fd3d34a8f93fbf61479c6ab13",
"description": "Default soundevents manifest file has been modified, so it won't be deleted"
}
]
}
]

}
}
85 changes: 85 additions & 0 deletions panorama/layout/custom_game/alyxlib_debug_menu.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
<root>
<styles>
<include src="s2r://panorama/styles/game_menus/game_menu_main.vcss_c" />
<include src="s2r://panorama/styles/language_shared.vcss_c" />
<include src="s2r://panorama/styles/custom_game/alyxlib_debug_menu.vcss_c" />
</styles>
<scripts>
<include src="s2r://panorama/scripts/custom_game/panorama_lua.vjs_c" />
<include src="s2r://panorama/scripts/custom_game/alyxlib_debug_menu.vjs_c" />
</scripts>
<GameMenuPanel class="game_menu_root" onactivate="GameMenuNavigation_Cmd( 'GoTo Root' )">
<Panel class="base_container" id="layout_root">

<Panel class="vr_affordance_container">

<Panel id="vr_affordance_left" class="VRaffordance">
<Panel id="vr_affordance_interior"/>
</Panel>
<Panel id="vr_affordance_right" class="VRaffordance">
<Panel id="vr_affordance_interior"/>
</Panel>

<Panel id="background_panel" class="bg">
<Panel class="header">
<Label class="header" text="Debug Menu" />
</Panel>
<Panel class="empty_row" />
<Panel class="row">
<Panel id="CategoriesContainer" class="col_body">

<!-- Close menu button -->
<Button id="CloseMenuButton" onactivate="CloseMenu()">
<Label class="button_label" text="Close Menu"/>
<Image class="button_bullet" src="s2r://panorama/images/game_menu_ui/btn_bullet_child_page_png.vtex" />
</Button>

<!-- Cycle left -->
<Panel id="CategoryCycler" class="cycle_item custom_cycle">
<Button id="CycleCategoryLeftButton" class="CycleCategoryLeft" onactivate="CycleCategories(-1)">
<Panel class="cycle_image cycle_image_left"/>
</Button>

<!-- Category buttons are kept here -->
<Panel id="CategoryBar" class="CategoryBar" />

<!-- Cycle right -->
<Button id="CycleCategoryRightButton" class="CycleCategoryRight" onactivate="CycleCategories(1)">
<Panel class="cycle_image cycle_image_right"/>
</Button>
</Panel>

<!-- Category sub menu separator -->
<Panel class="row_divider">
<Panel class="button_label">
<Panel class="row_divider_line" />
</Panel>
<Panel class="button_bullet" />
</Panel>

<Button id="ScrollHelperUp" class="scroll_helper up">
<Panel style="flow-children: right; horizontal-align: center;">
<Panel class="chevron_arrow" />
<Panel class="chevron_arrow" />
<Panel class="chevron_arrow" />
</Panel>
</Button>

<!-- Individual submenus are added here at the end of CategoriesContainer -->

</Panel>
</Panel>
<Button id="ScrollHelperDown" class="scroll_helper down">
<Panel style="flow-children: right; horizontal-align: center;">
<Panel class="chevron_arrow" />
<Panel class="chevron_arrow" />
<Panel class="chevron_arrow" />
</Panel>
</Button>
<!-- <Panel class="empty_row" />
<Panel class="empty_row_bottomR_corner" /> -->
</Panel>
</Panel>
</Panel>
</GameMenuPanel>
</root>
Loading