Giter VIP home page Giter VIP logo

crankshaft's Introduction

crankshaft

GitHub All Releases Latest release Chat Recurring donation via Liberapay One-time donation via ko-fi.com

a fast, feature-rich krunker client written in typescript

Download: Windows (x64) - Mac (x64) - Linux (x86_64 AppImage) - Linux (i386 AppImage) - Other
splash

client features

  • very good performance with additional performance enhancing settings
  • highly customisable, many different settings
  • hides ads by default (can be disabled)
  • resource swapper (css, sounds & all other assets)
  • userscript support
  • discord RPC (gamemode, map, class & skin)
  • customisable matchmaker (Gamemode, Region, Min/Max players, Time)
  • quick class switcher using #hiddenClasses
  • built-in hotkeys: more about them here
  • maintained & open source

quality of life

  • all client specific features can be turned off to ensure maximum performance
    • once a feature is disabled, none of it code runs
    • for example, while 'Discord RPC' is off, crankshaft does not even import the discord-rpc library.
  • written in typescript
  • secure: web security is on, the remote module and nodeIntegration are disabled
  • splash screen is not a separate window, shows only while krunker is actually loading.
  • doesn't automatically open free spin urls in browser
    • you can open them in a new window, in browser or not open them at all
  • Discord RPC: if enabled, only updates while you're not actually in game. Does not use setInterval like other clients.
  • no-compromise mac, linux and windows support
  • only 4 dependencies

userscripts

  • any .js file in %APPDATA%/crankshaft/config/scripts will be considered a userscript and executed if enabled in settings.
  • There are a few official/example userscripts:
    • keystrokes.js: shows WASD, shift, space and 2 configurable keys on screen.
    • autospectate.js: automatically joins game as spectator if turned on
  • all userscripts are disabled when they are first added.
  • %APPDATA%/crankshaft/config/tracker.json is used to keep track of enabled userscripts.

If you want to write a userscript or learn more about them, read the Documentation

Use userscripts at your own risk, the author(s) of this client are not responsible for any damage done with userscripts because the user is the author of the script. Do not write or use any userscripts which would give the user a competitive advantage.

hotkeys

Press Alt to show electron menu. Here you can find all hotkeys.
standard hotkeys like zooming, copying/pasting and devtools also included.
Client's hotkeys:

  • F5: reload
  • F6: find a new match,
  • F7: copy game link,
  • Ctrl+F7: join game from clipboard
  • F12: devtools (alternative hotkey)

matchmaker

a customisable matchmaker (with GUI settings!) that you can use alongside/instead of the regular F6 matchmaker

upcoming breaking change

  • from version 1.9.0, crankshaft will no longer support Documents/Crankshaft for configuration.
  • make a backup of Documents/Crankshaft before updating.
  • crankshaft 1.9.0 will auto-migrate the folder, but there's a very small chance it could fail while moving/copying/deleting the files, and you'd lose your settings, swapper & scripts.
  • this is due to inconsistent read/write permissions for users whose Documents directory lives inside of OneDrive or has been otherwise moved.
  • crankshaft 1.9.0 will add quick-open buttons for the new directories & files, as they are harder to access.

building from source

  1. you have to have git, nodejs, and pnpm installed.
  2. installation:
    • git clone https://github.com/KraXen72/crankshaft
    • cd crankshaft
    • pnpm i
  3. building from source: pnpm dist

contributing

  1. follow previous steps 1 & 2
  2. make your changes + running from source: pnpm start/pnpm dev (rebuilds on changes, refresh krunker with F6)
    • make sure to run the code through the configured eslint before contributing. (vs code will enable it if you have the extension)
  3. after your changes, try it out with pnpm testbuild - this will minify the code & run the app.
    • until automated tests are added, try to manually test it works even after the code is minified. if it does not, you're probably doing something wrong
  • please report any bugs/feature requests in the Issues.
  • feel free to submit pull requests, they will be merged as long as they support the client ideology.

credits

  • Creepycats released Gatoclient, which was based on top of idkr.
  • Crankshaft was built on top of Gatoclient lite, an app.asar mod optimizing Gatoclient by LukeTheDuke.
  • Very little code remains, as Crankshaft was rewritten in typescript & more features were added.
  • Gatoclient was later rewritten, implementing some code from Crankshaft too.
  • other acknowledgments

support development

Recurring donation via Liberapay One-time donation via ko-fi.com

You can support ongoing development & maintainance by donating. All donations are highly appreciated! <3

crankshaft's People

Contributors

kraxen72 avatar mixaz017 avatar xedyyy avatar asger-finding avatar moongazer07 avatar aprilsbloom avatar thegu5 avatar aspectquote avatar envyxyz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.