Abilities without Royalty DLC

Started by Arvkus, May 30, 2021, 05:14:53 AM

Previous topic - Next topic

Arvkus

I want to implement new abilities for my mod. My current options are: use JecsTools ability framework, use Rimworld ability system or create my own from scratch. The most convenient case would be to use official system, the problem is acording to modding rule 13b I cannot use Roalty specific code without Royalty dependency for my mod.

Most of Psycast classes inherit Ability methods and my abilities wont have anything in common with regular psycasts (except gizmo with cooldown feature), but I assume Abilities are still technically Royalty specific code.

Can I use Ability classes without Royalty dependency in my mod?

RawCode

Quote13b. No linking code for users who don't own the product it belongs to: For technical reasons, all our code is packaged up and shipped together, but it's not allowed to make a mod that accesses expansion-specific code unless that mod requires the expansion.

    Q: What is expansion-specific code? A: Code belongs to the product that runs it. If a line of code never runs without the expansion (and without dev tools or mods), it's expansion code.
    Q: But I can see the expansion code. Does that mean I can use it? A: No, for technical reasons all the code is shipped together, as is common practice in many games. However, code belongs to the product that runs it.
    Q: There are expansion checks in the code. If a piece of code doesn't trigger one, does that mean I can use it? A: Not necessarily. These checks are just reminders - they aren't applied before every single line of expansion code because that would be impractical. The rule is as described above.
    Q: Can I use expansion content in my non-expansion mod, if it's disabled for non-expansion users? A: Yes, this is a good solution. You can disable expansion-specific content with conditional patches or code checks. For example, code can check ModLister.RoyaltyInstalled before calling any expansion-specific Ludeon code.
    Q: There's some code where I'm not sure it's part of the expansion or not. A: We're happy to resolve any ambiguities. Please just contact us with the class and method name you're interested in and we'll see whether it runs without the expansion or not.
    Q: Are there any exceptions? A: Code for gendered apparel and the class Sketch are arbitrarily excepted from this rule.


13c. No close copying of expansion content: Don't make mods with close design/artistic/text similarities to an expansion but which don't require the expansion. This rule applies even if you didn't copy/paste anything directly and didn't link our code.

Discussion: If you wrote a book about a wizard boy who goes to Bogwarts named Barry Lotter you'd get sued, even if you wrote all the words yourself. You can still write about a wizard boy! But it's well-established in law that there is a line when you're copying even if you didn't actually use copy/paste on your computer. I intend to be as flexible as I reasonably can, but I think everyone understands that having no rule at all about this is an invitation to problems. Just talk to us if there's any question. This rule has never been enforced and is really just a guard against bad faith copying. Unless you're acting in conscious bad faith you're almost certainly fine.

tldr

GarbageDay

There's mods that do this on the workshop OP (Rim of magic would be a good place to look + many alienraces that use the core's Pawn_Ability tracker system.) the line seems to be if you make it related to the psycast system or not; at least that's whats marked in the assembles + how the long standing non-royalty mods with abilities i've seen work.

I poked into this earlier in the week and unless i missed something you'll have to craft your own way to deliver it onto the pawn though, i whipped up a Use_effect using the cores skill trainer as a guide myself.