Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#
# https://help.github.com/articles/dealing-with-line-endings/
#
# These are explicitly windows files and should use crlf
*.bat text eol=crlf

46 changes: 46 additions & 0 deletions .github/ISSUE_TEMPLATE/LAUNCH_ISSUE.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Launching Issue
description: Create an issue about your game failing to load/cache
title: "[LAUNCH]: "
labels: ["type: bug", "status: idle"]
body:
- type: markdown
attributes:
value: |
Thank you for reporting an issue about DashLoader, we care a lot about our mod and enjoy fixing every bug.
- type: input
id: version
attributes:
label: Version
description: What version of DashLoader are you running?
placeholder: 5.0.0-alpha.3
validations:
required: true
- type: input
id: mc-version
attributes:
label: Minecraft Version
description: What Minecraft version are you using?
placeholder: 1.19.3
validations:
required: true
- type: markdown
attributes:
value: |
Please provide **THE ENTIRE LOG** as the crashlogs don't contain much information about DashLoader.
Use a website like https://mclo.gs/ to upload logs.
Preferably we want a log for when you create the cache (The popup at the top left is present) and another log for when DashLoader loads the cache.
- type: input
id: logs
attributes:
label: Entire Logs
description: Link to the logs.
placeholder: https://mclo.gs/5K0ChKa
validations:
required: true
- type: textarea
id: extra
attributes:
label: Additional Notes
description: Anything else you want to add?
validations:
required: false
24 changes: 10 additions & 14 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
name: Bug report
about: Create a report for a DashLoader issue
title: "[ISSUE]: "
labels: bug
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---
Expand All @@ -12,24 +12,20 @@ A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Add '...' mods
2. Launch the game
3. Join '....' world
4. Press '....' stuff
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Info (please complete the following information):**
- DashLoader: [e.g. 3.0-pr1]
- Minecraft: [e.g. 1.17.1, 1.18]
- Mods [e.g. Fabric API, Better End]

**Full crash log (if relevant)**
https://pastebin.com/ ...
**Context (please complete the following information):**
- DashLoader Version [e.g. 3.0-rc14]
- Minecraft Version [e.g. 1.18.1]

**Additional context**
Add any other context about the problem here.
Comment on lines 3 to 31
Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The bug_report.md template has been changed to remove DashLoader-specific context fields (DashLoader version, Minecraft version, mods list, full crash log). The new template is generic (GitHub default), which removes important information that would be needed to triage DashLoader-specific issues — specifically, the crash log request has been removed entirely, which is critical for debugging this mod. The PR description does not mention this as an intentional change.

Copilot uses AI. Check for mistakes.
35 changes: 35 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Build

on:
push:
branches: [ "main", "copilot/**" ]
pull_request:
branches: [ "main" ]

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Java 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4

- name: Build with Gradle
run: ./gradlew build --no-daemon

