Preface
Since my recent decision to drop all support for the Forge mod loader, there has been many people asking me what exactly led to me that point.
As per the earlier write up (which you should also read), it largely boils down to the un-welcoming and borderline hostile interactions I've had with prominent Forge developers and their surrounding community.
Simply put, this document is the last note from me regarding the Forge community. I don't have any interest in continuing to fight with people to get basic concessions, nor in defending myself or my mods on a daily basis. Any changes or efforts to improve at this point would be too little, too late. Do it for your own community, not for me.
Remember the human
It's not my intention to encourage harassment towards any of the users listed in this document, nor is it to encite "drama" (whatever that is supposed to mean, since these are just public chat logs.)
Please keep in mind that everyone here is human and that harassment is unacceptable no matter the reason. The names below have been included because they provide meaningful context given the positions these people would be speaking from, not because you should be going after them. There is no place for disparaging remarks or shit-talking other human beings, and you will note that this page is free of it and speculation on motives.
Some thin veil of a timeline
February 15th, 2020
A user linked to me a conversation on the Forge Discord a while after it happened. Here are some excerpts.
This is where it started, after a user asked about my mods. I was not a member of the server when this happened.
Some users are skeptical of the claims that Lithium is lying or not doing what it advertises. I appreciate this support.
Lithium is fully modular, and every patch can be disabled in the user configuration file.
Almost all of the Mixins are thoroughly documented within the source code itself. You can check out some examples in DataTrackerMixin, ExplosionMixin, and PalettedContainerMixin.
A user cites some blurbs from the CurseForge page, as to explain what Lithium is doing more exactly.
In the next screenshot, some messages are included from a user called Earthcomputer. They have since apologized on their own accord, saying that their stance on performance mods has radically changed. In fact, they have actually gone as far as to make contributions to my own projects, which I greatly appreciate.
I understand the fact that mods which work around the Forge APIs have from time to time been a source of trouble, and why someone who has dealt with such issues might find them annoying, at least from their perspective. I make a best effort to ensure compatibility with other mods, and take extensive measures to mitigate issues when they come up. But, for the sake of explaining why these feelings around Forge exist for me, providing the full context of these messages is important.
At this point, I felt the conversation had become fairly hostile. I don't feel as if it is the responsibility of Lex, or anyone else in the Forge community, to "coax other mod developers". You are not the police.
This kind of mentality of "I don't have to be nice, I have to be correct" is toxic. It took Linus Torvalds many, many years to learn this reality. This behavior discourages contributions and creates enemies in the community.
A while after this conversation had concluded, I joined the Discord server following another user's invite link, and wrote the following response.
I was instantly banned for this. I couldn't join the server anymore. I had no idea why. The Forge Discord moderators claim I was never banned, but kicked. However, one of their moderators implies that I was evading a ban shortly after.
For this reason, I believe it was a ban initially, and that the community was lied to. Worse yet, to date, I did not actually violate any rules of the Discord server.
No reason was provided until after users fought tooth and nail for one. Later on, it is explained (not to me) that the reason I was removed was that I pinged another user. However, as you can see in screenshots above, I was not the only one doing this.
I don't really have much more to say on this. It's extremely disappointing, and was met with a lot of community backlash. Even worse, the moderation team's response to criticism was to remove anyone who opposed their actions publicly.
Edit: Since making this post, a number of people have come to me claiming that my belief that this was a ban is in error, and that it was only ever a kick. Some people have also taken that a step further to insinuiate (because of this unverifiable claim) that I'm only interested in creating "drama."
This argument is frankly ridiculous and is a hyper-fixation on superficial details. It ultimately looks like some attempt to grasp at straws in order to discredit every other documented incident here. Regardless of whether or not a ban was carried out, I was removed from the server for violating a non-written rule (being do not mention a specific user) following what would quite possibly be the most textbook example of when to use a user mention: directly responding to someone else's messages after the conversation had moved on.
April 25, 2020
The first episode of ForgeCraft, Season 12, went live on Direwolf's channel. About 6 minutes in:
LexManos (text): Is fastcraft or other 'performance' mods on?
cpw (voice): As far as I'm aware, Lex, there's no performance mods in here at the moment
tterrag (voice): Oh yeah we should get, uh, what is it? Is it Phosphor is the new one? Lithium?
cpw: So, uh, I looked at those and I'm not gonna put them on because they're a whole pile of bloody Fabric hacks
Direwolf20 (voice): Which mod?
tterrag: Uh...
cpw: They are. They're a bunch of Fabric hacks. So...
tterrag: What do you mean by that?
cpw: They're literally just a bunch of hacks ported over from Fabric.
tterrag: Uh, Ange- are you thinking of the same thing? Angeline made those by themselves as far as I know.
cpw: Uh... they're -
tterrag: Maybe some of them got added to Fabric?
cpw: They're... they're Fabric mods and uh, Lithium was-
tterrag: Initially, because we didn't have Mixin.
cpw: Yeah I know, Lithium was a Fabric mod and it requires Mixin added to Forge...
tterrag: Yeah, that's true.
Lanse505 (text): talk for yourself tterrag, I've got mixins working
cpw: ... and appears to be just a port of the Fabric functions.
tterrag: No. I can tell you that's not, just not the case.
cpw: Mixins can work, and I wanted to add them properly to Forge but uh...
? (voice): Mixins will be in Forge when Mumfrey decides to put 'em in Forge, that is... that is the sole reason he has commit access to Forge.
cpw: Yeah we were gonna do that, I was gonna work it with him on that and I ran out of time so...
Darkhax (text): She did them on Fabric becuase Forge didn't have them yet. Original versions were on forge.
tterrag: Yeah, exactly Darkhax. They were made for Forge initially but they, uh, Mixin wasn't working at the time, um, so they made a Fabric version alongside.
cpw: I dunno, I was kind of uncomfortable with adding performance hacks from Fabric into Forge
tterrag: They're not from Fabric! That's what I've-
?: I would also say we should avoid any performance hacks as a default because if they actually increase performance they would be properly documented and probably get into Forge itself.
cpw: Yeah.
tterrag: I mean, it's all pretty new, but...
nooblybear (text): and I'm pretty sure that the lithium for forge if there is one, would've been done from the ground up
tterrag: I mean, it's kind of a, y'know, it's the mod domain because obviously there's gonna be drawbacks with some of these but for people who wanna squeeze out performance.
cpw: Pahimar [unintelligible mumbling]
The video received 83 thousand views on YouTube. I find this particular remark rather troubling, and it'll come up a lot later:
... if they actually increase performance they would be properly documented and probably get into Forge itself.
I never reached out regarding these comments.
May 17th, 2020
One day, cpw made a multi-hour long Twitch Livestream on "Busting Performance Myths". Unfortunately, the VOD for this has been archived due to age, and I do not have an archive of it.
The primary focus of the livestream was about Streams, which were in introduced in Java 8, and whether or not were really that bad for performance. Again, throughout this stream, the repeated argument of Lithium being an undocumented mess and "Mixin/Fabric hack" is made. Additionally, it is repeatedly broadcasted that almost all of Lithium's code is rooted in replacing these Streams with more traditional code. This is not true, and a quick glance at the source code would have revealed this.
At the conclusion of the stream, the source code for all the benchmarks were published on GitHub. He left off on a note that contributions were welcomed, and that more complex code and benchmark numbers would be useful.
I submitted a rather in-depth pull request with additional benchmarks, trying to explain that the usage of Streams is more complicated than the repository showed. Despite the overwhelming community response to it, cpw never acknowledged the pull request, and the repository was never developed further.
This comment has been minimized.
Two things. VODs automatically delete after a month or so. I have no control over that, sorry. I am a terrible maintainer of GitHub repositories. It comes with being old, slow, and busy with a full-time+ job.
In regards to my comments that dire shared on his video, sadly I don't think your mods would be a good fit on forgecraft, since they would have a high probability of masking real mod issues, due to your significant replacement of core functionality. I don't have sufficient time to do a thorough code review of every suggestion that comes my way, and on the surface it looked like as I described. I am sorry for any offense or upset my comments have caused you. I don't mean to disparage new works.