Jump to content

Recommended Posts

Posted

Hey guys,

Im still learning modding and have never released a mod. Im wondering if I could release a mod, which contains copy-pasted, which I have transdformed a bit, minecraft Code. For example:

I copied some Methods of the ItemBow class to use it for my own bow. I have changed some variables, calls etc.. Could I release the mod, or do I issue Mojangs EULA? I have used Default-minecraft source Code and transformed in the listed Points. 

DeBugger

Posted

Are you redistributing minecraft source code?

If not then you are clear.

That said you shouldn't be blindly copying vanilla just because it works. Actually go through the process of understanding what is that this code does and how it could be improved. Because usually it can. A lot of modmakers blindly copy mojang's code without considering that it does a lot of things that are inefficient, outdated or even deprecated in some cases.

Posted

This is minecraft modding, You are using the methods provided by mojang(kinda). Sometimes there is only one way to do something. So what, if MC does it in the same way can you not use it anymore? Does your code have to be completely different from that of the base game? Well, both yes and no. You can't just blatanly copy the game's code and call it good. But at the same time it's okay to use a similar code that does the same thing. 

Even better yet - what if you need to replicate the behaviour of the base game? And you need an accurate replica, not just something close to that. In those cases you have to replicate the source code too, there really isn't a way around that(well you could write your own code but it will end up looking similar if not exactly the same in most cases). 

So is this legal or not? I would say it is fine as long as you are not "replicating" all of the game in that manner effectively redistributing the game's sources. the ItemBow#findAmmo method belongs to the second case. It is not the only way to do this but it is a decent way.

Posted

Do I understand that Right? Copy and redistribute source Code of minecraft is only illegal, if you do it under your Name and ist the same game, or if it thrue your mod, which contains copied Code, contains "enough" Code to replicate minecraft?

Posted
5 minutes ago, DeBugger said:

Do I understand that Right? Copy and redistribute source Code of minecraft is only illegal, if you do it under your Name and ist the same game, or if it thrue your mod, which contains copied Code, contains "enough" Code to replicate minecraft?

actually I am pretty sure it says you may redistrubte modded versions of the game. Anyways forge doesn't distribute modded versions of the game they distribute files that can decompile and merge stuff to appear that way in mdk and in memory for compiled Thus it is their code and only theirs and mcp's of course

Posted

I mean you could read minecraft's EULA. It doesn't really specify what counts as "containing enough code" and stuff but it is pretty clear.

I would say "don't be a jerk". Don't redistribute straight up sources of the game or source code that is masked as a mod. As long as you are not trying to redistribute mojang's intellectual property you are clear. Redistributing similar code to the code that you've locally decompiled is fine.

I am no expert in this though, I can only judge from what I've seen so far. And so far this is the idea that I have. Mojang still owns the right to take down your mod if they find it illegal but in most cases they do not even with mods that massively copy the decompiled code.

Posted

Thanks. I had do let this thrue my head. I find its a bit confusing? 

DeBugger

 

PS: I already had read the EULA. I only ask to get sure if that what I do is legal. So I have to rework my mod(s).

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • that happens every time I enter a new dimension.
    • This is the last line before the crash: [ebwizardry]: Synchronising spell emitters for PixelTraveler But I have no idea what this means
    • What in particular? I barely used that mod this time around, and it's never been a problem in the past.
    • Im trying to build my mod using shade since i use the luaj library however i keep getting this error Reason: Task ':reobfJar' uses this output of task ':shadowJar' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. So i try adding reobfJar.dependsOn shadowJar  Could not get unknown property 'reobfJar' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. my gradle file plugins { id 'eclipse' id 'idea' id 'maven-publish' id 'net.minecraftforge.gradle' version '[6.0,6.2)' id 'com.github.johnrengelman.shadow' version '7.1.2' id 'org.spongepowered.mixin' version '0.7.+' } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'org.spongepowered.mixin' apply plugin: 'com.github.johnrengelman.shadow' version = mod_version group = mod_group_id base { archivesName = mod_id } // Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. java.toolchain.languageVersion = JavaLanguageVersion.of(17) //jarJar.enable() println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" minecraft { mappings channel: mapping_channel, version: mapping_version copyIdeResources = true runs { configureEach { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' arg "-mixin.config=derp.mixin.json" mods { "${mod_id}" { source sourceSets.main } } } client { // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. property 'forge.enabledGameTestNamespaces', mod_id } server { property 'forge.enabledGameTestNamespaces', mod_id args '--nogui' } gameTestServer { property 'forge.enabledGameTestNamespaces', mod_id } data { workingDirectory project.file('run-data') args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') } } } sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { flatDir { dirs './libs' } maven { url = "https://jitpack.io" } } configurations { shade implementation.extendsFrom shade } dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" implementation 'org.luaj:luaj-jse-3.0.2' implementation fg.deobf("com.github.Virtuoel:Pehkui:${pehkui_version}") annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' minecraftLibrary 'luaj:luaj-jse:3.0.2' shade 'luaj:luaj-jse:3.0.2' } // Example for how to get properties into the manifest for reading at runtime. tasks.named('jar', Jar).configure { manifest { attributes([ 'Specification-Title' : mod_id, 'Specification-Vendor' : mod_authors, 'Specification-Version' : '1', // We are version 1 of ourselves 'Implementation-Title' : project.name, 'Implementation-Version' : project.jar.archiveVersion, 'Implementation-Vendor' : mod_authors, 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), "TweakClass" : "org.spongepowered.asm.launch.MixinTweaker", "TweakOrder" : 0, "MixinConfigs" : "derp.mixin.json" ]) } rename 'mixin.refmap.json', 'derp.mixin-refmap.json' } shadowJar { archiveClassifier = '' configurations = [project.configurations.shade] finalizedBy 'reobfShadowJar' } assemble.dependsOn shadowJar reobf { re shadowJar {} } publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file://${project.projectDir}/mcmodsrepo" } } } my entire project:https://github.com/kevin051606/DERP-Mod/tree/Derp-1.0-1.20
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.