Giter Club home page Giter Club logo

my-clone-hero-tweaks's Introduction

My Clone Hero Tweaks

Build status

A bunch of Clone Hero tweaks I have made!

More information about each tweak can be found in their respective folders.

Preview

My Clone Hero Tweaks (gfycat)

How to install

  • You will need Clone Hero v0.23.2.2. You can use any version from the website (i.e. Win64, Win32, Mac, or Linux), but your mileage with the launcher version may vary.
  • Install BepInEx v5.4.17 into your Clone Hero directory.
    • Download the appropriate version and extract all of its files into your Clone Hero directory.
    • Please verify that BepInEx has initialised by running the game after extracting, and then checking that there are five folders and a LogOutput.log file inside the BepInEx folder. One of those folders will be named plugins, and you'll need that to run the mods.
  • Go to the Releases page and download the latest versions of the mods you want for your version of Clone Hero.
    • Almost all the mods will require Biendeo CH Lib to also be installed so please also download that. If you are missing it, the log will inform you.
    • All the downloads are .zip files and will need to be extracted to your Clone Hero directory. They should merge with the existing BepInEx folder.
    • To ensure that the mods have been extracted properly, check that LogOutput.log (or LogOutput.log.1, whichever is newer) has a line in this format for each mod: [Info : BepInEx] Loading [Biendeo CH Lib 1.5.2.0]

How to reset configs

  • All mod configs are in BepInEx\config, so just delete the appropriate files. All mods have confings in the format com.biendeo.MODNAME.*. For example, to reset Extra Song UI, delete com.biendeo.extrasongui.xml and com.biendeo.extrasongui.layout.xml.

How to uninstall

  • If you're just mods, go to BepInEx\plugins and delete the folder for the appropriate mod you're removing. All configs are in BepInEx\config if you want to also remove those.
  • If you're uninstalling BepInEx, delete the whole BepInEx folder, and winhttp.dll from your Clone Hero directory.

How to troubleshoot

  • Always perform these steps before giving up, because the logs usually indicate what has gone wrong every time!
  • BepInEx logs to BepInEx\LogOutput.log and BepInEx\LogOutput.log.1. If both files aren't there, BepInEx didn't initialise and you should try and reinstall it. If they are, open the latest of the two.
    • Ensure that there exists a line for every mod (including Biendeo CH Lib) in the log indicating that it's Loading. If not, then the mods probably aren't installed. BepInEx will look inside BepInEx\plugins for any dll files to load, so if you haven't extracted the mods properly, then they probably aren't even loading to begin with.
    • Try and find any lines starting with ERROR. If there are, then there's probably an actual issue with that mod and you should report a bug report through GitHub. Please follow the format and fill out as much information as you can.
    • If a lot of lines start with WARN or you don't see anything too obvious, this may be a user error, so double check that you're utilising the mods properly. Otherwise, you can also report a bug report through GitHub.
  • Clone Hero logs to %USERPROFILE%\AppData\LocalLow\srylain Inc_\Clone Hero\output_log.txt. Any legacy mods would also log there, but it's only useful for spotting anything Clone Hero related that's gone wrong now.
  • Check out the Clone Hero Modding Discord if you want someone (maybe myself) to talk and help you out with anything.

How to contribute

Ideas

Programming

  • If you spot a bug, feel free to make a pull request and I can review it. The functionality of my mods is my say though, so if it changes behaviour I'll have to decide whether I'm keeping it or not.
  • If you want to just fork my mods, that's fine, just make sure you've also got the GPL-3.0 license with your code as well.
    • You are free to make new mods that utilise Biendeo CH Lib to access the underlying game data if you choose.
    • My development process is described on this repository's wiki if you'd like some additional pointers.

my-clone-hero-tweaks's People

Contributors

biendeo avatar mwisbest avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

my-clone-hero-tweaks's Issues

[BUG] Incorrect note count on a GH2 DLC rip

Describe the bug
The note count on Hard guitar for You've Got Another Thing Comin' from the current GH2 DLC rips is incorrect.

