Skip to content

Instantly share code, notes, and snippets.

@FxMorin
Forked from kyrptonaught/ScummyMods.md
Last active February 21, 2024 07:10
Show Gist options
  • Star 26 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save FxMorin/9770473614e3e5e0703e44273dab33f7 to your computer and use it in GitHub Desktop.
Save FxMorin/9770473614e3e5e0703e44273dab33f7 to your computer and use it in GitHub Desktop.
The Scummy Behavior of mods that act like modpacks

Introduction

Let me start by clarifying that the following doesn't exclusively apply to Debugify, but they serve as an excellent illustration of the heinous behavior outlined in the following. The mods in question shall therefore be collectively referred to as "Scummy Mods".

Scummy Mods are mods that incorporate or outright copy foreign code bases, without permission from the original author. They commonly state to either "replace" or "include" the original work, if any mention is given at all. Developing a mod is not easy. Many mod creators sacrifice significant chunks of their personal time and resources to their creations, essentially for free. Curseforge offers a symbolic compensation for the hours poured, but it's usually insignificant and just a nice bonus.

The Problem

The majority of the original projects are still in development. Since the creators behind Scummy Mods typically do not understand the code they copied to begin with, they lack the knowledge required to eliminate the bugs that will inevitable arise in any development project. The only option left is therefore to wait for the original author to update their work. It is for this reason that a single copy of code is in most cases not the only one.

After multiple cycles of updating on the original authors side followed by "updating" on the Scummy Mod authors side, many authors cease working on their project, leaving the code in an unrefined state and missing out on any potential support. When this happens Scummy Mods carry over the imperfections left in any unfinished project. Since the Scummy Mod cannot fix these themselves, they either stay or get even worse. Both of which could be avoided, by simply not interfering with the original project and allowing the author to finish their work in an orderly manner. Note that the license of the original projects often allow this practice, atleast legally.

The worst part, in my opinion, is that they frequently take code from projects that are currently being maintained, meaning that someone is still working on it to keep it updated. This is extremely frustrating for those still working on it, as it saps their motivation, resulting in a worse implementation within the Scummy Mods than it could have been, due to the development of the original mod haulting.

The Mod Merging Problem

I can understand the appeal of bundling mods. Either way, there is no performance boost to be gained in doing so. In reality all these do is introduce problems non-existant in a singular mod solution, such as compatibility conflicts. The quality of the individual pieces is also degraded, as bundling features also bundles their respective maintenance time. Unfortunately more features does also equal more downloads and by extension more revenue, thus keeping Scummy Mods alive.

They're taking money from smaller developers who put in more effort into that code than the Scummy Mod developers ever will, for personal gain.

The Solution

If bundled mods are desired regardless, modpacks provide all of the upsides, with none of the downsides. To ensure maximum mod quality, both present and future, Scummy Mods should be boycotted in favor of modpacks. We can try to raise the issue with mod distribution platforms such as CurseForge and Modrinth, informing them about these mods and preventing them from destroying the mod ecosystem.

TL;DR

Scummy Mods are essentially "replacing" or "including" other people's hard work for personal gain by copying and pasting their code into their mods. As a result, the original mod developer loses interest in working on these mods, as well as compensation for the time they spent developing them and the motivation to continue improving and working on them, resulting in a worse implementation within the Scummy Mods.

Written by: Fx Morin Reviewed by multiple mod developers

Personal Notes

From: Fx Morin

I will now be writing a message in my mods, specifically stating that I do not allow Debugify to copy any code from them. I'm sick and tired of seeing them take mods that my friends have created and seeing them lose hope. If you decide to take someone else's code, you are the ones responsible to test and see if it even works. I have found multiple implementations in Debugify that simply do NOT work, which I know since I was the one to write the code analysis on Mojira in the first place and already made a fix in Carpet-Fixes, yet somehow Debugify's implementation only fixes half of the problems. Its only good fixes are the ones either taken from me or someone else.

After talking to many of the affected devs. I've noticed its worse then it seems, not only do they take the implementation although they also prevent you from being able to use the original (better) implemention due to mod conflicts...

Even with mods that are as simple as two mixins, only one of them might actually be copied, without the required license header, then creating a mod conflict and locking people out of the rest of the functionality of the copied mod.

Similar to force-close-world-loading-screen, tooltipfix was marked as being "replaced" by this mod. While I do not have a problem with this, I do not consider this to be a replacement. I believe the images below speak for themselves. Debugify takes a different approach to fixing tooltips, which is fine in it's own way(They say its for bedrock parity). But the users ability to choose to to use tooltipfix was taken away, they simply cannot. Debugify lists tooltipfix as a hard conflict. So you cannot use both mods, even if you disable Debugify's fix. This is the part I do not agree with.

