Modders Assemble!

A while ago, I threatened on the Grim Dawn unofficial discord that modders may want to pay attention regarding a direct message discussing upcoming changes to the game. With the big expansion cat out of the bag, it is no longer necessary to be having these discussions in private.

I want to draw attention to changes that pertain specifically to modders:

  • The world map size limit has been increased from 2gb to 4gb. This should dramatically increase the size of mod maps you can create, but be aware that Crate will be using up some of that new space if you plan on modding the campaign map.
  • The console now logs lua errors in custom games.
  • Faction Slots have been expanded to 40. Note that Crate will be using these up through 18 in the near future, who can say beyond that. So plan accordingly!
  • Localization has been integrated into the game data. You can alter localizations within your mods by overwriting and updating those files.

The first one is obviously huge as it means your mod worlds can go to a scale that was before unimaginable, but the addition of Fangs of Asterkarn does mean some of that space will be taken up by Crate.

So if you are a modder that’s worked on altering the main campaign world, this is understandably going to be frustrating as you will either be faced with an outdated world, or you will have to wait for the expansion 3 content to be available. The good news is that you will no longer have to juggle squeezing in your levels to fit with the campaign regions into the remaining ~100MB you had. The bad news is you will have to do it all again come GDX3. My sincere appreciation for anyone that carries out this daunting task.

Your work offers Grim Dawn fans more content for free and we at Crate are genuinely grateful for those making their own content for the game. I especially, as a former modder, know just how much personal investment and sacrifice that takes. So thank you.

We hope the v1.2 changes bring some much needed improvements to the modding scene, and we suspect the addition of shapeshifting, skill charges, and % Max Speed attributes will give you many opportunities to experiment with your creations. If the shapeshifting system pans out as I hope, it will give be pretty fun to mod.


I would like to take this thread as an opportunity for modders to comment on anything that might be helpful in your endeavors. I do not expect we will be able to grant every wish, and you certainly should not be hoping for fundamental changes to the tools (we use the same ones, says the dead horse), but perhaps we can make some dreams come true in the future. Let us know!

9 Likes

IT’S TIME TO COOK

OK so most of what I do is just .dbr stuff (barring some fumbling about in the world editor), so not sure how applicable these requests would be to others.

However, a number of my needs boil down to extra functionality to certain systems that would manifest in dbrs.


The number one thing I’d like is an exclusionary, global table for mastery skills that, when a skill is listed in the table (from any mastery), that skill is excluded from checks of mastery selection and skill respecs. I’ll elaborate (with an example of the situation) to make that clearer:

I have a set that grants a bonus to the “Aegis of Menhir Fragments” skill:
image
This is a custom skill (skillsecondary) that I’ve placed in the Oathkeeper mastery which does as it says: makes AoM generate fragments like Panetti’s Replicating Missile. The problem with it is that in order for this skill to function, it must be able to receive +skill bonuses (so that this +1 actually triggers the effects.) In order for that to happen, it must be invested in by default. However, when a skill is invested into, players are unable to change their initial mastery selection, meaning that if a player of this mod were to hit level two and then glance at the Oathkeeper mastery, they would be unable to undo their selection even without points placed into the mastery bar. Furthermore, it means that players that invest into Aegies of Menhir at any time would be unable to respec fully from the skill into something else, because there would still be modifiers present in the tree with skillpoints in them:


This is, put plainly, not an ideal solution to the problem.

Behind the scenes, this involved adding the skill to the skilltree with a default level of 1…


along with the following skill configuration, such that only with +skills would this modifier be enabled (at 1/1 it does nothing)
image
(And yes, technically +All Oathkeeper skills would toggle this skill on, but that’s an easy fix (by making its effects enable at some ludicrously high value and making the set bonus provide that value))

The desired request here, then, in allowing this skill to be removed from the UI would be a blacklist - similar to the devotion binding/proc chance blacklists - that prevents skills on the list from being a factor for uninvestment or mastery choice considerations.

Obviously this is a very specific example, but such a feature would open up LOADS of item/mastery possibilities in modding. I’ve been running into issues like this basically since Day 1 of my modding adventures, back when adoomgod and I were working on Cornucopia. It would enable so much creativity while minimizing player-facing jankiness.


