Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
73771eb
Syncing changes automatically to SwiftlyS2 for today's CS2 Update.
skuzzis Nov 5, 2025
6470fee
fix: Resolve static text rendering issue
ELDment Nov 5, 2025
d279eb2
Merge pull request #79 from swiftly-solution/update/cs2-sync
skuzzis Nov 5, 2025
bf0573d
feat: Implement key binding conflict detection for ButtonOverrides
ELDment Nov 5, 2025
4c3fd06
fix: Correct BuildFooter display content to show button overrides
ELDment Nov 5, 2025
1de2068
chore: Change timing of duplicate key binding exception output
ELDment Nov 5, 2025
727b4f1
Merge remote-tracking branch 'upstream/beta' into beta-1
ELDment Nov 5, 2025
d1e8916
fix: Typo
ELDment Nov 5, 2025
26e22d4
Merge pull request #80 from ELDment/beta-1
skuzzis Nov 5, 2025
4284540
feat: Implement async support for AddSubmenu
ELDment Nov 5, 2025
5b8266c
refactor: Better implementation
ELDment Nov 5, 2025
247735f
feat(managed): More method to weapon service
samyycX Nov 5, 2025
d293700
Merge pull request #82 from ELDment/beta-1
skuzzis Nov 5, 2025
ba47f21
fix(managed): Fix InterfaceManager visibility
samyycX Nov 5, 2025
07e2c14
chore: Add HasSound interface to IOption
ELDment Nov 5, 2025
8fe76fc
feat(api): SteamWorks API
skuzzis Nov 5, 2025
4509684
update(files): ACK
skuzzis Nov 6, 2025
fa08da0
Merge branch 'beta' of https://github.com/swiftly-solution/swiftlys2 …
skuzzis Nov 6, 2025
3d36442
refactor: Add GetCurrentOption and deprecate IsCurrentOptionSelectabl…
ELDment Nov 6, 2025
053c1ba
Merge remote-tracking branch 'upstream/beta' into beta-1
ELDment Nov 6, 2025
0d7d3a9
fix: Compilation errors in TestPlugin
ELDment Nov 6, 2025
267e33f
Merge pull request #84 from ELDment/beta-1
skuzzis Nov 6, 2025
5f5e035
fix(core): Fix netmessage get string
samyycX Nov 6, 2025
ba14194
fix: volvo
samyycX Nov 6, 2025
eb9506b
fix(steam): Fix steam api
samyycX Nov 6, 2025
6a952b8
fix(core): Adapt latest steam api
samyycX Nov 6, 2025
e1b53ca
fix(managed): Fix steam api callback
samyycX Nov 6, 2025
434be34
update(engine): Use Steamworks for ServerIP
skuzzis Nov 6, 2025
bef0b24
update(engine): Make ServerIP nullable
skuzzis Nov 6, 2025
499f391
update(steamworks): Remove Client
skuzzis Nov 6, 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
171 changes: 171 additions & 0 deletions ACKNOWLEDGEMENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
# Acknowledgements

Here is a list of all the sources from where we've taken code initially for any feature.

## CS2Fixes

We've cherrypicked ServerSideClient from this repository.
CS2Fixes is and will always be a great repository for RE stuff in CS2.

```
/**
* =============================================================================
* CS2Fixes
* Copyright (C) 2023-2025 Source2ZE
* =============================================================================
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, version 3.0, as published by the
* Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*/
```

## CounterStrikeSharp

We've inspired the feature VoiceManager with the one from CounterStrikeSharp.

```
/*
* CounterStrikeSharp is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* CounterStrikeSharp is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
```

## HL2SDK

