Jump to content

Spell Crafting Mod


TaichiKid

Recommended Posts

For a while now I've been working on a Spell Crafting mod and started doing some testing lately. So far I think it has been working pretty well. I decided to post up a video and see what others think. The mod will let you combine different magic effects in-game and on the fly. You can name your custom spells, have up to 25 custom spell at a time, and each custom spell can have up to 3 separate effects.

 

Let me know if you have any thoughts or suggestions. Thanks!

 

Spell Crafting Demo

Link to comment
Share on other sites

Looks great, maybe you could even add your cantrips to some leveled loots lists through papyrus.

 

Now lets talk strings.

The skse guys learned a bit about beth strings when working on the stringutil. Heres what the code comment says.

 

; Note about the internal Skyrim implementation of the string classes used for scripting:

; the strings are case-insensitive. Each BSFixedString is managed in a cache and reused
; everywhere it is needed. This means that strings like "O" and "o" are technically equivalent;
; Which string is used depends greatly on which version is found first. We are investigating
; how to manage this, but for the time being be aware that the distinction between uppercase
; and lowercase may not exist. It also means that functions below returning an integer
; for the character may not correspond exactly. Also GetNthChar("Hello Skyrim!", 4) will
; return a string with either "O" or "o" depnding on which might be registered first. All
; my tests so far have it return the uppercase, eventhough in the string it is lowercase.
; We may solve this problem by switching back to returning an integer rather than a string
; for GetNthChar, but this will still have problems.

Basically that means if theres a string "Hello World" and another "hello world", the version the vm finds first is cached and used by the game indefinitely. The GetNthChar() part isnt really related to your problem even if your using the string functions because this is a papyrus problem, not skse. But there are a few work arounds Ive heard of.

 

So if you have "hello" somewhere and you want to use "Hello" somewhere else youll have problems because case-insensitive papyrus thinks the strings are 100% equivalent. The trick is making the second string with a capitol letter unique by adding a trailing space like "Hello ". Now the strings are not equivalent :) This might not work with how your capturing keys on press and I guess building the final strings later.

 

The next work around is making a translation file for your mod. Ive never done this but the skyui guys have a write up for translating mcm strings you may be able to adapt https://github.com/schlangster/skyui/wiki/MCM-Advanced-Features#wiki-Localization

 

Again this might not work with the way your building your strings.

 

Hope you work that out. My ocd cant tolerate mixed cases lol

Link to comment
Share on other sites

scrivener07, great info on the upper case/lower case character problem. After reading through it, I have a couple ideas I want to try.

 

I thought about adding Cantrip Tomes to the leveled list via scripts, but if I understand correctly, that can leave footprints in the save game which can cause problems if this mod is uninstalled. I might put out an optional file that updates the leveled lists; that way if someone wants to contaminate their save, it's their choice.

 

Thanks!

Link to comment
Share on other sites

EnaiSiaion, I'm testing with some custom spell mods installed and mine hasn't had any conflict with them, so it seems compatible in that respect.

 

In order to add custom spells or custom effects to the Spell Crafting menus, I would just have to put together a patch for the custom material. I tried to design the framework so that would be as easy as possible. I haven't tried it yet with anything other than some of my own custom spells though.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...