Second request is a bit more minor: Implement the skilltree_expanded.tpl by default. This is a template that expands the skill slots in a skilltree file up to 99, and is fully functional. It’s easy enough for modders to implement the skilltree_expanded.tpl file in their mods, but for aspiring modders without the file (or for those of us that wiped a harddrive and tried to recover what they lost…) they have to do a lot of digging to find it in the hands of a fellow community member. I’ve attached the file here if you don’t know what I’m referring to:
skilltree_expanded.zip (1.0 KB)


Thirdly, and this may be unlikely to change, but it has come to my attention that blocker spawning skills are no longer functional. I believe this is a consequence of some changes to pet pathing, however I’d be very interested in seeing pathing-blocker skills revisited in the future (perhaps with expansion content). This is to say, a skill that spawns an object which cannot be pathed through, by players or NPCs alike. In Diablo terms, this would be the ‘Waller’ affix which creates three walls around a player and forces them to walk out the exit (or movement-skill over the walls, burning a valuable cooldown…). I had used this to some effect in one of my older modded masteries, by spawning a piece of debris (from the Plains of Strife…) as an immobile pet entity, but since AoM-ish other entities have been able to path through it, including allies.

This isn’t the biggest loss if it isn’t reimplemented, but it would be neat to see it were it usable again.


Finally, not a request. Thank you for everything you’ve done so far and that you will do in the future. The new Nullification and Sunder mechanics are EXACTLY what I needed for a project I’m working on. I’m glad to have them in hand and I’m looking forward to what you provide next!

  1. Item attributes and affixes can be manipulated through scripts
  2. Dynamically adjust the game difficulty or monster attributes
  3. The skill variation carried on items and affixes can support specific conditions to trigger additional skill effects
  4. Custom damage resistance and status resistance formulas
1 Like

I’m already making plans to make use of charges and max speed stats, personally I don’t have any use for shapeshifters but I know other mods obviously will. The map changes are a huge boon for mappers, and now I can consider doing map changes myself knowing that we have room to explore.

I’ll reiterate this one… I’d love a way to make a fist fighter class. It would just need a weapon template that uses unarmed animations. Alternatively, a way to prevent weapons from being auto equipped on pickup, so we can just use the existing unarmed animations. (i’ll probably make new ones anyway)

Another idea I had kinda recently concerning a balance issue in DOM, would be neat if we had an option for item modifiers to be exclusive, so only one could apply.

Thank you for you amazing work and dedication to the game.
Some features that I would like to see to help modders, the first 2 being the most “feasible” I think:

  1. Dark Mode for Asset Manager : Currently the white background is hurting the eyes, a preference option to invert the color would fix this issue (black background, white font) and reduces eye fatigue.

  2. For the upcoming Affix Transmutation, allow modders to make it work :

  • on any rarity item including legendary ( rarity restriction chosen on the template)
  • on item that don’t have prefix/suffix by adding a new prefix / suffix from custom loottables
  • allow many lootables entries for affixes (one of my mods is already using 11 “lootrandomizertables”)
  • option to reroll and add smith bonus with custom loottables
  • option to reroll augments with custom loottables
  • possibility to change the reagent cost (not just iron)
  1. Attaching autocastskill skills to item skill. Currently it is possible to make autocastskill on mastery skill or monster skill that belong to a skill tree. But when we add an autocastskill to an item skill it can crash the game. They seem to be considered ingame as a devotion skill attached by default to the item skill, not sure if it’s easy to “fix”.

  2. Skill modifiers working for the new health and energy potion.
    Skill modifiers working for item skills.

  3. Some modders would like to implement a crucible “copy” into their mod, with little changes so we would like a way to disable it if the player has not installed the DLC. A way to do this would be to call some functions required for the mod to work (spawn wave enemies, reward calculation based on timer…) so if the player didn’t install Crucible or tries to modify the mod it would simply not work.

  4. Crafting system option to make a requirement on a list of possible prefix/affix combination of the item in entry. For example a formula would require any double rare affix item to produce a new item, or even more specific only the rare suffix " Of Kings". This feature was possible in the TQ Asset manager (used in Soulvizier mod) but was changed with the crafting system changes.

  5. Allow some item skills to grand skill using skill secondary_X template that could affect either a base mastery skill or another item skill.

  6. Increase lootrandomizertable max entries (currently capped at 120 entry)

  7. AssetManager currently create dbr files with hundreds of unnecessary lines that can be deleted with 4 regex expression in Notepad++.Suggestion : Make Asset Manager deletes these lines by default ( it takes space and compiling time for nothing) :

