Jump to content

Recommended Posts


Can you add a mod packing function to the mod tools?

I'm a Chinese modder.At present, Chinese DST mods are mainly released on the WeGame and Steam platforms.

Some people copy and paste other modders' content, then modify the mod name and the author's name, and claim to be their own creation. When confronted, some even tout: "why don't you encrypt?", "you didn't say we shouldn't steal from you", "I just use it for myself" (while it is in fact puclicly available)

So I wonder if the official modtools can provide some functions, allowing players to package mod into a complete file (such as zip package) and automatically sign or encrypt it with the publisher's ID,

Reference example: scripts.zip provided in the game is the packed file that can be read and used normally

The zip file itself also supports password or some copyright information,

Can Klei do something like that to help protect modder's work? When the mod is uploaded, it is compressed into a compressed package with some copyright information attached. For example, if the mod published by XXX needs to use the mod resources, please ask the author for permission in advance. Or automatically bring the LGPL open source protocol?

(because many authors don't know the content of the open source protocol, they don't bring it with them by default.)
In addition, a random string can be attached to the additional information. According to the string, the real password of the compressed package can be calculated and the specific content of mod can be read according to the password

From the perspective of Python developers, I think this should be a relatively easy problem to deal with. If necessary, I can help write this part of the code

If you need to contact directly, you can also send an email to mamjun1@qq.com

Of course, whether to pack or encrypt is recommended to be optional. It's also convenient for sharing. I don't care about other people's Mod


可以为modtools增加一个打包mod的功能吗
我是一名中国modder。现在,中国的DST主要发布在WeGame 和 Steam 平台
但是现在有一个问题,有很多入门modder或者说是普通玩家,他们做了一下违反版权的行为
他们将别人modder的内容复制粘贴然后修改mod名称和作者名称,并声称是自己创作的。甚至还有人发出了:“有本事加密阿”、“你也没说不能拿你资源阿”、“我只是自己用”(但是他是发布的所有人可见,并且声称是自己创作的)

所以我在想,是不是官方的modtools可以出一些功能,允许玩家将mod打包成为一个完整的文件(例如zip压缩包) 并自动使用发布者的ID对其进行签名或者加密,

参考范例: 游戏中自带的 scripts.zip 就是这种打包后的文件 可以正常读取并使用
           zip文件本身也是支持使用密码 或者附带一些版权信息的,
           
或许官方可以这么做? mod上传的时候 自带压缩成压缩包,并且附加一些版权信息,比如 XXX发布的此mod,如果需要使用该mod的资源,请先征得作者同意之类的。或者自动带上LGPL开源协议一类的?
(因为好多作者并不了解开源协议的内容,他们并不会默认带上开源协议)
并且在附加信息里可以附上一个随机的字符串,根据这个字符串进行计算拿到压缩包的真实密码,并根据这个密码去读取mod的具体内容

我站在py开发者的角度 觉得这个应该是一个比较好处理的问题, 如果需要,我可以协助编写此部分的代码。

如果需要直接联系 也可以发送邮件到mamjun1@qq.com

当然是否打包或者加密建议做成可选项,也方便一些单纯是为了分享,不介意别人使用的mod
 

  • Like 1
On 2020/4/2 at 11:01 AM, Ultroman said:

Why?

because a sb called 神乐 copied other's code and said these unrespectful word to other modders.

 LGPL open source protocol 建议修改为LGPL license,这是英文原文

Edited by Akarinnnnnn

Well, then that person is probably a jerk. But whatever Klei can come up with, they can crack, and if they can't, then it was too expensive to make for Klei :) There's just no money in it, m8. And it's impractical to solve. At some point, the code will be running uncompressed in memory. There are no easy ways around that.

  • Thanks 1
On 2020/4/3 at PM11点27分, Ultroman said:

好吧,那么那个人可能是个混蛋。但是无论Klei能够提出什么,他们都能破解,如果不能,那么对于Klei来说太昂贵了  :) ,m8根本就没有钱。而且这是不切实际的。在某些时候,代码将在内存中未压缩的情况下运行。周围没有简单的方法。

No no no

There is no need for strong encryption, just a simple compression package and then a password. There should be similar modules inside the game (refer to the official loading scripts. Zip), so a feasible and not too difficult proposal is proposed

I don't get it - do these people repost mods solely for seeing someone download them? Finding the right mod among 20 copies sounds like a nightmare, especially when updates are needed.

I don't like the idea of encrypting/obfuscating the entire source code of the mod, and I don't think there's a need for Klei to implement a new mod packaging mechanism. I'd think most talentless copycats would try editing modinfo.lua, so I suggest you add little annoying tricks here and there to prevent the mod from working properly.

I'm going to be an absolute madlad and think about a scheme that ensures the following:

  • Source code is open, readable and promotes community contribution
    • The entire source can be published in GitLab/GitHub with absolutely no obfuscation or encryption
    • The functional parts of the published mod package can be edited in-place for easy personal patches and bug fixes
  • Make copycats (who don't know s*** about IT or mod etiquette) cry, when they try to:
    • Modify the modinfo of the distributed version of the mod
    • Download the Git repository without knowing how to making it work

To accomplish this, I suggest you write a Python script or a Makefile to automatically assemble the final mod distribution folder. Your build scripts could do these things to really make copycats cry:

  1. Make the modinfo.lua hard to edit in the distributed package.
    1. Create a script file that makes a crapton of different checks on the mod's main information
    2. Make the build script insert these checks automatically in hundreds of locations.
    3. When the check fails, notify the user that the mod is a copy-paste with no interest in crediting the author or improving anything. Maybe crash the game so the copycat gets nasty reviews and can't even play their own version.
  2. Automatically insert nice, original-author-crediting long prefixes to every single variable/function name:
    1. When replacing function/variable names, make sure to generate random variations so copycats can't just search-replace them away ;)
    function MAMjun_Rules_TestFlammable(mAmJun_is_the_Best_inst)
        return mAmJun_is_the_Best_inst:HasTag("burnable") 
    end

     

  3. Laugh as you enjoy your tea with extra honey.

Don't spend too much effort to have a super-reliable check for the modinfo: something really simple is enough to spook off 80% of the idiots out there. The other 20% who can't use Git or run your build script will most likely be unable to deal with your massively spammed variable prefixes: the copycat mods' source code will be permanently marked with your name all over them.

Thanks for letting us know about this problem. I'm going to try fiddling with the chinese WeGame client (inside a restricted Wine environment, obviously) and see if my work has been duped there, too...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
  • Create New...