Official Codex Discord Server

  1. Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.
    Dismiss Notice

Temple+ Modding Discussion

Discussion in 'ToEE Modding' started by SwingBlade, Sep 25, 2016.

  1. SwingBlade Educated

    SwingBlade
    Joined:
    Sep 4, 2016
    Messages:
    85
    You da bomb, Sitra. \o/

    By the way, some of the changes you're making are to allow others the tools to mod, aye? I was wondering if you might have considered putting together a GUI that would allow for that, while doing the backend scripting itself? Or would something like that even be realistically feasible?

    I guess my ultimate question is, how does one go about using the tools you're developing?
     
    ^ Top  
  2. Sitra Achara Arcane Patron

    Sitra Achara
    Joined:
    Sep 1, 2003
    Messages:
    1,660
    Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
    Temple+ extends what's moddable by exposing various systems to the Python scripting, which is more accessible to modders/scripters than the C++ code.

    Unfortunately I don't think it lends itself to GUI-based modding, and honestly I'd rather spend my time on other things.

    I've started documenting the new facilities in the Github wiki if you're interested:

    https://github.com/GrognardsFromHell/TemplePlus/wiki/Modding
     
    ^ Top  
  3. SCO Arcane In My Safe Space

    SCO
    Joined:
    Feb 3, 2009
    Messages:
    16,297
    Shadorwun: Hong Kong
    As long as there is not a way to extend npc scripts and tables seamlessly (a WEIDU - install time - or whatever bethesda uses - runtime) i never expect a game modding community to take off beyond megamods.

    And if a weidu happens, i oftentimes wish that the people that did it - or the official companies, for ex Beth - were prevident enough to foresee the need for a mod order and dependency expert system like mlox... or like apt-get for linux (they're actually very similar technologies with the addition that apt also has a repository/install function and is not as sophisticated in 'ordering' and blacklisting).
    Forces the stupid mod makers to put in version numbers and list dependencies with version again, forces them to structure the mod archives with a standard directory structure so it's just drag and drop(or unzip if unsophisticated, though that can be remediated with OS level filesystem plugins... in linux anyway). And not least, forces them not to use godawful installers.


    I'm still waiting for temple+ to be bundled in to a new Co8 release btw.
     
    Last edited: Sep 25, 2016
    ^ Top  
  4. Sitra Achara Arcane Patron

    Sitra Achara
    Joined:
    Sep 1, 2003
    Messages:
    1,660
    Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
    That problem has been solved in the ToEE modding community by not being very sizable :P

    Yeah, I've made the offer to Co8 and they just ignored it. Oh well.

    As it is Temple+ is compatible with Co8, including Co8 detection and overriding the necessary files depending on that.

    They don't update often anyway these days (or rather at all...) so it's good enough as far as I'm concerned. If you're still bothered by it, I recommend petitioning them.
     
    ^ Top  
  5. mrabsentminded Barely Literate

    mrabsentminded
    Joined:
    Oct 12, 2016
    Messages:
    1
    How do you change a class spell readying type from vancian to innate?
     
    ^ Top  
  6. Sitra Achara Arcane Patron

    Sitra Achara
    Joined:
    Sep 1, 2003
    Messages:
    1,660
    Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
    To do so you need to edit the class specification files. You can find them inside your Temple+ installation folder:

    From there you need to extract tpgamefiles.dat, and edit the appropriate file from rules\char_class. For a spellcasting class, just change the return value under GetSpellReadyingType from spell_readying_vancian to spell_readying_innate.

    Then you should put the modded file inside the override folder so it doesn't get wiped out on the next update. See instructions here:

    https://github.com/GrognardsFromHell/TemplePlus/wiki/Modding

    (the above wiki also contains some WIP documentation on modding for Temple+ btw)
     
    ^ Top  
  7. Kharagh Novice

    Kharagh
    Joined:
    Jun 3, 2016
    Messages:
    7
    Thanks for all the great improvements. Recently, however, spells that I had removed from classes have returned. For example, I have removed sor & wiz from all the summon monster spells in my data/rules/spells folder but now (due to some post-September update) those show up as wizard spells in-game. Is there a new file that I should be modifying to remove spells from particular classes?
     
    ^ Top  
  8. Sitra Achara Arcane Patron

    Sitra Achara
    Joined:
    Sep 1, 2003
    Messages:
    1,660
    Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
    Yes, you need to use the overrides folder since I've altered the rules\spells files (inside co8fixes.dat). Spells with multiple radial options now have them specified inside the rules files.
    See the Temple+ modding wiki page for more info.
     
    ^ Top  
  9. Dercik Novice

    Dercik
    Joined:
    Apr 21, 2016
    Messages:
    19
    Sitra Achara
    Can you Please add FEAT that make SELECTED SKILL CLASS SKILL?

    (like "trickery domain" feat make "bluff" skill for cleric class skill)
    If you added "Favoured Soul" class - why not this single feat?
     
    ^ Top  
  10. Elestan Educated

    Elestan
    Joined:
    Nov 8, 2016
    Messages:
    95
    Come on, folks...he's one guy, and he's probably got 300 feature requests - And binary modding is HARD. Don't get on his case for not getting any particular feature yet.
     
    ^ Top  
  11. Sitra Achara Arcane Patron

    Sitra Achara
    Joined:
    Sep 1, 2003
    Messages:
    1,660
    Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015


    P.S. you can quite easily edit the classes now and change class skills.
     
    Last edited: Nov 8, 2016
    ^ Top  
  12. Dercik Novice

    Dercik
    Joined:
    Apr 21, 2016
    Messages:
    19
    How to open tpgamerules.dat file?

    OK
    I could try make this feat on my own if this is possible.
     
    Last edited: Nov 9, 2016
    ^ Top  
  13. Sitra Achara Arcane Patron

    Sitra Achara
    Joined:
    Sep 1, 2003
    Messages:
    1,660
    Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
    You said the magic word ;) To get you started, see here.

    There are some difficulties with doing this feat, however.
    First off you have to make the engine poll whether a character has a special Modifier that alters class-skills. That's the easy part and I can add it right away, and then you'll just have to create a Python Modifier that answers the call .d20_query_with_args("Is Class Skill", skill_x) or something like that.

    The tricky part is that since there are many skills, you're going to want the UI to support multiselection (otherwise you'll have to add a feat for each skill and clog the list). That sort of thing is currently hardcoded to specific feats (such as Weapon Focus), so I'll have to extend it and expose to the levelup scripting API.

    The other thing is you'll also probably want to disable the ones for skills that are already class skills, so you'll need custom logic API for enabling/disabling feats.

    Both of these items require non-trivial changes to the engine which weren't a priority or a necessity so far. But since you said the magic word, I'll kick it up the queue :)
     
    ^ Top  
  14. Dercik Novice

    Dercik
    Joined:
    Apr 21, 2016
    Messages:
    19
    Hmm.. I thought that there is a "source code" for trickery domain, which would be then matter of simple file editing, without having to write script from scratch for "class skill" feat.
    I might try to do this in my free time, since I have some modding experience in many games.

    I can live with spam in feat list :).

    Well - not necesarilly - it might be helpful when multiclassing.


    However, your post gave me another suggestion - making variants of classes.
    http://www.d20srd.org/srd/variant/classes/variantCharacterClasses.htm

    But instead of making separate class there could be separate "quasifeats", which would include "class skill" feat code, and use f.e. UI where you choose ranger specialization (archery or dual-wielding).
    That way you could avoid breaking immersion and necessity to correct dialogues and other event triggers, which require specific class (like f.e. with Melanie where you have to be Druid in order to recruit her).
     
    ^ Top  
  15. Sitra Achara Arcane Patron

    Sitra Achara
    Joined:
    Sep 1, 2003
    Messages:
    1,660
    Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
    Domains are entirely hardcoded, like many other things in ToEE.

    So yeah, if you forego the above issues it should be pretty easy. You'd have to create feat entries for each skill, and make a hook that answers a D20PythonQuery as I mentioned.
    It should look like this:

    Code:
    from templeplus.pymod import PythonModifier
    from toee import *
    
    def FeatClassSkill(attachee, args, evt_obj):
       skill_enum = args.get_param(0)
       if evt_obj.arg0 == skill_enum:
           evt_obj.return_val = 1
       return 0
    
    class_skill_appraise = PythonModifier('Class Skill Feat Appraise', 0)
    class_skill_appraise.MapToFeat('Class Skill - Appraise')
    class_skill_appraise.AddHook(ET_OnD20PythonQuery, "Is Class Skill", FeatClassSkill, (skill_appraise,))
    
    class_skill_bluff = PythonModifier('Class Skill Feat Bluff', 0)
    class_skill_bluff.MapToFeat('Class Skill - Bluff')
    class_skill_bluff.AddHook(ET_OnD20PythonQuery, "Is Class Skill", FeatClassSkill, (skill_bluff,))
    
    ... etc ...
    
    Well I do plan on doing class kits at some point, I think they should address such things.
     
    ^ Top  
  16. sseymour Barely Literate

    sseymour
    Joined:
    Nov 9, 2016
    Messages:
    3
    I am not a computer programmer, but do have degrees in engineering. If someone can send me the script for the sorcerer class, I would gladly see if I can edit/modify it to be a favored soul for someone to test out.

    Also, practiced spellcaster would be a cool feat to add, as would to add in the warlock as a base class.
     
    ^ Top  
  17. Sitra Achara Arcane Patron

    Sitra Achara
    Joined:
    Sep 1, 2003
    Messages:
    1,660
    Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
    That's all it takes from my experience ;)

    Favored Soul is already done for next version, so maybe you'd like to do another class? What's the equivalent for Druids?
    For info on modding, check out the Temple+ Modding thread.
     
    ^ Top  
  18. Dercik Novice

    Dercik
    Joined:
    Apr 21, 2016
    Messages:
    19
    Are there maybe other DAT packing/unpacking tools?

    Beside:
    Tiopack
    DATtool
    Zane's ToEExtract v1.05

    First 2 don't work on my system (win 8.1) and last one only allows me to unpack dat files but not pack them.
     
    ^ Top  
  19. Dercik Novice

    Dercik
    Joined:
    Apr 21, 2016
    Messages:
    19
    Sitra Achara
    Thank you. :)

    I have one question - does this "mod" have to be packed in dat.file or it should work "unpacked" (I mean copied and pasted into right folders)?
     
    ^ Top  
  20. Sitra Achara Arcane Patron

    Sitra Achara
    Joined:
    Sep 1, 2003
    Messages:
    1,660
    Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
    I'm on a Win10 machine and have no problem with packing. Do you have the necessary DLLs in the same folder?
    Anyway I've updated OP with TioPack.zip, let me know if it works for you.
     
    ^ Top  
  21. Sitra Achara Arcane Patron

    Sitra Achara
    Joined:
    Sep 1, 2003
    Messages:
    1,660
    Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
    You don't have to pack it into dat. You only have to ensure that your alterations take precedence in the search path (or alternately use the file extenders if possible). See the wiki section on files for more info.
     
    ^ Top  
  22. Dercik Novice

    Dercik
    Joined:
    Apr 21, 2016
    Messages:
    19
    Ok - it works :)
     
    ^ Top  
  23. sseymour Barely Literate

    sseymour
    Joined:
    Nov 9, 2016
    Messages:
    3
    OK, so Favored Soul is done, I wouldn't mind taking a stab (blast?) at warlock. Can someone point me in the direction of a template for a class, like sorcerer or wizard? I can look up the required info for warlock from my complete arcane at home and figure out invocations could be possibly added....

    I'd think eldritch blast would be similar to any ray spell with an unlimited usage. Animations could be used from existing spells (scorching ray / ray of enfeeblement / acid touch) for the base and modified eldritch blasts.

    DR/cold iron - I know DR/silver DR/good etc, are in, not sure if anyone HAS cold iron weapons in the game currently.

    ...... and so on and so on...
     
    ^ Top  
  24. Sitra Achara Arcane Patron

    Sitra Achara
    Joined:
    Sep 1, 2003
    Messages:
    1,660
    Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015
    I've added some documentation on the Wiki just for you :)
    https://github.com/GrognardsFromHell/TemplePlus/wiki/Python-Class-Definitions
     
    ^ Top  
  25. sseymour Barely Literate

    sseymour
    Joined:
    Nov 9, 2016
    Messages:
    3
    Really dumb question, but how do I open the .dat files in Win10? I tried the TOEE extract utility and DATtool, both didn't work for me - they wouldn't even load.
     
    ^ Top  

(buying stuff via the above buttons helps us pay the hosting bills, thanks!)