\noffensive.,0(.0+)?,
\ndefensive.
,0(.0+)?,
\nretaliation.,0(.0+)?,
\ncharacter.
,0(.0+)?,

Wishlist / Dreamlist:

  1. Allowing a pet to allways stay above the head of the character and follow the character like the mirage archer skill from PoE. Currently there is only the “skill_defensiveline.tpl” that allows to summon a pet directly above the character head but the pet won’t move to follow the character.

  2. Allowing us to make recombinators-like item (maybe through scripting if we can store item information and then use scripting to create specific items or though crafting pannel ). The idea is to sacrifice 2 items creating a new item with affix from both items chosen randomly (and base item chosen randomly) and that could also result in creating new stats on the item. It could be done in the crafting panel with 2 item slots big enough to put 2 handed weapons for example.

  3. Option to make a new progress bar above the current XP bar that could store XP value past the level cap and could give some reward (lua function call) each time it reaches 100% then it resets to zero. It’s a way to make farming XP always relevant even past level 100 without giving infinite power (paragon issue from D3).

I am very excited to play the new expansion, mod shapeshifting (probably on item skills if it’s possible) and movement speed values.

2 Likes

Please this!! :+1: :+1:

Here is my list ranging from reasonable to madness. Might include more later.

In my mind I have also been toying with such an appoach and would like be made more plausible.
One additional points, I have not tested, but maybe Ceno has an answer:

  • Can the player unspec from this modifier for free points, were it visible on the skill tree.

My disired outcome to the above situations would be, that player can see the button in the tree, but is not able to click on it to invest/remove points (not tested if the button currently can be made unclickable).
I would like the black list suggested should prevent clicking rather than hidding it in the UI (that might be what Ceno meant and I am misreading it)

Alternatively a modified version of the skill transmuter tamplate could be introduced that implements this suggestion, but should scale with item skill bonuses.

Also in vafor of this one. I imagine it as a formulas_override.dbr file that modders can choose to referense in lets say engine.dbr. It can/should include fields for individual damage types more importantly, but can bassically have all character stat related fields from the skill modifier template.

  1. Not tested if it works, but probably does not, for item number #2 and other formulas being able to include Lua functions/variables in the calculations.

  2. A copy&paste from a previous post, that I had no reply on.

Can Lua have settings to filter the console log?

When the mod is shipped i would like the console log to be used as UI to print any lua variables the mod is using to the player. If it is spammed with asset un/load like in GI that would not be ideal.

A way to turn on/off messge types would be welcomed.

  1. Quest & conversation editor supports some functions that Lua does not. Like checking the player class, giving a random item. Think there were a few more usefull ones, but this is what springs to mind. Kindly go over avaialbe ones and include in Lua what is possible.

  2. Add a function to Lua that can give the player an existing item from the ground, then an auto pick up mod can be created.

6.1. Add lua function to check if the item is being filtered out.

  1. Add ignore terrain collision check for all projectiles where possible. Currently only spark has it. Similarly if there are other such flags, can’t recall if there were others.

Edit: slight edit to #1 and added #6.1.
Edit 2: slight edit to #7

I will take my time and write a proper comment later, but while reading people’s comments I have to chime in on this one:

Ideally the affix transmutation system should allow modders to not only target pre-/suffix, but also the augment and smith bonus layer of an item. Those are the four stats that we are currently able to alter via our essence system in the leaugues. Also we had some problem with some of the stats changing their values even though the item’s seed remained unchanged. That seemed a little inconsistent, maybe this issue can be resolved.

1 Like

Yes I didn’t know this was possible, I added it to my suggestion comment.
For augment, currently applying a new augment overwrites the old one.
So adding this feature would allow to craft exclusive augment created only when rerolling items, encouraging the player to reroll his item to find the right combination of both affixes and augment in one craft.

