CoD GSC extension for VS Code
This extension adds language support for the GSC scripts used in Call of Duty games.
⚠️ This extension is still under development and is not fully finished. Check the list of the available features in List of features.
Supported games
Game |
Code |
Modification |
Status |
Not working yet |
CoD1 |
IW1 |
original |
✅ Supported |
|
CoD2 |
IW2 |
original |
✅ Supported |
|
CoD4 |
IW3 |
original |
✅ Supported |
|
CoD5 |
T4 |
original |
✅ Supported |
|
Plutonium T4 |
❔ |
|
MW2 |
IW4 |
original |
❗ Tested, errors |
childthread, call |
Alterware IW4x |
❔ |
|
BO1 |
T5 |
original |
✅ Supported |
|
Plutonium T5 |
❔ |
|
MW3 |
IW5 |
original |
❗ Tested, errors |
childthread, call |
Plutonium IW5 |
❔ |
|
Alterware IW5-Mod |
❔ |
|
BO2 |
T6 |
original |
❗ Tested, errors |
#insert, #define, param default value, autoexec, const, %xxx::yyy, /@ comments @/ |
Plutonium T6 |
❗ Tested, errors |
order of file references |
Ghosts |
IW6 |
original |
❔ |
|
Alterware IW6-Mod |
❔ |
|
AW |
S1 |
original |
❗ Tested, errors |
childthread, call |
Alterware S1-Mod |
❔ |
|
BO3 |
T7 |
original |
🚫 Not supported |
#using, #namespace, function, .gscc, .csc, .cscc |
IW |
IW7 |
original |
❔ |
|
Aurora IW7-mod |
❔ |
|
CoD4:MWR |
H1 |
original |
❔ |
|
Aurora H1-mod |
❗ Tested, errors |
param default value, call, childthread |
WWII |
S2 |
original |
❔ |
|
BO4 |
T8 |
original |
❔ |
|
MW |
IW8 |
original |
❔ |
|
BOCW |
T9 |
original |
❔ |
|
Vanguard |
S3 |
original |
❔ |
|
MWII |
IW9 |
original |
❔ |
|
MWIII |
S4 |
original |
❔ |
|
BO6 |
T10 |
original |
❔ |
|
Change log
View changes
Features
Syntax highlighting
Completion items (local functions)
Completion items (included functions)
Completion items (with CoD2 MP functions)
Completion items (variables)
Completion items (variables with recognized variable type)
Completion items (variables from included workspace folders)
Diagnostics
Diagnostics - invalid file for #include
Diagnostics - possible missing semicolon indication
Function definition
Function hover info
Function hover info over CoD2 MP function spawn:
Code actions (include folder for file references)
Code actions (ignore missing files)
Workspace folders
Status bar
List of features
- GSC file parser
- Syntax parser
- Comments (
/*...*/ , //... )
- Developer blocks (
/# ... #/ )
- Preprocessor (
#include , #using_animtree , #animtree )
- Keywords (
return , if , else , for , foreach , while , do-while , switch , continue , break , case , default , thread , wait , waittillframeend , waittill , waittillmatch , endon , notify , breakpoint )
- Operators (
= , += , -= , *= , /= , %= , |= , &= , ^= , ++ , -- , + , - , * , / , % , | , & , ^ , << , >> , == , != , < , > , <= , >= , && , || , ! , ~ )
- Strings (
"default" , &"STRING_LOCALIZED" , #"sv_cvar_string" )
- Ternary conditional operators (
true ? "yes" : "no" )
- Anim string (
%xanim_file_name )
- Path (eg.
maps\mp\gametypes\sd )
- Detection of explicitly typed types of variables (string, localized string, cvar string, vector, integer, float, structure, array, function, entity, bool, xanim)
- Completion item provider (auto-suggestion)
- Variables (local to function, global
level and game )
- Constants
- Keywords
- File path
- Function definitions
- Diagnostics (errors and warnings)
- Syntax error
- Unexpected tokens
- Missing semicolons
- Extra semicolons
- Invalid function parameters
- Missing files
- Invalid numbers of function parameters
- Semantics token provider
- Proper colorization of tokens
- Definition provider
- Local functions (
funcName() )
- External functions (
maps\mp\gametypes\file::funcName() )
- Included functions (via
#include )
- Hover provider
- Code action provider
- Adding missing files into ignored list
- Adding undefined functions into ignored list
TODO
- Add .csc files (client side scripts)
- Parser for .menu files
- Integrate list of built-in functions for CoD4
- Improve detection of variable types - now it's detected only by explicitly assigned constant value
- Show available function names in completion item provider
- Show available string constants for
notify waittill waittillmatch endon in completion item provider
- Check for unreachable code
- Implement "Go to definition" for variables
- Implement some kind of JSDoc comments to improve function and variable description
- Implement rename function / variable functionality
- Detection of undefined variables
Install
This extension is available through Visual Studio Marketplace.
Support
Please test this extension in vscode on your GSC files and report bugs / suggestions on the github page or on discord KILLTUBE #vscode-cod-gsc
| |