Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cactoes/lcts
A feature rich League of Legends client written in TypeScript, scripting & more
https://github.com/cactoes/lcts
automation electron javascript league-client league-client-api league-of-legends typescript
Last synced: 3 days ago
JSON representation
A feature rich League of Legends client written in TypeScript, scripting & more
- Host: GitHub
- URL: https://github.com/cactoes/lcts
- Owner: cactoes
- License: gpl-3.0
- Created: 2022-06-19T21:32:16.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-09-06T08:20:39.000Z (about 2 years ago)
- Last Synced: 2023-04-03T18:31:03.820Z (over 1 year ago)
- Topics: automation, electron, javascript, league-client, league-client-api, league-of-legends, typescript
- Language: TypeScript
- Homepage:
- Size: 14.7 MB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# LCTS (League Client TypeScript)
A feature rich league client written in TypeScript, with basic scripting & more## Installing the client
Just download the client from the [releases](https://github.com/cactoes/lcts/releases) tab & run 'lcts.exe'## A clean UI
A stylish clean ui, for ease of use![ui](images/ui_new.png)
## An x88 style overlay
Your game has to be in borderless (or windowed) to work, (can be turned off)![overlay](images/overlay_new.png)
## Features
- automatically
- accept the match
- pick
- a champion to play
- a champion to ban
- set runes (runes do change you might not be able to see the changes when editing)
- set summoner spells
- check if you got the lane you want
- [scripting](#scripting)
- toggleable overlay
- [config](#config)## Config
The config is located in [resources/data/config.json](resources/data/config.json), here you can customize everything
### Structure
```javascript
{
"auto": {
"acceptMatch": true, // automatically accepting a match
"champion": {
"set": true, // "hovering" of your pick/ban
"lock": true, // lock-in the selected champion
"ban": true, // ban the selected champion
"checkLane": true, // check if the lane you got was the lane you chose in the lobby (primary lane only), for picking/banning
"defaultLane": "utility", // if you didn't choose a lane this will be the lane it uses instead
"lanePick": {
"top": [
"Gwen" // the list of champion you want to pick on the top lane
],
"jungle": [
"Lilia" // the list of champion you want to pick in the jungle
],
"middle": [
"Irelia" // the list of champion you want to pick on mid
],
"bottom": [
"Caitlyn" // the list of champion you want to pick as the adc
],
"utility": [
"Renata" // the list of champion you want to pick as the support
]
},
"laneBan": {
"top": [
"Garen" // the list of champion you want to ban on the top lane
],
"jungle": [
"Belveth" // the list of champion you want to ban in the jungle
],
"middle": [
"Akali" // the list of champion you want to ban on mid
],
"bottom": [
"Ezreal" // the list of champion you want to ban as the adc
],
"utility": [
"Leona" // the list of champion you want to ban as the support
]
}
},
"runes": {
"set": true, // automatically set the runes of the locked in champion
"prefix": "[u.gg]" // change the runes that start with this
},
"spells": {
"set": true, // automatically set you summoner spells
"defaultLane": "utility", // if you didn't choose a lane this will be the lane it uses instead
"lane": {
"top": [
"Teleport", // *D*
"Flash" // *F*
],
"jungle": [
"Smite", // *D*
"Flash" // *F*
],
"middle": [
"Ignite", // *D*
"Flash" // *F*
],
"bottom": [
"Heal", // *D*
"Flash" // *F*
],
"utility": [
"Ignite", // *D*
"Flash" // *F*
]
}
}
},
"misc": {
"status": {
"text": "default-status", // what to set the status to
"set": false // auto set it
},
"rank": {
"tier": "diamond", // for storing your tier so you can use it in a script
"rank": "III", // for storing your rank so you can use it in a script
"set": false // auto set it
},
"userScript": true // make use of the user made script (script.js)
},
"overlay": true // enable in game overlay
}
```## Scripting
LCTS doesn't have any scripts, it only support "scripts" for automating the client### User made scripts
The client allows for function scripting (within LCTS itself), the script is located in [resources/data/script.js](resources/data/script.js).
- The script has to be called "**script.js**" so the client can find it.There are some default scripts available just rename the one you want to "**script.js**", and restart the LCTS to run them.
- The default script are located in the "**examples**" folder### Structure
```javascript
class LCScript {
// when the game launches
async onUserConnect(user, lobby, config) {
// your code goes here
return true
}// when user joins a party
async onPartyJoin(user, lobby, config) {
// your code goes here
return true
}
}
```### Methods
Methods are called like this
```Javascript
await user.setStatus("example")
```
Some functions return data, they look like this:
- [IUser](src/types.d.ts#L199)
- [ILobby](src/types.d.ts#L289)#### Methods in *user*
```TypeScript
async function setStatus(status: string): Promise
async function setRank(tier: string, rank: string): Promise
```
#### Methods in *lobby*
```TypeScript
async function setLanes(first: string, second: string): Promise
async function create(queueId: number): Promise
async function leave(): Promise
async function setPartyType(type: string): Promise
async function startSearch(): Promise
async function stopSearch(): Promise
```## Prerequisites
If you want to run the client from source make sure you have:
- TypeScript - [Download & Install TypeScript](https://www.typescriptlang.org/download). Used for compiling and the TypeScript enviroment
```
$ npm install -g typescript
```## Dependencies
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]## DevDependencies
- [email protected]
- [email protected]## Installing the client from source
```
$ git clone https://github.com/cactoes/lcts.git
$ cd lcts
$ npm install
```## Running the client from source
Run the client directly from source
```
$ npm run test
```## Compiling the client
Compile / build the client from source
```
$ npm run package:win
```## Logo
The logo isn't mine it was made by [surgingpink](https://www.deviantart.com/surgingpink)## Contributing
[Contributing](CONTRIBUTING.md)## License
[GNU GPLv3](LICENSE.md)