But hey that's fine,

ToolTipFix is a dead mod, and features nasty inefficient mixins.

I like to stay out of drama and do not mean for any of this to be an attack, so please do not perceive this as such.

Debugify ToolTipFix
Debugify ToolTipFix
@Madis0
Copy link

Madis0 commented May 31, 2022

There are benefits to merging mods that are not specifically about performance. The target should be small mods that provide one or two targeted fixes only (I don't encourage clients like Lunar and OptiFine) - if the mod is meant to become larger, update often or is out of scope, merging is indeed not the way to go.

Benefits:

  • Bigger mod can better make sure the fix works well with other fixes
  • Bigger mod can make sure the fix is maintained across MC versions
  • Less storage used on mod icon, metadata and boilerplate code as those already exist
  • No additional libraries for config etc
  • More likely to have an opt-out option (if it needs one)
  • Potentially more distribution options (e.g. Curseforge, Modrinth and GitHub)
  • Popularity - more people use a bigger mod, so more people actually benefit from the fixes.

Some devs could consider this a great thing that someone else can take (or share) the burden of maintaining a fix. And some don't - that's understandable and should be fixed by contacting the mods and choosing a bit more restrictive license.

Edit: Lithium is a great example as well.
Imagine if that was split to 20 mods, each one maintained by a single person. How many people would (could - popularity!) take advantage of all fixes? How consistent would the mod updates be? There could be modpacks that pack 10-15 of those but individual users would still use 2-3.

@FxMorin
Copy link
Author

FxMorin commented May 31, 2022

@Madis0 I 100% agree. As long as you ask permission from the original author.
A scummy mod is just one that does not ask first.
I run carpet-fixes which holds over 225+ fixes. If that was 225+ mods I would probably be dead by now. The difference is that I wrote most of them and that only around 3 (which I asked permission first) were taken from other mods.

@isXander
Copy link

isXander commented May 31, 2022

"Replaced" mods

I'm sorry for not being clearer but all of these mods are not hard conflicts (on fabric). The mixins that implement the fix are automatically disabled if the mod is detected. Meaning no incompatibilities and the ability to use advanced features (if there are any) of the original mod.

TooltipFix

Relating to my first point, you can't use both, yes, but you can continue to use TooltipFix because it does have a better implementation. Debugify's fix will get better in the future and the reason it wasn't exactly the same is because I don't copy what I don't understand. The text wrapping code didn't make a lot of sense and I was not comfortable adding it. By "dead mod" I meant it wasn't receiving updates, not that it didn't get downloads.

force-close-world-loading-screen

If I missed the license header, my mistake. I will correct that. The reason why I only "copied" one mixin is because the point of Debugify is that it does it like Mojang would do it. No options, it's fixed or it's not. And the removal of the loading screen goes past that.

FxMorin's personal note

Hi! If you found bugs maybe make an issue on the repo letting me know which ones don't work and how?

@FxMorin
Copy link
Author

FxMorin commented May 31, 2022

Gets around the "asking for permission" part completely in his response

@isXander
Copy link

Somehow gets around the asking for permission part completely in his response and uses the most unoriginal insult I've ever heard. You're not the only english speaker not to understand my french last name xD. Are you still 12?

Oh my god I'm so sorry haha read it wrong genuinely.

@ardissaps
Copy link

Imo I prefer unified bug fix as it would be easier to maintain on user side who don't understand code that much. Less mods better. If credit is problem maybe you guys can make share of the profit from donation etc. From debugify side, you could appreciate more on the mod description with "better chosen words" like something "thanks for the original author for making such thing happens! :)". Form a team as long as it stays open to public. How bout that?

@Wyvest
Copy link

Wyvest commented Jun 3, 2022

do agree with most of the points here, however i think it also must be noted that most of xander’s fixes are original and that the end user doesn’t really want to install 3838382828272772 different mods. yes, modpacks exist, however even then, as stated by madis0, having one giant mod that fixes stuff is not necessarily a bad thing.

edit:
another thing i noticed,

But hey that's fine,

TooltipFix is a dead mod, and features nasty inefficient mixins.

this comment is sarcastic, but yet i would describe it as having very nasty mixins. TooltipFix has 3 redirects, Debugify has 1 Inject and 2 ModifyVariables. Debugify’s implementation is, from what i can see, much less nasty (unless the end result on both mixins is just overwriting the same things lol)

@HyperSoop
Copy link

Even with modpacks, it's not handy to have 345646787 mods to have all of the fixes. No one can deny that having a lot of patches in Debugify is bad. The only issue here is the issue of possibly not giving credit to original authors. Debugify is not even supposed to combine a lot of patches from small mods in itself, it's only supposed to fix mojira bugs - and that just crosses with replacing mods. It is not supposed to just copy paste code. It it supposed to fix it by itself.

@DioEgizio
Copy link

I won't lie, debugify behaviour is scummy imo, but I don't want to install 69420 mods either, so I just use Debugify. Tbh if debugify asked authors for permission and authors would be ok all of this shouldn't be an issue.

I will now be writing a message in my mods, specifically stating that I do not allow Debugify to copy any code from them. I'm sick and tired of seeing them take mods that my friends have created and seeing them lose hope. If you decide to take someone else's code, you are the ones responsible to test and see if it even works. I have found multiple implementations in Debugify that simply do NOT work, which I know since I was the one to write the code analysis on Mojira in the first place and already made a fix in Carpet-Fixes, yet somehow Debugify's implementation only fixes half of the problems. Its only good fixes are the ones either taken from me or someone else.

Your mods are LGPL3, that's effectively unenforceable

@DragonEggBedrockBreaking

I won't lie, debugify behaviour is scummy imo, but I don't want to install 69420 mods either, so I just use Debugify. Tbh if debugify asked authors for permission and authors would be ok all of this shouldn't be an issue.

I will now be writing a message in my mods, specifically stating that I do not allow Debugify to copy any code from them. I'm sick and tired of seeing them take mods that my friends have created and seeing them lose hope. If you decide to take someone else's code, you are the ones responsible to test and see if it even works. I have found multiple implementations in Debugify that simply do NOT work, which I know since I was the one to write the code analysis on Mojira in the first place and already made a fix in Carpet-Fixes, yet somehow Debugify's implementation only fixes half of the problems. Its only good fixes are the ones either taken from me or someone else.

Your mods are LGPL3, that's effectively unenforceable

Depends on the license of the mod that is stealing from it.

@DioEgizio
Copy link

I won't lie, debugify behaviour is scummy imo, but I don't want to install 69420 mods either, so I just use Debugify. Tbh if debugify asked authors for permission and authors would be ok all of this shouldn't be an issue.

I will now be writing a message in my mods, specifically stating that I do not allow Debugify to copy any code from them. I'm sick and tired of seeing them take mods that my friends have created and seeing them lose hope. If you decide to take someone else's code, you are the ones responsible to test and see if it even works. I have found multiple implementations in Debugify that simply do NOT work, which I know since I was the one to write the code analysis on Mojira in the first place and already made a fix in Carpet-Fixes, yet somehow Debugify's implementation only fixes half of the problems. Its only good fixes are the ones either taken from me or someone else.

Your mods are LGPL3, that's effectively unenforceable

Depends on the license of the mod that is stealing from it.

He was talking about debugify, which is lgpl

@DuncanRuns
Copy link

DuncanRuns commented Jun 10, 2022

I made an extremely simple bug fix mod, Title Fix Mod,
and even though it definitely wasn't much work at all, seeing debugify "replace" it just feels condescending.

image

I can imagine those who put a ton more effort into a bug fix seeing that their work is "replaced" would be extremely demotivating for continuing to work on the mod.

There's definitely a point to be made here but I'm not sure where I stand on it as a whole.

@MeeniMc
Copy link

MeeniMc commented Jun 11, 2022

Your mods are LGPL3, that's effectively unenforceable

It's not because something is 'legal' that it's the 'decent' thing to do.

The idea of Open Source development is that it helps integrate contributions, and lets a new maintainer step up if the project gets abandoned, or if the original author is difficult to work with or won't integrate PRs with new features. But let's be clear that nobody likes his/her work being taken over by somebody else with little to no credit, or even with a dismissive line. Having hostile forks sprout left and right for flimsy reasons actually deter authors from using Open Source in the long run.

@DioEgizio
Copy link

Your mods are LGPL3, that's effectively unenforceable

It's not because something is 'legal' that it's the 'decent' thing to do.

The idea of Open Source development is that it helps integrate contributions, and lets a new maintainer step up if the project gets abandoned, or if the original author is difficult to work with or won't integrate PRs with new features. But let's be clear that nobody likes his/her work being taken over by somebody else with little to no credit, or even with a dismissive line. Having hostile forks sprout left and right for flimsy reasons actually deter authors from using Open Source in the long run.

We're literally talking about a mod that copies other mods' code in theirs, do you think they'd care?

@isXander
Copy link

https://github.com/isXander/Debugify/blob/1.19/README.md I updated the README.md to be a bit more specific.

@SyberiaK
Copy link

@isXander you can also credit these mod's authors, I think it will be fair

@isXander
Copy link

@isXander you can also credit these mod's authors, I think it will be fair

I link directly to their mod pages, where users can find the author. Adding authors will just make the list more messy

@Capricious-frog
Copy link

@isXander You do, but you follow it with "Superseded", I feel that that wording is a bit harsh. It would be nice to add them to the credit list for the code that they wrote because they are the reason that those fixes exists in debugify.

@Artoria2e5
Copy link

Artoria2e5 commented Sep 21, 2022

The term "superseded" is not just harsh, it's... wrong if you didn't write the code. The term you are looking for is "included", "included with changes", "assimilated" if you want a bit of that Borg vibe. And yes, repeat the big list in credits because it really does matter. (I have a slightly different moral compass here: I am happy to copy anything I am legally allowed to take without asking [hey, talking is hard!], but making it appear that I made it to the users is not great.)

@isXander
Copy link

The term "superseded" is not just harsh, it's... wrong if you didn't write the code. The term you are looking for is "included", "included with changes", "assimilated" if you want a bit of that Borg vibe. And yes, repeat the big list in credits because it really does matter. (I have a slightly different moral compass here: I am happy to copy anything I am legally allowed to take without asking [hey, talking is hard!], but making it appear that I made it to the users is not great.)

Included is worse, I do not just copy and paste other mods code into Debugify. I carefully consider how to best fix the bug, often relying on MixinExtras to get the job done better than you could with normal Mixin.

If even the wording is offending people, I've opted to completely remove it entirely, now just listing the mods and adding extra clarity if needed. This list is just meant to help out users in what mods they can remove if they install Debugify, it isn't a big deal!

@Coraline774477
Copy link

I once played with a mod that was illegally made that copied code from Coral's mod (Coral Recycler) and Coral literally blocked me on curseforge when I asked them what happened to the scummy mod in the comments of Coral Recycler when I searched for updates for the scummy mod which doesn't receive any more updates cause it got taken down by the curseforge moderators after Coral reported the scummy mod (alongside it's author of the scummy mod) to them.
If Coral REALLY wanted too go the extra mile they could've possibly banned me off of curseforge and maybe banned me off from minecraft and possibly Microsoft as well as Google for using/playing with an illegally made mod that broke rules as well as copyright infringement law(s).
These scammy mods needs to be permanently removed from existence or else these scummy mods could ultimately get an innocent person (like myself) into some unnecessary deep water!
And I don't want that to happen to me again but this time with a different scummy mod!

Btw I won't ever use Debugify since isXander clearly didn't ask permission to copy any of the code from the people who made these bug fixing mods that I play with to fix issues that Mojang clearly *NEEDS TO FIX!!!
Since Mojang has been neglecting those issues such as what Chunk Saving Fix fixes, there's alot of really old bugs that Mojang needs to fix so that we don't need to waste our time, resources, energy, and our lives to fix things that mojang or even notch should've fixed years ago!
If isXander ultimately does add credit to all of those authors of all of those bug fixing mods out there that's in Debigify then it's too late!
"it isn't a big deal!" the damage has already been said and done!
There's no going back when you cross the fine line when you take what's clearly NOT yours and shall be frowned apoun and reap what you've sown!..
I do believe in a second chance but why even bother with Debugify when I would rather use the originals that clearly has better implantations of the fixes for mojangs mistakes or even Notch's mistakes that's been going on in minecraft for far too long...
Such as the broken portal system for instance, sure that doesn't happen often enough but when it does it's a headache to deal with....

Btw why I'm even here in this comment section to begin with is cause I was just checking up on my subscriptions on curseforge for mods that I play with and came across Chunk Saving Fix that's in there which that mod hasn't seen an update since it's very first release back in Jun of 2021 which will be two years ago which clearly means that mod's dead by now or else the author of CSF would've updated it/ported it to a new version of minecraft already.
Anyways I scrolled down to it's comments section and one of the replies to the latest comment has a link to this github comment section saying that Debugify is a scummy mod, since I would like a more modern version of CSF for 1.18.2+ which Carpet-Fixes might be the one I would've been looking for if it's for forge.

I know that my first few pieces of my comment doesn't really relate with what's being said here (mostly about Debugify) BUT the scummy version of Coreal Recycler is the same old story which does relate to what's being said here which is why I've even commenting in this at all and to share my story about my experiences with one of the scummy mods out there.

*Instead of mojang releasing more content that may/may not cause any more bugs with the game how about releasing a big bug fix update to resolve thousends of bugs that's in minecraft so that we wouldn't have a need to make mods to fix their mistakes anymore so that we wouldn't have to worry about these scummy bug fixing mods anymore! But for mods that adds more content should follow the same footsteps as Frostride's by making the mod closed source when a mod is preparing to be abandonded as of it's dying state/phase.

@heipiao233
Copy link

And these mods don't follow KISS

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment