Git Product home page Git Product logo

funky's Introduction

Funky

Funky is an open-source mods manager for Left 4 Dead 2, developed with Electron, Dexie, Svelte and Skeleton UI.

App

Initially inspired by Left 4 Dead 2's terrible in-game addons menu, I wanted something that gives me more functionality, like search and a better method of solving conflicts, but the scope has since gotten much broader with lots of other great features and improvements that are lacking in the in-game menu.

Please note that Funky is still in beta / early development. Future updates may or may not introduce breaking changes that may or may not break user configurations.

Installation

You can find the latest releases of Funky for Windows and Linux on the Releases page.

Features

  • Grid display with thumbnails and pagination
  • Search and filters
  • Automatic mod categorization based on mod contents
  • Much more detailed mod overview with useful actions
  • Conflict solving menu, showing you exactly which mods are conflicting
  • Playlists, letting you quickly hop between different setups
  • Shuffles, randomizing your mod selection every time you boot up the game
  • Batch selection of mods with various actions
  • Unsubscribing from mods via Steam Web API
  • VPK browser with extraction functionality

Planned improvements

  • Campaigns category
  • Improved shuffle dragging behaviour
  • Feedback UI for empty search query results
  • Playlist deletion
  • Shuffle option to allow no mod being chosen

Unplanned ideas

Here are some ideas or features that may or may not be considered in the future

  • List view of mods
  • Built-in custom config/autoexec editor
  • Local data backup
  • Online data backup
  • Collections
  • Vocalizer editor
  • Playlist duplication

Caveats

While I've found Funky to be extremly useful in organizing my ever growing library of mods, there's some things to keep in mind:

  • The game needs to be restarted before any changes made in Funky can take effect.
  • Newly subscribed-to Workshop mods will only be downloaded after you start the game.

So taking both of these points into account, if you've just subscribed to a new mod, you'll have to open up the game, wait for the game to download the mod, close the game, make any changes in Funky and then finally, run the game from within Funky in order for all changes to take effect. Quite clumbersome, but it is what it is.

Project Setup

Install dependencies

npm i

Development

npm run dev

Build

# For windows
npm run build:win

# For macOS
npm run build:mac

# For Linux
npm run build:linux

funky's People

Contributors

pukmajster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

funky's Issues

Program freezes while trying to refresh modlist

I think this started happening after the July 26 update. I can still do everything else as normal, but refreshing the mod list just causes Funky to infinitely load and the program to eventually stop responding

Unsubscribing from mods

Man i have no idea how to go about this

One solution that worked involved a browser extension. Basically, once you clicked unsubscribe on a mod, it would open the steam workshop mod page in your default browser with a custom URL parameter that told the extension to "click" the unsubscribe button. I worked! but it involves installing an extension and having a bunch of tabs opening for every mod you unsubscribe. I could perhaps replace the param with a list of mod ids to unsubscribe from... which could work in theory, but still messy.

Utilizing the Steam Web API sounds neat but that means the user would have to generate their Steam key and then store said key in Keith's unencrypted config file, available for all to see. God damnit.

addonlist.txt being loaded

I'm not sure if this is intended behaviour.

I would like for my currently set addonlist.txt to be read, to have a starting point when starting to use Funky. Now, after first use, I seem to need to manually activate all the mods I have activated in-game in Funky to achieve parity.

This might be related to #6 though.

Rename?

I was originally gonna go with Sourcebox (great name), but there's a hl2:dm mod of the same name... oh well

I then went with Keith because we all love Keith, but there's other ideas too

  • l4d2 workbench
  • modbox
  • sourcebench

idk, maybe i'll decide one day

Mod images are forced stretching

For good-looking purpose, many previews of mods are forced to strech. I noticed that there exists different length-width ratio of mod images. Maybe you can add some conditional statements and take different scaling strategies to improve visual effect.

It's easy to find many of them looking not good, too wide, which also reduce the recognition. Below is an example.

image

Mod correlation when enabling or disabling

There exists a circumstance that one complete content needs more than one mod to implement. The most common example is campaign. Many campaigns are devided into parts because they are too big. Also some weapons have additional material mod or sound mod. You can enable users to create correlation among mods and sync their status. I just find the problem in the SHUFFLES, for I want to add a weapon to the shuffle, while it has additional sound mod. I can't make two of them binding together.

image

Mod addonInfo unrecognized

As the title described, some mods don't show any addonInfo (such as name, author, version, description) in the program. I tried to correct addonInfo.txt in .vpk file, but it's still unrecognized. Paste some mods with this problem below:

[VScripts] Library of Utils https://steamcommunity.com/sharedfiles/filedetails/?id=2821408044
[Improved] Headshot Feedback Effect https://steamcommunity.com/sharedfiles/filedetails/?id=2582265366
The Particles Manifest https://steamcommunity.com/sharedfiles/filedetails/?id=1380516683

by the way, if is it possible to display local path and file name of the mod on the right-click menu?
It's so hard to navigate the problem .vpk file

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.