To Reproduce

  1. Set up a song with this mid: notes.zip
  2. Play it on Hard guitar
  3. Display the note total with ExtraSongUI
  4. Observe it says 805 notes

Expected behavior
It should be 803 notes, as it says when you finish the song or FC it.

Environment:

  • OS: Windows 10
  • Clone Hero Version v0.23.2.2
  • Using the new Clone Hero Launcher [no]
  • Tweak version v1.4.0.23

Extra Song UI - Star Power phrases with no notes are counted towards total

Describe the bug
When playing a song that contains star power phrases that have no notes attached, the total number of star powers represented in Extra Song UI's total star powers counter appears to count that number rather than the actual number that can be played.

To Reproduce
Steps to reproduce the behavior:

  1. Play Rock Band 1's Are You Gonna Be My Girl on expert guitar.
  2. The SP total counter should say 17, but only 15 are playable in the song.
  3. The end of song screen should correctly say 15/15 though if you FC.

Expected behavior
For this song in particular, there should be 15 star power phrases, as seen on the end of song screen, so the total counter should say 15.

Environment (please complete the following information):

  • OS: Windows
  • Clone Hero Version: v0.23.2.2
  • Using the new Clone Hero Launcher: no
  • Tweak version: v1.2.0.13

Change Perfect Mode text from IMGUI to Text

Currently the text rendered in gameplay is using IMGUI, which renders on top of all of the scene (including the pause menu). Correctly rendering this with simple text labels should have it appear properly in the scene, and possibly (unproven) improve performance.

Develop and migrate the configs to a common framework

Currently, every config file is developed separately. There is a significant amount of redundancy within each one, particularly with how customisable text elements can be modified. Making them more generalised will help me in the future, and reduce the possibility of bugs.