Here we go:

  1. AdditionalProjectileFXModifier please. No more Fire Strike with fiery visual effect while dealing cold damage. Also make it work with Savagery/RF type of skills.

  2. Probably these two gonna come along with the new mastery, but always good to reinforce it: Add new slots for item skill modifiers and for animations on male/female_pc.dbr (mainly on 1h melee weapons array)

  3. In addition to what Okami said about autocast skills. Not only prevent crashes while using them on item skills, but also make autocast skills being not recognized as a devotion skill when used on mastery skills. So players can attach devotion skills normally. Make item skill modifiers being able to affect them is too much to ask I think.

  4. Some secondary skills can have their damage converted by item skill modifiers, like the explosion on enemy death from Ravenous Earth. However, the radius visual effect can’t be changed. To make all secondary skills being able to be affected by item skill modifiers (stats and VFX conversions) would be cool. Vire’s Might e.g. has a lot of damage conversions by items, but the same trail of fire kind of breaks immersion. The same happens with Primal Strike + Torrent. Probably it’s a lot of work, but this feature would be game changer. Even adding it as a feature for the next expansion maybe.

  5. This is a very particular/selfish one. Make life steal to work on Siphon Souls skill template when used by player scaling pets. Just like it works on the buff attack radius used by Soul of Lord Nazaran from Blood Knight set.

  6. Increase number of item slots on loottables from 99 to… Whatever is possible. 150? 200? The higher the better.

  7. Add an option to templates of active skills and modifiers: Can’t receive points from “+1 to all X class skills” - True/False.

  8. Add an “Exclusive” option to transmuters, preventing players to choose more than one of them when two or more transmuters are linked to the same skill.

  9. Add Freeze to the damage conversion list, so it can be converted to “nothing” like we can do with Stun.

  10. Hairstyles replacing helms on Illusionist for Mommy Berserker /kappa.

Well, just that.

1 Like

Here we go, a few more.

  1. Add weights to SR maps.
    Here is why I think it is needed. In the league we added boss rooms as regular levels. I call them repeatable boss rooms. They are not many, depending on the shard it is 3 to 5 maps. But given there 60+ maps they are not that common.
    Weighting would solve that, plus it will be easier to have more than one rule set, where all the maps are there but the weight is different.

The way we initially handled it was by having each repeatable boss room listed more than once, basically the same as weighting. However there was a bug that if the same map was selected twice within the SR’s 6 or so last maps the next level would not load.
Guess, an alternative would be to have the code check if a map has already been played recently and reroll, or have the weighting created internally based on how many times a map is listed.

  1. Again for lua, you favorite… something that would be nice to have, but not that needed.

I think a function that retrieves a quest tag given a partial string will be a good addition.
For example if I want to read which is the highest level players have reach in scalling SOT dungeon, i would have a tag like this dungeon_sot_37. However to read it I would either have to start checking from 1 and up or max level and down. Or i would have to do a binarybsearch for the tag, which is an alternative.
Would be nice to have 2 functions to help with the above.
FindUniqueToken

  • for example this will accept “dungeon_sot_” as paramater and return me the tag mentilned above + true, or null and false
    GiveUniqueToken
  • for example thia will take “dungeon_sot_38” as paramater and save it. It will also remove dungeon_sot_37

Again this is a nice to have.

  1. Spherical trigger volumes, for GD2 at least.

  2. A clense ability for monsters that removes buffs. Nullification would normally works, but it must have a radius specified and would affect the player!!! Ideally if radius is 0 it should work as self target ability.

Currently some bosses have a low hp skill that grants them immunity to CC, however the new resistances do not take affect if the player keeps freezing them. Might be a bug or intended.

1 Like

Man, I am teaching myself entry-level game dev. I would love to learn modding but I just do not have the time. I work 13-14h some days. I do love the mods the community creates. One which I did not have the time for yet is RoT. I can see the passion in the mod. Grimillion I play to chill and Dawn of Mastery I go tryhard mode :yum:

I could just linked to my old post but it’s all about tools, so barely will be implemented.

So. Here some things I wuld speak.

  1. Templates compatibility.
    1.1 Transmuters (mainly conversion) attached to main skills doesn’t work on secondary skills (skillsecondary_*.tpl). Same time basic modifiers could affect several skills by listing after each in skill tree (Ulzuin’s chosen, Nidalla’s Hidden Hand). More over Granted skill transmuters/modifiers could be attached to secondary skills and works (mostly) correctly.
    It would be neat if transmuters wll began affect secondary skills at least with multi-modifier scenario.

1.2 Secondary skills vs. WPS. Mostly secondary skills could not be triggered by WPS, while skillsecondary_onkillattackradius.tpl does (I faced that within my last D2Classes patch).
So next wish, make all secondary skills tempates able to attach to WPS