HL2SDK is a repository maintained by [AlliedModders](https://github.com/alliedmodders/hl2sdk).
We've initially cherrypicked essential files for [S2SDK](https://github.com/swiftly-solution/s2sdk).

## Metamod:Source

We've taken from Metamod:Source the way how our SwiftlyS2-Loader should work.

```
The software is Copyright (C) 2004-2008, Metamod:Source Development Team.

Metamod:Source is distributed under the "zLib/libpng" license, which is reproduced
below:

-----------------------------------------------------------------------------

This software is provided "as-is", without any express or implied warranty.
In no event will the authors be held liable for any damages arising from
the use of this software.

Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software in
a product, an acknowledgment in the product documentation would be
appreciated but is not required.

2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.

3. This notice may not be removed or altered from any source distribution.

-----------------------------------------------------------------------------

The zLib/libpng license has been approved by the "Open Source Initiative"
organization.
```

## Nlohmann/json

JSON library used in Native side.

```
MIT License

Copyright (c) 2013-2025 Niels Lohmann

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```

## Safetyhook

Hooking Library used in SwiftlyS2

```
Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:

The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
```

## SteamWorks.NET

We've taken the SteamWorks API Generator and modified some of the files.

```
The MIT License (MIT)

Copyright (c) 2013-2022 Riley Labrecque

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
```
21 changes: 21 additions & 0 deletions generator/steamworks_generator/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
The MIT License (MIT)

Copyright (c) 2013-2022 Riley Labrecque

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
13 changes: 13 additions & 0 deletions generator/steamworks_generator/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Steamworks.NET CodeGen
======================

This is special sauce that generates the autogen/ and types/ directories.

It uses [SteamworksParser](https://github.com/rlabrecque/SteamworksParser) to parse the Steamworks C++ header files, then converts them to C#.

Usage
-----

1. If necessary update the files in `steam/`
2. Open a command prompt to the CodeGen directory. (The script must be run from this directory or the relative paths will be broken.)
3. Run `python3 Steamworks.NET_CodeGen.py`, preferably on a linux based OS to generate proper line endings. (I use WSL for this.)
21 changes: 21 additions & 0 deletions generator/steamworks_generator/Steamworks.NET_CodeGen.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from SteamworksParser import steamworksparser
from src import interfaces
from src import constants
from src import enums
from src import structs
from src import typedefs

def main():
steam_path = "../../vendor/s2sdk/public/steam/"

steamworksparser.Settings.fake_gameserver_interfaces = True
___parser = steamworksparser.parse(steam_path)

interfaces.main(___parser)
constants.main(___parser)
enums.main(___parser)
structs.main(___parser)
typedefs.main(___parser)

if __name__ == "__main__":
main()
1 change: 1 addition & 0 deletions generator/steamworks_generator/SteamworksParser/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.pyc
21 changes: 21 additions & 0 deletions generator/steamworks_generator/SteamworksParser/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
The MIT License (MIT)

Copyright (c) 2015-2021 Riley Labrecque

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
40 changes: 40 additions & 0 deletions generator/steamworks_generator/SteamworksParser/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# SteamworksParser

This is a simple parser for the [Steamworks](https://partner.steamgames.com/) header files.

SteamworksParser is used to generate the [Steamworks.NET](https://github.com/rlabrecque/Steamworks.NET) bindings via [Steamworks.NET-CodeGen](https://github.com/rlabrecque/Steamworks.NET-CodeGen).

You might be wondering why not just use something like libclang to parse the C++. The primary reason was that I wanted to retain comments and formating information.

## Usage Example

Pull this package into your project folder.

```python
import sys
from SteamworksParser import steamworksparser

def main():
if len(sys.argv) != 2:
print('Usage: test.py <path/to/steamworks_sdk/sdk/public/steam/>')
return

steamworksparser.Settings.warn_utf8bom = True
steamworksparser.Settings.warn_includeguardname = True
steamworksparser.Settings.warn_spacing = True
parser = steamworksparser.parse(sys.argv[1])

with open('test.json', 'w') as out:
out.write('{\n')

out.write(' "typedefs":[\n')
for typedef in parser.typedefs:
out.write(' {\n')
out.write(' "typedef":"' + typedef.name + '",\n')
out.write(' "type":"' + typedef.type + '"\n')
out.write(' },\n')


if __name__ == '__main__':
main()
```
Empty file.
Loading
Loading