Current progress:

  • Accuracy Indicator
  • Combo Indicator (doesn't use one)
  • Extra Song UI
  • Perfect Mode

Change Extra Song UI text from IMGUI to Text

Currently the text rendered in gameplay is using IMGUI, which renders on top of all of the scene (including the pause menu). Correctly rendering this with simple text labels should have it appear properly in the scene, and possibly (unproven) improve performance.

Change Accuracy Indicator text from IMGUI to Text

Currently the text rendered in gameplay is using IMGUI, which renders on top of all of the scene (including the pause menu). Correctly rendering this with simple text labels should have it appear properly in the scene, and possibly (unproven) improve performance.

[BUG] Not being able to hit any notes or get the mods to work after installing

Describe the bug
So when I download all the mods on bepinex Including LegacyModLoader run the command and play the game none of the mods work and i cant hit any of the notes

Steps to reproduce the behavior:

  1. Download All Mods & Some Tweaks Like GC Fretedit etc.
  2. Launch the game when all mods are in Bepinex/plugins And all tweaks are in the Tweaks folder directory
  3. Play Any Chart
  4. Try To Hit Notes And See You Cant

Expected behavior
IDK

Environment (please complete the following information):

  • OS: macOS
  • Clone Hero Version: v23.2.2
  • Using the new Clone Hero Launcher: No
  • Tweak version: v1.5.1

Additional context
None

On new installations or updated versions, a changelog and instructions should appear

Several users who install any of the tweaks do not know how to utilise them when they first run the program.

The proposed solution is to store a value in the configs for all the tweaks that notes the last version of the tweak that was run, with the default being null. If the last version in the config does not match the current version of the tweak, the changelog and instructions should appear.

The changelog doesn't have to be massive, but it should indicate new end user features from the previous version.

The instructions should be at least enough to show the user how to enable the config window, how to perform some basic operations, and how to get help.

The window should also be available via a button near the bottom of the config window.

For Combo Indicator, a config will have to be made in order to remember whether the user has run the program for the first time.

All tweaks should have a "Check for Update" button in the config windows

Several users have reported having bugs, only to then realise that they weren't running the newest version of the tweaks.

The solution is to add a "Check for Update" button to each of the tweak's config windows. When that button is clicked, the game should search to see that the latest version is being used. This may require a few extra variables to exist with tweaks (e.g. storing the intended game version), but it should be alright.

The version list can easily be gotten by polling a text file on the master branch on Github. It should basically be a mapping between CH version and highest version of the tweaks. Since all tweaks have the same versioning, this file can be pulled out into the root of the repository.

Perfect Mode may need additional work since it currently doesn't have a config window.

Show average accuracy on the end of song screen

A user suggested feature, just a way to see that average accuracy at the end result screen.

A proposed solution would simply calculate this value at the end as well using the same numbers used for the categories.

Codebase can be generally cleaned up

Certain observers may notice that the code is very dense within the Unity functions, and could definitely be structured a bit nicer. Without tweaking the functionality of the code, this should be fixed up before the tweaks scale larger.

Accuracy Indicator end screen sometimes is always Very Late

Some users have reported the end of song screen reporting every note as Very Late.

Some specific testing has showed that the times used by the calculations are sometimes in milliseconds as opposed to seconds, which explains why they are all very late. However, it is not clear why this is happening.

A possible (but unproposed) solution would be to detect any notes above 0.07, and divide them by 1000. It probably fixes the problem but it seems like a patch over something broken to begin with, and is not very recommended.

All tweak config windows don't show the cursor if it ever hides

If the user ever hides the mouse cursor in Clone Hero, the cursor is not visible whenever they try to open up a config window, making it very difficult to use the menus.

The proposed solution is to detect whether the mouse was visible or not when the window is opened, and the set its visibility to true. Then, when the window is closed, if the mouse should be invisible, it will be set to that (otherwise ignore setting it). This has the unavoidable side effect of any sequential config windows from other tweaks will not try and hide the mouse when they're closed, even if they're the last ones to be closed. Also the first config window to open will hide the cursor when closed regardless. However, these are easily remedied by the fact that closing and reopening any config window will correct the problem, which is a more usable state than before.

[BUG] Average accuracy doesn't work

Describe the bug
The average accuracy indicator always shows the same time as the accuracy time indicator.

To Reproduce
Steps to reproduce the behavior:

  1. Enable average accuracy indicator
  2. Play any song
  3. Observe that both indicators show the same number unless the note was missed, in which case the average will show the accuracy of the last hit note.

Expected behavior
Average indicator should actually be an average of all hit notes. Here is an example of lua code that does this

Accumulative = 0
Total = 0
Average = 0
N = 0

function DoAverage(current) --this is the code you want, the rest is just to use it.
    Total = Total + 1
    Accumulative = Accumulative + current
    Average = Accumulative / Total
end

while N < 1000 do --This is just to make it do something
    N = N + 10
    DoAverage(N)
    io.write(Accumulative .. " / " .. Total .. " = " .. Average .. "\n")
end

Environment (please complete the following information):

  • OS: Windows 10
  • Clone Hero Version: 0.23.2.2
  • Using the new Clone Hero Launcher: No
  • Tweak version: 1.5.1.88

Additional context
I am NOT using CHLoader, if that matters.

Extra Song UI should show some more data points

It would be nice to have Extra Song UI show two more values of data during gameplay:

  • The current amount of Star Power you have as a value.
    • This could be represented as a percentage where 0% is no star power and 100% is full star power (with 50% being the activation cutoff).
  • The current percentage of notes hit.
    • This can simply be a calculation of notes hits divided by notes passed.
    • One quirk is that you will always get 0 divided by 0 before the first note, which typically should give NaN%. Perhaps this should be changed to 100%, and any other possible 0/0 scenarios should be changed too.
  • The current percentage through the song.
    • Again nice and simple based on the current progress divided by the total song length (although it will try and surpass 100% at the very end of the song so maybe cap that).

Allowing customisation of the Combo Indicator

TO BE DETERMINED

Currently there is no customisation available for the combo indicator. This can be something simple such as text size, colour, and position (like what is is Common right now).

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.