- name: Upload build artifacts
uses: actions/upload-artifact@v4
if: success()
with:
name: build-artifacts
path: build/libs/*.jar
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,5 @@ bin/

# Ignore Gradle build output directory
build
/run/
run/
upload.sh
59 changes: 50 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,50 @@
# DashLoader-Definition
Launch Minecraft at the speed of light.

All of the source code is present in version dependant branches.

For the core framework go to https://github.com/QuantumFusionMC/DashLoader-Core

![image](https://user-images.githubusercontent.com/24830855/150510945-16b1f45e-3296-41f5-a7cc-4f91c9b4debe.png)
DashLoader's performance is highly aided by the [YourKit Java Profiler](https://www.curseforge.com/linkout?remoteUrl=https%253a%252f%252fwww.yourkit.com%252fjava%252fprofiler%252f) which helps us greatly with keeping standards high and load times low.
# DashLoader Github
Welcome to the codebase where DashLoader lives! Please report any issues you find with DashLoader here.
<center>
<p align="center" style="font-family: sans-serif, tahoma, arial, helvetica; font-size: 18px;">
<!-- Features -->
<img src="https://notalpha.dev/assets/dashloader/features-new.png" alt="Description" width="1000"/>
<br/>
This mod accelerates the Minecraft Asset Loading system by caching all of its content, This leads to a much faster
game load.
It does this by caching all of its content on first launch and on next launch loading back that exact cache.
The cache loading is hyper fast and scalable which utilises your entire system.
<br/><br/><br/>
<strong>Important notes:</strong>
<!-- Cache slowdown explanation -->
<br/><br/> &bull; The first time your launch DashLoader it will be <strong>significantly slower</strong>.
Because it needs to create a cache which contains all the assets minecraft normally loads.
This will also happen every time you change a mod/resourcepack if that configuration does not have an existing
cache.
<!-- Mod compatibility -->
<br/><br/> &bull; DashLoader has been known to be incompatible with a lot of mods.
DashLoader 3.0 has massively improved compatibility by not forcing mod developers to add explicit support to make
their assets cachable.
This means that DashLoader will load assets normally for mod assets that cannot be cached.
While this improves mod compatibility it hurts speed as the minecraft loading system is quite slow.
<!-- Artists -->
<br/><br/> &bull; If you use DashLoader for Developing mods or creating resource packs you can press
<code>f3 + t</code> to recreate the cache to load your new assets in.
If you want to just show off the speed of DashLoader you can press <code>shift + f3 + t</code>
<br/><br/><br/>
<!-- Community .-->
<img src="https://notalpha.dev/assets/dashloader/community-new.png" alt="Community" width="1000"/>
<br/>
<img src="https://i.imgur.com/qbysL1T.png" alt="Discord" width="500"/>
<!-- Sponsors -->
<img src="https://notalpha.dev/assets/dashloader/sponsors-new.png" alt="Sponsors" width="1000"/>
<br/>
<a href="https://www.yourkit.com/java/profiler/">YourKit</a>
Makes amazing profilers for both Java and .NET.
We use their Java Profiler to understand where to optimize further and make DashLoader faster.
<br/>
<a href="https://www.jetbrains.com/">JetBrains</a>
Creates excellent IDEs for all programmers and have provided us with access to their enterprise products for use to
develop DashLoader and Hyphen.
<!-- Donate -->
<img src="https://notalpha.dev/assets/dashloader/donate-new.png" alt="Donate" width="1000"/>
<br/>
I have a <a href="https://ko-fi.com/notequalalpha">Ko-Fi page</a> if you would like to Support me. <br/>
Please only support me if you like what I do, and you are not in a bad financial situation to do so.
</p>
</center>
184 changes: 184 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
plugins {
// Publishing
id 'com.matthewprenger.cursegradle' version '1.4.0' apply false
id "com.modrinth.minotaur" version "2.8.10" apply false

id 'fabric-loom' version "${loom_version}"
id 'maven-publish'
}

def enablePublishing = providers.gradleProperty("enablePublishing")
.map { it.toBoolean() }
.getOrElse(false)

if (enablePublishing) {
apply plugin: "com.modrinth.minotaur"
apply plugin: "com.matthewprenger.cursegradle"
}

base {
archivesName = project.archives_base_name
}
version = project.mod_version
group = project.maven_group

repositories {
mavenCentral()
mavenLocal()
maven {
url 'https://jitpack.io'
}
maven {
url "https://notalpha.dev/maven/releases"
}
maven {
name = "Terraformers"
url = "https://maven.terraformersmc.com/"
}
maven {
name = "Nucleoid"
url = "https://maven.nucleoid.xyz/"
}
}

loom {
accessWidenerPath = file("src/main/resources/dashloader.accesswidener")
log4jConfigs.from(file("log4j-dev.xml"))
}

dependencies {
// To change the versions see the gradle.properties file
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings loom.officialMojangMappings()
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"

modImplementation "com.terraformersmc:modmenu:${project.modmenu_version}"

implementation "dev.notalpha:Hyphen:0.4.0-rc.5"
include "dev.notalpha:Hyphen:0.4.0-rc.5"

implementation "dev.notalpha:Taski:2.1.0"
include "dev.notalpha:Taski:2.1.0"

implementation 'com.github.luben:zstd-jni:1.5.7-1'
include 'com.github.luben:zstd-jni:1.5.7-1'

modCompileOnly fabricApi.module("fabric-renderer-indigo", project.fabric_version)

// For Modmenu
modRuntimeOnly fabricApi.module("fabric-api-base", project.fabric_version)
modRuntimeOnly fabricApi.module("fabric-key-binding-api-v1", project.fabric_version)
modRuntimeOnly fabricApi.module("fabric-lifecycle-events-v1", project.fabric_version)
modRuntimeOnly fabricApi.module("fabric-resource-loader-v0", project.fabric_version)
modRuntimeOnly fabricApi.module("fabric-screen-api-v1", project.fabric_version)
}

test {
useJUnitPlatform()
testLogging {
events "passed", "skipped", "failed"
}
}

processResources {
inputs.property "version", project.version

filesMatching("fabric.mod.json") {
expand "version": project.version
}
}

tasks.withType(JavaCompile).configureEach {
// ensure that the encoding is set to UTF-8, no matter what the system default is
// this fixes some edge cases with special characters not displaying correctly
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
// If Javadoc is generated, this must be specified in that task too.
it.options.encoding = "UTF-8"

// Minecraft 1.17 (21w19a) upwards uses Java 16.
it.options.release = 21
}

java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
//include sources in maven publish
withSourcesJar()
}

jar {
from("LICENSE") {
rename { "${it}_${project.base.archivesName}" }
rename { "${it}_${project.base.archivesName}" }
}
}

// Publishing
if (enablePublishing) {
modrinth {
token = project.hasProperty("modrinthApiKey") ? project.modrinthApiKey : ""
projectId = 'ZfQ3kTvR'
changelog = file("changelog.md").getText()
versionNumber = project.version
versionName = "$project.version".split("\\+")[0] + " for $project.minecraft_version"
uploadFile = remapJar
versionType = "beta"
gameVersions = ['1.21.10']
loaders = ['fabric', 'quilt']
}

curseforge {
apiKey = project.hasProperty("curseForgeApiKey") ? project.curseForgeApiKey : ""
project {
id = '472772'
changelogType = "markdown"
changelog = file("changelog.md")
releaseType = 'beta'

addGameVersion "1.21.10"
addGameVersion "Fabric"
addGameVersion "Quilt"
addGameVersion "Java 21"

mainArtifact(remapJar) {
displayName = "$project.version".split("\\+")[0] + " for $project.minecraft_version"
}
}
options {
forgeGradleIntegration = false
}
}

tasks.register("publishMod") {
dependsOn 'modrinth'
dependsOn 'curseforge'
}
} else {
tasks.register("publishMod") {
doLast {
logger.lifecycle("Publishing disabled. Re-run with -PenablePublishing=true to publish.")
}
}
}

tasks.register("getVersion") {
print("$project.version")
}

publishing {
repositories {
maven {
name = "notalpha"
url = "https://notalpha.dev/maven/releases"
credentials(PasswordCredentials)
authentication {
basic(BasicAuthentication)
}
}
}
publications {
maven(MavenPublication) {
from components.java
}
}
}
Binary file added cfr.jar
Binary file not shown.
Loading
Loading