1.3
SR Charged buffs. Currently charged buff template works only with potion skills in SR (Shattered souls) and doesn.t work correctly within mastery. Buff aplied with max stacks and don’t expire.
And I would like to see skillbuff_passivecharged.tpl work correctly with mastery skills, espetially secondary buff, hen you can get buff stacks with consistant attacks.

  1. Projectile template.
    2.1 One of projectile people want to see in game is D2 Frozen orb. Unfortunately No one projectile template doesn.t allw that. Any flying projectile have not additional damage triggers, and AoE projectile (projectileareaeffect.tpl / Sigil of Consumption) vice versa have damage interval but can’t move - there is no Velocity parameter.
    May be we have some chance to see projectile that fly and trigger damage with time interval.

2.2 Orbiting Projectile always spawns at character position even it uses as projectile fragments. May be we will get option to cast orbiting projectile not only over character.

  1. Dual action buffs
    There are most fantastic point, probably will be adressed to GD2. Blood of Dreeg, Pneumatic burst and Word of renewal was designet due to engine limitation as is. But probably with upcoming GDX3 there time to implement it dual action. Classic Buff template have parameter where buff type assigned.

    Such template could expanded for 2 buffs: passive one and active one… May be…

UPD. Almost forgot.
I have several localization fixes. When is the last moment I can upload it, or how it can be included in 1.2 release?


Game indifferent what skill used as Granted modifier: modifier/transmuter/secondary modifier. You just can assign your Secondary modifier to aegis and it will work correctly.

2 Likes

That’s…kind of irrelevant to my situation, but true.

That exactly situation you describe

Modified skill - aegis1
Modifier skill - arcanemissile4

I have no issues with getting the skill to work. It operates flawlessly as intended.

What is not without flaws is the User Experience when it comes to respeccing in the mod.

Edit: Unless you’re suggesting that an item can assign a skillsecondary to a skill without it being in the class’s skilltree, which has not been my experience.

I’m not suggesting, I affirm. You just assign skill_projectilemodifier.tpl to skill_attackprojectilechain.tpl via Item and don’t have problems with respeccing in mod.

2 Likes

I install playtest at last, and noticed, there is not only missed text_ru.arc, but also game no more pick translation from localization folder. Please, could you keep the ability to take localization from the archive.

Players who stay on 1198 will also want to use the 1198 localization as well because 1200+ won’t fit and the “more languages” option is no longer available.

It took me until now to test to confirm but this does indeed seem to work. Thank you @DenisMashutikov .

Still, there remain edge cases where having hidden in-mastery skills is desirable. So my original wishlist of having a skill blacklist for respecs remains.


Follow up modding requests:

  • It’d be cool if deleting a folder in AssetManager actually deleted folders (and their subfolders/contents) that weren’t empty. As it is, you need to delete non-folder contents and then individually work your way up the chain of directories from the deepest point.

  • I’d love a skill template that was essentially the inverse of Cadence (because we ALL know how much I like Cadence) - something that applies a stacking/charging debuff to an enemy (or a player…hint hint) and when those stacks reach a certain point the stacks are consumed and X effect triggers. The way I’m envisioning it is an offensiveX only buff template (e.g., no defensiveX/characterX stats) with a charge counter not unlike Cadence/Savagery and the offensive stats applying to the affected entity when the charge limit is reached. Bonus points if skillsecondaries could trigger off this effect, too!

11 - Also, something that always bothered me. Make damage conversion to automatically detect which damage type that comes next has a DoT version and uses 100% of it while converting DoT’s from the previous damage type.

Example:

Converting 100% Elemental+DoT’s to Aether and Vitality will split the base damage into 50% Vitality/Aether, but 50% of DoT will remain as B/E/F and only 50% as Vitality Decay.

This issue can be noticed on Allagast’s Stormbinder scepter, where it converts TSS Cold damage to Aether and left huge amount of Frostburn damage behind. The perfect scenario would be the scepter converting 100% TSS Cold Damage to Aether and Lightning, with the game turning all Frostburn into Electrocute, since the set is based on Aether/Lightning builds.

Edit:

12 - I’d be glad if the “attack projectile orbital” template could work properly when used as active mastery skill. Currently, the projectiles disappear after using a rift, ladder, cave entrance, etc. They kind got stuck in the area where the player was before and can’t recast the skill for a while.